4.4.2. Криптоанализ поточного шифра простой замены
Рассмотрим сначала простейший случай – однобуквенной замены.
Любой метод вскрытия шифра простой однобуквенной замены основан на том обстоятельстве, что с точностью до переобозначений частотные характеристики т-грамм шифртекста и открытого текста одинаковы. При этом существенно используются априорные частотные характеристики предполагаемого открытого текста, получаемые с учетом "характера переписки". Такие характеристики являются более "рельефными" для литературных текстов и менее "рельефными" для формализованных электронных текстов. Чем менее рельефно распределение знаков текста, тем сложнее задача вскрытия шифра простой замены. Для открытых текстов с "почти равномерным" распределением знаков эта задача становится практически не решаемой. Это следует учитывать и не питать иллюзий о простоте вскрытия простой замены, о которой часто упоминается в популярных книгах по защите информации. Методы "рандомизации" или "сжатия" открытых текстов, например, с использованием компьютерных архиваторов значительно усложняют задачу вскрытия шифра простой замены.
Как будет ясно из дальнейшего, рельефность диаграммы текста тесно связана с такой его важной теоретико-информационной характеристикой, как избыточность. Далее мы будем решать задачу вскрытия простой замены лишь при условии, что предполагаемые открытые тексты – это литературные тексты с "приличной" избыточностью. Кроме того, мы будем считать, что при дешифровании мы располагаем достаточно большим числом знаков шифртекста, чтобы опираться не на "фокусы", использованные, например, в известных произведениях Э. А. По и А. Конан Дойля, а в большей степени на "статистику".
Алгоритм вскрытия простой замены по тексту криптограммы достаточно сложно формализовать. При любой попытке формализации теряется какой-нибудь важный нюанс. Поэтому мы укажем лишь основные идеи, лежащие в основе такого алгоритма. Обычно выделяют следующие этапы алгоритма:
Алгоритм 1
1. Подсчет частот встречаемости шифробозначений, а также некоторых их сочетаний, например биграмм и триграмм подряд идущих знаков.
2. Выявление шифробозначений, заменяющих гласные и согласные буквы.
3. Выдвижение гипотез о значениях шифробозначений и их проверка. Восстановление истинного значения шифробозначений.
Сделаем ряд замечаний и уточнений. Если длина текста достаточно велика, то найденные на этапе I частоты окажутся близкими к табулированным значениям частот знаков (соответственно – биграмм или триграмм). Проведенная на этом этапе работа служит основанием для выдвижения гипотез о значениях шифрвеличин, соответствующих данным шифробозначениям. При этом учитывается, что каждая буква имеет группу предпочтительных связей, которые составляют ее наиболее характерную особенность. Как правило, такие гипотезы подтверждаются не полностью. Хорошим критерием при этом является "читаемость" восстанавливаемого открытого текста. Выделение шифробозначений, отвечающих гласным и согласным, основано на характерных свойствах этих букв. Добавим к ним следующие соображения (относимые к большинству европейских языков). Если шифробозначение часто встречается, равномерно располагается по шифртексту, в отдельных местах чередуется через 1, 2 или 3 знака, сочетается со средними и редкими (по частоте) шифробозначениями, то это дает основания полагать, что такое шифробозначение скрывает гласную букву. Удвоение гласных в открытом тексте происходит реже, чем согласных. Если некоторое шифробозначение признано гласной, то буква, часто сочетающаяся с ней, скорее всего согласная. В открытом тексте чрезвычайно редко встречаются три и более подряд идущие гласные. Четыре и более подряд идущие согласные также редки. Важно учитывать также процентное соотношение чисел гласных и согласных в открытом тексте.
При проверке гипотез о значениях шифробозначений полезен поиск в шифртексте слов с характерной структурой, которые часто встречаются в открытом тексте. Для русского языка – это, например, слова сколько, которое, что и т. п. Для английского языка – слова every, that, look, the и т.п. Такие слова выделяются в шифртексте посредством интервалов между повторяющимися частыми буквами, характерными сочетаниями гласных и согласных.
Если с помощью приведенных соображений произведено несколько идентификаций шифробозначений, то дальнейшая работа по вскрытию текста криптограммы не представляет особого труда.
Задача дешифрования еще более упрощается, если известно, что использовался сдвиговый или аффинный шифр. Так, для аффинного шифра бывает достаточно идентифицировать лишь пару шифробозначений с тем, чтобы полностью восстановить открытый текст.
Из наших рассмотрений становится понятным, что наиболее трудно формализуемым фрагментом алгоритма 1 является проверка выдвигаемых гипотез о значениях шифробозначений. Трудность состоит в формулировке критерия, подтверждающего или отвергающего ту или иную гипотезу. Приведем эвристический алгоритм дешифрования.
Мерой близости служит следующая "целевая функция" f(t), связывающая матрицы (t) и В:
(1)
Будем исходить из того естественного предположения, что если у – данная криптограмма и Dk – правило расшифрования на ключе k данного шифра простой замены, то для истинного ключа ku значение
должно быть минимальным.
Идея основного шага алгоритма состоит в том, чтобы исходя из некоторого первичного "приближения" k для ключа ku, основанного, например, на диаграмме частот букв, немного его изменять неким "разумным" способом, уменьшая значение целевой функции f(t).
Приведем теперь формальное описание алгоритма.
Алгоритм 2
1. Построить начальный вариант ключа k на основе сравнения частот знаков криптограммы и открытого текста.
2. Положить v = f(Dk(у)).
3. Положить k'= k.
4. Поменять местами в нижней строке подстановки k' некоторую пару букв, скажем а и .
5. Положить v'=f(Dk(y)).
6. Если v' < v, то положить k = k', v'=v и перейти к 4.
7. Перейти к шагу 3.
Алгоритм заканчивается, когда условие v'<v не выполняется в течение некоторого числа итераций, например 100.
Переход на шаге 4 от k к k', связанный с транспозицией пары символов, имеет под собой следующее основание. На шаге 5 вычисляется величина
где 1(t) – матрица, полученная из матрицы (t) путем перестановки в ней столбцов с номерами а и , а также строк с теми же номерами.
В силу отмеченного свойства на шаге 5 алгоритма не нужно проводить трудоемкую операцию вычисления матрицы биграмм ij(Dk(y)) непосредственно по "расшифрованному" тексту Dk(y). Достаточно вычислить лишь матрицу (Dk(у)), а на следующих шагах алгоритма производить в ней одноименные перестановки строк и столбцов.
Выбор транспозиции (a, ) на шаге 4 можно производить, например, следующим естественным образом. Пусть s=(s1,s2,...,sn) – вектор, образованный буквами криптограммы, упорядоченными по убыванию частот. Тогда последовательность транспозиций можно выбрать такой:
(s1,s2), (s2,s3),…,(sn-2,sn-1), (sn-1,sn),
(s1,s3), (s2,s4),…,(sn-2,sn),
………………………………
(s1,sn).
Алгоритм 2 является достаточно эффективным.
Отметим некоторые особенности вскрытия равнозначных и разнозначных шифров простой замены.
Если шифр простой замены не является однобуквенным, то при вскрытии криптограммы необходимо попытаться восстановить множество шифрвеличин. Если эта задача решена, то дальнейшая работа ничем не отличается от той, которую мы проделали для шифра однобуквенной простой замены.
Заметим, что в литературных открытых текстах часто встречаются повторения фрагментов, состоящих из трех и большего числа букв. При применении к тексту шифра простой замены соответствующие повторения остаются и в шифрованном тексте. Если в криптограмме встретилось несколько повторений, то их успешно можно использовать для определения значности шифробозначений.
Очевидно, что для равнозначного шифра простой замены длины повторений и расстояния между ними должны быть кратны значности шифра. Находя наибольший общий делитель этих чисел, мы с большой вероятностью получаем искомую значность. Некоторые сомнения в правильности определения значности помогает устранить подсчет общего числа шифробозначений. Если это число близко к ожидаемому числу шифробозначений (скажем, к числу букв алфавита), и диаграмма их повторяемости близка к табличной, то, скорее всего, значность определена верно.
Для разнозначного шифра дело обстоит несколько сложнее. В этом случае числа, равные длинам повторений и расстояниям между ними, скорее всего, взаимно просты в совокупности. Однако и для таких шифров задача определения множества шифробозначений не безнадежна. В этом помогает естественное ограничение, которым обычно пользуются при составлении таблицы шифробозначений. Оно связано с требованием однозначности расшифрования и заключается в том, чтобы ни одно из шифробозначений не являлось началом никакого другого шифробозначения (в теории кодирования в подобной ситуации говорят о префиксном коде). Если значность шифробозначений колеблется в незначительных пределах, то перебор сравнительно небольшого числа вариантов приводит (с учетом ограничения) к правильному определению большинства шифробозначений. Некоторые затруднения могут возникать лишь при определении значности шифробозначений, редко встречающихся в тексте. Как правило, эти проблемы решаются вместе с попытками прочтения тех участков криптограммы, для которых восстановленная значность шифробозначений не вызывает сомнений.
Увеличение значности шифробозначений делает шифр неэкономным, поэтому получили распространение шифры, использующие одно- и двузначные шифробозначения, подобные рассмотренному выше в примере цифровому шифру. Понятно, что для таких шифров наибольшую повторяемость в шифртексте имеют цифры, с которых начинаются двузначные шифробозначения. Выдвигая гипотезы о таких цифрах и отмечая в шифртексте соответствующие двузначные шифробозначения, можно восстановить и однозначные шифробозначения, оказавшиеся в шифртексте между некоторыми двузначными шифробозначениями. Дальнейшая работа по вскрытию открытого текста для разнозначного шифра ничем не отличается от уже знакомой нам работы для однобуквенной простой замены.
- Криптографическая защита информации
- Оглавление
- Раздел 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. Шифрсистемы на основе "проблемы рюкзака"