ЛР_5_шифрыx

advertisement
Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
Самарский государственный архитектурно-строительный университет
Факультет информационных систем и технологий
Кафедра прикладной математики и вычислительной техники
Отчет по лабораторной работе № 5
по дисциплине: «Информационная безопасность и защита информации»
ВЫПОЛНИЛ студент группы
ГИП-113
ПРОВЕРИЛ проф., д.т.н.
оценка
Самара
2015 г.
Алексанова Е.В.
Прохорова О. В.
Оглавление
Постановка задачи .........................................................................................................................3
1. Аналитическая часть .................................................................................................................4
2. Алгоритмическая часть ...........................................................................................................10
3. Конструкторская часть ............................................................................................................11
Литература ...................................................................................................................................16
Постановка задачи
Применение методов шифрования и дешифрования текста.
1. Аналитическая часть
Шифрование методом Цезаря
При шифровании исходного текста по данному методу каждая буква
заменяется на другую букву того же алфавита путем ее смещения в
используемом алфавите на число позиций, равное K. При достижении конца
алфавита выполняется циклический переход к его началу.
Общая формула шифра Цезаря имеет следующий вид:
С=P+K (mod M),
(1.1)
где P – номер символа открытого текста, С – соответствующий ему номер
символа шифротекста, K – ключ шифрования (коэффициент сдвига), M –
размер алфавита (для русского языка M = 32)
Для данного шифра замены можно задать фиксированную таблицу
подстановок, содержащую соответствующие пары букв открытого текста и
шифротекста.
Пример
Таблица подстановок для символов русского текста при ключе K=3
представлена в таблице 1.1. Данной таблице соответствует формула:
С=P+K (mod M),
(1.2)
Табл. 1.1. Табл. подстановок шифра Цезаря для ключа K=3
А
Б
В
Г
Д
Е
Ж
З
И
Й
К
Л
М
Н
О
П
Г
Д
Е
Ж
З
И
Й
К
Л
М
Н
О
П
Р
С
Т
Р
С
Т
У
Ф
Х
Ц
Ч
Ш
Щ
Ъ
Ы
Ь
Э
Ю
Я
У
Ф
Х
Ц
Ч
Ш
Щ
Ъ
Ы
Ь
Э
Ю
Я
А
Б
В
Согласно формуле (1.2) открытый текст «БАГАЖ» будет преобразован в
шифротекст «ДГЖГЙ».
Дешифрование закрытого текста, зашифрованного методом Цезаря
согласно (1.1), осуществляется по формуле:
P=C-K (mod M).
(1.3)
Простая моно-алфавитная замена
Шифр простой моно-алфавитной замены является обобщением шифра
Цезаря и выполняет шифрование по следующей схеме:
C  a  P  K mod M  ,
где 0  a, K  M - ключ шифрования, P -
(1.4)
место символа в алфавите,
НОД a, M   1 .
Формула для определения Р при дешифровании выглядит следующим
образом, где P* есть номер шифра буквы в алфавите :
a) если P* - K делится нацело на a, применяется формула:
P  a -1  P *  K  mod M 
(1.5a)
b) если P* - K не делится нацело на a, применяется формула:
P  a -1  P *  M  K  mod M 
(1.5b)
Пример.
Пусть M=26, a=3, K=4, НОД(3,26) = 1. Тогда получаем следующую
таблицу подстановок для шифра простой моно-алфавитной замены.
Таблица 1.2.
A
B
C
D
E
F
G
H
I
G
K
L
M
N
O
P
Q
R
S
P
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
C
4
7
10
13
16
19
22
25
2
5
8
11
14
17
20
23
0
3
6
T
U
V
W
X
Y
Z
P
19
20
21
22
23
24
25
C
9
12
15
18
21
24
1
Тогда открытый текст «CODE» будет преобразован в шифротекст
«KUNQ». Расшифруем код по формулам (1.5). Получим слово «CODE».
Покажем это на таблице, оставив только существенную часть
Таблица 1.3.
C
D
E
K
N
O
Q
P
2
3
4
10
13
14
16
C
10
13
16
20
U
P
20
C
Сделаем пояснение. Для буквы K разность (10 - 4) = 6 делится нацело на
3, значит, применяется формула 1.5.а и по ней восстанавливается ее
прообраз, а именно, число равное 6 / 3 = 2, что соответствует букве С.
Далее, для буквы U разность (20 - 4) не делится нацело на 3, значит,
применяется формула 1.5.b
(20  26  4)
mod 26  14
3
и по ней восстанавливается ее прообраз, а именно, буква О и т.д. В
результате получим раскодированное слово CODE.
Метод простой перестановки
При шифровании методом простой перестановки производят деление
открытого текста на блоки одинаковой длины, равной длине ключа. Ключ
длины n представляет собой последовательность неповторяющихся чисел от
1 до n. Символы открытого текста внутри каждого из блоков переставляют в
соответствие с символами ключа внутри блока справа налево. Элемент ключа
Ki в заданной позиции блока говорит о том, что на данное место будет
помещен символ открытого текста с номером Ki из соответствующего блока.
Рассмотримшифрование
и
дешифрование
методом
простой
перестановки с ключом К=3142
1
2
3
4
1
2
3
4
1
2
3
4
П
Р
И
Е
З
Ж
А
Ю
Д
Н
Е
М
3
1
4
2
3
1
4
2
3
1
4
2
И
П
Е
Р
А
З
Ю
Ж
Е
Д
М
Н
П
Р
И
Е
З
Ж
А
Ю
Д
Н
Е
М
Для дешифрования шифротекста необходимо символы шифротекста
перемещать в позицию, указанную соответствующим им символом ключа Ki
слева направо.
Алгоритм Гамильтона
Весьма высокую стойкость шифрования можно обеспечить усложнением
перестановок по маршрутам типа гамильтоновских. При этом, для записи
символов шифруемого текста используются вершины некоторого гиперкуба,
а знаки зашифрованного текста считываются по маршрутам Гамильтона,
причем
используется
восемь
различных
маршрутов.
Размер
ключа
перестановки в данном случае равен восьми по числу вершин куба. Для
примера, два из маршрутов Гамильтона представлено на рис. 1.1. Первому
маршруту соответствует перестановка 4-0-2-3-1-5-7-6, второму 4-6-2-0-1-5-73 (нумерация символов в блоке осуществляется с нуля).
4
5
4
5
0
1
0
1
2
3
2
3
6
7
6
7
Рис. 1.1. Пример маршрутов Гамильтона
Пример.
Зашифруем открытый текст «ВОСЕМЬ МАРШРУТОВ» с помощью
перестановок Гамильтона при использовании в качестве ключа двух
перестановок, представленных на рис. 1.1.
0
1
2
3
4
5
6
В
О
С
Е
М
Ь
4
0
2
3
1
5
7
М
В
С
Е
О
Ь
М
7
0
1
2
3
4
5
6
7
М
А
Р
Ш
Р
У
Т
О
В
6
4
6
2
0
1
5
7
3
У
О
Ш
А
Р
Т
В
Р
Шифрование методом гаммирования
Под гаммированием понимают наложение на открытые данные по
определенному закону гаммы шифра (двоичного числа, сформированного на
основе генератора случайных чисел) .
Гамма шифра – псевдослучайная последовательность, вырабатываемая
по определенному алгоритму, используемая для шифровки открытых данных
и дешифровки шифротекста.
Общая схема шифрования методом гаммирования представлена на рис.
1.2.
Рис. 1.2. Схема шифрования методом гаммирования
Принцип шифрования заключается в формировании генератором
псевдослучайных чисел (ГПСЧ) гаммы шифра и наложении этой гаммы на
открытые данные обратимым образом, например,
путем сложения по
модулю два. Процесс дешифрования данных сводится к повторной генерации
гаммы шифра и наложении гаммы на зашифрованные данные. Ключом
шифрования в данном случае является начальное состояние генератора
псевдослучайных чисел. При одном и том же начальном состоянии ГПСЧ
будет формировать одни и те же псевдослучайные последовательности.
Перед шифрованием открытые данные обычно разбивают на блоки
одинаковой
длины,
например
по
64
бита.
Гамма
шифра
также
вырабатывается в виде последовательности блоков той же длины.
Стойкость шифрования методом гаммирования определяется главным
образом
свойствами
гаммы
–
длиной
периода
и
равномерностью
статистических характеристик. Последнее свойство обеспечивает отсутствие
закономерностей в появлении различных символов в пределах периода.
Полученный зашифрованный текст является достаточно трудным для
раскрытия. По сути дела гамма шифра должна изменяться случайным
образом для каждого шифруемого блока.
Обычно разделяют две разновидности гаммирования – с конечной и
бесконечной гаммами. При хороших статистических свойствах гаммы
стойкость шифрования определяется только длиной периода гаммы. При
этом, если длина периода гаммы превышает длину шифруемого текста, то
такой шифр теоретически является абсолютно стойким, т.е. его нельзя
вскрыть при помощи статистической обработки зашифрованного текста, а
можно раскрыть только прямым перебором. Криптостойкость в этом случае
определяется размером ключа
2. Алгоритмическая часть
1. Выбрать текст для шифрования длиной не более 8 символов.
2. Использовать заданный алфавит для шифровки для первых 4-х
алгоритмов.
3. Зашифровать и расшифровать выбранный текст алгоритмами:
- алгоритмом Цезаря, К=4;
- алгоритмом простой перестановки, К=3142;
- алгоритмом простой моноалфавитной замены, а=2, К=4;
- алгоритмом Гамильтона, К1= 40231576; К2= 46201573.
- алгоритмом гаммирования.
4. Зашифровать осмысленное слово длиной не более 8 символов
любым
методом из пяти заданных, отдайте на расшифровку
вместе с ключом (ключами).
5. Взять зашифрованный текст, ключ шифрования.
6.
Дешифровать переданный текст, подобрав алгоритм.
3. Конструкторская часть
Текст для шифрования: Алфавит
Решение.
Алгоритм Цезаря
А Л Ф
А В
И Т
Д П Ш Д Ж Ь Ц
А Л Ф
А В
И Т
Алгоритм простой перестановки
1
2
3
4
1
2
3
А Л
Ф А
В
И
Т
3
4
2
3
1
4
Ф А
Ф Л
Т
В
А Л
Ф А
В
И
1
4
2
И
Т
Алгоритм моноалфавитной замены
А
Л
Ф
А
В
И
Т
Р
0
11
20
0
1
8
18
С
4
26
8
4
6
20
4
Д
Ъ
И
Д
Ж
Ф
Д
А
Л
Ф
А
В
И
Т
Алгоритм Гамильтона
0
1
2
3
4
5
6
А Л
Ф А В
И Т
4
2
1
5
В А
Ф А Л
И
А Л
Ф А В
И Т
0
3
7
7
6
0
1
2
3
4
5
6
А Л Ф А
В И Т
4
1
6
2
0
Т В Т Ф А
5
7
Л И
А Л Ф А
7
3
А
В И Т
Алгоритм гаммирования
Пусть задан текст «Яучу» закодировать его и раскодировать по
известному ключу на основе алгоритма гаммирования.
Решение. Сначала построим таблицу, в которой представим буквы
числами по системе кодировки ASCII (см. табл. 4.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
е
в
3
1
4
в
с
е
4
1
2
3
4
с
п
с
е
у
2
3
1
4
2
1
с
у
п
е
р
Получили текст: все супер.
1
2
р
2
Литература
1. Прохорова, О.В. Защита информации. Курс лекций. СГАСУ, 2015 г. —149с.
Download