- •А.М. ГОЛИКОВ
- •Учебное пособие:
- •Томск 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
- •Ход работы
пространству. Любое известное продолжение атаки "Квадрат" на 7 и более раундов становится более трудоемким, чем даже обычный полный перебор значений ключа.
Поточные системы шифрования
Поточные шифры обычно делят на синхронные и самосинхронизирующиеся.
В синхронном поточном шифре шифрующая последовательность (гамма, ключевой поток, keystream) генерируется независимо от потока открытого текста и потока шифруемого текста [6].
Генератор гаммы в синхронной поточной криптосистеме может быть описан следующими уравнениями
si+1 = F(si), ki = f(si),
где si – значение внутреннего состояния (state), F – функция переходов, f – выходная функция, ki – очередной элемент гаммы.
Начальное состояние (initial state) s0 может быть определено из ключа k и вектора инициализации IV (initial vector).
Цель генератора гаммы – развернуть короткий случайный ключ k в длинную псевдослучайную последовательность (ПСП) k1, k2, …, kn.
Работа синхронной киптосистемы схематически изображена на рисунке 2.17.
si |
|
F |
si |
|
F |
f |
|
|
f |
|
|
pi |
ki |
ci |
ci |
ki |
pi |
|
|
||||
|
|
|
… |
|
|
зашифрование |
расшифрование |
||||
|
|
Рис. 2.17 Синхронный поточный шифр |
В процессе зашифрования элементы гаммы и открытого текста подвергаются операции XOR (exclusive OR, исключающее ИЛИ), в результате чего создается шифртекст:
ci = pi ki.
При расшифровании, для восстановления открытого текста, шифртекст и гамма также подвергаются операции XOR:
167
pi = ci ki.
Всамосинхронизирующемся поточном шифре гамма зависит не только от ключа, но еще
иот определенного количества элементов ранее вычисленного шифртекста.
Генератор гаммы в самосинхронизирующейся поточной криптосистеме описывается следующим образом:
si+1 = F(ci–1, ci–2, …, ci–N), ki = f(k, si).
Работа самосинхронизирующейся криптосистемы схематически изображена на рисунке 2.18
si |
|
F |
f |
|
|
pi |
ki |
ci |
|
||
|
|
… |
F |
ci |
si
f
ki pi
зашифрование расшифрование
Рис. 2.18. Самосинхронизирующийся поточный шифр Синхронные и самосинхронизирующиеся поточные шифры обладают как достоинствами
так и недостатками. При использовании синхронного поточного шифра устройство зашифрования отправителя и устройство расшифрования получателя должны работать синхронно. Если в процессе передачи был потерян хотя бы один элемент шифртекста, то получатель обнаружит лишь бессмысленные данные, начиная с того места, где сбилась синхронизация. Обычно синхронизация достигается вставкой в передаваемое сообщение специальных “маркеров”. В результате этого элемент шифртекста, пропущенный в процессе передачи, приводит к неправильному расшифрованию лишь до тех пор, пока не будет принят один из маркеров. Другое решение – реинициализация состояний как устройства зашифрования, так и устройства расшифрования при некотором предварительно согласованном условии.
Самосинхронизирующийся поточный шифр обладает свойством, как свидетельствует его название, автоматически синхронизировать себя. Внутреннее состояние такого шифра зависит от N предыдущих элементов шифртекста. Если в процессе передачи был потерян или изменен элемент шифртекста, то после приема N правильных последовательных элементов шифртекста внутреннее состояние устройства расшифрования становится идентичным
168
внутреннему состоянию устройства зашифрования, т.е. синхронизация восстановлена. Недостатком самосинхронизирующегося поточного шифра является распространение ошибки. Для каждого элемента шифртекста, искаженного при передаче, устройство расшифрования произведет N некорректных элементов гаммы. Следовательно, пока испорченный элемент влияет на внутреннее состояние, каждой ошибке шифртекста будет соответствовать N ошибок в открытом тексте. Синхронный поточный шифр имеет свойство не распространять ошибки. Расшифрование искаженного элемента шифртекста влияет только на соответствующий элемент открытого текста. Хотя такое свойство может показаться желательным, у него есть и другая сторона. В этом случае ограничивается возможность обнаружения ошибки при расшифровании, но что еще более важно, противник имеет возможность произвести управляемые изменения в части шифртекста, совершенно точно зная, какие это вызовет изменения в соответствующем открытом тексте.
Поточные режимы блочных шифров
Для различных ситуаций, встречающихся на практике, разработано значительное количество режимов работы блочных шифров. Используя некоторый из них, блочные шифры можно реализовать как синхронные или самосинхронизирующиеся поточные шифры.
Для зарубежных стандартов блочного шифрования DES (Data Encryption Standard) и AES (Advanced Encryption Standard) существуют следующие основные режимы:
Режим электронной кодовой книги, ECB (Electronic Code Book).
Режим сцепления блоков шифртекста, CBC (Ciphertext Block Chaining).
Режим обратной связи по шифртексту, CFB (Ciphertext Feedback).
Режим обратной связи по выходу, OFB (Output Feedback).
Режим счетчика, CTR (Counter mode).
Врежимах OFB и CTR блочный шифр работает как синхронный поточный шифр, а в режиме CFB – как самосинхронизирующийся.
Отечественный стандарт блочного шифрования ГОСТ 28147-89 может работать в следующих режимах:
Режим простой замены.
Режим гаммирования.
Режим гаммирования с обратной связью.
Режим выработки имитовставки.
Врежиме гаммирования алгоритм шифрования ГОСТ 28147-89 работает как синхронный
169