Саймон Сингх - Книга шифров .Тайная история шифров и их расшифровки
Таблица 7 Квадрат Виженера, применяемый совместно с ключевым словом KING. Ключевое слово задает четыре различных шифралфавита, так что буква е может быть зашифрована как О, М, R или К.
Бэббидж понял, что такой характер повторения дает ему точку опоры, которая необходима, чтобы раскрыть шифр Виженера. Он сумел определить ряд сравнительно простых действий, следуя которым любой криптоаналитик сможет взломать до того момента нераскрываемый шифр. Чтобы продемонстрировать его блистательный метод, представим себе, что у нас есть перехваченный шифртекст, представленный на рисунке 13. Мы знаем, что он был зашифрован с помощью шифра Виженера, но нам ничего не известно об исходном сообщении, и ключевое слово представляет для нас загадку.
Первый этап криптоанализа Бэббиджа заключался в том, чтобы отыскать последовательности букв, которые появляются в шифртексте более одного раза. Существуют две причины, почему могут возникнуть такие повторения. Первая, и наиболее вероятная, состоит в том, что одна и та же последовательность букв в открытом тексте была зашифрована с помощью одной и той же части ключа. Но есть также определенная, хотя и незначительная, вероятность того, что две разных последовательности букв в открытом тексте, зашифрованных различными частями ключа, случайно образуют идентичные последовательности в шифртексте.
Рис. 13 Шифртекст, созданный с помощью шифра Виженера.
Если мы ограничимся только длинными последовательностями, например, как в данном случае, когда будем рассматривать повторяющиеся последовательности, только если они состоят из четырех или более букв, то вторая причина станет практически нереализуемой и ее можно будет в расчет не принимать. В таблице 8 приведены эти повторяющиеся последовательности, а также указаны интервалы между повторениями этих последовательностей. К примеру, последовательность Е-F-I-Q появляется в первой строке шифртекста, а затем в пятой строке; интервал составляет 95 букв.
Ключевое слово, помимо того что оно служит для преобразования открытого текста в зашифрованный, используется также получателем, чтобы расшифровать зашифрованный текст. Поэтому, если бы мы смогли определить ключевое слово, то дешифровать текст было бы очень просто. На этом этапе у нас нет пока достаточно информации, чтобы подобрать ключевое слово, но таблица 8 дает несколько очень ценных подсказок о его длине. Здесь перечислены, какие последовательности повторяются и интервал между этими повторениями, а остальная часть таблицы посвящена определению множителей интервала между повторениями — чисел, на которые можно разделить нацело интервал между повторениями.
Например, последовательность W-C–X-Y-M повторяется через 20 букв, так что множителями будут числа 1, 2, 4, 5, 10 и 20, поскольку на них 20 делится без остатка. Эти множители означают наличие шести возможностей:
(1) Длина ключа составляется 1 букву, и он повторяется 20 раз.
(2) Длина ключа составляется 2 буквы, и он повторяется 10 раз.
(3) Длина ключа составляется 4 буквы, и он повторяется 5 раз.
(4) Длина ключа составляется 5 букв, и он повторяется 4 раза.
(5) Длина ключа составляется 10 букв, и он повторяется 2 раза.
(6) Длина ключа составляется 20 букв, и он повторяется 1 раз.
Первая возможность может быть исключена, так как ключ, длина которого составляет всего 1 букву, сразу же приводит к одноалфавитному шифру; для шифрования всего текста будет использоваться только одна строка квадрата Виженера, и шифралфавит не будет меняться. Крайне маловероятно, чтобы криптограф так поступил. Чтобы показать все другие возможности, в соответствующей колонке таблицы 8 поставлен символ Ѵ. Каждый символ Ѵ указывает возможную длину ключа.
Чтобы определить, какова длина ключа, то есть будет ли она составлять 2,4, 5,10 или 20 букв, нам понадобится рассмотреть множители и всех остальных интервалов между повторениями. Поскольку, по всей видимости, длина ключевого слова составляет 20 букв или меньше, в таблице 8 для всех этих интервалов указаны те множители, которые не превышают 20. Здесь явно прослеживается тенденция делимости интервалов на 5. Фактически на 5 делятся все интервалы. Первая повторяющаяся последовательность, Е-F-I-Q, может быть объяснена следующим образом: ключевое слово длиной 5 букв девятнадцать раз повторяется между первой и второй последовательностями. Вторая повторяющаяся последовательность, Р-S-D-L-Р, может быть объяснена тем, что между первой и второй последовательностями ключевое слово длиной 5 букв повторилось только один раз.
Третья повторяющаяся последовательность, W-С-Х-Y-М, может быть объяснена тем, что ключевое слово длиной 5 букв между первой и второй последовательностями повторилось четыре раза. Четвертая повторяющаяся последовательность, Е-Т-R-L, может быть объяснена тем, что ключевое слово длиной 5 букв между первой и второй последовательностями повторилось двадцать четыре раза. Короче говоря, все указывает на наличие пятибуквенного ключевого слова.
Предположим, что длина ключевого слова действительно составляет 5 букв; тогда следующий этап будет заключаться в том, чтобы найти эти буквы. Пока обозначим ключевое слово в виде L1-L2-L3-L4-L5, где L1 будет первой буквой ключевого слова, L2 — второй, и так далее. Тогда процесс шифрования начнется с зашифровывания первой буквы открытого текста в соответствии с первой буквой ключевого слова Буква определяет строку квадрата Виженера и, тем самым, задает одноалфавитный шифр замены для первой буквы открытого текста. Однако когда наступает время для зашифровывания второй буквы открытого текста, криптограф должен использовать L2, чтобы определить другую строку квадрата Виженера, задавая тем самым уже иной одноалфавитный шифр замены. Третья буква открытого текста будет зашифровываться в соответствии с L3, четвертая — в соответствии с L4, а пятая — в соответствии с L5. Каждая буква ключевого слова задает для шифрования свой отличающийся шифралфавит. Но затем шестая буква открытого текста будет опять зашифровываться в соответствии с L1, седьмая буква — в соответствии с L2, и далее цикл повторяется. Другими словами, в нашем случае многоалфавитный шифр состоит из пяти одноалфавитных шифров, причем каждый одноалфавитный шифр отвечает за шифрование 1/5 части всего сообщения. Но самое главное состоит в том, что нам уже известно, как проводить криптоанализ одноалфавитных шифров.
Таблица 8 Повторяющиеся последовательности и интервалы между ними в шифртексте.
Поступим следующим образом. Мы знаем, что одна из строк квадрата Виженера, определяемая буквой задает шифралфавит, которым зашифрованы 1-я, 6-я, 11-я, 16-я… буквы сообщения. Поэтому если возьмем 1-ю, 6-ю, 11-ю, 16-ю… буквы шифртекста, то мы сможем применить добрый, старый частотный анализ для определения данного шифралфавита. На рисунке 14 показано частотное распределение букв, которые стоят на 1-м, 6-м, 11-м, 16-м… местах шифртекста; это буквы W, I, R, Е… Здесь следует напомнить, что каждый шифралфавит в квадрате Виженера — это просто обычный алфавит, сдвинутый на 1… 26 позиций. Поэтому частотное распределение на рисунке 14 должно иметь те же особенности, что и частотное распределение стандартного алфавита, за исключением того, что оно будет сдвинуто на некоторое расстояние. Сравнивая распределение L1 со стандартным распределением, можно определить величину сдвига. На рисунке 15 показано стандартное частотное распределение для отрывка английского открытого текста.
В стандартном распределении имеются пики, плато и впадины, и, чтобы сравнить его с распределением шифра L1 поищем наиболее заметные особенности и их комбинации. Так, весьма характерную особенность в стандартном распределении (рис. 15) составляют три пика у R-S-Т и длинная ложбина справа от них, которая захватывает шесть букв от U до Z включительно. В распределении (рис. 14) есть только один похожий участок с тремя пиками у V-W-Х и последующей впадиной, простирающейся вдоль шести букв от Y до D. А это означает, что все буквы, зашифрованные в соответствии с L1 были сдвинуты на четыре позиции, и L1 определяет шифралфавит, который начинается с Е, F, G, Н…, то есть первая буква ключевого слова, L1 это, по всей видимости, Е. Данное предположение может быть проверено путем сдвига распределения на четыре буквы назад и сравнения его со стандартным распределением. На рисунке 16 даны для сравнения оба распределения. Совпадение между основными пиками очень хорошее, так что нет никаких сомнений, что ключевое слово действительно начинается с буквы Е.