Криптономикон, часть 1 - Стивенсон Нил Таун. Страница 93
— Мне сразу подумалось, что это твой почерк.
— Она основана на старых идеях, тех, что мы обсуждали в Нью-Джерси, — говорит Алан. Тон резкий, лицо мрачное. Одной рукой он прижимает к сердцу справочник, другой чиркает в блокноте. Уотерхауз думает, что справочник, как ядро на цепи, тянет Алана назад. Работая с чистыми идеями, как положено математику, он бы двигался со скоростью мысли. Однако Алан увлечен воплощением математических идей в физическом мире. Математика, описывающая Вселенную, — как свет, бьющий в окно. Алан выпускает сигаретный дым, чтобы свет стал видимым. Он сидит на лугу, глядит на цветы и шишки, выводит математические закономерности их структуры и грезит об электронных ветрах, реющих между анодами и катодами радиоламп; ветры то затихают, то усиливаются, запечатлевая нечто, происходящее у него в мозгу. Тьюринг не смертный и не бог. Он — Антей. В том, что он соединяет математику с физическим миром, — его сила и его слабость.
— Что такой мрачный? — спрашивает Алан. — Над чем работаешь?
— Те же идеи в другом контексте. — В нескольких словах Уотерхауз итожит все, что сделал за это время для победы. — По счастью, я набрел на что-то по-настоящему занятное.
Алан сразу приободряется, как будто последние десять лет в мире не было ничего занятного и Уотерхауз чудом наткнулся на такую диковину.
— Рассказывай.
— Криптоаналитическая задача. Не «Энигма». — Он рассказывает про листки с U-553. — Сегодня утром я заглянул в Блетчли-парк и выяснил, что они все это время бьются над ней так же безрезультатно.
Алан разочарован.
— Должно быть, одноразовый шифрблокнот. — В голосе сквозит укоризна.
— Нет. Шифртекст не лишен закономерностей, — говорит Уотерхауз.
— Н-да? — отзывается Алан, встрепенувшись.
— Я искал закономерности по обычной методике «Криптономикона». Ничего определенного — просто намеки. В отчаянии я решил начать с чистого листа. Думать, как Алан Тьюринг. Обычно мы стараемся свести задачу к числам, а потом бросить на нее всю мощь математического анализа. Так что я стал переводить сообщения в цифры. Обычно это произвольный процесс. Присваиваешь каждой букве численное значение, как правило, от нуля до двадцати пяти, потом сочиняешь некий произвольный алгоритм, который превращает ряды маленьких чисел в большие. Однако это сообщение иного рода — в нем использованы тридцать два символа — степень двойки; у каждого символа есть единственное двоичное представление в пять разрядов длиной.
— Как в коде Бодо [46], — говорит Алан. Он вновь проявляет сдержанный интерес.
— Поэтому я перевел каждую букву в число от одного до тридцати двух по коду Бодо. У меня получились длинные ряды маленьких чисел. Однако я хотел перевести все числа ряда в одно большое, просто чтобы узнать, есть ли в нем интересные закономерности. Но это проще пареной репы! Если первая буква R, и код Бодо для нее — 01011, а вторая — F, и для нее код — 10111, то я могу просто составить их в десятизначное двоичное число 0101110111. Потом могу взять код следующей буквы, приставить его сзади и получить пятнадцатизначное число. И так далее. Буквы написаны группами по пять — двадцатипятизначное двоичное число на группу. Шесть групп в строке — сто пятьдесят двоичных разрядов на строку. Двадцать строк на странице, всего три тысячи двоичных цифр. То есть о каждой странице можно думать не как о ряде из шестисот букв, но как о закодированном представлении одного числа, порядка двух в трехтысячной степени, или примерно десяти в девятисотой.
— Ладно, — говорит Алан. — Согласен, что использование тридцатидвухбуквенного кода предполагает двоичную схему шифровки. Согласен и с тем, что такая схема позволяет слить пятерки двоичных чисел в более длинные и даже, если идти до конца, слить все двоичные знаки на странице в одно исключительно большое число. Но что это дает?
— Не знаю, — сознается Уотерхауз. — Просто я интуитивно чувствую, что мы имеем дело с новой схемой шифровки, основанной на чисто математическом алгоритме. Иначе какой смысл переходить на тридцатидвухбуквенный алфавит? Подумай: тридцать две буквы годятся и даже необходимы для телетайпа, поскольку там нужны специальные символы, вроде возврата каретки или перевода строки.
— Ты прав, — говорит Алан, — очень странно, что они используют тридцать две буквы в схеме, которая явно шифруется с помощью карандаша и бумаги.
— Я тысячу раз прокручивал это в голове, — произносит Уотерхауз, — и вижу единственное объяснение: они переводят сообщение в большие двоичные числа и комбинируют с другими двоичными числами — скорее всего одноразовым шифрблокнотом.
— Тогда ты ничего не добьешься, — говорит Алан. — Одноразовый шифрблокнот взломать нельзя.
— Это верно, — возражает Уотерхауз, — только если шифрблокнот действительно случайный. Если для трехтысячезначного числа три тысячи раз бросают монетку и пишут единицу для орла и ноль для решки, то он случайный и абсолютно стойкий. Однако не думаю, что здесь так.
— Почему? В их шифрблокнотах закономерности?
— Может быть. Только намеки.
— Так почему ты думаешь, что они не случайны?
— Иначе нет смысла изобретать новую схему, — говорит Уотерхауз. — Все всю жизнь пользуются одноразовыми шифрблокнотами. Давно прописано, как их составлять. Нет никакого резона в разгар войны переходить на новую, исключительно странную систему.
— Так в чем, по-твоему, ее смысл? — Алан явно забавляется.
— Неудобство одноразового шифрблокнота в том, что надо составить два экземпляра и переправить их отправителю и получателю. Положим, ты в Берлине и хочешь послать сообщение кому-то на Дальнем Востоке! На подлодке, которую мы нашли, был груз — золото и много всего другого — из Японии. Представляешь, какая морока для Оси.
— Ага. — До Алана наконец дошло. Однако Уотерхауз все равно заканчивает мысль:
— Предположим, ты нашел математический алгоритм для генерации очень больших случайных чисел — во всяком случае, таких, которые выглядят случайными.
— Псевдослучайных.
— Да. Разумеется, ты должен хранить алгоритм в тайне. Но если ты передаешь его — алгоритм то есть — на другой край света своим адресатам, они смогут с этого дня сами выполнять вычисления и получать шифрблокноты конкретного дня или чего там еще.
По веселому лицу Алана пробегает тень.
— Однако у немцев уже есть «Энигма». Зачем утруждать себя новой схемой?
— Может быть, — предполагает Уотерхауз, — некоторые немцы не хотят, чтобы весь немецкий флот читал их переписку.
— М-м, — говорит Алан. Похоже, последние преграды рухнули. Теперь он воплощенная решимость. — Покажи сообщения!
Уотерхауз открывает портфель, в засохших брызгах и потеках морской воды от путешествия на Йглм и обратно, вытаскивает два больших конверта.
— Здесь копии, которые я снял, прежде чем отправить оригиналы в Блетчли-парк. — Он похлопывает по одному. — Они куда разборчивее оригиналов, — похлопывает по другому, — которые мне любезно одолжили, чтобы я мог изучить их еще раз.
— Покажи оригиналы! — требует Алан.
Уотерхауз толкает через стол второй конверт, покрытый штампами СОВСЕКРЕТНО.
Алан нетерпеливо разрывает конверт, выдергивает листки, раскладывает по столу. У него отвисает челюсть.
В первый миг Уотерхауз думает, что его друг неким олимпийским озарением расшифровал листки с первого взгляда.
Однако это не так. Алан совершенно ошарашен.
— Я знаю почерк.
— Да ты что?
— Видел его тысячу раз. Эти страницы написаны нашим старым другом по велосипедным прогулкам, Рудольфом фон Хакльгебером. Руди написал эти страницы.
Всю следующую неделю Уотерхауз мотается на заседания в Бродвей-билдингс. Всякий раз, как должны прийти штатские (особенно — с аристократическим прононсом), перед началом заседания появляется Чаттан и жутко бодро велит Уотерхаузу молчать в тряпочку, если только не зададут математический вопрос. Уотерхауз не в претензии. Его это вполне устраивает, потому что оставляет время для более важных занятий. На последнем заседании в Бродвей-билдингс он доказал теорему.
46
Код Бодо (международный телеграфный код) используется в телетайпах. Каждому из тридцати двух символов, включающих буквы и специальные знаки, присвоен определенный номер. Этот номер может быть представлен в виде пятизначного двоичного числа, то есть пятью нулями или единицами, а также (что практичнее) пятью пробитыми либо непробитыми дырочками в бумажной ленте. Кроме того, эти числа можно выразить чередованием плюсовых и минусовых электрических сигналов, которые передаются по проводам или через радиоволны и распечатываются на другом конце. В последнее время немцы используют зашифрованные телеграфные сообщения для связи между высокими командными постами, например, Берлином и штабами различных армейских соединений. В Блетчли-парке эта категория шифров зовется «Рыба»; «Колосс» строят специально для их расшифровки.