Цель работы: определение криптостойкости шифрования по методу «Подстановка символов – перестановка символов»
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% |
2.1 |
2.2 |
2.3 |
2.4 |
3.1 |
3.2 |
3.3 |
3.4 |
3.5 |
3.6 |
Текст 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 одинаковых символов, в двух случаях из трех в криптограмме наблюдались последовательности повторяющихся символов. Кроме того я построил, распределения частот для трех типов текстов. Тип одного из них (с последовательностями повторяющихся символов) возможно распознать по распределению частот, что является плохим признаком. Таким образом, данная комбинация показала среднюю криптостойкость (с поправкой на погрешности проведения экспериментов, среди которых – небольшой размер текстов) и не может применяться для шифрования данных, требующих повышенной защиты.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.