- •А.М. ГОЛИКОВ
- •Учебное пособие:
- •Томск 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
- •Ход работы
определяется значение P-тест,value, соответствующее распределению теста критерия согласия для P-тест,value.
Вычисляется статистика
|
|
|
|
Fi |
|
|
s |
2 |
||
|
|
|
|
|
|
|
|
|||
|
|
10 |
10 |
|||||||
|
2 |
|
|
|
, |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s |
|
|
|
||
|
|
i 1 |
|
|
|
|
|
|||
|
|
|
|
10 |
|
|
|
где Fi – количество значений P-тест,value в i-м подинтервале, s – размер образца. Затем вычисляется P-value:
|
|
9 |
|
2 |
|
|
|
||
P-тест,valueT = |
igamc |
|
|
, |
|
|
|
, |
|
|
|
|
|
|
|||||
|
2 |
|
2 |
|
|
|
|||
|
|
|
|
|
|
|
|||
где igamc(a, x) = a |
|
|
– неполная гамма-функция, |
||||||
x |
|||||||||
|
|
|
|
1 |
|
|
e t t a 1dt |
|
|
|
|
|
|
|
|
|
|
|
a e t t a 1dt – гамма-функция [53_Корн].
0
Если P-тест,value 0,0001, то последовательности могут считаться равномерно распределенными.
Анализ результатов тестирования
С помощью набора статистических тестов НИСТ было исследовано качество последовательностей, генерируемых 9 поточными шифрами (RC4, Rabbit, Salsa20/12, SOSEMAN),ключи).ВUK, HC-128, Grain-128, Mickey-128, Trivium, F-FCSR-16) и 2 блочными шифрами в поточных режимах работы (ГОСТ 28147-89 в режиме гаммирования и AES в режимах CTR и OFB).
Тестирование производилось для трех случаев:
1.Тестировались последовательности, сгенерированные каждым из исследуемых шифров.
2.Тестировался результат шифрования периодически повторяющегося формуляра с помощью последовательностей, тестируемых в первом случае.
3.Тестировался результат шифрования последовательности различных неповторяющихся формуляров с помощью последовательностей, тестируемых в первом случае.
Для тестирования были выбраны следующие параметры:
1. Для каждого шифра было сгенерировано m = 100 последовательностей, n = 106 бит каждая.
244
2.Уровень значимости был принят равным = 0,01.
3.Для выбранных параметров m и границы доверительного интервала составляют: [96,016; 101,99]. То есть считается, что шифр прошел тест, если для более чем 96,016% тестируемых последовательностей P-тест,value 0,01.
Статистические тесты из набора НИСТ генерируют различное количество значений P-тест, value, так, например, частотный тест генерирует одно значение P-тест,value для каждой последовательности длиной n бит, а тест серий по два значения P-тест,value для каждой такой последовательности. В итоге для всех 15 тестов генерируется 188 значений. Таким образом для каждого исследуемого шифра было сгенерировано по 188 значений P-тест,value для каждого из 3 рассматриваемых случаев.
Рассмотрим первый способ интерпретации результатов – анализ доли последовательностей, проходящих тест.
По результатам применения каждого конкретного теста к каждому конкретному шифру, в трех рассматриваемых случаях, была определена доля последовательностей проходящих каждый тест. Для каждого конкретного шифра, в трех рассматриваемых случаях, было подсчитано число тестов, для которых эта доля превысила порог в 96,016%. Другими словами было определено количество тестов, которые исследуемый шифр прошел в соответствии с первым способом интерпретации результатов (таблица 2.17), т.е. количество тестов не выявивших в тестируемой последовательности отклонений от случайности.
Таблица 2.17. Количество успешно пройденных тестов
№4 |
RC |
Rabb |
Salsa2 |
SOSEMA |
HC- |
Grain |
Mickey |
AES |
AES |
|
it |
0/12 |
N),ключи).ВUK |
128 |
128 |
128 |
CTR |
OFB |
|
1 |
184 |
184 |
182 |
185 |
184 |
184 |
166 |
184 |
185 |
2 |
164 |
161 |
161 |
159 |
165 |
169 |
166 |
167 |
164 |
3 |
163 |
169 |
163 |
163 |
182 |
180 |
174 |
185 |
181 |
Рассмотрим второй способ интерпретации результатов – анализ равномерности распределения значений P-тест,value.
По результатам применения каждого конкретного теста к каждому конкретному шифру, в трех рассматриваемых случаях, было определено значение P-тест,valueT. Для каждого конкретного шифра, в трех рассматриваемых случаях, было подсчитано число тестов, для которых P-тест,valueT 0,0001. Другими словами было определено количество тестов, которые исследуемый шифр прошел в соответствии со вторым способом интерпретации результатов (таблица 2.18), т.е. количество тестов не выявивших в тестируемой последовательности отклонений от случайности.
245