Разработка модулей администрирования и шифрования данных для информационной системы предприятия
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
?я [Текст] / А. А. Садердинов. - М. : "Дашков и К", 2005. - 336 с.: ил. - 2000 экз. - ISBN 5-3626-430-2.
36.Скрипкин, К. Г. Экономическая эффективность информационных систем [Текст] / К. Г. Скрипкин. - М. : ДМК Пресс, 2006. - 256 с.: ил. - 3000 экз. - ISBN 5-94074-180-0.
37.Хомоненко, А. Д. Базы данных [Текст] : учебник для вузов / А. Д. Хомоненко, В. М. Цыганков, М. Г. Мальцев.- СПб. : КОРОНА, 2004. - 736 с. - 3000 экз. - ISBN 5-5216-491-2.
38.Чипига, А. Ф. Информационная безопасность автоматизированных систем [Текст] : учеб. пособие для студентов вузов, обучающихся по специальностям в обл. информ. безопасности / А. Ф. Чипига. - М. : Гелиос АРМ, 2010. - 336 с.: ил. - 500 экз. - ISBN 978-5-85438-183-3.
39.Шаньгин, В. Ф. Информационная безопасность компьютерных систем и сетей [Текст] : учеб. пособие / В. Ф. Шаньгин. - М. : "ФОРУМ": ИНФРА-М, 2008. - 416 с.: ил. - 300 экз. - ISBN 5-9371-786-2.
40.Ярочкин, В. И. Информационная безопасность [Текст] : учебник для студентов вузов / В. И. Ярочкин. - М. : Академический Проект, 2008. - 544 с.: ил. - 800 экз. - ISBN 5-8473-837-9.
ПРИЛОЖЕНИЕ А
Спецификация таблиц информационной системы учета заявок предприятия
автоматизация криптографический алгоритм программный
База данных информационной системы учета заявок предприятия со встроенными модулями защиты состоит из следующих таблиц:
-Users.DB - таблица, в которой хранятся данные о пользователях информационной системы учета заявок предприятия. Используется для аутентификации и формирования прав и полномочий пользователей.
-Base.DB - основная таблица, в которой хранится вся информация, касающаяся процесса учета заявок.
-Departments.DB - таблица, используемая для справочника "Структурные подразделения предприятия".
-Workers.DB - таблица, используемая для справочника "Сотрудники предприятия".
-Posts.DB - таблица, используемая для справочника "Должности на предприятии".
Спецификация таблиц базы данных информационной системы учета заявок предприятия представлена в таблицах А.1 - А.5.
Таблица А.1 - Спецификация таблицы "Users.DB"
№НаименованиеТипДлинаISNULLUNIQUEКлючПримечание1ID_UserNumber10-+PK Порядковый номер пользователя2NameNumber10--Порядковый номер сотрудника3LoginAlpha50--Идентификатор4ParolAlpha10--Пароль5AccessAlpha10--Уровень доступа
Таблица А.2 - Спецификация таблицы "Base.DB"
№НаименованиеТипДлинаISNULLUNIQUEКлючПримечание1ID_DemandNumber10-+PKПорядковый номер заявки2FormAlpha20--Форма заявки3ApplicantAlpha50--Заявитель4Predostav_DataDate10--Дата подачи заявки5Predostav_NumberNumber10--Номер заявки6Predostav_WorkerNumber10--Порядковый номер сотрудника, принявшего заявку7Postavil_DataDate10--Дата поставки заявки на учет8Postavil_WorkerNumber10--Порядковый номер сотрудника, поставившего заявку на учет9INNAlpha15-+ИНН10Vidacha_DataDate10--Дата выдачи документов11Vidacha_WorkerNumber10--Порядковый номер сотрудника, выдавшего документы12RequisiteAlpha15-+Реквизиты13PoluchilAlpha50--Получатель14StatusAlpha20--Статус заявки
Таблица А.3 - Спецификация таблицы "Departments.DB"
№ п/пНаименованиеТипДлинаISNULLUNIQUEКлючПримечание1ID_DepartmentNumber10-+PKПорядковый номер отдела2DepartmentAlpha70--Название отдела3ChiefAlpha35--Начальник отдела4TelephoneAlpha9--Номер телефон
Таблица А.4 - Спецификация таблицы "Workers.DB"
№ п/пНаименованиеТипДлинаISNULLUNIQUEКлючПримечание1ID_WorkerNumber10-+PKПорядковый номер сотрудника2WorkerAlpha50--ФИО сотрудника3DepartmentNumber10--Порядковый номер отдела4PostNumber10--Порядковый номер должности
Таблица А.5 - Спецификация таблицы "Posts.DB"
НаименованиеТипДлинаISNULLUNIQUEКлючПримечаниеID_PostNumber10-+PK Порядковый номер должностиPostAlpha30--Название должности
ПРИЛОЖЕНИЕ Б
Листинг исходных модулей
GOSTEncryptionGOSTEncryption;=type longint;=type longint;=array[0..31] of byte;=array[0..127] of byte;=array[0..1023] of byte;Table=array[0..127] of byte;=record I1,I2:Item;end;=^TEncKey;=^TExtEncKey;=^TExtTable;Table=^T128Table;=^TImito;=class:TExtEncKey;:DWORD;Gost386;simple(src,dst:pointer;noblocks:DWORD);ExpandKey (src:TPEncKey;dst:TPExtEncKey;:DWORD;:DWORD;:DWORD);:TExtTable;:TEncKey;,I2:Item;Create;destroy;override;EncryptSimple(src,dst:pointer;noblocks:DWORD);DecryptSimple(src,dst:pointer;noblocks:DWORD);GenerateImito(src:pointer;noblocks:DWORD);overload;GenerateImito(src:pointer;noblocks:DWORD;s1,s2:Item);overload;GenerateGamma(dst:pointer;noblocks:DWORD);overload;GenerateGamma(dst:pointer;noblocks:DWORD;var s1,s2:Item);overload;ApplyGamma(src:pointer;gamma:pointer;len:DWORD);SetPassword(pwd:string);Set128Table(p:TP128Table);SetTable(p:TPExtTable);SetKey(p:TPEncKey);;TGOSTEncryption.Create;:integer;Create;:=8;i:=0 to 1023 do[i]:=i mod 255;;TGOSTEncryption.destroy;Destroy;;TGOSTEncryption.Gost386;
@iloop: push EAXEAX,[ESI]ESI,4EAX,8ebx,256EAX,8ebx,256EAX,8ebx,256ebx,3*256EAX,3EAX,EDXEDX@iloop;vesi,vedi,veax,vebx,vecx,vedx:DWORD;PushAll;vesi,esivedi,ediveax,eaxvebx,ebxvecx,ecxvedx,edx;PopAll;esi,vesiedi,vedieax,veaxebx,vebxecx,vecxedx,vedx;TGOSTEncryption.GenerateGamma(dst:pointer;noblocks:DWORD);s1,s2:Item;:=0;s2:=0;(dst,noblocks,s1,s2);;TGOSTEncryption.GenerateGamma(dst:pointer;noblocks:DWORD;var s1,s2:Item);=$01010101;=$01010104;:TPExtEncKey;:TPExtTable;:DWORD;:pointer;:=@ExtKey;:=@ExtChTab;:=noblocks;:=dst;(@Key,k,8,4,KeyMask);PushAlll,0@exEBX,cedi,s2
@circle: mov esi,s1EAX,[esi]EDX,[edi]EAX,C1EDX,C2EDX,0[esi],EAX[edi],EDXESI,kECX,32Gost386esi,cur[ESI],EDX[ESI+4],EAXcur,8l@circle
@ex: call PopAll;;TGOSTEncryption.ApplyGamma(src:pointer;gamma:pointer;len:DWORD);PushAllesi,srcedi,gammaecx,lenecx,0@ex
@l1: mov al,[edi][esi],alesiedi@l1
@ex: call PopAll;TGOSTEncryption.GenerateImito(src:pointer;noblocks:DWORD);(src,noblocks,0,0);;TGOSTEncryption.GenerateImito(src:pointer;noblocks:DWORD;s1,s2:Item);ExtMask:DWORD=$2;:DWORD;:TPExtTable;:TPExtEncKey;,pI2:^DWORD;(@Key,@ExtKey,8,2,ExtMask);:=noblocks;:=@ExtChTab;pk:=@ExtKey;:=@I1;pI2:=@I2;PushAllEAX,s1EDX,s2EBX,ptEDI,srcl,0@ex
@circle: xor EAX,[EDI]EDX,[EDI+4]ECX,16ESI,pkGost386EDI,8l@circle
@ex: mov esi,pI1[esi],eaxesi,pI2[esi],edxPopAll;;TGOSTEncryption.ExpandKey (src:TPEncKey;dst:TPExtEncKey;KeyLength:DWORD;:DWORD;RepeatMask:DWORD);PushAllESI,srcEDI,dstEBX,KeyLengthEBX,2ebx,esiebx,4EAX,EAX
@iloop: cmp EAX,KeyRepeat@exECX,KeyLengthRepeatMask,AX@RevESI,srcmovsd@Incr
@Rev: mov ESI,EBX
@rl: movsdESI,8@rl
@Incr: inc AX@iloop
@ex: call PopAll;TGOSTEncryption.simple(src,dst:pointer;noblocks:DWORD);l:DWORD;:TPExtTable;:TPExtEncKey;:=noblocks;:=@ExtChTab;:=@ExtKey;PushAllebx,ptesi,srcedi,dst
@circle: mov EAX,[esi]EDX,[esi+4]ecx,32esiesi,pkGost386esi[edi+4],EAX[edi],EDXedi,8esi,8l@circlePopAll;;TGOSTEncryption.EncryptSimple(src,dst:pointer;noblocks:DWORD);(@Key,@ExtKey,8,4,KeyMask);(src,dst,noblocks);;TGOSTEncryption.DecryptSimple(src,dst:pointer;noblocks:DWORD);InversedMask:DWORD;:DWORD;:integer;:=0;:=not KeyMask;i:=4 downto 1 do:=InversedMask shl 1;:=InversedMask or NotKeyMask and 1;:=NotKeyMask shr 1;;(@Key,@ExtKey,8,4,InversedMask);(src,dst,noblocks);;TGOSTEncryption.SetPassword(pwd:string);pt:array [0..1023] of byte;,ns2,ns3,ns4:array of byte;:integer;,c1:integer;:integer;,l2:integer;:byte;length(pwd)Length(pwd) then begin c:=1