Порядок выполнения самостоятельной работы. 1. Выберете текст для шифрования длиной не более 8 символов.
1. Выберете текст для шифрования длиной не более 8 символов.
2. Используйте заданный алфавит для шифровки для первых 4-х
алгоритмов
Таблица 5.3.
А | Б | В | Г | Д | Е | Ж | З | И | Й | К | Л | М | Н | О | П | Р | С | Т |
У | Ф | Х | Ц | Ч | Ш | Щ | Ъ | Ы | Ь | Э | Ю | Я | , | . | ! | ? | ||
3. Зашифруйте текст четырьмя алгоритмами:
- алгоритмом Цезаря, К=4;
- алгоритмом простой перестановки, К=3142;
- алгоритмом простой моноалфавитной замены, а=2, К=4;
- алгоритмом Гамильтона, К1= 40231576; К2= 46201573.
- алгоритмом гаммирования.
4. Зашифруйте осмысленное слово длиной не более 8 символов любым
методом из пяти заданных, отдайте на расшифровку
вместе с ключом (ключами).
5. Возьмите зашифрованный текст, ключ шифрования.
6. Дешифруйте переданный текст, подобрав алгоритм.
Решение.
Алгоритм Цезаря
Л | Ю | Б | Л | Ю | О | Т | Ч | И | З | Н | У | Я | ||
П | . | Е | П | . | ? | Т | Ц | Ы | М | Л | С | Ч | ? | ! |
Алгоритм простой перестановки
Л | Ю | Б | Л | Ю | О | Т | Ч | И | З | Н | У | Я | |||
Б | Л | Л | Ю | О | Ю | Т | З | Ч | Н | И | Я | У |
Алгоритм моноалфавитной замены
Л | Ю | Б | Л | Ю | О | Т | Ч | И | З | Н | У | Я | |||
Р | |||||||||||||||
С | |||||||||||||||
Ъ | Ь | Ж | Ъ | Ь | Д | О | Ф | Х | Ю | Ж | Ю |
Алгоритм Гамильтона
Л | Ю | Б | Л | Ю | О | Т | Ч | И | З | Н | У | Я | |||
Ю | Л | Л | Ю | Т | О | У | Я | З | Ч | И | Н |
Пусть для расшифровки передан текст ЛБАСРЕНТс ключом К=40231576, наличие восьмизначного ключа может говорить об алгоритме шифрования Гамильтона или алгоритме простой перестановки, применяем последний алгоритм, получаем осмысленное слово БРАСЛЕТЫ.
Алгоритм гаммирования
Пример 5.5. Пусть задан текст « ядома» закодировать его и перслать зашифрованным по каналу связи на основе алгоритма гаммирования.
Решение. Сначала построим таблицу, в которой представим буквы числами по системе кодировки ASCII (см. табл. 4.1.) и числа представим затем в двоичной системе счисления, получим:
Таблица 5.4.
27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | ||
я | |||||||||
д | |||||||||
о | |||||||||
м | |||||||||
а |
Теперь обратимся к генератору случайных чисел с алгоритмом:
Линейный конгруэнтный метод
Выберем четыре числа [5]:
m — модуль, m > 0;
a — множитель, 0 £ a < m;
c — приращение, 0 £ с < m;
Х0 — начальное значение, 0 £ Х0 < m.
Последовательность случайных чисел {Хn} можно получить, полагая
Хn+1 = (a Хn + c) mod m, n ³ 0 | (5.6) |
Эта последовательность называется линейной конгруэнтной последовательностью. Например, для m = 10 и Х0 = a = c = 7 получим последовательность
7, 6, 9, 0, 7, 6, 9, 0, …
Здесь отражен факт, что конгруэнтная последовательность всегда образует петли, т.е. обязательно существует цикл, повторяющийся бесконечное число раз. Это свойство является общим для всех последовательностей вида Xn+1 = f(Xn), где f — функция, преобразующая конечное множество само в себя. Повторяющиеся циклы называют периодами. Задача генерации случайных последовательностей состоит в использовании относительно длинного периода, что связано с выбором довольно большого m, так как период не может иметь больше m элементов.
Воспользуемся формулой (5.6) и создадим гамму шифра:
x0=7 ; а =3 ; с =11 ; m = 33, получим ряд чисел:
{7,32, 8, 2, 17, …} оставим из них только 5 и переведем их в двоичную систему счисления, получим:
Таблица 5.5.
27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | ||
Сложим исходный текст, представленный в двоичном виде с гаммой шифра по модулю 2:
Таблица 5.6.
1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | ||||||||||||||||||||||||
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | ||||||||||||||||
Пояснения к таблице 5.6. Первая строка это код входного текста в двоичной системе счисления, вторая строка это гамма шифра в двоичной системе счисления, третья строка это сложение по модулю 2 этих строк, результат зашифрованный текст, который идет по открытому каналу связи, четвертая строка это дешифрованный текст на гамме шифра с известным алгоритмом генерирования случайных чисел ( линейным конгруэнтным методом) с известными х0, a, с, m.
Контрольные вопросы
1. Охарактеризуйте направление «криптография». Что называют криптографическим ключом?
2. Проклассифицируйте традиционные алгоритмы шифрования. Кратко охарактеризуйте эти классы.
3. Охарактеризуйте методы шифрования Цезаря, простую моноалфавитную замену, простую перестановку, перестановки Гамильтона.
Вычисление контрольной суммы сообщения
Цель работы – изучить алгоритм вычисления контрольной суммы сообщения и научиться применять его в задачах.