Вскрытие шифра Вижанэра
При вскрытии шифра Вижанэра следует прежде всего определить длину ключа. Допустим, что в нашем распоряжении имеется достаточно длинный шифрованный текст. Тогда нам следует найти повторяющиеся сочетания букв, так называемые полиграфы, и отметить расстояния между ними. Если эти повторы не случайные, то есть если под ними скрывается один и тот же открытый текст, то они отстоят друг от друга на расстояние, кратное длине ключа. Таким образом мы определяем длину ключа или, по крайней мере, сводим ее к небольшому числу вариантов. Чем длиннее повторяющиеся полиграфы, тем лучше ситуация для криптоаналитика. Но в данном случае полезными могут оказаться даже диграфы, то есть двухбуквенные сочетания.
Пример 3.1
Дано сообщение длиной 157 знаков, закрытое шифром Вижанэра, причем пробелы в открытом тексте заменены на букву Z:
HQEOT FNMKP ELTEL UEZSI KTFYG STNME GNDGL
PUJCH QWFEX FEEPR PGKZY EHHQV PSRGN YGYSL
EDBRX LWKPE ZMYPU EWLFG LESVR PGJLY QJGNY
GYSLE XVWYP SRGFY KECVF XGFMV ZEGKT LQOZE
LUIKS FYLXK HQWGI LF
Требуется
Найти длину ключа.
Найти ключ и дешифровать сообщение.
Решение
Анализируя текст, мы находим, что шесть диграфов встречаются не менее трех раз, а именно:
EL на позициях 11, 14 и 140;
FY на позициях 23, 119 и 146;
GN на позициях 31, 64 и 103;
HQ на позициях 1, 40, 58 и 151;
LE на позициях 70, 91 и 109;
YG на позициях 24, 66 и 105.
Дальнейшее исследование показывает, что диграф GN на позициях 64 и 103 в обоих случаях является началом восьмибуквенного повторения ("октографа"):
GNYGYSLE
(эти буквы в приведенном выше тексте подчеркнуты).
Случайное появление восьмибуквенного повторения крайне маловероятно*). Поэтому мы заключаем, что под ним наверняка скрывается повторение открытого текста. Найдем расстояние между этими октографами, которое равно (103-64)=39. Поскольку 39=313, мы предполагаем, что длина ключа равна либо 3, либо 13. Теперь рассмотрим расстояния между другими повторяющимися диграфами, например, следующими:
EL на позициях 11, 14 и 140 дает расстояния 3 и 126(=342);
HQ на позициях 1, 40, 58 и 151 дает расстояния 39, 18 и 93, и все они кратны 3.
Это указывает на то, что, скорее всего, наиболее вероятной длиной ключевого слова является число 3.
Допустим, что это так. Тогда нашим следующим шагом будет поиск ключа.
Мы предполагаем, Что используются три сдвига: первый сдвиг применяется к буквам 1-й, 4-й, 7-й, и т.д.; второй сдвиг - к буквам 2-й, 5-й, 8-й, и т.д.; третий сдвиг - к буквам 3-й, 6-й, 9-й и т.д. Поэтому выпишем шифрованное сообщение в три колонки и подсчитаем частоту встречаемости букв шифрованного текста в каждой из этих трех колонок: в результате получим Таблицу 3.1. Складывая частоты построчно, получаем суммы, равные соответственно 53, 52 и 52. Если бы буквы были распределены равновероятно, то каждая из частот должна была бы примерно равняться 2, но в нашем случае логично ожидать разброса частот от 0 до 5 или 6. Разумеется, распределение частот далеко от равновероятного, поскольку каждая отдельно взятая колонка состоит из букв открытого текста, сдвинутых на одну и ту же величину. В данном случае следует сосредоточиться на поиске букв с аномально высокой частотой встречаемости, чтобы определить буквы, отвечающие знакам пробелов 'Z' в данных трех строчках таблицы. Отметим, что в первой строчке буква G встречается 13 раз, а после нее самой частой является буква L - она встречается 7 раз. Если G представляет собой зашифрованный знак Z, то сдвиг для первой строчки равен 7, и тогда L отвечает зашифрованной букве E, так как она отстоит от E на 7 позиций в алфавите. Поскольку E - часто встречающаяся буква, то наше предположение , что первый сдвиг равен 7, подтверждается. Таким образом, первый элемент ключа равен 7.
Таблица 3.1
Буквы | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
Первый сдвиг | 0 | 1 | 0 | 0 | 0 | 3 | 13 | 4 | 0 | 0 | 1 | 7 | 1 | 2 | 1 | 5 | 0 | 0 | 2 | 2 | 4 | 4 | 0 | 0 | 2 | 1 |
Второй сдвиг | 0 | 0 | 0 | 0 | 13 | 6 | 0 | 0 | 3 | 2 | 2 | 1 | 2 | 3 | 0 | 0 | 6 | 3 | 3 | 1 | 0 | 0 | 2 | 1 | 3 | 1 |
Третий сдвиг | 0 | 0 | 2 | 2 | 4 | 1 | 1 | 1 | 0 | 1 | 5 | 5 | 1 | 0 | 1 | 4 | 0 | 2 | 3 | 2 | 0 | 1 | 3 | 4 | 6 | 3 |
Мы видим, что во второй строчке буква E встречается 13 раз, и значит, с большой долей уверенности можно предположить, что E - это шифрованный эквивалент буквы Z; отсюда следует, что второй сдвиг равен 5. В этой строчке самыми частыми после E будут буквы шифрованного текста F и Q, каждая из которых встречается 6 раз. Сдвигая их на 5 позиций назад, мы видим, что в открытом тексте им отвечают соответственно буквы A и L, что выглядит обнадеживающе. С другой стороны, буква открытого текста E в таком случае переходит в J. Данная буква шифрованного текста встречается во второй строчке лишь дважды, хотя можно было бы ожидать, что она должна встретиться 5 раз, так как в типичных образцах английского текста на E приходится около 10% всех букв. Эти данные, хотя и не убеждают нас окончательно, но в итоге указывают на то, что второй элемент ключа, возможно, равен 5.
В третьей строчке буквы, имеющие аномально высокую частоту, отсутствуют, а наилучшими кандидатами на роль шифрованного эквивалента буквы Z являются Y, K и L, которые встретились 6, 5 и 5 раз соответственно. Мы могли бы последовательно опробовать каждый из этих вариантов. Но есть альтернативный подход: выпишем начало шифрованного текста, опуская пробелы, стоящие после каждой пятизначной группы. Для каждой тройки знаков расшифруем первую и вторую буквы, используя предполагаемые сдвиги на 7 и на 5. Третий знак в каждой тройке заменим на знак "/". Теперь посмотрим, нельзя ли доопределить какие-нибудь слова с пропусками и таким образом вычислить третий элемент ключа. Тогда мы получаем:
Шифрованный текст: HQEOTFNMKPELTELUEZSIKTFYGSTNMEGNDGLPUJCHQWFEXFEEPR
Открытый текст: AL/HO/GH/I /M /N /LD/MA/ N/GH/ I/ G/NE/AL/Y /Y /IM
Первое слово похоже на слово ALTHOUGH. И если это так, то буква открытого текста T переходит в знак шифрованного текста E. Поскольку E стоит в алфавите на 11‑й позиции после буквы T, или, что то же самое, на 15‑й позиции до нее, то отсюда следует, что величина сдвига равна 11. Тогда пробелу, то есть букве Z, в шифрованном тексте соответствует буква K, что и было одним из наших предположений. Делаем вывод, что третий элемент ключа равен 11. Итак, ключ зашифрования состоит из трех чисел, а именно 7‑5‑11, и следовательно, ключ расшифрования равен 19‑21‑15. Расшифровав весь текст, мы окончательно убеждаемся в этом:
ALTHOUGH I AM AN OLD MAN NIGHT IS GENERALLY MY TIME FOR WALKING IN THE SUMMER I OFTEN LEAVE HOME EARLY IN THE MORNING AND ROAM ABOUT FIELDS AND LANES ALL DAY
(этими словами начинается первая глава книги Диккенса "Лавка древностей"; знаки препинания здесь опущены).
Хотя вскрыть многоалфавитную систему Юлия Цезаря сложнее, чем простую, им обеим присущ один и тот же недостаток: как только в сдвинутом алфавите найдено шифрованное обозначение для "пробела" или для любой другой часто встречающейся буквы, мы немедленно получаем 25 оставшихся букв алфавита. И даже если в одном или нескольких алфавитах мы не можем с уверенностью определить шифрованное обозначение "пробела", то, возможно, информации о некоторых буквах в неполных словах будет достаточно, чтобы восстановить их, и таким образом, получить полный текст сообщения, как это мы проделали в вышеприведенном примере. От этого недостатка можно избавиться, если вместо алфавитов с обычным порядком букв, сдвинутых на различное число позиций согласно ключу, использовать некоторое множество независимых друг от друга алфавитов с различным порядком букв. Однако эта модификация создает две новые проблемы, а именно:
как получить такие алфавиты?
как сообщить такие перетасованные алфавиты адресатам, для которых они предназначены, и при этом не выдать их противнику?
Эти проблемы имеют огромное значение. Ибо, если для получения "перетасованного" алфавита используется очень простой прием, как, например, в шифре Юлия Цезаря, то криптоаналитик быстро разгадает этот прием, и тем легче станет для него дешифрование. С другой стороны, адресат должен знать, какие именно алфавиты используются, или же способ, которым их можно получить. Существует целый ряд способов решения обеих этих проблем, и некоторые из них будут позже рассмотрены. Здесь же будут описаны два возможных способа решения проблемы (2). Прежде всего введем два термина, имеющие отношение к криптографическим системам вообще.
- Глава 1. Введение 10
- Глава 9. Шифрмашина "Энигма" 130
- Глава 10. Шифрмашина "Хагелин" 152
- Глава 11. После "Энигмы" 172
- Глава 12. Криптография с открытым ключом 179
- Глава 13. Шифрование и Интернет 188
- Предисловие
- Глава 1. Введение Некоторые аспекты безопасности связи
- Шифр Юлия Цезаря
- Несколько основных определений
- Три этапа дешифрования: идентификация, взлом системы и вскрытие ключей.
- Коды и шифры
- Оценка стойкости системы шифрования
- Коды, обнаруживающие и исправляющие ошибки
- Другие методы сокрытия содержания сообщений
- Модульная арифметика
- Модульное сложение и вычитание букв
- Заключение
- Глава 2. От Юлия Цезаря до простой замены Шифры Юлия Цезаря и их вскрытие
- Шифры простой замены
- Вскрытие шифра простой замены
- Частоты встречаемости букв в других языках, кроме английского
- Сколько знаков необходимо для дешифрования простой замены?
- Глава 3. Многоалфавитные системы Усиление системы Юлия Цезаря: шифры Вижанэра
- Вскрытие шифра Вижанэра
- Индикаторы
- Одноключевые сообщения
- Распознавание одноключевых сообщений
- Какой объем текста необходим для дешифрования шифра Вижанэра?
- Цилиндр Джефферсона
- Глава 4. Шифры-головоломки
- Перестановки
- Простая перестановка
- Двойная перестановка
- Другие виды перестановок
- Регулярные перестановочные таблицы
- Нерегулярные перестановочные таблицы
- Оценка стойкости шифров перестановки
- Общая концепция двойного шифрования
- Глава 5. Двухбуквенные шифры
- Замена "монограф-диграф"
- Мдпм-шифры
- Система "диграф-диграф"
- Шифр Плейфера*)
- Расшифрование в системе Плейфера
- Криптоаналитические аспекты системы Плейфера
- Двойной шифр Плейфера
- Глава 6. Коды Характеристики кодов
- Одночастевые и двухчастевые коды
- Код плюс аддитивное шифрование
- Глава 7. Шифры для шпионов
- Шифры-решетки
- Книжные шифры
- Использование книжного шифра
- Частоты встречаемости букв в книжных шифрах
- Вскрытие книжного шифра
- Индикаторы
- Катастрофические ошибки при использовании книжного шифра
- Шифры "агента Гарбо"
- Первый шифр "агента Гарбо"
- Второй шифр "агента Гарбо"
- Одноразовый блокнот
- Глава 8. Получение случайных чисел и букв Случайные последовательности
- Получение случайных последовательностей
- Бросание монеты
- Бросание костей
- Извлечение из урны (по типу лотереи)
- Космические лучи
- Шум от усилителей
- Псевдослучайные последовательности
- Линейные рекурренты
- Использование последовательности двоичных знаков гаммы для шифрования
- Двоичные линейные последовательности как генераторы гаммы
- Криптоанализ линейной рекурренты
- Повышение стойкости двоичной гаммы
- Генераторы псевдослучайных чисел
- Метод срединных квадратов
- Линейные конгруэнтные генераторы
- Глава 9. Шифрмашина "Энигма" Историческая справка
- Первая "Энигма"
- Шифрование с использованием контактных колес
- Шифрование в "Энигме"
- Коммутатор "Энигмы"
- Ахиллесова пята "Энигмы"
- Цепочки индикаторов в "Энигме"
- Выравнивание цепочек
- Идентификация колеса r1 и его угловой установки
- Двойное шифрование в "Энигме"
- "Энигма" Абвера
- Глава 10. Шифрмашина "Хагелин" Историческая справка
- Конструкция шифрмашины «Хагелин»
- Шифрование при помощи шифрмашины "Хагелин"
- Выбор установок барабана в шифрмашине "Хагелин"
- Теоретический объем перебора для шифрмашины "Хагелин"
- Вскрытие установок "Хагелина" по отрезку гаммы
- Дополнительные возможности шифрмашины "Хагелин"
- Смещение
- Определение смещения по шифрованному тексту
- Перекрытия
- Вскрытие шифрмашины "Хагелин" только по шифрованному тексту
- Глава 11. После "Энигмы" sz42 - предтеча электронных машин
- Описание шифрмашины sz42
- Шифрование в машине sz42
- Вскрытие шифрмашины sz42 и определение ее угловых установок
- Модификации шифрмашины sz42
- Глава 12. Криптография с открытым ключом Историческая справка
- Вопросы безопасности
- Защита программ и данных
- Шифрование программ, данных и сообщений
- Задача распределения ключей
- Система ключевого обмена Диффи-Хеллмана
- Стойкость системы Диффи-Хеллмана
- Глава 13. Шифрование и Интернет Обобщение шифра простой замены
- Факторизация больших целых чисел
- Стандартный метод факторизации
- Малая теорема Ферма
- Теорема Ферма-Эйлера (для случая системы rsa)
- Ключи зашифрования и расшифрования в системе rsa
- Процессы зашифрования и расшифрования в системе rsa
- Каким образом хозяин ключей отвечает корреспондентам?
- Американский Стандарт Шифрования Данных (des)*)
- Общие сведения
- Процедура зашифрования
- Процедура расшифрования
- Стойкость des-алгоритма
- Зацепление
- Реализации des-алгоритма
- Совместное использование алгоритмов rsa и des
- Полезное замечание
- После des-алгоритма
- Проверка подлинности сообщения и удостоверение подлинности подписи
- Криптография эллиптической кривой
- Приложение. Математические вопросы Глава 2 м1. Совпадения знаков в алфавитах замены
- М2. Снижение стойкости при использовании взаимно-обратных алфавитов
- M3. Парадокс дней рождения
- Глава 3 м4. Евклидово доказательство бесконечности множества простых чисел
- Глава 6 м5. Последовательность чисел Фибоначчи
- Глава 7 м6. Частота встречаемости букв для книжного шифра
- М7. Одноразовый блокнот дешифровать невозможно
- Глава 8 м8. Частота появления случайных чисел на странице
- М9. Комбинирование двух последовательностей двоичных знаков гаммы, имеющих отклонения
- М10. Последовательность типа Фибоначчи
- М11. Двоичные линейные рекурренты
- M12. Восстановление двоичной линейной рекурренты по отрезку гаммы
- М13. Получение псевдослучайных чисел
- Глава 9 м14. Распайка колёс шифрмашины "Энигма"
- М15. Число возможных отражателей шифрмашины "Энигма"
- М16. Вероятность одноключевых сообщений для "Энигмы"
- М17. Среднее число индикаторов, необходимое для построения полных цепочек
- Глава 10 м18. Число возможных барабанов шифрмашины "Хагелин"
- М19. Максимальная кратность значения зацепления, которая может встретиться при вычислении разности гаммы шифрмашины "Хагелин"
- M20. Определение смещения шифрмашины "Хагелин" с помощью коэффициента корреляции
- Глава 13 m21. (Порядок роста количества простых чисел)
- M22. Вычисление остатка с использованием модульной арифметики
- М23. Доказательство теоремы Ферма-Эйлера
- М24. Нахождение чисел, "предположительно" являющихся простыми
- M25. Алгоритм Евклида
- М26. Эффективность возведения в степень методом последовательного возведения в квадрат
- М27. Число ложных ответов при дешифровании des-алгоритма методом "встречного поиска "
- М28. Криптография эллиптической кривой
- Решения задач Глава 2
- Глава 3
- Глава 4
- Глава 5
- Глава 6
- Глава 7
- Глава 8
- Глава 9
- Глава 10
- Глава 11
- Глава 13
- Литература
- Глава 1
- Глава 2
- Глава 3
- Глава 4
- Глава 5
- Глава 6
- Глава 7
- Глава 8
- Глава 9
- Глава 10
- Глава 11
- Глава 12
- Глава 13