К тому времени, когда набор был «скорректирован», в нем остался только «квадрат Вигенера». Больше всего шума подняли из-за первого «КидКрэкера» американцы; они заявили, что он нарушает какой-то закон, мешающий изощренным дешифровочным устройствам пересекать границу страны. (Вот почему также нельзя вывезти за пределы Штатов полные версии некоторых интернет-браузеров; этот закон запрещает экспортировать декодирующие программы, которые к ним прилагаются.) Меня, однако, позабавило, что мой «квадрат Вигенера» получил-таки въездную визу. Сможет ли когда-нибудь какой-нибудь 9–12-летка использовать его, чтобы начать революцию или сбросить правительство? Не исключено. Но все дети наверняка пропускали ту главу руководства по пользованию набором, где речь шла о Вигенере, — по правде говоря, она действительно слишком мудреная.
При разгадывании вигенеровых шифров, в отличие от моноалфавитных, почти всегда приходится искать ключ, хотя «ключом» к вигенерову шифру обычно является какое-нибудь простое слово, а не целый рандомизированный алфавит. Однако сам шифр намного сложнее, и его невозможно разгадать теми же методами, что и моноалфавитные шифры.
В моноалфавитных используется лишь один шифровочный алфавит. Вот почему их легко разгадать: как только выясняется, какими буквами заменены «е» и «t», понять все прочее становится не сложнее, чем завершить партию игры в «виселицу». В полиалфавитных шифрах, однако, применяются сразу несколько алфавитов. Трудно описать, каким прорывом было предположение Альберти, что можно использовать несколько алфавитов в одной шифровке. Моноалфавитные шифры всегда поддаются разгадке благодаря частотному анализу — даже если не срабатывает метод Шерлока Холмса. Но что, если «исказить» частоты встречаемости букв, сделав так, что одной и той же букве исходника будут соответствовать разные буквы на всем протяжении шифрованного текста? Этот вопрос и задал себе Альберти. И придумал метод, который… ну, гениален, иначе не скажешь. Вы чертите квадрат, состоящий из двадцати шести различных вариантов алфавита — каждый сдвинут на одну букву по отношению к соседним (см. таблицу). Потом выбираете короткое слово-ключ — скажем, RAIN [36] Дождь (англ.).
— и пишете его снова и снова поверх текста, который хотите зашифровать, вот так:
Привет (англ.).
Самый трудный из всех (англ.).
Затем вы с помощью букв слова-ключа определяете, какую строчку «квадрата Вигенера» используете, чтобы зашифровать соответствующую букву сообщения. Буква «h» в слове «hello», зашифрованная по строчке «R», превратится в «Y», «Е», зашифрованная по строчке «А», так и будет «Е» (все, что попадает на строчку «А», остается без изменений, поэтому большинство слов-ключей буквы «А» не содержат). «L», зашифрованная по строчке «I», будет «Т». Однако следующая «l» будет шифроваться по строчке «N» и станет «Y». Таким образом, первое слово — «hello» — превратится в «YETYF», что совсем не похоже на моноалфавитную версию слова. Подсказки в виде сдвоенного диграфа больше нет, а «Y» означает две разные буквы.
Более длинное сообщение, приведенное выше, зашифруется так:
KHMURRLRJTWSKHMZRLT
Вам никогда этого не прочесть при помощи частотного анализа или дедукции. Вам нужно знать, что ключом было слово «RAIN». Это единственный способ справиться с вигенеровым шифром. Конечно, ключ иногда получается просто угадать. После нападения на Всемирный Торговый Центр одна фирма потеряла почти всех своих сотрудников. Немногие уцелевшие решили продолжить дела компании, но оказались перед проблемой: все пароли умерли вместе с теми, кто их знал. Тогда оставшиеся служащие сели и принялись копаться во всех аспектах жизни покойных коллег, записывая названия мест, куда те ездили по выходным, имена домашних животных и так далее, пока не угадали все пароли до единого. Эту историю мне рассказал кто-то на работе — его до глубины души тронул корпоративный дух, проявленный этими людьми. А я просто подумала, что это одна из самых жутких историй, какие я только слышала в жизни.
Хм-м… в общем, учитывая тот факт, что едва ли вы знаете слово-ключ к посланию, смысл которого от вас хотят скрыть, вам нужно пойти путем логики и искать в тексте закономерности — они могут подсказать, какое слово было ключом. Большинство шифровок, конечно, чудовищно сложнее любого учебного примера. Однако мы можем начать искать закономерности в нашем:
Читать дальше