Криптономикон, часть 2 - Страница 144


К оглавлению

144

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

— Тактическая хитрость, как троянский конь Одиссея, или…

— И это, и технология. Время от времени почти равное противостояние разрешается за счет технологического прорыва — вроде длинных луков при Креси. На протяжении большей части истории такое случалось раз в несколько столетий — изобретение колесницы, составного лука, пороха, броненосцев. Но что-то изменилось примерно об ту пору, когда «Монитор», который северяне считали единственным броненосцем в мире, случайно наткнулся на «Мерримэк», о котором южане думали то же самое, и они несколько часов колошматили друг друга без всякого толка. Этот пример не хуже других иллюстрирует зримый рывок в военной технологии — момент, когда экспонента круто пошла вверх. Консервативной военной машине обычно требуются десятилетия, чтобы осознать происходящее, но к началу Второй мировой все, кроме полных дебилов, поняли, что победит тот, у кого лучше технология. Так что на стороне немцев мы имеем реактивные самолеты, нервно-паралитический газ и ракеты с электродистанционной системой наведения. А на стороне союзников три огромных достижения, ради которых пришлось собрать вместе всех самых головастых парней: криптография, из которой, как вам известно, выросли ЭВМ, проект «Манхэттен», давший нам ядерное оружие, и «Радиэшен Лэб», благодаря которой мы получили современную электронную промышленность. Знаете, почему мы выиграли Вторую мировую войну, Рэнди?

— Вы вроде только что объяснили.

— Потому что наша техника была лучше?

— Разве вы не то же перед этим сказали?

— Но почему наша техника была лучше, Рэнди?

— Думаю, мне слабо ответить. Я недостаточно хорошо знаю этот период.

— Краткий ответ таков: потому что немцы поклонялись Аресу, а мы — Афине.

— Должен ли я понимать, что вы или ваша организация имеете к этому какое-то отношение?

— Ой, Рэнди! Давайте не будем скатываться на теорию заговора.

— Простите. Я устал.

— Я тоже. Спокойной ночи.

И Енох Роот засыпает. В одно мгновение.

Рэнди — нет.

За «Криптономикон»!


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

Все было бы гораздо проще, знай Рэнди открытый текст хотя бы части сообщений. Знай он весь открытый текст, надобность в расшифровке отпала бы, превратилась в чисто академическое упражнение. Есть компромисс между этими двумя крайностями — не знать открытого текста вообще или знать его весь. В криптографии это зовется «зацепкой». «Зацепка» — предположение о том, какие слова или фразы может содержать шифртекст. Например, расшифровывая немецкие сообщения времен Второй мировой, можно предположить, что в них есть слова «ХАЙЛЬ ГИТЛЕР» или «ЗИГ ХАЙЛЬ». Можно случайным образом выбрать одиннадцать последовательных букв и сказать: «Предположим, здесь написано ХАЙЛЬ ГИТЛЕР. Что это будет означать для остального текста?».

Рэнди не рассчитывает найти ХАЙЛЬ ГИТЛЕР в сообщениях «Аретузы», но есть другие предсказуемые слова. Он мысленно составляет список зацепок: «МАНИЛА» — наверняка. «УОТЕРХАУЗ» — возможно. Тут в голову ему приходят еще два слова: «ЗОЛОТО» и «СЛИТКИ». Значит, в случае «МАНИЛЫ» можно взять любые последовательные шесть букв, сказать: «Что, если ими зашифровано слово МАНИЛА?» и строить на этом дальнейшую работу. Работай он с перехватом длиною в шесть букв, надо было бы выбирать из одной шестибуквенной цепочки. Семибуквенное сообщение предоставляет две возможности: первые и последние шесть. Для сообщения длиной n букв число вариантов равно (n – 5). В стопятибуквенном сообщении слово МАНИЛА может прятаться ста различными способами, вернее, даже сто одним, поскольку возможно — и даже вполне вероятно, — что слова МАНИЛА там нет. И каждое из этих ста предположений порождает свои варианты толкований основного текста. Какие именно — зависит от той гипотезы, которую Рэнди примет в отношении алгоритма.

Пока так: чем больше он об этом думает, тем более убеждается, что у него есть хорошая основа — благодаря Еноху, который не только суесловил о теогониях, но и обронил несколько ценных намеков. По словам Еноха, сотрудники АНБ, начиная атаку на (как теперь ясно, ложные) перехваты «Аретузы», исходили из гипотезы, что использованный шифр сходен с криптосистемой «Лазурь». А из «Криптономикона» Рэнди узнал, что «Лазурь» — чудной шифр, которым пользовались и японцы, и немцы. Он основан на математическом алгоритме, генерирующем одноразовые шифрблокноты для каждого дня. Это жутко расплывчато, но позволяет сузить область поиска. Например, ясно, что «Аретуза» — не дисковая система вроде «Энигмы». И еще: если найти два сообщения, отправленные в один день, они, вероятно, будут закодированы с помощью одного шифрблокнота.

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

144