Завещание беглеца - Андрей Геннадьевич Лазарчук. Страница 98


О книге
class="subtitle">101001

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

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

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

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

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

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

XIV

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

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

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

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

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

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

1122312132311113

2332231233232312

3111323122233233

1323123231233112

1231111313132332

3313233132122231

3112231222112131

3133222231323212

3321113123213233

1123132332211112

1222332311113212

3231112231121231

1131111233233323

2313133133231132

3111113233233311

2323232313223123

1223332222332123

2131123323323233

1222332232331313

3213221222232223

2322223321332321

3233312323132333

3332321122313111

221

Матрица осталась прямоугольной, но теперь она была вытянута по вертикали. Я отметил вот какую особенность: во всей матрице не было ни единого нуля. Я счел это добрым знаком: до сих пор передо мной была полная неразбериха, а теперь начала проглядывать какая-то система. Но какая?

Навязчивая идея о квадратной матрице преследовала меня, и я, не долго думая, разделил криптограмму на две неравные части: вверху остался квадрат из 256 (16X16) знаков, а внизу — прямоугольная таблица с корявым хвостом.

Уже час я находился на борту «Стратопорта», а решение задачи даже не забрезжило впереди. Но с мертвой точки дело сдвинулось. Идя неверной дорожкой, я все же приближался к цели. Прошло еще минут сорок, прежде чем меня осенило: ведь нижняя часть может оказаться ключом к верхней! Вполне возможно, передо мной —редкий код с переменной длиной кодового слова, и тогда Указание на то, как варьировать длину, надо искать в самой криптограмме.

Предположим, что длина эта меняется от 1 до 3, тогда нижняя часть матрицы — запись длин, а четвертичный код выбран для того, чтобы затруднить работу дешифровщика: в этой криптограмме и основной текст, и ключ записаны всего тремя цифрами — единицей, двойкой и тройкой. Не так-то просто распознать,

Перейти на страницу: