Криптография. Сравнительный анализ алгоритмов симметричного шифрования

Автор работы: Пользователь скрыл имя, 13 Ноября 2013 в 15:08, контрольная работа

Краткое описание

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

Прикрепленные файлы: 1 файл

Анализ алгоритмов симметричного шифрования.doc

— 366.50 Кб (Скачать документ)

Программа будет  шифровать и дешифровать только русский текст, оставляя неизменным все остальное.

 

Рисунок 2.1 Экранная форма - Шифрование метом подстановки

 

Листинг алгоритма  шифрования методом подстановки:

procedure TMain.Shifrovat1Click(Sender: TObject);, j, q: integer;, str2: string;: array [1..256, 1..2] of char;[1,1]:='1'; mas[1,2]:='я';[2,1]:='2'; mas[2,2]:='ч';[3,1]:='3'; mas[3,2]:='с';[4,1]:='4'; mas[4,2]:='м';[5,1]:='5'; mas[5,2]:='и';[6,1]:='6'; mas[6,2]:='т';[7,1]:='7'; mas[7,2]:='ь';[8,1]:='8'; mas[8,2]:='б';[9,1]:='9'; mas[9,2]:='ю';[10,1]:='0'; mas[10,2]:='.';[11,1]:='-'; mas[11,2]:='Я';[12,1]:='='; mas[12,2]:='Ч';[13,1]:='!'; mas[13,2]:='С';[14,1]:='"'; mas[14,2]:='М';[15,1]:='№'; mas[15,2]:='И';[16,1]:=';'; mas[16,2]:='Т';[17,1]:='%'; mas[17,2]:='Ь';[18,1]:=':'; mas[18,2]:='Б';[19,1]:='?'; mas[19,2]:='Ю';[20,1]:='*'; mas[20,2]:='.';[21,1]:='('; mas[21,2]:='Ф';[22,1]:=')'; mas[22,2]:='Ы';[23,1]:='_'; mas[23,2]:='В';[24,1]:='+'; mas[24,2]:='А';[25,1]:='Й'; mas[25,2]:='П';[26,1]:='Ц'; mas[26,2]:='Р';[27,1]:='У'; mas[27,2]:='О';[28,1]:='К'; mas[28,2]:='Л';[29,1]:='Е'; mas[29,2]:='Д';[30,1]:='Н'; mas[30,2]:='Ж';[31,1]:='Г'; mas[31,2]:='Э';[32,1]:='Ш'; mas[32,2]:='\';[33,1]:='Щ'; mas[33,2]:='д';[34,1]:='З'; mas[34,2]:='э';[35,1]:='Х'; mas[35,2]:='ж';[36,1]:='Ъ'; mas[36,2]:='л';[37,1]:='Ф'; mas[37,2]:='о';[38,1]:='Ы'; mas[38,2]:='р';[39,1]:='В'; mas[39,2]:='п';[40,1]:='А'; mas[40,2]:='а';[41,1]:='П'; mas[41,2]:='в';[42,1]:='Р'; mas[42,2]:='ы';[43,1]:='О'; mas[43,2]:='ф';[44,1]:='Л'; mas[44,2]:='й';[45,1]:='Д'; mas[45,2]:='ц';[46,1]:='Ж'; mas[46,2]:='у';[47,1]:='Э'; mas[47,2]:='к';[48,1]:='\'; mas[48,2]:='е';[49,1]:='Я'; mas[49,2]:='н';[50,1]:='Ч'; mas[50,2]:='г';[51,1]:='С'; mas[51,2]:='ш';[52,1]:='М'; mas[52,2]:='щ';[53,1]:='И'; mas[53,2]:='з';[54,1]:='Т'; mas[54,2]:='х';[55,1]:='Ь'; mas[55,2]:='ъ';[56,1]:='Б'; mas[56,2]:='Ъ';[57,1]:='Ю'; mas[57,2]:='Х';[58,1]:='.'; mas[58,2]:='З';[59,1]:='й'; mas[59,2]:='Щ';[60,1]:='ц'; mas[60,2]:='Ш';[61,1]:='у'; mas[61,2]:='Г';[62,1]:='к'; mas[62,2]:='Н';[63,1]:='е'; mas[63,2]:='Е';[64,1]:='н'; mas[64,2]:='К';[65,1]:='г'; mas[65,2]:='У';[66,1]:='ш'; mas[66,2]:='Ц';[67,1]:='щ'; mas[67,2]:='Й';[68,1]:='з'; mas[68,2]:='1';[69,1]:='х'; mas[69,2]:='2';[70,1]:='ъ'; mas[70,2]:='3';[71,1]:='ф'; mas[71,2]:='4';[72,1]:='ы'; mas[72,2]:='5';[73,1]:='в'; mas[73,2]:='6';[74,1]:='а'; mas[74,2]:='7';[75,1]:='п'; mas[75,2]:='8';[76,1]:='р'; mas[76,2]:='9';[77,1]:='о'; mas[77,2]:='0';[78,1]:='л'; mas[78,2]:='-';[79,1]:='д'; mas[79,2]:='=';[80,1]:='ж'; mas[80,2]:='!';[81,1]:='э'; mas[81,2]:='"';[82,1]:='\'; mas[82,2]:='№';[83,1]:='я'; mas[83,2]:=';';[84,1]:='ч'; mas[84,2]:='%';[85,1]:='с'; mas[85,2]:=':';[86,1]:='м'; mas[86,2]:='?';[87,1]:='и'; mas[87,2]:='*';[88,1]:='т'; mas[88,2]:='(';[89,1]:='ь'; mas[89,2]:=')';[90,1]:='б'; mas[90,2]:='_';[91,1]:='ю'; mas[91,2]:='+';[92,1]:='.'; mas[92,2]:=',';[93,1]:=','; mas[93,2]:='ё';[94,1]:='ё'; mas[94,2]:=']';[95,1]:=' '; mas[95,2]:='|';.Clear();i:=0 to text1.Lines.Count-1 do:='';:= Text1.Lines[i];j:=1 to length(text1.Lines[i]) doq:=1 to 95 dostr1[j]=mas[q,1] then:=str2 + mas[q,2];;;.Lines.Add(str2);

end;;

 

2.2.2 Метод  перестановки

При шифровании простой перестановкой ключевое слово с неповторяющимися символами  или цифровой ключ. Число колонок  в таблице задаётся количеством  символов в ключе, а число строк может быть фиксировано или может задаваться длиной сообщения. Шифруемый текст записывается последовательными строками под символами ключа. Для заполнения пустых клеток (если объём текста меньше ёмкости таблицы) можно использовать любые символы. Затем текст выписывается колонками в той последовательности, в которой располагаются в алфавите буквы ключа или в порядке следования цифр, если ключ цифровой.

 

Рисунок 2.2 Экранная форма - Шифрование метом перестановки

 

Листинг алгоритма  шифрования методом перестановки:

 

procedure TMain.Button1Click(Sender: TObject);: array [1..20] of integer;, str2 : string;, j, kol, x, q: integer;:= length(Kluch2.Text);i := 1 to kol do[i] := StrToInt(Copy(Kluch2.Text, i, 1));.Clear();i := 0 to Text2.Lines.Count - 1 do:='';:= Text2.Lines[i];:=length(str1) mod kol;x>0 thenj:=1 to kol-x do:=str1+' ';j:=1 to (length(str1) div kol) doq:=1 to kol do:= str2+ copy(str1,k[q]+(kol*(j-1)),1);.Lines.Add(str2);;

end;

 

2.3 Шифрование  с открытым ключом

 

Алгоритм RSA - (буквенная аббревиатура от фамилий Rivest, Shamir и Adleman) - криптографический алгоритм с открытым ключом.стал первым алгоритмом такого типа, пригодным и для шифрования, и для цифровой подписи. Алгоритм используется в большом числе криптографических приложений.

Листинг алгоритма  изложен в приложении.

 

 

 

Рисунок 2.3. Экранная форма - шифрование алгоритмом RSA

 

2.4 Постановка  и верификация ЭЦП

 

Электро́нная цифровая подпись (ЭП) - реквизит электронного документа, позволяющий установить отсутствие искажения информации в электронном документе с момента формирования ЭП и проверить принадлежность подписи владельцу сертификата ключа ЭП. Значение реквизита получается в результате криптографического преобразования информации с использованием закрытого ключа ЭП.

 

Рисунок 2.4. Экранная форма - постановка ЭЦП

 

Листинг алгоритма  постановки ЭЦП:

 

procedure TMain.Button6Click(Sender: TObject);: string;, p, q, tmp, i,crc, e : longword;:=edit4.text;:=Length(S);:=ord(s[1]);i:=2 to N do:=CRC xor ord(s[i]);;:=Random(100);:=Random(100);not p_number(p) do dec(p);not p_number(q) do dec(q);.Text:=IntToStr(p);.text:=IntToStr(q);:= p* q;:=(p-1)*(q-1);i:=2 to tmp-1 doHOD(tmp,i)=1 then break;:=i;i:=1 to n do(i*e) mod ((p-1)*(q-1))=1 then;.Text:=IntToStr(i);.Text :='';:= Encrypt(IntToStr(crc), e, n);i := 0 to High(FMes) do.Text := edit5.Text + IntToStr(FMes[i]);

end;

 

2.5 Алгоритм  подсчета СРС

 

Рисунок 2.5. Экранная форма - Алгоритм подсчета СРС

 

Листинг алгоритма подсчета СРС:

 

procedure TMain.Button5Click(Sender: TObject);,n , i: integer;: string;:=edtText.text;:=Length(S);:=ord(s[1]);i:=2 to N do:=CRC xor ord(s[i]);.Text := IntToStr(CRC);;

 

Заключение

 

В практической части необходимо было путем сравнительного анализа выявить достоинства  и недостатки симметрических методов  шифрования с закрытым ключом.

После проведенного анализа было выявлено, что все  методы симметрических методов шифрования с закрытым ключом недостаточно стойкие  к расшифровывании. И так, шифрованием  методом простой подставки совершенно не эффективные, так как его можно расшифровать после несложного анализа. Алгоритм одиночной перестановки гораздо надежнее подставки, но если ключ используется несколько раз, то его можно проанализировать и взломать. Из трех проанализированных методов, алгоритм методом гаммирования является самым эффективным.

Но у всех методов есть общий недостаток отправитель и  получатель должны некоторым тайным образом получить копии секретного ключа и сохранять их в тайне.

В практической части была поставлена задача разработки приложения, в котором реализовать идентификацию пользователя по серийному, алгоритмы шифрования с закрытым и открытым ключом, постановку ЭЦП.

Приложение было разработано  с помощью среды программирования Delphi 7, алгоритмы были проверены и отлажены.

 

 

 

Список использованной литературы

 

.Защита информации в  вычислительных системах./ Сборник. - М.: Знание,1982.

.Хофман Л. Дж. Современные  методы защиты информации. - М.: Советское  радио, 1980.

.Дружинин Г.В. Сергеева  И.В. Качество информации. - М.: Радио  и связь, 1990.

 

 

 

Приложение

 

Листинг алгоритма RSA

//Значение бита в двойном  слове (32бита)

function Bit(Value, n: Integer): Boolean;eax, edxaleax, 0FFh;p_number(X: LongInt): boolean;i: LongInt;x>1 then:=false;i:=2 to trunc(sqrt(x)) dox mod i=0 then Exit;:=true;:=false;;HOD(a, b: int64): int64;r: int64;((a=0)or(b=0)) then:=abs(a+b);;;:=a-b*(a div b);r<>0 do begin:=b;:=r;:=a-b*(a div b);;:=b;;FastPower(a, b, n: integer): integer;i: integer;: extended;:= a;I := Trunc(log2(b)) - 1 downto 0 doBit(b, i) then ai := Round(sqr(ai) * a) mod n else ai := Round(sqr(ai)) mod n;:= Round(ai);;Encrypt(s: string; e, n: integer): TIncodeMes;I: Integer;(result, length(s));I := 0 to Length(s) - 1 dos[i+1]<>'0' then[i] := FastPower(ord(s[i + 1]), e, n);;Decrypt(s: array of integer; e, n: integer): string;i: Integer;(Result, Length(s));I := 0 to Length(s) - 1 dos[i+1]<>0 then[i + 1] := chr(FastPower(s[i], e, n));TMain.Button3Click(Sender: TObject);, p, q, tmp, i,e : longword;;:=Random(100);:=Random(100);not p_number(p) do dec(p);not p_number(q) do dec(q);.Text:=IntToStr(p);.text:=IntToStr(q);:= p* q;:=(p-1)*(q-1);i:=2 to tmp-1 doHOD(tmp,i)=1 then break; e:=i;.Text:=IntToStr(i);i:=1 to n do(i*e) mod ((p-1)*(q-1))=1 then;.Text:=IntToStr(i);.Clear;:= Encrypt(Memo1.Lines.Text, e, n);i := 0 to High(FMes) do.Lines.Append(IntToStr(FMes[i])); end;


Информация о работе Криптография. Сравнительный анализ алгоритмов симметричного шифрования