Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3189

.pdf
Скачиваний:
6
Добавлен:
15.11.2022
Размер:
8.9 Mб
Скачать

Цель работы - освоить реализацию простейшего перестано­ вочного шифра.

Сведения из теории

Шифры перестановки (permutation) или транспозиции изменяют только порядок следования символов или других элементов исходно­ го текста. Классическим примером такого шифра является система, использующая карточку с отверстиями - решетку Кардано, которая при наложении на лист бумаги оставляет открытыми лишь некото­ рые его части. При зашифровке буквы сообщения вписываются в эти отверстия. При расшифровке сообщение вписывается в диаграмму нужных размеров, затем накладывается решетка, после чего на виду оказываются только буквы открытого текста.

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

Рассмотрим усложненную перестановку по таблице. Пример таблицы для реализации этого метода шифрования показан на рис. 1.

Таблица представляет собой матрицу с размерностью, в которую по­ строчно вписывается искомое сообщение. При считывании инфор­ мации по столбцам в соответствии с последовательностью чисел ключа получается шифротекст. Усложнение заключается в том, что некоторые ячейки таблицы не используются. При зашифровании со­ общения

«КОМАНДОВАТЬ ПАРАДОМ БУДУ Я» получим:

«ОЬБНАОДКДМУМВ АУ ОТР ААПДЯ».

При расшифровании буквы шифротекста записываются по столбцам в соответствии с последовательностью чисел ключа, после чего исходный текст считывается по строкам. Для удобства запоми­ нания ключа применяют перестановку столбцов таблицы по ключе­ вому слову или фразе, всем символам которых ставятся в соответст­ вие номера, определяемые порядком соответствующих букв в алфа­ вите. Например, при выборе в качестве ключа слова ИНГОДА после­ довательность использования столбцов будет иметь вид 4 6 2 5 3 1.

 

4

К лю ч

 

 

2

0

3

5

1

К

О

У У У У У

м

А

н

д У 'У 'У 'У

о

в

А

У У У У У

УУУуУУ

т

ь

 

П

А

\УУУУУ

р

УУу У У

А

д

о

м

 

Б

У

\УУУУУ

д

У

' / / / / /

У У У У у

 

я

/ / / / / ,

 

 

Рис. 1. Пример шифрования методом усложненной перестановки по таблице

Работа выполняется с помощью программного модуля C:\Grypto\Grypto.exe// Ctrl+MouseDoun.

Криптографический алгоритм следующий:

1.Создаются 4 матрицы МО, М90, M l80, М270, заполненные нулями.

2.В матрице МО случайным образом помещаются 49 единиц с проверкой несовпадения по элементам.

3.Матрица МО программно поворачивается на 90 градусов с проверкой несовпадения единиц и формируется матрица М90.

4.Полученная матрица М90 аналогично программно поворачи­ вается на 90 градусов, в результате получается матрица M l80.

5.Подобным образом формируется матрица М270.

6.Шифруемое сообщение вводится последовательно согласно единицам по 4 матрицам.

7.По строкам окна формируется зашифрованное сообщение.

8.Расшифровка производится в обратном порядке, начиная с матрицы М270.

9.Секретным ключом являются размер исходной матрицы и ад­

реса клеток с единицами матрицы МО.

Порядок выполнения работы

1.Составить текст открытого сообщения.

2.Сформировать четыре матрицы, участвующие в алгоритме шифрования.

3.Построить зашифрованное сообщение, согласно криптогра­

фическому алгоритму.

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

Контрольные вопросы

1.Чем характеризуются шифры перестановки?

2.Приведите свой вариант перестановочного шифра.

3.Какой шифр, на ваш взгляд, более надежный шифр простой

замены или перестановочный?

Пример оформления отчета по практической работе

Практическая работа № Название практической работы Выполнил: cm. гр. Ф.И.О. Вариант № Цель практической работы

Открытое сообщение

Построенные матрицы МО, М90, M l80, М270

М0=

М90= Ml 80= М270=

Зашифрованный текст

Этапы расшифрования шифртекста

Цель работы - освоить реализацию шифра многоалфавитной замены.

Сведения из теории

Алгоритм был изобретен в 1917 г. сотрудником компании AT&T по фамилии Vemam и называется одноразовым блокнотом (one-time pad). В этом алгоритме ключ представляет собой последо­ вательность битов не менее длинную, чем шифруемое сообщение т. Результат шифрования получается в результате побитового сложения по модулю сообщения и ключа. Дешифровка состоит в побитовом сложении шифрограммы с ключом. Отметим, что данный алгоритм утрачивает свою надежность, если два сообщения оказываются шиф­ рованы одним и тем же ключом. В этом случае путем побитового сложения шифрограмм можно исключить биты ключа, а получив­ шаяся побитовая сумма осмысленных сообщений поддается методам статистического анализа. Ключ должен быть надежным образом пе­ редан адресату, что само по себе не проще, чем передача сообщения. Единственная выгода метода состоит в том, что ключ можно пере­ дать заранее, а сообщение - по открытому каналу и тогда, когда это будет нужно.

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

Система шифрования Вижинера В системе Вижинера элементами ключа могут быть не только

цифры от 0 до 9, но и произвольные символы некоторого алфавита.

При шифровании исходного сообщения его выписывают в стро­ ку, а под ним записывают ключевое слово или фразу. Если ключ ока­ зался короче сообщения, то его циклически повторяют. Все символы используемого алфавита пронумерованы от 0 до М-4, где М - размер алфавита. Преобразование символа открытого текста осуществляется по формуле

Ci=Pj+Ki (mod М),

(1)

где Pj - номер символа открытого текста, Kt- номер расположенного под ним символа ключа, С,-- номер символа шифротекста.

Преобразование символа закрытого текста в символ открытого осуществляется по формуле

Pi=Q - Kj (mod М).

Пример.

Рассмотрим пример шифрования сообщения ПРИЛЕТАЮ ДНЕМ по методу Вижинера с помощью ключевого слова СИСТЕМА

Сообщение

П

Р

И

Л

Е

т

А

Ю

д

н

Е

м

Ключ

С

И

С

Т

Е

м

А

С

и

с

т

Е

Шифротекст

А

Ш

В

э

К

ю

А

п

м

ю

ч

С

В данном случае буквы русского алфавита пронумерованы от О до 31: А-0, Б—1, В -2,..., Я-31.

Система шифрования Вернама является частным случаем сис­ темы шифрования Вижинера при значении модуля М=2.

При шифровании открытого текста, каждый его символ пред­ ставляется в двоичном виде. Ключ шифрования также представляет­ ся в двоичной форме. Шифрование исходного текста осуществляется путем сложения по модулю 2 двоичных символов открытого текста с

двоичными символами ключа согласно (2),

 

У=РШ.

(2)

Дешифрование состоит в сложении по модулю 2 символов шифротекста с ключом.

Общая схема системы шифрования Вернама представлена на рисунке.

 

(Т\

Y = Х ® К

^

(\V

х = х ® к ч

Исходный

 

Шифротекст

 

-----

 

 

\

Исходный

текст

т к

 

 

к

текст

 

 

 

 

Рис. Схема системы шифрования Вернама

Модификация системы шифрования Вернама используется для криптографической защиты информации в архиваторе ARJ. Формула

(2) в этом случае преобразуется в следующую:

 

/^©(X+VALUE),

(3)

где VALUE - фиксированное значение.

 

Пример.

 

Зашифруем с помощью системы Вернама открытый текст «БЛАНК» с помощью ключа «ОХ».

Преобразуем открытый текст «БЛАНК» в ASCII коды: Б=193, Л=203, А=192, Н=205, К=202. В двоичном виде последовательность 193, 203, 192, 205, 202 представится в виде 11000001 11001011 11000000 11001101 11001010.

Преобразуем ключ «ОХ» в ASCII коды: 0=206, Х=213. В дво­ ичном виде последовательность 206, 213 представится в виде 11001110 11010101.

Подпишем циклически ключ под открытым текстом и выполним сложение по модулю 2 соответствующих битов (таблица).

Результат шифрования открытого текста

Открытый

1

1

0

0

0

0

0

1

1

1

0

0

1

0

1

1

1

1

0

0

текст

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ключ

1

1

0

0

1

1

1

0

1

1

0

1

0

1

0

1

1

1

0

0

Закрытый

0

0

0

0

1

1

1

1

0

0

0

1

1

1

1

0

0

0

0

0

текст

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Открытый

0

0

0

0

1

1

0

0

1

1

0

1

1

1

0

0

1

0

1

0

текст

1

1

1

0

1

1

 

1

0

1

 

 

1

1

0

0

1

1

1

0

Ключ

0

0

1

Закрытый

1

1

1

0

0

0

0

1

1

0

0

0

0

0

0

0

0

1

0

0

текст

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Порядок выполнения работы

1.Самостоятельно реализовать алгоритм Виженера.

2.Разработать алгоритм с кодировкой частотного анализа. Замечание по реализации.

Посмотреть действующую программу можно по ссылке

C:\Grypto\Grypto.exe// Ctrl+MouseDoun.

3. Шифруемая строка разбивается на N блоков длиной L симво­

лов.

4.Последний блок при необходимости дополняется пробелами до длины L.

5.Каждому блоку длиной L ставится в соответствие перестано­ вочный блок длиной L (например, 12345/32154).

6. Шифрование и расшифрование производится по блокам в разрезе строк.

Procedure TForml.N5Click(Sender: TObject); Const

Nl:array[1..2,1..5] of ti=(( 1,2,3,4,5),(2,4,3,5,1»; var

j,i,n,nc,Ncl ,nk,Nd,N0:ti; mc:array[1..455] of tc;

Cm:Tc; Ms,Msl:array[1..255] of tc; St,stl:Ts;

begin

Form 1 .Memol .Clear;

Stl :=1прШВох('Вводите строку для шифрования малый регистр'/Вводите',");

Form1 .Memo1 .Lines.Add(St1);

Forml .Memol .Lines.Add("); N:=Length(Stl);

For j:=l to n do Ms[j]:=Stl[j]; nk:= n div 5;

Nd:= n mod 5;

if Nd>0 then inc(nk); ifNd>0 then NO:=5-Nd; n:=n+nO;

Randomize; If Nd>0 then

For i:=l to NO do stl:=stl+Chr(224+random(31)); Forml.Memol.Lines.Add( 'Дополненная строка, кратная 5 сим­

волам');

Form 1 .Memo1 .Lines.Add(stl);

Forml .Memo 1 .Lines.Add("); For i:=l to N do ms[i]:=stl[i]; For i:=l to nk do

For j:=l to 5 do Msl[Nl[2j]+5*(i-l)]:=Msfi+5*(i-l)]; Forml.Memo 1.Lines.Add( 'Зашифрованная строка после пере­

становки');

Form1 .Memo 1 .Lines.Add(Msl); Forml .Memo 1 .Lines.Add("); For i:=l to n do begin Mc[i]:=Msl[i];

Cm:=Mc[i];

Nc:=Ord(Cm);

if cm- ' then mbl[l,i]:=47 else mbl[l,i]:=Nc-200; end;

Forml.Memo 1.Lines.Add('Bывoд строки, представленной по­ байтно’);

Wrr(N,l,Mbl); For i:=l to nk do

For j:=l to 5 do Mb 1 [2,N1[1 j]+5*(i-1 )]:=Mb1 [1,Nl[2j]+5*(i-1)]; St:=";

For i:=l to n-nO do

if mbl[2,i]= 47 then st:=st+'' else St:=St+Chr( mbl[2,i]+200);

Form1.Memo 1.Lines.АёёСРезультат Расшифрования '); Forml .Memol.Lines.Add(St);end;

Контрольные вопросы

1.Чем характеризуются шифры многоалфавитной замены?

2.Являются ли шифры многоалфавитной замены абсолютно надежными по Шеннону?

3.Какой шифр, на ваш взгляд, более надежный: шифр простой замены или многоалфавитной замены? Обоснуйте свой ответ.

Пример оформления отчета по практической работе

Практическая работа № Название практической работы Выполнил: cm. гр. Ф.И.О. Вариант № Цель практической работы

Открытое сообщение

Этапы построения шифртекста

Зашифрованный текст

Этапы расшифрования шифртекста

Алгоритм с кодировкой частотного анализа

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]