На основе этих успешных расшифровок Рэнди за несколько дней взламывает «Аретузу». Другими словами, он находит
Теперь он расшифровал все сообщения, но не может их прочесть, не раскрыв содержание генералу Ину. И здесь в игру вступает неявный канал передачи данных.
На жаргоне криптографов неявный канал передачи данных – это такой трюк, при котором секретная информация хитроумно прячется в потоке чего-то другого. Например, вы меняете младшие биты в графическом файле так, чтобы они несли текстовое сообщение. Рэнди почерпнул вдохновение из своей работы в тюрьме. Да, он расшифровывал «Аретузу», то есть возился с огромным количеством файлов и писал бесконечные программы. За последние недели он, вероятно, открыл, создал или отредактировал несколько тысяч файлов. Ни у одного из них нет сверху полоски с именем; ребята, которые его прослушивают, вероятно, давно запутались. Рэнди может открыть файл, напечатав название в окне и нажав «ввод» – так быстро, что вряд ли они успеют уследить. Это дает некоторую свободу маневра. В промежутках между другой работой Рэнди подготовил неявный канал передачи данных: написал несколько программ, не связанных с расшифровкой «Аретузы».
Идея пришла, когда он, перелистывая «Криптономикон», наткнулся на приложение с азбукой Морзе. Рэнди учил морзянку дважды: в бытность бойскаутом и несколько лет назад, когда получал лицензию на любительский радиопередатчик; сейчас освежить ее в памяти – пара пустяков. Такое же плевое дело – написать программку, превращающую клавишу «пробел» в телеграфный ключ, чтобы разговаривать с компьютером, выстукивая большим пальцем точки и тире. Это могло бы вызвать подозрения, если бы Рэнди половину времени не читал файлы в текстовом окне. В UNIX’е страницы перелистываются нажатием клавиши «пробел». Надо только делать это в определенном ритме, что наверняка ускользнет от внимания наблюдателей. Результаты идут в буфер, который не выводится на экран, и записываются в файл с бессмысленным именем. Скажем, притворяясь, будто читает большой раздел «Криптономикона», Рэнди может выстучать:
– тире точка точка (пауза) точка тире (пауза) тире точка (пауза) тире точка точка (пауза) тире тире тире (пауза) тире точка тире
– что должно читаться «БАНДОК». Он не хочет открывать результирующий файл на экране, но потом, между двумя загадочными командами, может набрать:
grep ндо (бессмысленное имя файла) > (другое бессмысленное имя файла)
и grep откроет первый файл, проверит, есть ли в нем сочетание «ндо», и занесет результат во второй файл, который Рэнди сможет посмотреть позже. Он может также ввести «grep бан» и «grep док», и в результате всех этих grep’ов убедиться, что и впрямь записал в файл слово «БАНДОК». Таким же образом он может ввести «КООРДИНАТЫ» в другой файл, «ШИРОТА» в третий и различные цифры в четвертый, пятый и так далее, а потом с помощью команды «cat» медленно объединять однословные файлы в более длинные. Терпение требуется такое же идиотское, как на то, чтобы вырыть подземный ход чайной ложкой или перепилить решетку пилочкой для ногтей.
Примерно через месяц пребывания в тюрьме он может вывести на экран окно со следующим сообщением:
КООРДИНАТЫ ОСНОВНЫХ ХРАНИЛИЩ
УЧАСТОК БАНДОК: СОРОК ДВА ГРАДУСА ТРИДЦАТЬ ДВЕ МИНУТЫ… СЕВЕРНОЙ ШИРОТЫ, НОЛЬ ДВАДЦАТЬ ГРАДУСОВ ПЯТЬДЕСЯТ ШЕСТЬ МИНУТ… ВОСТОЧНОЙ ДОЛГОТЫ
УЧАСТОК МАКАТИ: (и т. д.)
УЧАСТОК ЭЛЬДОРАДО: (и т. д.)
Все это – полная лажа, которую он только что сочинил. Координаты участка «Макати» на самом деле относятся к шикарному отелю, стоящему на перекрестке, где прежде была японская военная база. Цифры сохранились в компьютере с тех пор, как Рэнди ходил по Маниле с джи-пи-эской, собирая данные для эпифитовских антенн. Координаты участка «Эльдорадо» – местоположение золотых слитков, которые они с Дугом Шафто ездили смотреть, плюс небольшая погрешность. А для участка «Бандок» он вывел настоящие координаты Голгофы с некоторой случайной погрешностью, благодаря которой генерал Ин выкопает глубокую яму примерно в двадцати километрах от нужного места.