- •Криптографическая защита информации
- •Оглавление
- •Раздел 1. Общие подходы к криптографической защите информации
- •Тема 1. Теоретические основы криптографии
- •1.1. Криптография
- •1.2. Управление секретными ключами
- •1.3. Инфраструктура открытых ключей.
- •1.4. Формальные модели шифров
- •1.5. Модели открытых текстов
- •Тема 2. Простейшие и исторические шифры и их анализ
- •Тема 3. Математические основы криптографии
- •3.1. Элементы алгебры и теории чисел
- •3.1.1. Модулярная арифметика. Основные определения.
- •3.1.2. Алгоритм Евклида нахождения наибольшего общего делителя
- •3.1.3. Взаимно простые числа
- •3.1.4. Наименьшее общее кратное
- •3.1.5. Простые числа
- •3.1.6. Сравнения
- •3.1.7. Классы вычетов
- •3.1.8. Функция Эйлера
- •3.1.9. Сравнения первой степени
- •3.1.10. Система сравнений первой степени
- •3.1.11. Первообразные корни
- •3.1.12. Индексы по модулям рk и 2рk
- •3.1.13. Символ Лежандра
- •3.1.14. Квадратичный закон взаимности
- •3.1.15. Символ Якоби
- •3.1.16. Цепные дроби
- •3.1.17. Подходящие дроби
- •3.1.18. Подходящие дроби в качестве наилучших приближений
- •3.2. Группы
- •3.2.1. Понятие группы
- •3.2.2. Подгруппы групп
- •3.2.3. Циклические группы
- •3.2.4. Гомоморфизмы групп
- •3.2.5. Группы подстановок
- •3.2.6. Действие группы на множестве
- •3.3. Кольца и поля
- •3.3.1. Определения
- •3.3.2. Подкольца
- •3.3.3. Гомоморфизмы колец
- •3.3.4. Евклидовы кольца
- •3.3.5. Простые и максимальные идеалы
- •3.3.6. Конечные расширения полей
- •3.3.7. Поле разложения
- •3.3.8. Конечные поля
- •3.3.9. Порядки неприводимых многочленов
- •3.3.10. Линейные рекуррентные последовательности
- •3.3.11. Последовательности максимального периода
- •3.3.12. Задания
- •Тема 4. Классификация шифров
- •4.1. Классификация шифров по типу преобразования
- •4.2. Классификация шифров замены
- •4.3 Шифры перестановки
- •4.3.1. Маршрутные перестановки
- •4.3.2. Элементы криптоанализа шифров перестановки
- •4.4. Шифры замены
- •4.4.1. Поточные шифры простой замены
- •4.4.2. Криптоанализ поточного шифра простой замены
- •4.4.3. Блочные шифры простой замены
- •4.4.4. Многоалфавитные шифры замены
- •4.4.5. Дисковые многоалфавитные шифры замены
- •4.5. Шифры гаммирования
- •4.5.1. Табличное гаммирование
- •4.5.2. О возможности восстановления вероятностей знаков гаммы
- •4.5.3. Восстановление текстов, зашифрованных неравновероятной гаммой
- •5.5.4. Повторное использование гаммы
- •4.5.5. Криптоанализ шифра Виженера
- •Тема 5. Поточные шифры
- •5.1. Принципы построения поточных шифрсистем
- •Примеры поточных шифрсистем
- •5.3. Линейные регистры сдвига
- •5.4. Алгоритм Берлекемпа-Месси
- •5.5. Усложнение линейных рекуррентных последовательностей
- •5.6. Методы анализа поточных шифров
- •6. Блочные шифры
- •6.1. Принципы построения блочных шифров
- •6.2. Примеры блочных шифров
- •6.3. Режимы использования блочных шифров
- •6.4. Комбинирование алгоритмов блочного шифрования
- •6.5. Методы анализа алгоритмов блочного шифрования
- •6.6. Рекомендации по использованию алгоритмов блочного шифрования
- •7. Криптографические хэш-функции
- •7.1. Функции хэширования и целостность данных
- •7.2. Ключевые функции хэширования
- •7.3. Бесключевые функции хэширования
- •7.4. Целостность данных и аутентификация сообщений
- •7.5. Возможные атаки на функции хэширования
- •Тема 8. Криптосистемы с открытым ключом
- •8.1. Шифрсистема rsa
- •8.2. Шифрсистема Эль-Гамаля
- •8.3. Шифрсистема Мак-Элиса
- •8.4. Шифрсистемы на основе "проблемы рюкзака"
4.5. Шифры гаммирования
Напомним, что в основе рассматриваемых систем шифрования лежит метод "наложения" ключевой последовательности – гаммы – на открытый текст. "Наложение" заключается в позначном (побуквенном) сложении или вычитании по тому или иному модулю. Хотя мы уже отмечали выше, что данные шифрсистемы относятся к многоалфавитным системам замены, шифры гаммирования имеют целый ряд особенностей и заслуживают отдельного рассмотрения. В силу простоты своей технической реализации и высоких криптографических качеств эти шифры получили широкое распространение.
Исторически первый шифр гаммирования совпадал, по сути, с шифром Виженера, однако без использования самой таблицы Виженера. Заметим, что таблица Виженера представляет собой квадрат, каждая строка и каждый столбец которого – некоторая перестановка знаков данного алфавита. Произвольная такая таблица называется латинским квадратом. Идя по пути обобщения, введем понятие шифра табличного гаммирования.
4.5.1. Табличное гаммирование
Шифр табличного гаммирования в алфавите А={a1,...,an} определяется произвольным латинским квадратом L на А и способом получения последовательности букв из А, называемой гаммой шифра. Буква аi открытого текста под действием знака гаммы аj переходит в букву аk шифрованного текста, содержащуюся в j-й строке и i-м столбце квадрата L (подразумевается, что строки и столбцы в L занумерованы в соответствии с порядком следования букв в алфавите А).
С алгебраической точки зрения буква аk есть результат применения к буквам аi и аj квазигрупповой операции *, табличным заданием которой является латинский квадрат L: аk = аi * аj.
В случае шифра Виженера квазигруппа (А,*) является группой (Zn,+). При этом уравнение шифрования имеет вид
bi=(ai+i)mod n, (1)
а {i} представляет собой периодическую последовательность, образованную повторением некоторого ключеого слова.
Наряду со сложением используется и вычитание знаков гаммы. Соответствующие уравнения шифрования принимают вид
bi=(ai – i )mod n (2)
или
bi=(i –ai)mod n. (3)
Шифры гаммирования с уравнениями шифрования (1) – (3) обычно называют шифрами модульного гаммирования.
Если в качестве квазигрупповой операции * на множестве 5-мерных двоичных векторов используется операция покоординатного сложения по модулю 2, то получаем шифр Вернама.
Шифры гаммирования замечательны тем, что при их применении для зашифрования и расшифрования требуется лишь один узел. В самом деле, знаки открытого текста находятся из тех же уравнений при взаимной замене аi на bi. Такие шифры обычно называют обратимыми (см. замечание после примера шифра Хилла).
4.5.2. О возможности восстановления вероятностей знаков гаммы
Криптоанализ произвольного шифра табличного гаммирования во многом схож с криптоанализом шифра модульного гаммирования. Рассмотрим основные идеи анализа на примере шифра с уравнением (1).
Занумеруем буквы алфавита А числами от 0 до п –1 и воспользуемся формальными моделями рассматриваемых последовательностей (см. гл. 2). Пусть рi, ri, и si, — вероятности появления знака i в открытом тексте, гамме и в шифрованном тексте соответственно. Тогда задание вероятностных распределений на знаках открытого текста и гаммы (которые естественно считать независимыми) индуцирует распределение вероятностей знаков шифртекста по формуле:
(5)
в которой разность j-i берется по модулю п. (Достаточно заметить, что b = j <=> а = j – i, =i, и воспользоваться формулой полной вероятности.)
Из формулы (5) следует, что если ri = 1/п при всех i =0,…, п -1, то и sj =1/п при всех j = 0,…, п — 1. Это означает, что при зашифровании открытого текста равновероятной гаммой получается шифртекст, вероятностные свойства которого не отличаются от самой равновероятной гаммы. Это обстоятельство не оставляет шансов криптоаналитику использовать диаграмму повторяемости букв открытого текста, поскольку при наложении гаммы эта информация как бы стирается. Поэтому на практике стремятся к тому, чтобы по своим вероятностным свойствам гамма была близка к случайной равновероятной последовательности.
Возникает естественный вопрос о том, можно ли при использовании неравновероятной гаммы восстановить ее вероятностные характеристики непосредственно по шифртексту и можно ли эту информацию использовать при криптоанализе шифра гаммирования.
Попытаемся сначала оценить вероятности ri непосредственно по шифртексту. При этом мы должны располагать достаточно точными приближениями распределений
р=(р0,...,рn-1), s=(s0,...,sn-1)
(получаемыми с помощью подсчета частот встречаемости знаков).
Рассмотрим соотношение (5) как систему линейных уравнений относительно неизвестных ri, i == 0,…,п –1. Нетрудно заметить, что матрица рассматриваемой системы имеет вид
Такая матрица называется циркулянтом. В ней каждый столбец получается циклическим сдвигом предыдущего столбца. Известно, что определитель |Р| циркулянта равен произведению
f(0)•f(1)•…•f(n -1),
где {0,…,n-1} – множество всех корней степени n из 1 (в поле комплексных чисел), причем
f(х) = р0 + pn -1 • х + ... + р1 • хn-1.
В том случае, когда Р 0, вектор r однозначно определяется из соотношения
r =P -1 • s. (6)
Приведем (без доказательства) формулу для Р -1:
(7)
где
Условие Р 0 можно проверить непосредственно по данному распределению вероятностей букв открытого текста.
Пользуясь (6) и (7), можно вычислить приближение r' для r , подставляя вместо s в (6) вектор v = 1/l(v0,...,vn-1), где vi – число вхождений символа i в шифрованный текст (длиной l):
r' =1/l(P -1 • v),
откуда