Книга воздуха и теней
Шрифт:
Последующие шесть дней он только и делал, что ходил на работу, изучал криптографию и трудился над шифром. В воскресенье он снова отправился в церковь и, к собственному удивлению, с непривычным рвением молился о том, чтобы решение нашлось. Вернувшись домой, он собрался снова приступить к работе, но мать остановила его.
— Сделай перерыв, Алли, сегодня же воскресенье.
— Нет, мне в голову пришла одна мысль, я хочу ее проверить.
— Дорогой, ты измотан, в голове у тебя неразбериха. Давай-ка сядь, я наделаю сэндвичей, ты выпьешь пива и расскажешь мне, чем занимаешься. Поверь, это пойдет на пользу.
Он заставил себя сесть, наелся сэндвичей с беконом и сыром, выпил пива — мать оказалась права — почувствовал себя человеком. Когда с едой было покончено, Мэри Пег спросила:
— Ну, ты добился хоть чего-то?
— Только в негативном смысле.
— Лишь на уровне кроссвордов в воскресных газетах.
— То есть практически ничего. Ладно. Самым распространенным типом тайнописи в начале семнадцатого века был тот, что они называли «номенклатурой». Это не совсем шифр, скорее код. Имеется небольшой словарь кодовых слов: к примеру, «ящик» означает «армия», «булавки» это «корабли», и так далее. Сообщение расшифровывается заменой слов и выглядит вполне невинным. То, что у нас здесь имеется, не является «номенклатурой». Думаю, это шифр, о котором Брейсгедл говорит в своем письме. Тот самый, что он изобрел для лорда Данбертона. Тут подстановкой слов не обойдешься. Мне кажется, это то, что называется полиалфавитным шифром.
— Что это означает?
— Он немного сложнее. Я покажу тебе на примере. — Крозетти вышел и вернулся со стопкой бумаг. — Самый простой шифр заменяет одну букву другой, обычно с одинаковым смещением по алфавиту: вместо А пишется D, вместо С — G и так далее. Это так называемое смещение Цезаря, потому что, предположительно, его придумал Юлий Цезарь. Очевидно, что подобный шифр можно взломать за несколько минут, если знать обычную частоту чередования букв в языке послания. Надо полагать, шпионы понимали это и разрабатывали методы для того, чтобы замаскировать частоту чередования букв, применяя разные алфавиты для каждой подстановки в зашифрованном тексте.
— Разные алфавиты? Ты имеешь в виду разные языки?
— Нет, нет, я имею в виду вот что. — Он вытащил из стопки одну страницу и расправил ее на столе. — В шестнадцатом веке архитектор Альберти придумал подстановочный шифр, используя составные алфавиты, расположенные на медных дисках, а немного позже во Франции математик по имени Блэз Виженер изобрел так называемый полиалфавитный подстановочный шифр, где применяли двадцать шесть алфавитов со смещением Цезаря. Брейсгедл наверняка знал о нем, поскольку, по его словам, изучал искусство шифрования. В основе лежит то, что тогда называли tabula recta, или «таблица Виженера». Это двадцать шесть одинаковых алфавитов, написанных один над другим — сначала обычный от А до Z, а каждый последующий начинается со смещением на одну букву вправо, то есть от В до Z плюс А, потом от С до Z плюс А и В, и так далее. Наверху и слева располагаются обычные алфавиты, они служат в качестве индексов.
Ссылка на "таблицу Виженера": http://oldmaglib.com/book/g/Gruber_Michael__The_Book_of_Air_and_Shadows_ris1.jpg
— И каким образом это позволяет скрыть частоту чередования букв?
— Нужен ключ. Например, возьмем в качестве ключа твое имя, Мэри Пег. Семь букв, ни одна не повторяется, это хорошо, — Крозетти записал их карандашом наверху. — Теперь предлагай, какой текст будем шифровать.
— Беги, все раскрыто, — предложила Мэри Пег.
— Всегда своевременно. Теперь давай запишем текст над ключом, вот так.
F L E E A L L I S D I S C O V E R E D
M A R Y P E G M A R Y P E G M AR Y P [46]
— И теперь, чтобы зашифровать, берем первую букву текста, то есть F, и первую букву ключа, то есть М. Потом пробегаем по таблице, вниз по столбцу F и вправо по строке М, и пишем букву, что оказывается на их пересечении — в данном случае R. Следующая комбинация есть L из текста и А из ключа, то есть L остается L. Дальше Е и R, что дает нам V. И теперь мы видим, как это работает: поскольку для следующей Е мы, оказываясь в той же колонке, попадаем в другой ряд, соответствующий букве Y, это дает нам С. Две буквы «е» в слове flee в зашифрованном тексте имеют разные эквиваленты, вот почему попытка проанализировать частоту повторения букв терпит неудачу. Сейчас я допишу до конца, и ты сможешь увидеть…
46
То, что Крозетти предлагает
Крозетти быстро зашифровал весь текст. Вот что у него получилось:
F L E E A L L I S D I S C O V E R E D
R L V C P P R U S U G H G U H E I C S
— И заметь, что двойное L в слове all искажается тоже, — сказал он. — Такой текст простому частотному анализу не поддается, и за триста лет никто не смог взломать подобный шифр, не зная ключевого слова. Именно его и добивались от шпионов с помощью пыток.
— Как же взломать его?
— Надо найти длину ключевого слова, и это можно сделать, анализируя повторяющиеся шаблоны в зашифрованном тексте. Это называется методом Казиски-Керкхоффа. В достаточно длинном сообщении или нескольких сообщениях FL снова пересечется с МА и снова даст RL, и будут другие шаблоны из двух-трех букв, и потом ты подсчитаешь расстояние между повторами и вычислишь общие численные множители. В нашем случае, поскольку ключ состоит из семи букв, повторы могут случаться через семь, четырнадцать и двадцать одну букву настолько часто, что это нельзя объяснить случайностью. Очевидно, в наши дни для анализа такого рода применяют статистические методы и компьютер. Как только выяснится, что ключ содержит семь букв, дальше все предельно просто. Остается вычислить семь простых подстановочных алфавитов из таблицы Виженера — это можно сделать с помощью обычного частотного анализа, реконструировать ключевое слово и расшифровать текст. Существуют дешифрующие программы, они справляются с задачей за считанные секунды.
— Тогда почему ты не взломал шифр?
Он со стоном провел пальцами по волосам.
— Если бы я знал… Здесь что-то другое, не просто таблица Виженера.
— А может, это все же она, только ключ очень длинный? Судя по твоим словам, чем длиннее ключ, тем труднее выявить повторяющиеся группы.
— Хорошая мысль. Однако проблема с длинными ключами состоит в том, что их легче забыть и труднее передавать — если ты хочешь часто менять их. Ведь как происходило дело, если возникало желание сменить ключ? Так, чтобы ни один шпион не узнал: шепотом, во тьме, на ухо агенту или в сообщении, на первый взгляд совершенно невинном. В наше время агенту передают так называемый одноразовый пароль — лист бумаги, где записаны выбранные наугад сегменты бесконечно длинного ключа. Агент с его помощью зашифровывает сообщение и сжигает листок. Такой шифр никакой компьютер не взломает. Однако в тысяча шестьсот десятом подобных методов не изобрели.
— Что еще может быть?
— Это может быть так называемая решетка, и тогда мы остаемся с носом. — Увидев недоуменное выражение на лице матери, Крозетти пояснил: — «Картановская решетка» — это кусок плотной бумаги с прорезями на ней, сквозь которые можно прочесть сообщение, если приложить ее к тексту. То есть в данном случае вообще никакого шифра нет. Текст может выглядеть совершенно бессмысленно, но если передвигать по нему решетку, выделяются буквы, которые складываются в слова…
— Знаешь, если бы здесь использовали «решетку», то само сообщение, скорее всего, походило бы на обычное письмо. «Дорогая мамочка, в Лондоне замечательно, купил новый камзол, видел, как собаками травят медведей, жаль, что тебя тут нет, люблю, твой Дик». А приложишь «решетку» и прочтешь: «Беги, все раскрыто». Я имею в виду, что «решетка» позволяет придать сообщению невинный вид, разве нет?
Крозетти стукнул себя кулаком по голове, словно восклицая: «Ну, что я за дурак!»
— Конечно. Это я упустил. Как бы то ни было, я понятия не имею, в каком направлении двигаться дальше.
— Я настаиваю — тебе нужно передохнуть.
— Ты права. — Он потер лицо ладонями. — Какое сегодня число?
— Четырнадцатое октября. А что?
— Сегодня в клубе фестиваль карибских фильмов, и я хотел бы посмотреть «Люди и боги». [47] Может, окунувшись в блестящий мир гаитянского вуду, я почувствую себя освеженным.
47
«Люди и боги» (2002) — документальный фильм режиссеров Энн Лескот и Лоуренса Меглора. (Прим. ред.)