22
В шестидесяти милях от побережья Гренландии платформа «Сторм кинг» стоически сопротивлялась темным штормовым небесам и злобному морю. Проходящее мимо судно или разведывательный спутник, меняющий орбиту ради удовлетворения любопытства какого-нибудь иностранного правительства, не заметили бы ничего необычного. По верхним строениям платформы медленно передвигались несколько рабочих — они, наверное, обслуживали механизмы или проверяли оборудование. Но в общем платформа казалась столь же мирной, сколь бурным было море вокруг. Гигантское сооружение, похоже, погрузилось в сон.
Однако под стальной оболочкой платформы жизнь кипела, словно в улье. Глубоководный аппарат снабжения — «лоханка» — только что вернулся с ежедневного путешествия на станцию, расположенную на две мили ниже уровня моря. И теперь в приемной зоне собрались примерно три десятка человек, ожидая, пока гигантская лебедка втащит беспилотный глубоководный модуль в огромный люк на самом нижнем уровне платформы. Медленно и осторожно громоздкий аппарат был поднят из вод океана, втянут в люк и аккуратно опущен на стояночную площадку. Под бдительным присмотром одного из морских пехотинцев два служащих отдела снабжения отдраили люк в носовой части аппарата, отвели его в сторону; за ним оказалась входная переборка. Открыв ее, люди принялись разгружать аппарат, вынимая отправленное со станции. На свет появились всевозможные предметы: большие черные контейнеры с отходами, предназначенные для мусоросжигателя, тщательно запечатанные пакеты с конфиденциальными документами, медицинские образцы в специальных кофрах для биоматериала — их везли для проведения сложных анализов, которые невозможно сделать на станции. Посылки одна за другой передавались членам экипажа, а те, в свою очередь, начали расходиться по всей платформе. Через пятнадцать минут приемная зона опустела, в ней остались только морской пехотинец, оператор лебедки и два сотрудника службы снабжения; они закрыли переборку и задраили носовой люк «лоханки», подготовив ее к маршруту следующего дня.
Один из членов экипажа, курьер научной службы, дождавшись прибытия аппарата, вышел с полудюжиной запечатанных конвертов под мышкой. Человек этот работал на платформе относительно недавно. Он носил очки в черепаховой оправе и слегка прихрамывал при ходьбе, словно одна нога у него была короче другой. Устраиваясь на работу, он назвался Уоллесом.
Вернувшись в исследовательский отдел на рабочей палубе платформы, Уоллес, несмотря на хромоту, быстро обошел все лаборатории, вручив получателям первые пять конвертов. Но последний сразу не отдал. Вместо этого он вернулся в свою каюту в самом дальнем углу коридора.
Там Уоллес тщательно запер за собой дверь. Потом открыл конверт и вытряхнул себе на колени содержимое — единственный CD-диск. Повернувшись к компьютеру, поставил диск. Проверка содержимого показала, что на нем имеется всего один файл с названием 108952.jpg: какое-то изображение, наверное, фотография. Он щелкнул по иконке, и компьютер послушно вывел призрачную черно-белую картинку рентгеновского снимка.
Но Уоллеса интересовало не все изображение, а только кое-что на нем.
Хотя рекомендации Уоллеса были безупречны и проверки подтвердили его благонадежность, на платформе он работал недавно и поэтому не имел доступа к секретной информации. Помимо всего прочего, это означало, что вместо полноценного компьютера у него стоял простой терминал, подчиненный основному серверу платформы; у терминала даже не было своего винчестера, да и с командными файлами компакт-дисков возможности работать не было. Одним словом, пользователь мог обращаться только к разрешенным программам, а никаких «левых» установить было нельзя.
По крайней мере, так считалось.
Уоллес подтянул клавиатуру, открыл простенький текстовый редактор, установленный по умолчанию вместе с операционной системой, и набрал коротенькую последовательность команд:
void main (void)
{
char keyfile = fopen (108952.jpg')
char extract;
while (infile)
{
extract = (asc (least_sig_bit (keyfile)) / 2) ˆ6);
stdoutput (extract);
}
}
void least_sig_bit (int sent_bit)
{
int bit_zero;
bit_zero = < (sent bit, 6);
return (bit_zero);
bitzero = > (sent bit, 6);
}
Человек, который называл себя Уоллесом, на миг замер, чтобы проверить программу, прокручивая в голове отдельные шаги и проверяя верность алгоритма. Потом одобрительно фыркнул и еще раз глянул на изображение рентгеновского снимка.
Каждый пиксель изображения на экране занимал на диске один байт в файле с расширением. jpg. Коротенькая, но мощная программа вытащит по два наименее значимых бита из каждого байта, переведет из цифровой кодировки в текстовую и выведет получившиеся буквы на экран.
Уоллес быстро запустил программу. На экране открылось новое окно, но в нем уже не было изображения рентгеновского снимка. Вместо этого появилось текстовое сообщение:
ПРОШУ ОТЛОЖИТЬ ВТОРУЮ ПОПЫТКУ
ПРОРЫВА.
ЗАВИСИТ ОТ НОВОГО ИНФОРМАТОРА
В ЗАКРЫТОЙ ЗОНЕ
Поджав губы, он несколько раз прочел шифровку.
Имея компьютер, секретное сообщение можно спрятать где угодно — в фоновых помехах музыкальной записи, в зернистой структуре цифровой фотографии. Уоллес использовал старинный шпионский прием — прятать закрытую информацию туда, где ее не заметят, вместо того чтобы шифровать ее, — и перенес в цифровую эру.
Он закрыл текст, удалил программу и снова положил диск на место. Вся работа заняла не больше пяти минут. Еще через минуту на стол радиологической лаборатории тихо опустился конверт.
— А, да, я как раз ждал этот снимок, — сказал радиолог, поднимая взгляд. — Спасибо, Уоллес.
Тот только улыбнулся в ответ.