Математики, шпионы и хакеры. Кодирование и криптография
Шрифт:
Диск Альберти, используемый Конфедерацией во время американской гражданской войны.
В результате наша фраза превратится в WGQM AOKQ ESNU. При этом повторяющиеся буквы исходного сообщения исчезнут. Однако каждый криптограф стремится к тому, чтобы генерировать шифры, которые легко запомнить, распространять и обновлять. Тогда стали брать ключевые слова с таким же или меньшим количеством букв, что и в исходном сообщении, чтобы строить более короткие и легкие в использовании квадраты Виженера. Ключевое слово дает первые буквы каждой строки (см. стр. 47), и строки продолжаются остатком алфавита (как они представлены
* * *
ДИПЛОМАТ И КРИПТОГРАФ
Блез де Виженер родился во Франции в 1523 г. В 1549 г. он был послан французским правительством с дипломатической миссией в Рим, где заинтересовался криптографией и шифрованием сообщений. В 1585 г. он написал основополагающий трактат о шифрах, Traicte des Chiffres, где описывалась система шифрования, которой он дал свое имя. Эта система шифрования оставалась неподдающейся взлому на протяжении почти трех столетий, пока британцу Чарльзу Бэббиджу не удалось взломать ее в 1854 г. Любопытно, что этот факт стал известен лишь в XX в., когда группа ученых разбирала вычисления и личные заметки Бэббиджа.
* * *
Например, если мы хотим зашифровать сообщение BUY MILK TODAY («Купи сегодня молоко») с помощью ключевого слова JACKSON:
Зашифрованное сообщение будет KUAWAZXCOFKQ.
Квадрат Виженера со строками, определенными ключевым словом JACKSON.
Как и в случае всех классических систем шифрования, расшифрованный текст сообщения, зашифрованного с помощью квадрата Виженера, является симметричным исходному тексту. Например, пусть у нас есть зашифрованное сообщение WZPKGIMQHQ, и мы знаем, что использовалось ключевое слово WINDY:
Давайте посмотрим на первый столбик. Мы хотим найти неизвестную букву «?», зная, что (? W) = W. Для этого мы посмотрим на строку W квадрата Виженера на стр. 44, найдем в этой строке букву W и определим, какому столбцу она соответствует; получим букву А. Аналогично мы ищем вторую букву «?», зная, что (? I) = Z, и получаем букву R и так далее. Таким образом мы получим исходное сообщение ARCHIMEDES («Архимед»).
Историческое значение квадрата Виженера, которое он разделяет и с другими полиалфавитными шифрами, например, с шифром Гронсфельда (разработанным примерно в то же время; мы приводим его подробное описание в Приложении), состоит в устойчивости к частотному анализу. Если одна и та же буква может быть зашифрована несколькими способами с возможностью тем не менее ее впоследствии расшифровать, как же можно такой шифр взломать? Этот вопрос оставался без ответа более 300 лет.
Хотя на это потребовалось почти восемь веков, полиалфавитные шифры, такие как квадрат Виженера, наконец-то переиграли частотный анализ. Однако моноалфавитные шифры, несмотря на свои слабые стороны, имели особое преимущество: простоту реализации. Криптографы посвятили себя совершенствованию алгоритмов, наполняя их трюками, но принципиально они продолжали использовать ту же идею, что и для простейших шифров.
Одним из наиболее успешных вариантов моноалфавитного шифра был так называемый однозвучный шифр подстановки, который пытался защититься от методов статистического криптоанализа, заменяя буквы с наибольшей частотой появления несколькими разными символами. Например, частота появления буквы Е в среднем составляет 10 % в любом языке. Однозвучный шифр подстановки пытался изменить эту частоту, заменяя
Время все же не стояло на месте. Образование больших национальных государств и развитие дипломатии вызвали заметное возрастание требований к безопасности коммуникации. Эта тенденция еще больше усилилась с появлением новых коммуникационных технологий, таких как телеграф, в результате чего значительно увеличилось количество передаваемых сообщений. В европейских странах были созданы так называемые «черные кабинеты», где кодировалась самая конфиденциальная корреспонденция и расшифровывались перехваченные сообщения врагов.
Экспертные возможности «черных кабинетов» вскоре сделали небезопасными любые формы одноалфавитного шифра подстановки, как бы он ни модифицировался.
Мало-помалу ведущие игроки на поле обмена информацией избирали полиалфавитные алгоритмы. Утратив свое самое мощное оружие, частотный анализ, криптоаналитики в очередной раз оказались беззащитными перед натиском криптографов.
* * *
КРИПТОГРАФЫ КОРОЛЯ-СОЛНЦА
Хотя мало кто за пределами королевского двора Людовика XIV знал об их существовании, Антуан и Бонавентура Россиньоль принадлежали к числу самых грозных людей Европы во времена социальных потрясений XVII в. Они обладали незаурядным криптографическим талантом, что позволяло им расшифровывать письма врагов Франции (и личных врагов монарха). Они разработали Grande Chiffre (Великий шифр), сложный алгоритм замены слогов, используемый для шифрования самых важных писем короля. После смерти Россиньоль шифр вышел из употребления и считался невзламываемым. Лишь в 1890 г. специалист по криптографии, отставной солдат Этьен Базарье взял на себя трудоемкую задачу расшифровки документов и после многих лет напряженной работы смог прочитать секретные послания Короля-Солнца.
Людовик XIV, портрет работы Миньяра
Анонимный криптоаналитик
Английский математик Чарльз Бэббидж (1791–1871) был одним из самых выдающихся научных деятелей XIX в. Он изобрел механический компьютер, названный разностной машиной, далеко опередив свое время, и в сферу его интересов входили все отрасли математики и технологии того века. Бэббидж решил применить свои знания к расшифровке полиалфавитных алгоритмов, в первую очередь квадрата Виженера (см. стр. 44 и 47). Он сосредоточил внимание на одной особенности этого шифра. Напомним, что в случае шифра Виженера длина выбранного ключевого слова определяла количество используемых шифроалфавитов. Таким образом, если ключевое слово было WALK, каждая буква исходного сообщения могла быть зашифрована четырьмя разными способами. То же самое справедливо и для слов. Эта особенность и была ключевой зацепкой для Бэббиджа, позволившей ему взломать полиалфавитный шифр. Рассмотрим следующий пример, где сообщение зашифровано с помощью квадрата Виженера.
Наше внимание сразу привлекает то, что слово BY исходного сообщения шифруется в обоих случаях одинаково — XY. Это связано с тем, что второй раз BY встречается после восьми символов, а восемь кратно количеству букв (четыре) в ключевом слове (WALK). Обладая этой информацией и имея достаточно длинный исходный текст, можно догадаться, какова длина ключевого слова. Процедура заключается в следующем: вы отмечаете все повторяющиеся символы и записываете, через сколько позиций они повторяются. Затем вы находите все делители этих чисел. Общие делители и являются кандидатами на длину ключевого слова.
Предположим, что наиболее вероятный кандидат — число 5, потому что это общий делитель, который встречается чаще всего. Теперь мы попытаемся догадаться, каким буквам соответствует каждая из пяти букв ключевого слова. Как мы помним, каждая буква ключевого слова в квадрате Виженера определяет моноалфавитный шифр для соответствующей буквы в исходном сообщении. В случае нашего гипотетического ключевого слова из пяти букв (C1, С2, СЗ, С4, С5) шестая буква (С6) шифруется тем же алфавитом, что и первая буква (С1), седьмая (С7) — тем же, что и вторая (С2), и так далее. Поэтому на самом деле криптоаналитик имеет дело с пятью отдельными моноалфавитными шифрами, каждый из которых уязвим для традиционного криптоанализа.