- •Самарский государственный архитектурно-строительный университет
- •Оглавление
- •Постановка задачи
- •1. Аналитическая часть
- •Простая моноалфавитная замена
- •Метод простой перестановки
- •Алгоритм Гамильтона
- •Шифрование методом гаммирования
- •2. Алгоритмическая часть
- •3. Конструкторская часть
- •Библиографический список
2. Алгоритмическая часть
Выбрать текст для шифрования длиной не более 8 символов.
Использовать заданный алфавит для шифровки для первых 4-х
алгоритмов.
Зашифровать текст алгоритмами:
- алгоритмом Цезаря, К=4;
- алгоритмом простой перестановки, К=3142;
- алгоритмом простой моноалфавитной замены, а=2, К=4;
- алгоритмом Гамильтона, К1= 40231576; К2= 46201573.
- алгоритмом гаммирования.
Зашифровать осмысленное слово длиной не более 8 символов
любым методом из пяти заданных, отдайте на расшифровку
вместе с ключом (ключами).
Взять зашифрованный текст, ключ шифрования.
Дешифровать переданный текст, подобрав алгоритм.
3. Конструкторская часть
Текст для шифрования: Алфавит
Решение.
Алгоритм Цезаря
-
А
Л
Ф
А
В
И
Т
Д
П
Ш
Д
Ж
Ь
Ц
Алгоритм простой перестановки
-
1
2
3
4
1
2
3
4
А
Л
Ф
А
В
И
Т
3
1
4
2
3
1
4
2
Ф
А
Ф
Л
Т
В
И
Алгоритм моноалфавитной замены
-
А
Л
Ф
А
В
И
Т
Р
0
11
20
0
1
8
18
С
4
26
8
4
6
20
4
Д
Ъ
И
Д
Ж
Ф
Д
Алгоритм Гамильтона
-
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
А
Л
Ф
А
В
И
Т
А
Л
Ф
А
В
И
Т
4
0
2
3
1
5
7
6
4
6
2
0
1
5
7
3
В
А
Ф
А
Л
И
Т
В
Т
Ф
А
Л
И
А
Л
В
Ф
А
А
И
Т
А
В
Ф
А
И
Л
Т
Алгоритм гаммирования
Пример. Пусть задан текст «Яучу» закодировать его и переслать зашифрованным по каналу связи на основе алгоритма гаммирования.
Решение. Сначала построим таблицу, в которой представим буквы числами по системе кодировки ASCII (см. табл. 3.1.) и числа представим затем в двоичной системе счисления, получим:
Таблица 3.1.
-
27
26
25
24
23
22
21
20
128
64
32
16
8
4
2
1
Я
159
1
0
0
1
1
1
1
1
у
227
1
1
1
0
0
0
1
1
ч
231
1
1
1
0
0
1
1
1
у
227
1
1
1
0
0
0
1
1
Теперь обратимся к генератору равномерно распределенных случайных чисел линейного конгруэнтного метода:
Линейный конгруэнтный метод
Выберем четыре числа:
m — модуль, m> 0;
a — множитель, 0 a<m;
c— приращение, 0 с <m;
Х0— начальное значение, 0 Х0<m.
Последовательность случайных чисел {Хn} можно получить, полагая
Хn+1 = (a Хn + c) mod m, n 0 |
(3.1) |
Эта последовательность называется линейной конгруэнтной последовательностью. Например, для m = 10 и Х0 = a = c = 7 получим последовательность
7, 6, 9, 0, 7, 6, 9, 0, …
Здесь отражен факт, что конгруэнтная последовательность всегда образует петли, т.е. обязательно существует цикл, повторяющийся бесконечное число раз. Это свойство является общим для всех последовательностей вида Xn+1 = f(Xn), где f — функция, преобразующая конечное множество само в себя. Повторяющиеся циклы называют периодами. Задача генерации случайных последовательностей состоит в использовании относительно длинного периода, что связано с выбором довольно большого m, так как период не может иметь больше m элементов.
Воспользуемся формулой (3.1) и создадим гамму шифра:
x0=0 ; а =5 ; с =7 ; m = 128,
получим ряд чисел: {7,42, 89, 68, 91,…} оставим из них только 4 и переведем их в двоичную систему счисления, получим:
Таблица 3.2.
-
Гамма шифра
27
26
25
24
23
22
21
20
128
64
32
16
8
4
2
1
7
0
0
0
0
0
1
1
1
42
0
0
1
0
1
0
1
0
89
0
1
0
1
1
0
0
1
68
0
1
0
0
0
1
0
0
Сложим исходный текст, представленный в двоичном виде с гаммой шифра по модулю 2, будем иметь:
Таблица 3.3
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
|||
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
|||
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
|||
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
|||
Я |
у |
ч |
у |
|||||||||||||||||||||||||||||||
Пояснения к таблице 3.3. Первая строка это код входного текста в двоичной системе счисления, вторая строка это гамма шифра в двоичной системе счисления, третья строка это сложение по модулю 2 этих строк, результат зашифрованный текст, который идет по открытому каналу связи, четвертая строка это дешифрованный текст на гамме шифра с известным алгоритмом генерирования случайных чисел (линейным конгруэнтным методом) с известными х0, a, с, m.
Дешифрование.
Для дешифрования был получен зашифрованный текст: ев спсеу р , ключ: К=3142. Анализ вида ключа показывает, что для шифровки применялся метод простой перестановки. Расшифровка позволяет получить следующий результат:
-
1
2
3
4
1
2
3
4
1
2
е
в
с
п
с
е
у
р
3
1
4
2
3
1
4
2
1
2
в
с
е
с
у
п
е
р
Получили текст: все супер.
