- •А.М. ГОЛИКОВ
- •Учебное пособие:
- •Томск 2018
- •Учебное пособие
- •История развития криптографии
- •Основные характеристики открытого текста
- •Классификация шифров
- •Шифры перестановки
- •Шифр Хилла
- •Шифры сложной замены
- •Линейный конгруэнтный генератор
- •Регистр сдвига с линейной обратной связью
- •Блочные и поточные системы шифрования
- •Принципы построения блочных шифров
- •Основной шаг криптопреобразования.
- •Базовые циклы криптографических преобразований.
- •Основные режимы шифрования.
- •Простая замена
- •Гаммирование
- •Гаммирование с обратной связью
- •Выработка имитовставки к массиву данных.
- •Американский стандарт шифрования данных DES
- •Основные режимы шифрования
- •Блочный криптоалгоритм RIJNDAEL и стандарт AES
- •Математические предпосылки
- •Сложение
- •Описание криптоалгоритма
- •Раундовое преобразование
- •Атака “Квадрат”
- •Предпосылки
- •Базовая атака “Квадрат” на 4 раунда
- •Добавление пятого раунда в конец базовой атаки “Квадрат”
- •Добавление шестого раунда в начало базовой атаки “Квадрат”
- •Поточные системы шифрования
- •Поточные режимы блочных шифров
- •Строительные блоки поточных шифров
- •Регистры сдвига с обратной связью
- •Регистры сдвига с линейной обратной связью
- •Генераторы на основе LFSR
- •Регистры сдвига с нелинейной обратной связью
- •Регистры сдвига с обратной связью по переносу
- •Поточный шифр HC-128
- •Инициализация
- •Генерация ключевого потока
- •Поточный шифр Rabbit
- •Инициализация
- •Поточный шифр Salsa20
- •Хеш-функция Salsa20
- •Инициализация
- •Функция шифрования Salsa20
- •Поточный шифр SOSEMANUK
- •SERPENT и его производные
- •Инициализация
- •Генерация ключевого потока
- •Поточный шифр F-FCSR-H
- •Генерация ключевого потока
- •Инициализация
- •Поточный шифр Grain-128
- •Генерация ключевого потока
- •Инициализация
- •Поточный шифр MICKEY-128
- •Инициализация
- •Генерация ключевого потока
- •Поточный шифр Trivium
- •Инициализация
- •Генерация ключевого потока
- •Гаммирование
- •Гаммирование с обратной связью
- •Блочный шифр AES в поточном режиме
- •Функция зашифрования
- •Расширение ключа
- •Функция расшифрования
- •Режим обратной связи по шифртексту (CFB)
- •Режим обратной связи по выходу (OFB)
- •Режим счетчика (Counter mode)
- •Методы оценки качества алгоритмов поточного шифрования
- •1. Период
- •2. Криптоанализ шифров
- •3. Линейная сложность
- •4. Исчерпывающий поиск ключа
- •5. Time-memory-data trade-off атака
- •6. Корреляционная атака
- •Быстрая корреляционная атака
- •Алгебраическая атака
- •Атака различением
- •Статистический анализ гаммы шифров
- •Статистические свойства
- •Тестирование
- •Набор статистических тестов НИСТ
- •Частотный тест
- •Частотный тест внутри блока
- •Тест последовательностей
- •Тест наибольших последовательностей единиц в блоке
- •Тест рангов двоичных матриц
- •Спектральный тест
- •Тест сравнения непересекающихся шаблонов
- •Тест сравнения пересекающихся шаблонов
- •Тест сжатия алгоритмом Зива-Лемпела
- •Тест линейной сложности
- •Тест серий
- •Энтропийный тест
- •Тест совокупных сумм
- •Тест случайных отклонений
- •Вариант теста случайных отклонений
- •Анализ результатов тестирования
- •Исследование производительности шифров
- •Rabbit
- •Salsa20/12
- •Salsa20/12
- •Sosemanuk
- •Выводы
- •Цель работы Изучить криптографический стандарт шифрования ГОСТ 28147-89 и его особенности, познакомиться с различными режимами блочного шифрования.
- •Порядок выполнения работы
- •Контрольные вопросы
- •Интерфейс учебно-программного комплекса
- •Главное окно
- •Пункт меню “Файл”
- •Пункт меню “AES”
- •Режимы ECB, CBC, CFB, OFB
- •Режим ECB (Electronic Code Book – режим электронной кодовой книги)
- •Режим CBC (Ciphertext Block Chaining – режим сцепления блоков шифротекста)
- •Режим CFB (Ciphertext Feedback – обратная связь по шифротексту)
- •Режим OFB (Output Feedback – режим обратной связи по выходу)
- •Описание алгоритма
- •Безопасность
- •Программная реализация
- •Заключение
- •Общее описание лабораторной работы
- •Общий вид окна учебной программы
- •Требования к размещению файлов
- •Необходимые знания
- •Загрузка варианта
- •Выбор вероятных составляющих
- •Нахождение вероятной части ключа
- •Определение положения отводов
- •Поиск начального заполнения
- •Получение гаммы
- •Получение открытого текста
- •Отчет о проделанной работе
- •Сообщения выдаваемые в процессе работы
- •Сообщения об ошибках
- •Сообщения-вопросы
- •Критические ошибки
- •Пример
- •Асимметричные криптосистемы [8 -14]
- •Предпосылки появления асимметричных криптосистем
- •Обобщенная схема асимметричной крипосистемы
- •Алгебраическая обобщенная модель шифра
- •Односторонние функции
- •Факторизация
- •Дискретный логарифм
- •Криптосистема RSA
- •Основные определения и теоремы
- •Алгоpитм RSA
- •Процедуры шифрования и расшифрования в криптосистеме RSA
- •Криптосистема Эль-Гамаля
- •Комбинированный метод шифрования
- •Метод экспоненциального ключевого обмена Диффи-Хеллмана
- •Алгоритмы практической реализации криптосистем с открытым ключом
- •Возведение в степень по модулю m
- •Алгоритм Евклида вычисления НОД
- •Вычисление обратных величин в кольце целых чисел
- •Генерация простых чисел
- •Атаки на алгоритм RSA
- •Практическая часть
- •Лабораторная работа 1
- •Ход работы
Таблица 2.18. Количество успешно пройденных тестов
№ |
RC4 |
|
Rabbi |
Salsa20/ |
SOSEMA |
HC |
Grai |
Mickey |
AES |
AES |
t |
|
12 |
N),ключи).ВUK |
-128 |
n 128 |
128 |
CTR |
OFB |
||
1 |
0 |
|
0 |
0 |
0 |
1 |
0 |
7 |
0 |
0 |
2 |
18 |
|
19 |
17 |
18 |
18 |
18 |
20 |
19 |
17 |
3 |
15 |
|
18 |
18 |
18 |
0 |
0 |
2 |
0 |
0 |
Из полученных результатов видно, что все исследуемые шифры генерируют довольно качественные последовательности (первая строка в табл.2.17 и табл.2.18), худший результаты показал шифр Mickey-128, причем при обоих способах интерпретации результатов.
Исследование результатов шифрования периодически повторяющегося формуляра показало, что подобные последовательности данных содержат неслучайность, которую можно выявить отдельными тестами. В данном случае все шифры показали примерно одинаковые результаты (вторая строка в табл.2.17 и табл.2.18).
Исследование результатов шифрования последовательностей различных неповторяющихся формуляров показало, что шифры HC-128, Grain-128, Mickey-128 и AES (в обоих режимах и CTR, и OFB) способны скрыть неслучайный характер шифруемой информации, в отличии от шифров RC4, Rabbit, Salsa20/12, SOSEMAN),ключи).ВUK (третья строка в табл.2.17 и табл.2.18).
Исследование производительности шифров
Было исследовано быстродействие 9 поточных шифров (Rabbit, Salsa20/12, SOSEMAN),ключи).ВUK, HC-128, Grain-128, Mickey-128, Trivium, F-FCSR-16) и 2 блочных шифра в поточных режимах работы (ГОСТ 28147-89 в режиме гаммирования и AES в режимах CTR и OFB).
Тестирование проводилось на четырех ЭВМ с ОС Microsoft Windows XP Professional, версия 2002, Service Pack 2:
1.ЭВМ1 – AMD Duron 1 ГГц, 512 МБ ОЗУ;
2.ЭВМ2 – AMD Duron 1 ГГц, 256 МБ ОЗУ;
3.ЭВМ3 – AMD Duron 1 ГГц, 128 МБ ОЗУ;
4.ЭВМ4 – Intel® Celeron® M CPU 520 @ 1,6 ГГц, 0,99 ГБ ОЗУ.
Для каждого из перечисленных шифров было измерено время (в сек.), затраченное на генерацию 106, 220, 107, 108 и 230 бит соответственно. Полученные данные представлены в виде таблиц
246
|
|
|
|
|
Таблица 2.19. Результаты тестирования шифров на ЭВМ1 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
№ |
|
Шифр |
106 |
|
220 |
|
|
107 |
|
|
108 |
230 |
|
|
||
1 |
|
RC4 |
0 |
|
0 |
|
|
0,27 |
|
|
2,75 |
30 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
Rabbit |
0 |
|
0 |
|
|
0,16 |
|
|
2,20 |
23,63 |
|
||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
Salsa20/12 |
0 |
|
0 |
|
|
0,33 |
|
|
3,24 |
34,89 |
|
||||
4 |
|
Sosemanuk |
0 |
|
0 |
|
|
0,11 |
|
|
0,93 |
10,33 |
|
||||
5 |
|
HC-128 |
0 |
|
0 |
|
|
0,11 |
|
|
1,04 |
11,21 |
|
||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
Grain-128 |
3,13 |
|
3,35 |
|
31,32 |
|
313,2 |
3364,1 |
|
||||||
|
|
|
|
|
|
4 |
|
8 |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
7 |
|
Mickey 128 |
1,10 |
|
1,21 |
|
11,43 |
|
114,1 |
1220,1 |
|
||||||
|
|
|
|
|
|
2 |
|
6 |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
8 |
|
AES CTR |
0 |
|
0 |
|
|
0,38 |
|
|
3,68 |
39,23 |
|
||||
9 |
|
AES OFB |
0 |
|
0 |
|
|
0,38 |
|
|
3,79 |
40,49 |
|
||||
10 |
|
ГОСТ |
0,22 |
|
0,27 |
|
2,47 |
|
|
25,16 |
266,81 |
|
|||||
28147-89 |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
11 |
|
Trivium |
0 |
|
0 |
|
|
0,66 |
|
|
7,09 |
75,71 |
|
||||
12 |
|
F-FCSR-16 |
0 |
|
0 |
|
|
0,44 |
|
|
4,84 |
51,32 |
|
||||
|
|
|
|
|
Таблица 2.20. Результаты тестирования шифров на ЭВМ2 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
№ |
|
Шифр |
|
106 |
220 |
|
107 |
|
108 |
|
230 |
|
|
|||
|
1 |
|
RC4 |
|
0 |
0 |
|
0,33 |
|
2,86 |
|
30,44 |
|
|
|||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
Rabbit |
|
0 |
0 |
|
0,22 |
|
2,25 |
|
24,01 |
|
|
|||
|
3 |
|
Salsa20/12 |
|
0 |
0 |
|
0,33 |
|
3,24 |
|
35,16 |
|
|
|||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
Sosemanuk |
|
0 |
0 |
|
0,11 |
|
0,93 |
|
10,33 |
|
|
|||
|
5 |
|
HC-128 |
|
0 |
0 |
|
0,11 |
|
1,04 |
|
11,21 |
|
|
|||
|
6 |
|
Grain-128 |
|
3,1 |
3,3 |
|
31,37 |
|
313,52 |
|
3365,88 |
|
|
|||
|
|
|
|
3 |
0 |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
7 |
|
Mickey 128 |
|
1,1 |
1,1 |
|
11,54 |
|
114,73 |
|
1230,38 |
|
|
|||
|
|
|
|
5 |
5 |
|
|
|
|
|
|||||||
|
8 |
|
AES CTR |
|
0 |
0 |
|
0,38 |
|
3,68 |
|
40 |
|
|
|||
|
9 |
|
AES OFB |
|
0 |
0 |
|
0,38 |
|
3,79 |
|
40,93 |
|
|
|||
|
1 |
|
ГОСТ |
|
0,2 |
0,2 |
|
2,47 |
|
25,27 |
|
268,85 |
|
|
|||
|
0 |
|
28147-89 |
|
7 |
7 |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
1 |
|
Trivium |
|
0 |
0 |
|
0,71 |
|
7,09 |
|
75,77 |
|
|
|||
|
1 |
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
F-FCSR-16 |
|
0 |
0 |
|
0,49 |
|
4,84 |
|
51,32 |
|
|
|||
|
2 |
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 2.21. Результаты тестирования шифров на ЭВМ3 |
247
|
|
№ |
|
Шифр |
|
106 |
|
220 |
|
107 |
|
|
|
108 |
|
230 |
|
|
|
|||||||
|
|
1 |
|
|
RC4 |
|
|
0 |
|
0 |
|
0,33 |
|
|
|
2,75 |
|
29,73 |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
2 |
|
|
Rabbit |
|
0 |
|
0 |
|
0,22 |
|
|
|
2,20 |
|
23,74 |
|
|
|||||||
|
|
3 |
|
|
Salsa20/12 |
|
0 |
|
0 |
|
0,27 |
|
|
|
3,30 |
|
34,89 |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
4 |
|
|
Sosemanuk |
|
0 |
|
0 |
|
0,11 |
|
|
|
0,93 |
|
10,33 |
|
|
|||||||
|
|
5 |
|
|
HC-128 |
|
0 |
|
0 |
|
0,11 |
|
|
|
1,04 |
|
11,21 |
|
|
|||||||
|
|
6 |
|
|
Grain-128 |
|
3,13 |
|
3,30 |
31,43 |
|
|
|
313,57 |
3367,25 |
|
|
|||||||||
|
|
7 |
|
|
Mickey 128 |
|
1,37 |
|
1,21 |
11,54 |
|
|
|
115,00 |
1235,88 |
|
|
|||||||||
|
|
8 |
|
|
AES CTR |
|
0 |
|
0 |
|
0,33 |
|
|
|
3,74 |
|
39,34 |
|
|
|||||||
|
|
9 |
|
|
AES OFB |
|
0 |
|
0 |
|
0,38 |
|
|
|
3,74 |
|
40,49 |
|
|
|||||||
|
|
10 |
|
ГОСТ |
|
|
0,22 |
|
0,27 |
2,53 |
|
|
|
25,05 |
|
269,29 |
|
|
||||||||
|
|
|
|
|
28147-89 |
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
11 |
|
Trivium |
|
0 |
|
0 |
|
0,71 |
|
|
|
7,2 |
|
76,48 |
|
|
||||||||
|
|
12 |
|
F-FCSR-16 |
|
0 |
|
0 |
|
0,49 |
|
|
|
4,84 |
|
51,98 |
|
|
||||||||
|
|
|
|
|
|
|
|
|
Таблица 2.22. Результаты тестирования шифров на ЭВМ4 |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
№ |
|
Шифр |
|
|
106 |
|
|
220 |
|
107 |
|
|
|
108 |
|
230 |
|
|
|
|||||
|
|
1 |
|
|
RC4 |
|
|
0 |
|
|
0 |
|
|
0,11 |
|
|
|
0,77 |
|
8,63 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
2 |
|
|
Rabbit |
|
|
0 |
|
|
0 |
|
|
0,16 |
|
|
|
1,26 |
|
13,35 |
|
|
|
|||
|
|
3 |
|
|
Salsa20/12 |
0 |
|
|
0,05 |
|
0,33 |
|
|
|
2,97 |
|
31,92 |
|
|
|
||||||
|
|
4 |
|
|
Sosemanuk |
0 |
|
|
0 |
|
|
0,11 |
|
|
|
0,77 |
|
7,91 |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
5 |
|
|
HC-128 |
|
|
0 |
|
|
0 |
|
|
0,11 |
|
|
|
0,77 |
|
8,19 |
|
|
|
|||
|
|
6 |
|
|
Grain-128 |
0,77 |
|
|
0,88 |
|
7,75 |
|
|
|
77,2 |
|
828,85 |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
||||||||||||
|
|
7 |
|
|
Mickey 128 |
0,82 |
|
|
0,88 |
|
8,35 |
|
|
|
83,7 |
|
899,51 |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
||||||||||||
|
|
8 |
|
|
AES CTR |
0 |
|
|
0 |
|
|
0,27 |
|
|
|
2,58 |
|
27,42 |
|
|
|
|||||
|
|
9 |
|
|
AES OFB |
0 |
|
|
0 |
|
|
0,27 |
|
|
|
2,58 |
|
27,53 |
|
|
|
|||||
|
|
10 |
|
|
ГОСТ |
28147- |
0,11 |
|
|
0,22 |
|
1,81 |
|
|
|
18,1 |
|
195,05 |
|
|
|
|||||
|
|
|
89 |
|
|
|
|
|
|
|
9 |
|
|
|
|
|
||||||||||
|
|
11 |
|
|
Trivium |
|
|
0 |
|
|
0,11 |
|
0,60 |
|
|
|
6,43 |
|
69,56 |
|
|
|
||||
|
|
12 |
|
|
F-FCSR-16 |
0 |
|
|
0 |
|
|
0,33 |
|
|
|
3,30 |
|
35,49 |
|
|
|
|||||
|
|
По полученным данным была вычислена скорость генерации данных (таблица 7). |
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 2.23. Быстродействие шифров |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
№ |
Шифр |
|
V, Мбит/с |
|
|
|
|
|
|
V, МБайт/с |
|
|
|
|
|
|||||||||||
|
ЭВМ1 |
ЭВМ |
|
|
ЭВМ3 |
|
ЭВМ4 |
|
ЭВ |
ЭВ |
|
ЭВ |
|
ЭВМ4 |
||||||||||||
|
|
|
|
|
|
|
2 |
|
|
|
М1 |
|
|
|
М2 |
|
М3 |
|
||||||||
1 |
|
RC4 |
|
|
34,13 |
|
33,64 |
|
34,45 |
|
118,71 |
|
4,27 |
4,21 |
|
4,31 |
|
14,84 |
||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
2 |
|
Rabbit |
|
43,34 |
|
42,65 |
|
43,14 |
|
76,69 |
|
5,42 |
5,33 |
|
5,39 |
|
9,59 |
|||||||||
3 |
|
Salsa20/1 |
|
29,35 |
|
29,12 |
|
29,35 |
|
32,08 |
|
3,67 |
3,64 |
|
3,67 |
|
4,01 |
|||||||||
|
|
2 |
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
Soseman |
|
99,13 |
|
99,13 |
|
99,13 |
|
129,42 |
|
12,3 |
12,3 |
|
12,3 |
|
16,18 |
248