Книга Криптономикон, страница 255. Автор книги Нил Стивенсон

Разделитель для чтения книг в онлайн библиотеке

Онлайн книга «Криптономикон»

Cтраница 255

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

НЕМЕДЛЕННО ПРИШЛИТЕ ПОМОЩЬ

и

XUEBP TOAFF NMQPT

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

На основе этих успешных расшифровок Рэнди за несколько дней взламывает «Аретузу». Другими словами, он находит А(х) = К, такую, что для любой даты х может получить К — гамму данного дня. Просто чтобы доказать это, он поручает компьютеру рассчитать К для каждого дня 1944 и 1954 годов и с их помощью раскодировать соответствующие перехваты «Аретузы» (не выводя их на экран), просчитывает частоты встречаемости и убеждается, что все работает.

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

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

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

тире точка точка (пауза) точка тире (пауза) тире точка (пауза) тире точка точка (пауза) тире тире тире (пауза) тире точка тире

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


grep ндо (бессмысленное имя файла) > (другое бессмысленное имя файла)


и grep откроет первый файл, проверит, есть ли в нем сочетание «ндо» и занесет результат во второй файл, который Рэнди сможет посмотреть позже. Он может также ввести «grep бан» и «grep док», и в результате всех этих grep’ов убедиться, что и впрямь записал в файл слово «БАНДОК». Таким же образом он может ввести «КООРДИНАТЫ» в другой файл, «ШИРОТА» в третий и различные цифры в четвертый, пятый и так далее, а потом с помощью команды «cat» медленно объединять однословные файлы в более длинные. Терпение требуется такое же идиотское, как на то, чтобы вырыть подземный ход чайной ложкой или перепилить решетку пилочкой для ногтей.

Примерно через месяц пребывания в тюрьме он может вывести на экран окно со следующим сообщением:


КООРДИНАТЫ ОСНОВНЫХ ХРАНИЛИЩ

УЧАСТОК БАНДОК: СОРОК ДВА ГРАДУСА ТРИДЦАТЬ ДВЕ МИНУТЫ… СЕВЕРНОЙ ШИРОТЫ, НОЛЬ ДВАДЦАТЬ ГРАДУСОВ ПЯТЬДЕСЯТ ШЕСТЬ МИНУТ… ВОСТОЧНОЙ ДОЛГОТЫ

УЧАСТОК МАКАТИ: (и т. д.)

УЧАСТОК ЭЛЬДОРАДО: (и т. д.)


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

Как Рэнди узнал про Голгофу и откуда ему известны настоящие координаты? Все это сообщил ему компьютер точками и тире. На компьютерах есть светодиоды, вообще-то не очень нужные: один показывает, что включен NUM LOCK, другой — что CAPS LOCK, а зачем нужен третий, Рэнди даже не помнит. Исключительно из убежденности, что пользователь должен контролировать все, кто-то когда-то написал библиотечную программу под названием XLEDS, которая позволяет включать и выключать их по собственному желанию. Весь месяц Рэнди урывками писал программку, которая с помощью XLEDS выводит текстовый файл морзянкой, включая и выключая светодиод. Покуда по экрану для отвода глаз ползла всякая муть, Рэнди, сгорбившись над неявным каналом передачи данных — мигающим светодиодом, читал расшифровки «Аретузы». Одна из них гласила:


КОДОВОЕ НАЗВАНИЕ ОСНОВНОГО ХРАНИЛИЩА ГОЛГОФА. КООРДИНАТЫ УСТЬЯ ОСНОВНОЙ ШТОЛЬНИ (и т. д.)

Подвал

В данный исторический момент (апрель 1945 года) людей, которые сидят и выполняют арифметические действия, принято называть вычислителями. Уотерхауз только что нашел целую комнату мертвых вычислителей. Любой вменяемый человек (кроме Уотерхауза и некоторых его старых друзей по Блетчли-парку вроде Алана Тьюринга) взглянул бы на этих вычислителей и заключил, что здесь была бухгалтерия и каждый раб самостоятельно щелкал на счетах. Уотерхауз не вправе отбросить это предположение, поскольку оно очевидно. Однако с самого начала у него возникла другая гипотеза, куда более интересная и необычная: что рабы коллективно действовали как шестеренки в большой вычислительной машине и каждый выполнял лишь небольшую долю общей работы — получал числа от другого вычислителя, производил над ними какие-то арифметические действия и передавал результат следующему.

Вход
Поиск по сайту
Ищем:
Календарь
Навигация