Прочитайте онлайн Криптономикон, часть 1 | АНТЕЙ

Читать книгу Криптономикон, часть 1
2416+4874
  • Автор:
  • Перевёл: Е. Доброхотова-Майкова
  • Язык: ru

АНТЕЙ

Когда Лоуренс Притчард Уотерхауз впервые за несколько месяцев вступает на священный берег Альбиона, он с изумлением видит повсюду слабые намеки на весну. Местные жители выставили вдоль набережной вазоны с какой-то докембрийской декоративной капустой. Зрелище не греет душу, однако придает местности мрачно-друидический вид. Впечатление, что видишь отголоски некой культурной традиции, из которой вдумчивый антрополог способен вывести существование настоящих деревьев и лугов значительно дальше к югу. Здесь их заменяют лишайники, которые, поддавшись общему духу, оделись в лиловато-серое и зеленовато-серое многоцветье.

Они со старым приятелем-вещмешком тузят друг друга до самого вокзала и занимают место в «кукушке» на Манчестер. Часа два она разводит пары, и у Лоуренса есть время подумать.

Он работает над задачей из области теории информации, возникшей недавно в результате желания американского и английского флотов усеять атлантическое дно разбомбленными и торпедированными «коровами». Это толстые немецкие подводные лодки, наполненные топливом, провиантом и боеприпасами. Они болтаются в Атлантике, редко выходят на радиосвязь и служат плавучими базами снабжения, чтобы боевым подлодкам не возвращаться в порт для заправки и пополнения припасов. То, что их усиленно топят, хорошо для конвоев, но наверняка насторожит таких, как Рудольф фон Хакльгебер.

Обыкновенно, исключительно для проформы, союзники посылают самолет-разведчик, который якобы случайно обнаруживает «корову». Однако немцы, если отбросить их политическую слепоту, ребята башковитые и когда-нибудь уловку разгадают. Если мы и дальше хотим топить их «коров», нам нужно более убедительное оправдание.

Уотерхауз сочинял оправдания весь конец зимы — начало весны и порядком притомился. Чтобы сочинять их грамотно, нужен математик, хотя задача не вполне математическая. Слава богу, ему хватило ума переписать шифровки из сейфа. Только на них он и держится.

В каком-то смысле это пустая трата времени: оригиналы давно переправлены в Блетчли-парк, где их наверняка расшифровали в первые же часы. Уотерхауз делает это не столько для победы над врагом, сколько чтобы не разучиться думать и может быть, добавить несколько страниц к новому изданию «Криптономикона». Добравшись до Блетчли, он поспрашивает и выяснит, что же было в этих шифровках.

Обычно он не опускается до жульничества, но листки с U-553 совершенно поставили его в тупик. Они зашифрованы не с помощью «Энигмы», однако расколоть их по крайней мере так же трудно. Обычно начинают с того, что по определенным признакам устанавливают, например, что это шифр перестановки или замены, дальше, скажем, что это апериодический шифр перестановки, в которой ключевые элементы постоянной длины используются для шифровки переменных по длине групп открытого текста, или наоборот. Как только ты классифицировал алгоритм, ты понимаешь, как взламывать код.

Уотерхауз не добрался даже до этой стадии. Он сильно подозревает, что сообщения закодированы с помощью одноразового шифрблокнота. Если так, их не прочтут даже в Блетчли-парке, разве что добудут экземпляр шифрблокнота. Он почти надеется услышать, что так оно и есть, и больше не биться головой в каменную стену.

В определенном смысле такой результат означал бы больше вопросов, чем ответов. Немцы считают «Тритон» — четырехдисковую «Энигму» — абсолютно надежной шифровальной машиной. Если так, зачем капитану U-553 понадобился отдельный шифр для каких-то сообщений?

Паровоз начинает тарахтеть, как Палата Лордов. Обитатели Внутреннего Йглма выходят из вокзала и занимают места. По вагону идет старикан, продает вчерашние газеты, курево, леденцы. Уотерхауз покупает всего понемногу. Поезд трогается. Взгляд Уотерхауза падает на аршинный заголовок во вчерашней газете: «В ТИХОМ ОКЕАНЕ СБИТ САМОЛЕТ ЯМАМОТО. АРХИТЕКТОР ПЕРЛ-ХАРБОРА ПРЕДПОЛОЖИТЕЛЬНО ПОГИБ».

— Допрыгались, — бормочет Уотерхауз и, прежде чем читать дальше, распечатывает пачку сигарет. Такое дело надо основательно перекурить.

Тонны смолы и никотина спустя Уотерхауз сходит с поезда и шагает из вокзала станции «Блетчли-парк» в исключительно яркий весенний день. Перед вокзалом цветут цветы, дует теплый южный ветер. Уотерхаузу тошно идти в душный корпус, однако он идет и слышит там, что никому в данный момент не нужен.

Посетив еще несколько корпусов по разным делам, он сворачивает на север, проходит три мили и открывает дверь кабачка «Корона». Здешняя хозяйка, миссис Рамшо, последние три года успешно привечает у себя бездомных кембриджских математиков.

Доктор Алан Матисон Тьюринг расположился за столиком у окна на двух или трех стульях. Поза с виду исключительно неудобна, но, надо полагать, весьма практична. На столике непочатая кружка чего-то красновато-бурого; Алан слишком занят, ему не до пива. В сигаретном дыму прорисован призматический столб света, падающий на огромную книгу. Алан держит ее одной рукой, другая прижата ко лбу, как будто информация поступает со страниц в мозг напрямую, минуя промежуточные стадии. Сигарета зажата между пальцами, столбик пепла опасно навис над темными волосами. Глаза застыли, не смотрят в книгу, устремлены куда-то в даль.

— Изобретаем новую машину, доктор Тьюринг?

Глаза обретают подвижность и поворачиваются на голос.

— Лоуренс, — тихо говорит Алан, идентифицируя лицо. Потом, душевнее: — Лоуренс! — Он с обычной живостью вскакивает и протягивает руку. — Какая чудесная встреча!

— Рад тебя видеть, Алан. — Уотерхауз, как всегда, приятно удивлен, насколько живо и остро Алан на все реагирует.

Еще он тронут искренней приязнью Алана. Алан нелегко сходится с людьми, но уж если дружит, как с Уотерхаузом, то без всякой оглядки на американские или гетеросексуальные представления о мужской сдержанности.

— Ты что, шел пешком от самого Блетчли? Миссис Рамшо, обслужите!

— Да тут всего три мили, — говорит Уотерхауз.

— Садись. — Алан внезапно замирает, хмурится и озабоченно глядит на Уотерхауза. — Откуда ты знаешь, что я изобретаю новую машину? Догадался, исходя из прошлых наблюдений?

— По тому, что ты читаешь. — Уотерхауз указывает на книгу. — «Справочник по радиолампам».

Алан хлопает глазами.

— Мы с ней неразлучны. Ты должен изучить радиолампы, Лоуренс! Без них твое образование неполно. Только подумать, сколько лет я убил на шестеренки ! Господи!

— Ты про свою машину для дзета-функции? — спрашивает Лоуренс. — По-моему, она была прекрасна.

— Как многие другие музейные экспонаты, — говорит Алан.

— Это было шесть лет назад. Ты вынужден был обходиться имеющимися технологиями.

— Ах, Лоуренс! Ты меня удивляешь! Если на создание машины по имеющейся технологии уходит десять лет, а по новой — только пять и нужно всего два года на разработку новой технологии, можно уложиться в семь лет, если начать с разработки.

— Убедил.

— Вот она, новая технология. — Алан демонстрирует справочник, словно Моисей — Скрижали Завета. — Хвати у меня духа ее использовать, я бы построил машину для дзета-функции куда раньше, да и другие в придачу.

— Что за машину ты придумываешь теперь? — спрашивает Лоуренс.

— Я играю в шахматы с неким Дональдом Мичи — и постоянно проигрываю. Однако человек всегда создавал орудия, чтобы расширить свои возможности. Почему бы не построить машину, которая помогает играть в шахматы?[Алан Тьюринг очень любил шахматы, но, несмотря на все свои невероятные усилия и гигантский интеллект, оставался довольно посредственным шахматистом. Вскоре после окончания войны он написал алгоритм, с помощью которого можно было бы обучить машину игре в шахматы. Поскольку на тот момент еще не существовало компьютера, способного выполнять подобные алгоритмы, он решил сам выступить в этой роли. Следуя своим же инструкциям, Тьюринг действовал как «человек-компьютер», и у него уходило более получаса на то, чтобы совершить один ход.

Дональд Мичи (р. 1923) — английский криптограф, работал вместе с Тьюрингом и Джеком Гудом над «Колоссом» и предложил способ программирования этой машины.]

— А у Дональда Мичи тоже будет машина?

— Пусть изобретет свою! — возмущается Алан.

Лоуренс внимательно оглядывает паб. Других посетителей нет, и трудно поверить, что миссис Рамшо — шпионка.

— Не имеет ли это отношения к… — Он кивает в сторону Блетчли-парка.

— Они строят — я помогал им строить — машину под названием «Колосс».

— Мне сразу подумалось, что это твой почерк.

— Она основана на старых идеях, тех, что мы обсуждали в Нью-Джерси, — говорит Алан. Тон резкий, лицо мрачное. Одной рукой он прижимает к сердцу справочник, другой чиркает в блокноте. Уотерхауз думает, что справочник, как ядро на цепи, тянет Алана назад. Работая с чистыми идеями, как положено математику, он бы двигался со скоростью мысли. Однако Алан увлечен воплощением математических идей в физическом мире. Математика, описывающая Вселенную, — как свет, бьющий в окно. Алан выпускает сигаретный дым, чтобы свет стал видимым. Он сидит на лугу, глядит на цветы и шишки, выводит математические закономерности их структуры и грезит об электронных ветрах, реющих между анодами и катодами радиоламп; ветры то затихают, то усиливаются, запечатлевая нечто, происходящее у него в мозгу. Тьюринг не смертный и не бог. Он — Антей. В том, что он соединяет математику с физическим миром, — его сила и его слабость.

— Что такой мрачный? — спрашивает Алан. — Над чем работаешь?

— Те же идеи в другом контексте. — В нескольких словах Уотерхауз итожит все, что сделал за это время для победы. — По счастью, я набрел на что-то по-настоящему занятное.

Алан сразу приободряется, как будто последние десять лет в мире не было ничего занятного и Уотерхауз чудом наткнулся на такую диковину.

— Рассказывай.

— Криптоаналитическая задача. Не «Энигма». — Он рассказывает про листки с U-553. — Сегодня утром я заглянул в Блетчли-парк и выяснил, что они все это время бьются над ней так же безрезультатно.

Алан разочарован.

— Должно быть, одноразовый шифрблокнот. — В голосе сквозит укоризна.

— Нет. Шифртекст не лишен закономерностей, — говорит Уотерхауз.

— Н-да? — отзывается Алан, встрепенувшись.

— Я искал закономерности по обычной методике «Криптономикона». Ничего определенного — просто намеки. В отчаянии я решил начать с чистого листа. Думать, как Алан Тьюринг. Обычно мы стараемся свести задачу к числам, а потом бросить на нее всю мощь математического анализа. Так что я стал переводить сообщения в цифры. Обычно это произвольный процесс. Присваиваешь каждой букве численное значение, как правило, от нуля до двадцати пяти, потом сочиняешь некий произвольный алгоритм, который превращает ряды маленьких чисел в большие. Однако это сообщение иного рода — в нем использованы тридцать два символа — степень двойки; у каждого символа есть единственное двоичное представление в пять разрядов длиной.

— Как в коде Бодо, — говорит Алан. Он вновь проявляв сдержанный интерес.

— Поэтому я перевел каждую букву в число от одного до тридцати двух по коду Бодо. У меня получились длинные ряды маленьких чисел. Однако я хотел перевести все числа ряда в одно большое, просто чтобы узнать, есть ли в нем интересные закономерности. Но это проще пареной репы! Если первая буква R код Бодо для нее — 01011, а вторая — F, и для нее код — 10111, то я могу просто составить их в десятизначное двоичное число 0101110111. Потом могу взять код следующей буквы, приставить его сзади и получить пятнадцатизначное число. И так далее. Буквы написаны группами по пять — двадцатипятизначное двоичное число на группу. Шесть групп в строке — сто пятьдесят двоичных разрядов на строку. Двадцать строк на странице, всего три тысячи двоичных цифр. То есть о каждой странице можно думать не как о ряде из шестисот букв, но как о закодированном представлении одного числа, порядка двух в трехтысячной степени, или примерно десяти в девятисотой.

— Ладно, — говорит Алан. — Согласен, что использование тридцатидвухбуквенного кода предполагает двоичную схему шифровки. Согласен и с тем, что такая схема позволяет слить пятерки двоичных чисел в более длинные и даже, если идти до конца, слить все двоичные знаки на странице в одно исключительно большое число. Но что это дает?

— Не знаю, — сознается Уотерхауз. — Просто я интуитивно чувствую, что мы имеем дело с новой схемой шифровки, основанной на чисто математическом алгоритме. Иначе какой смысл переходить на тридцатидвухбуквенный алфавит? Подумай: тридцать две буквы годятся и даже необходимы для телетайпа, поскольку там нужны специальные символы, вроде возврата каретки или перевода строки.

— Ты прав, — говорит Алан, — очень странно, что они используют тридцать две буквы в схеме, которая явно шифруется с помощью карандаша и бумаги.

— Я тысячу раз прокручивал это в голове, — произносит Уотерхауз, — и вижу единственное объяснение: они переводят сообщение в большие двоичные числа и комбинируют с другими двоичными числами — скорее всего одноразовым шифрблокнотом.

— Тогда ты ничего не добьешься, — говорит Алан. — Одноразовый шифрблокнот взломать нельзя.

— Это верно, — возражает Уотерхауз, — только если шифрблокнот действительно случайный. Если для трехтысячезначного числа три тысячи раз бросают монетку и пишут единицу для орла и ноль для решки, то он случайный и абсолютно стойкий. Однако не думаю, что здесь так.

— Почему? В их шифрблокнотах закономерности?

— Может быть. Только намеки.

— Так почему ты думаешь, что они не случайны?

— Иначе нет смысла изобретать новую схему, — говорит Уотерхауз. — Все всю жизнь пользуются одноразовыми шифрблокнотами. Давно прописано, как их составлять. Нет никакого резона в разгар войны переходить на новую, исключительно странную систему.

— Так в чем, по-твоему, ее смысл? — Алан явно забавляется.

— Неудобство одноразового шифрблокнота в том, что надо составить два экземпляра и переправить их отправителю и получателю. Положим, ты в Берлине и хочешь послать сообщение кому-то на Дальнем Востоке! На подлодке, которую мы нашли, был груз — золото и много всего другого — из Японии. Представляешь, какая морока для Оси.

— Ага. — До Алана наконец дошло. Однако Уотерхауз все равно заканчивает мысль:

— Предположим, ты нашел математический алгоритм для генерации очень больших случайных чисел — во всяком случае, таких, которые выглядят случайными.

— Псевдослучайных.

— Да. Разумеется, ты должен хранить алгоритм в тайне. Но если ты передаешь его — алгоритм то есть — на другой край света своим адресатам, они смогут с этого дня сами выполнять вычисления и получать шифрблокноты конкретного дня или чего там еще.

По веселому лицу Алана пробегает тень.

— Однако у немцев уже есть «Энигма». Зачем утруждать себя новой схемой?

— Может быть, — предполагает Уотерхауз, — некоторые немцы не хотят, чтобы весь немецкий флот читал их переписку.

— M-м, — говорит Алан. Похоже, последние преграды рухнули. Теперь он воплощенная решимость. — Покажи сообщения!

Уотерхауз открывает портфель, в засохших брызгах и потеках морской воды от путешествия на Йглм и обратно, вытаскивает два больших конверта.

— Здесь копии, которые я снял, прежде чем отправить оригиналы в Блетчли-парк. — Он похлопывает по одному. — Они куда разборчивее оригиналов, — похлопывает по другому, — которые мне любезно одолжили, чтобы я мог изучить их еще раз.

— Покажи оригиналы! — требует Алан.

Уотерхауз толкает через стол второй конверт, покрытый штампами СОВСЕКРЕТНО.

Алан нетерпеливо разрывает конверт, выдергивает листки, раскладывает по столу. У него отвисает челюсть.

В первый миг Уотерхауз думает, что его друг неким олимпийским озарением расшифровал листки с первого взгляда.

Однако это не так. Алан совершенно ошарашен.

— Я знаю почерк.

— Да ты что?

— Видел его тысячу раз. Эти страницы написаны нашим старым другом по велосипедным прогулкам, Рудольфом фон Хакльгебером. Руди написал эти страницы.

Всю следующую неделю Уотерхауз мотается на заседания в Бродвей-билдингс. Всякий раз, как должны прийти штатские (особенно — с аристократическим прононсом), перед началом заседания появляется Чаттан и жутко бодро велит Уотерхаузу молчать в тряпочку, если только не зададут математический вопрос. Уотерхауз не в претензии. Его это вполне устраивает, потому что оставляет время для более важных занятий. На последнем заседании в Бродвей-билдингс он доказал теорему.

Примерно за три дня Уотерхауз вычисляет, что в самих заседаниях нет никакого смысла — обсуждения явно не могут ни во что вылиться. Он даже пытается доказать это с помощью формальной логики, но не силен в ней и знает слишком мало аксиом, чтобы достичь Q.E.D.

Впрочем, к концу недели он заключает, что все эти заседания — одно из следствий гибели Ямамото. Уинстон Спенсер Черчилль носится с Блетчли-парком как курица с яйцом, однако перехват адмиральского самолета пробил заметную брешь в завесе секретности. Головотяпы, допустившие этот промах, пытаются спасти положение, распространяя байку о туземных лазутчиках, которые якобы проведали о полете и сообщили по рации на Гуадалканал, откуда и взлетел роковой П-38. Однако баков П-38 еле-еле хватает на полет туда-обратно, значит, время взлета было рассчитано тютелька в тютельку. Если у японцев на плечах голова, а не кочан капусты, они не клюнут на эту сказочку. Уинстон Черчилль рвет и мечет, и все эти заседания — попытка его умиротворить и выдумать какой-то разумный поворот в политике.

Каждый вечер после заседания Уотерхауз едет на метро до Юстона, потом на поезде до Блетчли и допоздна сидит над шифрами Руди. Алан работает над ними днем, так что вместе они бьются над задачей почти круглые сутки.

Не все загадки математические. Например, какого дьявола немцы усадили Руди писать длинные числа? Если буквами и впрямь закодирована длинная последовательность цифр, значит, доктору Рудольфу фон Хакльгеберу отведена роль заурядного писаря. Трудно поверить, что хоть одна бюрократическая система способна на такую несусветную глупость. Кроме того, судя по скудным разведданным из Германии, Руди на самом деле занимает значительный пост — настолько значительный, что его работа полностью засекречена.

Алан предполагает, что Уотерхауз исходит из понятного, но абсолютно ложного допущения. Числа — не шифртекст, а скорее одноразовый шифрблокнот, с помощью которого капитан U-553 должен был кодировать определенные сообщения, слишком секретные, чтобы пускать их по обычным каналам «Энигмы». Эти одноразовые шифрблокноты по какой-то причине составил Руди.

Обычно составление одноразовых шифрблокнотов — такое же примитивное занятие, как и шифрование, работа для писарей, которые выбирают случайные буквы с помощью лототрона или стопки карточек. Однако Алан и Уотерхауз исходят из допущения, что столкнулись с совершенно новым изобретением, возможно, созданным Руди, и шифрблокнот генерируется не случайным образом, а по какому-то математическому алгоритму.

Другими словами, это какие-то вычисления, какая-то формула, которую придумал Руди. Задаешь некий параметр — вероятно, дату, возможно, какие-то другие данные, скажем, произвольную ключевую фразу или число. Проводишь последовательные вычисления и получаешь девятисотзначное число, то есть три тысячи двоичных знаков, что при переводе в код Бодо дает шестьсот букв (достаточно, чтобы исписать лист бумаги). Девятисотзначное десятичное число, трехтысячезначное двоичное и шестьсот букв — одно и то же абстрактное, чистое число в разных представлениях.

Тем временем твой адресат, возможно, на другом краю света выполняет те же вычисления, получает тот же одноразовый шифрблокнот и может раскодировать твое сообщение.

Если Тьюринг и Уотерхауз поймут, как вычисляется число они тоже смогут его прочесть.