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