В следующем примере я зашифровал отрывок текста с помощью шифра Виженера, используя ключевую фразу такой же длины, что и сообщение. Применение любых методов криптоанализа, о которых я писал раньше, окажется безуспешным. Но сообщение все же можно дешифровать.
Этот новый способ криптоанализа начинается с предположения, что в шифртексте содержатся общеупотребительные слова, к примеру, the. Далее, как показано ниже, мы произвольным образом подставляем the в различные места в открытом тексте и определяем, какими должны быть буквы ключа, чтобы преобразовать the в соответствующий шифртекст. Итак, мы решили, что the будет являться первым словом открытого текста. Первая буква ключа будет зашифровывать t в V. Чтобы определить первую букву ключа, возьмем квадрат Виженера и будем двигаться сверху вниз по столбцу, начинающемуся с буквы t, пока не дойдем до V; буква, с которой начинается эта строка — С. Повторим этот процесс для h и e, которые были зашифрованы как H и R соответственно; в конечном счете мы получим возможные значения первых трех букв ключа — CAN. Все это получено в предположении, что слово the является первым словом открытого текста. Подставим the в несколько других мест и вновь поищем соответствующие буквы ключа. (Вы можете проверить соответствие между каждой буквой открытого текста и буквой шифртекста, обратившись к квадрату Виженера в таблице 9.)
Мы проверили три слова the в трех произвольно выбранных местах шифртекста и выдвинули три предположения относительно элементов определенных частей ключа. Можем ли мы сказать, что какое-нибудь из слов the стоит в нужном месте? Мы предполагаем, что ключ состоит из осмысленных слов; попробуем использовать это в наших целях. Если the стоит не на своем месте, то это приведет, скорее всего, к тому, что ключ будет состоять из хаотичного набора букв. Если же оно стоит в нужном месте, то буквы ключа должны иметь какой-то смысл. Например, первое the дает буквы ключа CAN, что обнадеживает, поскольку это вполне нормальный английский слог. Так что возможно, что это слово the стоит на своем месте. Второе the дает BSJ, — весьма странное сочетание согласных, что позволяет предположить, что второе the, скорее всего, неверно. Для третьего the получается YPT, — редко встречающийся слог, но ею все же стоит проверить. Если YPT действительно является частью ключа, то оно должно находиться внутри более длинного слова; такими словами могут быть только APOCALYPTIC, CRYPT и EGYPT и производные от этих слов. Как мы сможем определить, является ли одно из этих слов частью ключа?
Мы может проверить каждое предположение, подставляя все эти три слова в ключ над соответствующим куском шифртекста и находя соответствующий открытый текст:
Если слово не является частью ключа, то, скорее всего, это опять-таки приведет к тому, что фрагмент открытого текста будет состоять из хаотичного набора букв; если же оно является частью ключа, то получающийся открытый текст должен иметь определенный смысл. При использовании в качестве части ключа слова APOCALYPTIC, получающийся открытый текст состоит из абсолютно бессмысленного набора букв. При использовании в качестве части ключа слова CRYPT, в открытом тексте получается cithe, что, в общем-то, не является невозможным куском открытого текста. Однако если в качестве части ключа использовать EGYPT, то при этом получается atthe — более обещающая комбинация букв, которая, видимо, представляет собой слова at the.
Предположим пока, что скорее всего в качестве части ключа используется EGYPT. Возможно, что в качестве ключа используется перечень стран. А это означает, что CAN, часть ключа, которая соответствует первому the, является началом слова CANADA. Мы можем проверить эту гипотезу, предполагая, что CANADA, как и EGYPT, являются частями ключа, если откроем бóльший фрагмент открытого текста: