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