"Виталий Бабенко. Встреча (Сборник "Поселок на краю Галактики")" - читать интересную книгу автораПопадет ли мой сигнал в точку? Как бы то ни было, теперь дело чести
расшифровать матрицу самому. Я выключил комп, спрятал его в карман и огляделся. Вроде бы все спокойно. И все же какую-то ошибку я допустил. Скорее всего, еще в челноке, когда изучал матрицу. Чей-то непраздный взгляд мог упасть на индикатор моего компьютера, ведь на пассажирских местах в челноках нет шторок. Впрочем, кто-то мог засечь меня и позже, уже в шлюзе, или раньше, когда я целился из ридара, сгорбившись в тесной будке. Но кто? Ведь на крыше галифаксского аэровокзала, кроме нас с Олавом, не было никого... 14 Перейдя в "Стратопорт", я прошел на свое место 9-В, задернул шторку и сразу занялся компьютером. Вид матрицы на индикаторе нагонял тоску. Передо мной был код, который никак нельзя назвать однозначно декодируемым. Я понятия не имел, каким образом разбить эту последовательность кодовых символов на кодовые слова, да еще так, чтобы разбиение оказалось единственно верным. Но отступать некуда. Для начала я прогнал матрицу через те криптоаналитические программы, которые мог припомнить: подстановочная программа, перестановочная программа, шифр Цезаря, шифр Тритемиуса... Маловато. Конечно, у моего компа огромные возможности, но я-то почти полный профан в криптоанализе. Напрягшись, припомнил правила кодирования той шифровке, что скучно светилась на индикаторе. Я поиграл немного с компом, перебрав длины 3, 4, 5, 6, 7, 8, и понял, что зашел в тупик. Надо мной замаячил призрак Клода Шеннона, отца теории информации. Он давным-давно показал, как можно построить криптограмму, которая не поддается расшифровке, если, конечно, не известен способ ее составления. И все же я продолжал игру. Наверное, во всей последующей истории главную роль сыграло именно то, что я - полный профан в криптоанализе. Ну и еще уязвленное самолюбие: я не мог себе простить, что я не знаю, с какого конца подобраться к криптограмме. И решил брать ее в лоб. А мой дилетантизм побудил меня задуматься над формой матрицы. До сих пор я свято полагал, что матрица кода должна быть строго квадратной, - не иначе как отголоски почти забытого университетского курса матричной алгебры. Действительно, квадратную матрицу удобно транспонировать, или если хотите проще, то симметрично преобразовать относительно диагонали. Но кто сказал, что в моем случае вообще требуется транспонирование? Коль скоро передо мной прямоугольная матрица, размышлял я, да еще с хвостиком, это непорядок. Ее надо преобразовать так, чтобы остался квадрат, а хвостик исчез. На верную дорогу я вышел случайно; принципиально же это в корне неверно и могло увести меня неведомо куда. Я сосчитал число знаков в строке - их было тридцать два - и решил сжать матрицу, объединив знаки по два. То есть разбил текст на кодовые слова с длиной два. Но в двоичном коде двумя знаками можно записать лишь четыре цифры - 0(00), 1(01), 2(10) и 3(11). |
|
|