скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыКурсовая работа: Програмна реалізація криптографічного алгоритму RC5

i, j : Integer;

K1, K2 : LongWord;

begin

// Розгортання ключа до довжини 64 символи

TempKey := Key;

i := 1;

while ((Length(TempKey) mod KeySize) <> 0) do

begin

TempKey := TempKey + TempKey[i];

Inc(i);

end;

// Зараз скоротіть ключ знизу до одного KeySize блоку об'єднуючи байти

i := 1;

j := 0;

while (i < Length(TempKey)) do

begin

Move((KeyPtr+j)^, K1, 4);

Move(TempKey[i], K2, 4);

K1 := ROL(K1, K2) xor K2;

Move(K1, (KeyPtr+j)^, 4);

j := (j + 4) mod KeySize;

Inc(i, 4);

end;

end;

////////////////////////////////////////////////////////////////////////////////

procedure Initialize(AKey: string);

begin

Key := AKey;

GetMem(KeyPtr, KeySize);

FillChar(KeyPtr^, KeySize, #0);

InvolveKey;

end;

////////////////////////////////////////////////////////////////////////////////

{$R-,Q-}

procedure CalculateSubKeys;

var

i, j, k : Integer;

L : array[0..15] of LongWord;

A, B : LongWord;

begin

// Copy the key into L

Move(KeyPtr^, L, KeySize);

// Зараз ініціалізуйте S

S[0] := P32;

for i := 1 to KeyLength-1 do

S[i] := S[i-1] + Q32;

// Зараз видирається таблиця S з ключем

i := 0;

j := 0;

A := 0;

B := 0;

for k := 1 to 3*KeyLength do

begin

A := ROL((S[i] + A + B), 3);

S[i] := A;

B := ROL((L[j] + A + B), (A + B));

L[j] := B;

i := (i + 1) mod KeyLength;

j := (j + 1) mod 16;

end;

end;

////////////////////////////////////////////////////////////////////////////////

function EncipherBlock(var Block): Boolean;

var

RC5Block : TRC5Block absolute Block;

i : Integer;

begin

Inc(RC5Block[1], S[0]);

Inc(RC5Block[2], S[1]);

for i := 1 to Rounds do

begin

RC5Block[1] := ROL((RC5Block[1] xor RC5Block[2]), RC5Block[2]) + S[2*i];

RC5Block[2] := ROL((RC5Block[2] xor RC5Block[1]), RC5Block[1]) + S[2*i+1];

end;

Result := TRUE;

end;

////////////////////////////////////////////////////////////////////////////////

function DecipherBlock(var Block): Boolean;

var

RC5Block : TRC5Block absolute Block;

i : Integer;

begin

for i := Rounds downto 1 do

begin

RC5Block[2] := ROR((RC5Block[2]-S[2*i+1]), RC5Block[1]) xor RC5Block[1];

RC5Block[1] := ROR((RC5Block[1]-S[2*i]), RC5Block[2]) xor RC5Block[2];

end;

Dec(RC5Block[2], S[1]);

Dec(RC5Block[1], S[0]);

Result := TRUE;

end;

////////////////////////////////////////////////////////////////////////////////

// Реалізація головних функції

function EncryptCopy(DestStream, SourseStream : TStream; Count: Int64;

Key : string): Boolean;

var

Buffer : TRC5Block;

PrCount : Int64;

AddCount : Byte;

begin

Result := True;

try

if Key = '' then

begin

DestStream.CopyFrom(SourseStream, Count);

Exit;

end;

Initialize(Key);

CalculateSubKeys;

PrCount := 0;

while Count - PrCount >= 8 do

begin

SourseStream.Read(Buffer, BlockSize);

EncipherBlock(Buffer);

DestStream.Write(Buffer, BlockSize);

Inc(PrCount, 8);

end;

AddCount := Count - PrCount;

if Count - PrCount <> 0 then

begin

SourseStream.Read(Buffer, AddCount);

DestStream.Write(Buffer, AddCount);

end;

except

Result := False;

end;

end;

////////////////////////////////////////////////////////////////////////////////

function DecryptCopy(DestStream, SourseStream : TStream; Count: Int64;

Key : string): Boolean;

var

Buffer : TRC5Block;

PrCount : Int64;

AddCount : Byte;

begin

Result := True;

try

if Key = '' then

begin

DestStream.CopyFrom(SourseStream, Count);

Exit;

end;

Initialize(Key);

CalculateSubKeys;

PrCount := 0;

while Count - PrCount >= 8 do

begin

SourseStream.Read(Buffer, BlockSize);

DecipherBlock(Buffer);

DestStream.Write(Buffer, BlockSize);

Inc(PrCount, 8);

end;

AddCount := Count - PrCount;

if Count - PrCount <> 0 then

begin

SourseStream.Read(Buffer, AddCount);

DestStream.Write(Buffer, AddCount);

end;

except

Result := False;

end;

end;

////////////////////////////////////////////////////////////////////////////////

function EncryptStream(DataStream: TStream; Count: Int64; Key: string): Boolean;

var

Buffer : TRC5Block;

PrCount : Int64;

begin

Result := True;

try

if Key = '' then

begin

DataStream.Seek(Count, soFromCurrent);

Exit;

end;

Initialize(Key);

CalculateSubKeys;

PrCount := 0;

while Count - PrCount >= 8 do

begin

DataStream.Read(Buffer, BlockSize);

EncipherBlock(Buffer);

DataStream.Seek(-BlockSize, soFromCurrent);

DataStream.Write(Buffer, BlockSize);

Inc(PrCount, 8);

end;

except

Result := False;

end;

end;

////////////////////////////////////////////////////////////////////////////////

function DecryptStream(DataStream: TStream; Count: Int64; Key: string): Boolean;

var

Buffer : TRC5Block;

PrCount : Int64;

begin

Result := True;

try

if Key = '' then

begin

DataStream.Seek(Count, soFromCurrent);

Exit;

end;

Initialize(Key);

CalculateSubKeys;

PrCount := 0;

while Count - PrCount >= 8 do

begin

DataStream.Read(Buffer, BlockSize);

DecipherBlock(Buffer);

DataStream.Seek(-BlockSize, soFromCurrent);

DataStream.Write(Buffer, BlockSize);

Inc(PrCount, 8);

end;

except

Result := False;

end;

end;

// Завершення головних функції ...

////////////////////////////////////////////////////////////////////////////////

{$R+,Q+}

procedure TForm1.Button1Click(Sender: TObject);

var

SourseStream : TFileStream;

begin

SourseStream := TFileStream.Create(Edit1.Text, fmOpenReadWrite);

EncryptStream(SourseStream, SourseStream.Size, Edit2.Text);

SourseStream.Free;

end;

procedure TForm1.Button2Click(Sender: TObject);

var

SourseStream : TFileStream;

begin

SourseStream := TFileStream.Create(Edit1.Text, fmOpenReadWrite);

DecryptStream(SourseStream, SourseStream.Size, Edit2.Text);

SourseStream.Free;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Close

end;

end.

7. Інструкція зі користування програмою

Нижченаведений інтерфейс програми-шифрувальника, що створений засобами Delphi організовує шифрування / дешифрування файлу (рис.6) з використанням функцій EncryptStream / DecryptStream ():

Рис.6. Вікно програми-шифрувальника

До поля „Файл-Джерело вводиться шлях до файлу з розширенням *.txt чи *.doc, що необхідно зашифрувати, наприклад, C:\instLog.txt, а до поля „Ключ” вводиться ключ шифрування, наприклад, 135 (рис.7).


Рис.7. Введення вхідних даних до полів вікна програми шифрувальника

При натисканні кнопки Зашифрувати”, здійснюється шифрування змісту файла instLog.txt (рис.8).

Рис.8. Шифрування змісту файла instLog.txt

Для розшифровування файлу також до поля „Файл-Джерело” вводиться шлях до зашифрованого файлу з розширенням *.txt, наприклад, C:\instLog.txt, а до поля „Ключ” вводиться тій же ключ шифрування, 135 та натискується кнопка „Розшифрувати”, файл ста розшифрованим, яким й був (рис.9).

Рис.9. Розшифрований файл instLog.txt.

Для виходу з програми треба натиснути кнопку „Вихід”


Висновки та рекомендації

В даній курсовій роботі була розроблена програмна реалізація криптографічного алгоритму RC5. Була написана програма-шифрувальник на підставі криптографічного алгоритму RC5 у середовищі Delphi.

Але завжди Проблеми забезпечення збереження значно ускладнюються при організації машинної обробки нформації в умовах колективного користування, де зосереджена, обробляється і накопичується нформація різного призначення і приналежності.

Не існу яких-небудь причин, по яких в системах машинної обробки даних, що базуються на сучасних засобах обчислювальної техніки, неможливо було б забезпечити великий ступінь захисту і збереження даних, чим в звичайних системах збору, накопичення обробки інформації. Система повинна захищати своїх користувачів один від одного як від випадкових, так і цілеспрямованих погроз порушення збереженню нформації. Крім того, прийняті механізми забезпечення збереження повинн надавати користувачеві засобу для захисту його програм і даних також і від нього самого.

Вдосконалення технолог обробки інформації привело до створення інформаційних баз даних і знань, що містять великі обсяги різноманітної інформації, що теж пред'являє додатков вимоги до забезпечення збереження і захисту інформації.

У системах колективного користування, що мають розвинену мережу терміналів, основна складність забезпечення безпеки полягає в тому, що потенційний порушник є (може бути) повноправним абонентом системи.

Тому під терміном "захист" мається на увазі спосіб забезпечення безпеки в СОД. Захист нформації зазвичай зводиться до вибирання засобів контролю за виконанням програм, що мають доступ до інформації (файлів), що зберігається в системі обробки даних (СОД).


Список використаної літератури

1.         Наказ ДСТСЗІ СБ України від 29 грудня 1999 року 62 „Про затвердження Положення про державну експертизу в сфері технічного захисту інформації”.

2.         НД ТЗІ 2.5-005-99 Класифікація автоматизованих систем і стандартні функціональні профілі захищеності оброблюваної інформац від несанкціонованого доступу.

3.         НД ТЗІ 2.5-004-99 Критерії оцінки захищеност нформації в комп’ютерних системах від несанкціонованого доступу.

4.         Наказ ДСТСЗІ СБ України від 25.12.2000 року № 62 про введення в дію нормативного документу "Положення про державну експертизу у сфері криптографічного захисту інформації".

5.         Державна експертиза з технічного захисту інформац операційної системи Windows XP Professional SP2. Перелік свідоцтв.

6.         ГОСТ Р ИСО/МЭК 15408-1-02 Информационная технология. Методы и средства обеспечения безопасности. Критерии оценки безопасности информационных технологий. - Госстандарт России. - Москва – 2002.

7.         Операционная система Microsoft Windows Professional Service Pack 1A. Задание по безопасности MS.Win_XP_SP1A.ЗБ. Версия 1.0.

8.         Нормативний документ Гостехкомісії Росії. Безопасность информационных технологий. Операционные системы. Клиентские операционные системы. Профиль защищенности. Версия 1.0, 2003.

9.         [CTCPEC] Canadian Trusted Computer Product Evaluation Criteria, Version 3.0, Canadian System Security Centre, Communications Security Establishment, Government of Canada, January 1993.

10.      [FC] Federal Criteria for Information Technology Security, Draft Version 1.0, (Volumes I and II), jointly published by the National Institute of Standards and Technology and the National Security Agency, US Government, January 1993.

11.      [ITSEC] Information Technology Security Evaluation Criteria, Version 1.2, Office for Official Publications of the European Communities, June 1991

12.      НД ТЗІ 2.5-008-2002 Вимоги із захисту конфіденційної інформації від несанкціонованого доступу під час оброблення в автоматизованих системах класу 2.

13.      Microsoft® Windows® Internals, Fourth Edition: Microsoft Windows Server™ 2003, Windows XP, and Windows 2000 / David A. Solomon, Mark Russinovich. Microsoft Press A Division of Microsoft Corporation One Microsoft Way Redmond, Washington, - 2004.

14.      Microsoft Trainig and Certification. 2272B: Implemeting and Supporting Microsoft Windows XP Professional. Microsoft 2001.

15.      Microsoft Trainig and Certification. 2823A: Implemeting and Administering Security in a Microsoft Windows Server 2003 Network. Microsoft 2004.

16.      НД ТЗІ 1.1-003-99 Термінологія в галузі захисту інформації в комп’ютерних системах від несанкціонованого доступу.

17.      НД ТЗІ 1.1-002-99 Загальні положення щодо захисту інформації в комп'ютерних системах від несанкціонованого доступу.

18.      Гайкович В, Першин А. Безопасность электронных банковских систем. - М.,1999.

19.      Груздев С. "16 вариантов русской защиты" /КомпьютерПресс №392

20.      Карасик И. Программные и аппаратные средства защиты информации для персональных компьютеров / /КомпьютерПресс №3, 1995

21.      Мафтик С. Механизмы защиты в сетях ЭВМ. /пер. с англ. М.: МИР, 1993.

1.         Петров В.А., Пискарев С.А., Шеин А.В. Информационная безопасность. Защита информации от несанкционированного доступа в автоматизированных системах. - М., 1998.

2.         Спесивцев А.В. и др. Защита информации в персональных ЭВМ. - М.: Радио и связь, 1993.

3.         Грибунин В.Г. Политика безопасности: разработка и реазизация // «Информационная безопасность», 2005, №1.

4.         Домарев В.В. Безопасность информационных технологий. Системный подход. - К.: ООО ТИД «Диасофт», 2004. - 992 с.

5.         Ярочкин В.И. Информационная безопасность: Учебник для студентов Вузов. М.: Академический Проект; Фонд "Мир", 2003, 640 с.


Страницы: 1, 2


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.