Определение криптостойкости шифрования по методу «Подстановка символов – перестановка символов»

Страницы работы

Содержание работы

Цель работы: определение криптостойкости шифрования по методу «Подстановка символов – перестановка символов»

  1. Результаты опытов по изменению текста и/или ключа на один символ

1.1

1.2

1.3

1.4

1.5

1.6

1.7

1.8

1.9

1.10

1.1 Определение степени изменчивости

D1-2 =  4/12 = 33%

D2-3 =  5/12 = 42%

D3-4 =  0/12 = 0%

D4-5 =  7/12 = 58%

D5-6 =  0/12 = 0%

D6-7 = 1/12 = 8%

D7-8 = 1/12 = 8%

D8-9 = 2/12 = 17%

D9-10 = 3/12 = 25%

  1. Результаты опытов с повторяющимися фрагментами

2.1

2.2

2.3

2.4

  1. Результаты опытов с последовательностями повторяющихся символов

3.1

3.2

3.3

3.4

3.5

3.6

  1. Распределение частот

Текст 1.1

Криптограмма текста 1.1

Текст 2.1

Криптограмма текста 2.1

Текст 3.4

Криптограмма текста 3.4

5.  Листинг программы тестирования

program Myself;

uses

SysUtils;

var

cr1, cr2,ori,e,txt: string;  c: array [0..50] of integer;  i,j,k: integer;

begin

WriteLn('Print input text');  ReadLn (txt);

ori:=txt; e:=txt;  cr1:=txt;

For i:=0 to (length(txt)) do

For j:=0 to (length(txt)) do

For k:=0 to (length(txt)) do if ((j<>i) and (txt[j]= txt[i])) or ((k<>i) and (txt[k]= txt[i])) then Delete(txt,i,1);

e:=txt;

WriteLn('Print key_1 contains of ',length(txt),' characters');

For i:=1 to (length(txt)) do ReadLn(e[i]) ;

For i:=1 to (length(txt)) do For j:=1 to (length(ori)) do If ori[j] =  txt[i] then cr1[j]:=e[i];

WriteLn('Print key_2 contains of ',length(ori),' numbers');

For i:=1 to (length(ori)) do ReadLn(c[i]) ;

WriteLn ('Origin...',ori);

WriteLn ('List.....', txt);

Write   ('Key_1....');  For i:=1 to (length(e)) do Write(e[i]);

Write   ('Code_1...'); For i:=1 to (length(cr1)) do Write(cr1[i]);

Write   ('Key_2....'); For i:=1 to (length(ori)) do write(c[i]);

Write   ('Code_2...'); For i:=1 to (length(ori)) do write(cr1[c[i]]);

Readln;

end.

6.  Описание алгоритма:  Подстановка символов производится с помощью матрицы подстановок Key_1, (в данном случае – одномерной) и списка всех символов текста List. Символ из матрицы, номер которого совпадает с номером символа из списка, подставляется вместо него в криптограмму. Перестановка символов производится с помощью матрицы перестановок Key_2 (также одномерной) номера элемента которой совпадают с номерами элементов криптограммы, а сами элементы являются номерами элементов исходного текста.

.

7.  Вывод: в данной работе я исследовал на криптостойкость алгоритм, заключающийся в последовательной подстановке и перестановке символов. При исследовании степени изменчивости я исследовал варианты изменения одного символа исходного текста, одного элемента подстановочного ключа и перемены местами двух элементов перестановочного ключа. При этом выяснилось, что при изменении символа исходного текста, встречающегося в нем один раз, степень изменчивости не меняется. При наличии в тексте повторяющихся 4-5-буквенных фрагментов, в криптограмме появлялись повторяющиеся 2-буквенные фрагменты. При включении в текст последовательностей из 8-10 одинаковых символов, в двух случаях из трех в криптограмме наблюдались последовательности повторяющихся символов. Кроме того я построил, распределения частот для трех типов текстов. Тип одного из них (с последовательностями повторяющихся символов) возможно распознать по распределению частот, что является плохим признаком. Таким образом, данная комбинация показала среднюю криптостойкость (с поправкой на погрешности проведения экспериментов, среди которых – небольшой размер текстов) и не может применяться для шифрования данных, требующих повышенной защиты.

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
108 Kb
Скачали:
0