Книга шифров. Тайная история шифров и их расшифровки - Сингх Саймон. Страница 31

Если бы телеграмма никогда не была перехвачена или никогда не напечатана, немцы все равно сделали бы что-нибудь еще, что в конце концов втянуло бы нас в войну. Но было уже поздно, и если бы мы задержались еще немного, союзники могли бы оказаться вынуждены пойти на переговоры. Вот до какой степени телеграмма Циммермана изменила ход истории… Сама по себе телеграмма Циммермана — всего лишь камешек на длинном пути истории. Но камнем можно убить Голиафа, и этот камень разрушил американскую иллюзию, что мы можем успешно заниматься своим делом независимо от других государств и народов. В мировом масштабе это была незначительная интрига министра Германии. В жизни американского народа это был конец невинности.

Святой Грааль криптографии

Первая мировая война продемонстрировала ряд побед криптоаналитиков; венцом стало дешифрование телеграммы Циммермана. С момента взлома шифра Виженера в девятнадцатом веке криптоаналитики постоянно одерживали верх над криптографами.

Но к концу войны, когда криптографы пребывали в полном отчаянии, ученые в Америке сделали поразительное открытие. Они обнаружили, что шифр Виженера может быть использован в качестве основы для нового, гораздо более труднопреодолимого вида шифрования. На самом деле этот новый шифр мог обеспечить абсолютную стойкость.

Основная слабость шифра Виженера заключается в том, что ему присуща периодичность. Если длина ключевого слова составляла пять букв, то каждая пятая буква открытого текста шифровалась с использованием одного и того же шифралфавита. Если криптоаналитик мог определить длину ключевого слова, то с зашифрованным текстом можно было поступать как с набором пяти одноалфавитных шифров, и каждый из них мог быть дешифрован с помощью частотного анализа. Посмотрим, однако, что произойдет по мере увеличения длины ключевого слова.

Допустим, что у нас есть открытый текст, состоящий из 1 000 букв и зашифрованный с помощью шифра Виженера; проведем криптоанализ имеющегося шифртекста. Если длина ключевого слова, используемого для шифрования открытого текста составляет всего 5 букв, то на завершающем этапе криптоанализа потребуется провести частотный анализ 5 наборов из 200 букв, что не представляеттруда. Но если ключевое слово состоит из 20 букв, то на завершающем этапе необходимо будет провести частотный анализ 20 наборов из 50 букв, что уже значительно сложнее. Если же ключевое слово состоит из 1000 букв, то вы столкнетесь с тем, что придется провести частотный анализ 1000 наборов, каждый из которых состоит из 1 буквы, что совершенно невыполнимо. Другими словами, если длина ключевого слова (или ключевой фразы) совпадает с длиной сообщения, то криптоаналитический метод, разработанный Бэббиджем и Касиски не работает.

Так что когда применяется ключ той же длины, что и сообщение, то все хорошо и прекрасно, правда, это требует от криптографа создания длинного ключа. Так что если сообщение состоит из сотен букв, то и длина ключа также должна составлять сотни букв. Однако чем придумывать длинный ключ, невольно напрашивается мысль использовать в качестве него, ну, скажем, лирическое стихотворение. Или же криптограф может приобрести книгу по ловле птиц и создать ключ на основе нескольких случайно выбранных названий птиц. Но такие упрощенные ключи по своей сути порочны.

В следующем примере я зашифровал отрывок текста с помощью шифра Виженера, используя ключевую фразу такой же длины, что и сообщение. Применение любых методов криптоанализа, о которых я писал раньше, окажется безуспешным. Но сообщение все же можно дешифровать.

Книга шифров. Тайная история шифров и их расшифровки - _50.jpg

Этот новый способ криптоанализа начинается с предположения, что в шифртексте содержатся общеупотребительные слова, к примеру, the. Далее, как показано ниже, мы произвольным образом подставляем the в различные места в открытом тексте и определяем, какими должны быть буквы ключа, чтобы преобразовать the в соответствующий шифртекст. Итак, мы решили, что the будет являться первым словом открытого текста. Первая буква ключа будет зашифровывать t в V. Чтобы определить первую букву ключа, возьмем квадрат Виженера и будем двигаться сверху вниз по столбцу, начинающемуся с буквы t, пока не дойдем до V; буква, с которой начинается эта строка — С. Повторим этот процесс для h и е, которые были зашифрованы как Н и R соответственно; в конечном счете мы получим возможные значения первых трех букв ключа — CAN. Все это получено в предположении, что слово the является первым словом открытого текста. Подставим the в несколько других мест и вновь поищем соответствующие буквы ключа. (Вы можете проверить соответствие между каждой буквой открытого текста и буквой шифртекста, обратившись к квадрату Виженера в таблице 9.)

Книга шифров. Тайная история шифров и их расшифровки - _51.jpg

Мы проверили три слова the в трех произвольно выбранных местах шифртекста и выдвинули три предположения относительно элементов определенных частей ключа. Можем ли мы сказать, что какое-нибудь из слов the стоит в нужном месте? Мы предполагаем, что ключ состоит из осмысленных слов; попробуем использовать это в наших целях. Если the стоит не на своем месте, то это приведет, скорее всего, к тому, что ключ будет состоять из хаотичного набора букв. Если же оно стоит в нужном месте, то буквы ключа должны иметь какой-то смысл. Например, первое the дает буквы ключа CAN, что обнадеживает, поскольку это вполне нормальный английский слог. Так что возможно, что это слово the стоит на своем месте. Второе the дает BSJ, — весьма странное сочетание согласных, что позволяет предположить, что второе the, скорее всего, неверно. Для третьего the получается YPT, — редко встречающийся слог, но ею все же стоит проверить. Если YPT действительно является частью ключа, то оно должно находиться внутри более длинного слова; такими словами могут быть только APOCALYPTIC, CRYPT и EGYPT и производные от этих слов. Как мы сможем определить, является ли одно из этих слов частью ключа?

Мы может проверить каждое предположение, подставляя все эти три слова в ключ над соответствующим куском шифртекста и находя соответствующий открытый текст:

Книга шифров. Тайная история шифров и их расшифровки - _52.jpg

Если слово не является частью ключа, то, скорее всего, это опять-таки приведет к тому, что фрагмент открытого текста будет состоять из хаотичного набора букв; если же оно является частью ключа, то получающийся открытый текст должен иметь определенный смысл. При использовании в качестве части ключа слова APOCALYPTIC, получающийся открытый текст состоит из абсолютно бессмысленного набора букв. При использовании в качестве части ключа слова CRYPT, в открытом тексте получается cithe, что, в общем-то, не является невозможным куском открытого текста. Однако если в качестве части ключа использовать EGYPT, то при этом получается atthe — более обещающая комбинация букв, которая, видимо, представляет собой слова at the.

Предположим пока, что скорее всего в качестве части ключа используется EGYPT. Возможно, что в качестве ключа используется перечень стран. А это означает, что CAN, часть ключа, которая соответствует первому the, является началом слова CANADA. Мы можем проверить эту гипотезу, предполагая, что CANADA, как и EGYPT, являются частями ключа, если откроем бóльший фрагмент открытого текста:

Книга шифров. Тайная история шифров и их расшифровки - _53.jpg

Похоже, что наше предположение имеет смысл. CANADA означает, что открытый текст начинается с themee, что, по-видимому, является началом the meeting. Теперь, когда мы определили новые буквы открытого текста, ting, мы можем найти соответствующую им часть ключа; это будет BRAZ, которое, несомненно, является началом слова BRAZIL. Используя в качестве ключа комбинацию CANADABRAZILEGYPT, мы получим следующее: the meeting is at the????.