Литмир - Электронная Библиотека

Удивительное дело: словно бы в те минуты мы с Олавом были подключены к какому-то синхронизатору. Внизу, на лестнице, раздалось гудение зуммера («Есть!»— мелькнуло у меня), и тут же, без всякого промедления, Ольсен, захлопнув чемоданчик, вскочил на ноги.

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

Я кубарем скатился по ступенькам, выбежал, опережая Ольсена, в холл второго этажа, затем уже не спеша спустился в зал регистрации билетов и подошел к стойке, над которой горело электронное табло: «Halifax-Stratoport».

XIII

Через полчаса я уже летел в «челноке». Устроившись в кресле и оценив ближайших пассажиров (никаких подозрительных эмоций они у меня не вызвали), я вытащил из кармана комп и задал программу перевода рентгеновской голограммы в матрицу двоичного кода.

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

Выглядел он так:

01011010110110011110110101010111
10111110101101101111101110110110
11010101111011011010101111101111
01111011011011101101101111010110
01101101010101110111011110111110
11110111101111011110011010101101
11010110101101101010010110011101
11011111101010101101111011100110
11111001010111011011100111101110
01011011011110111110100101010110
01101010111110110101010111100110
11101101010110101011011001101101
01011101010101101111101111111011
10110111011111011111101101011110
11010101010111101111101111110101
10111011101110110111101011011011
01101011111110101010111110011011
10011101011011111011111011101111
01101010111110101110111101110111
11100111101001101010101110101011
10111010101011111001111110111001
11101111110110111011011110111111
11111110111001011010110111010101
101001

Едва только бросив взгляд на индикатор, я понял, что работа мне предстоит трудная. Во-первых, интуиция подсказывала, что не все так просто будет с этим двоичным кодом, а во-вторых, о сложности задачи красноречиво свидетельствовал вид матрицы: она была неуместно прямоугольной (32X23), да еще с каким-то неприличным хвостиком внизу.

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

До стыковки со «Стратопортом» оставались считанные минуты. Необходимо немедленно переправить матрицу своим: пусть они тоже бьются над ее решением. Да и в конце концов, мало ли что может со мной случиться. Я вызвал на экран компа расписание движения спутник связи над точкой с координатами Галифакса. Черт! Удобный момент для связи я уже упустил. Спутник был над головой пять минут назад. Придется посылать сигнал вдогонку. Я собрал матрицу в информпакет, настроил систему самонаведения передатчика и, покидая «челнок» сразу после стыковки, нажал на тангенту передачи.

Честно признаюсь: чувства облегчения мне это не принесло. Спутник мог уйти слишком далеко — раз. Меня мог экранировать челнок» — дв.  Впрочем иного выхода все равно не было.

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

Я выключил комп, спрятал его в карман и огляделся по сторонам. Вроде бы все было спокойно. И тем не менее, ошибку я, видимо, все же допустил. Скорее всего, еще в «челноке», когда изучал матрицу. Чей-то непраздный взгляд вполне мог упасть на индикатор моего компьютера. Это тем более нетрудно допустить, что пассажирские места на «челноках» не оборудованы шторками индивидуального пользования. Впрочем, возможны и иные варианты. Кто-то то мог засечь меня позже, в шлюзе, или раньше, когда я «палил» из ридара, сгорбившись в тесной будке. Но кто? Я ведь не мог так грубо проколоться: на крыше галифаксского аэровокзала, кроме нас с Олавом, не было никого...

XIV

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

Для начала я прогнал «неправильную» матрицу через те виды криптоаналитических программ, которые мог припомнить: подстановочная программа, шифр Цезаря, шифр Тритемиуса...

 Да. маловато... Конечно, возможности моего компа - чрезвычайно широки, да беда в том, что я  - почти полный профан в криптоанализе. Напрягшись, я припомнил основные правила кодирования по Хеммингу, но и тут незадача: откуда мне было знать, какова длинна кодового слова в той шифровке, что скучно светилась на индикаторе. Я поиграл немного с компом, перебрав длины 3, 4, 5, 6, 7, 8, 9, и понял,  что зашел в тупик.

Надо мной замаячил призрак Клода Шеннона{1}, и все же я решил не отступать. Наверное, во всей последующей истории главную роль сыграл именно тот факт, что я — полный профан в криптоанализе, а также уязвленное самолюбие. Ну не мог я себе простить, что не знаю, с какого конца подобраться к криптограмме. И я решил брать ее «в лоб». А мои дилетантизм сослужил добрую службу в том смысле, что я задумался над формой матрицы. Я почему-то свято полагал, что матрица кода должна быть строго квадратной (видимо, в памяти всплыли какие-то понятия из университетского курса матричной алгебры: действительно, квадратную матрицу удобно транспонировать, но кто сказал, что в моем случае мне требовалось именно транспонирование?)

Размышлял я примерно так. Раз передо мной прямоугольная матрица, да еще с «хвостиком», значит, это непорядок и надо преобразовать ее так, чтобы остался квадрат (случайно я вышел на верную дорогу, но принципиально это было в корне неверно, и могло увести меня Бог знает как далеко), а «хвостик» исчез.

Я сосчитал количество знаков в строке, их было тридцать два, и решил сжать матрицу, объединив знаки по два (можно сказать и так: разбил текст на кодовые слова с длиной два). В двоичном коде двумя знаками можно записать лишь цифры от 0 до 3. Немного подумав, я перевел получившийся текст в четвертичный вид. Теперь на индикаторе появился следующий текст:

вернуться

1

Шеннон, Клод Элвуд - американский инженер и математик, заложивший основы теории информации. Шеннон показал, как можно построить криптограмму, которая не поддается никакой расшифровке, если, конечно, не известен способ ее составления.

80
{"b":"836801","o":1}