Зодиак. По следам зла
Зодиак. По следам зла

Полная версия

Зодиак. По следам зла

Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
2 из 2

Однако в случае с Z340 алгоритм раз за разом застревал на так называемых «локальных максимумах» — небольших холмиках, откуда любой шаг вел только вниз, хотя настоящая вершина скрывалась где-то в тумане. Причина была проста: Зодиак не просто заменил буквы, он сломал саму геометрию текста.

Сэм Блейк смотрел на строчки кода, которые он только что отправил Ван Эйку. В них была заложена гипотеза транспозиции — сдвига матрицы.— Мы исходили из того, что он писал как нормальный человек. Слева направо, сверху вниз, — голос Блейка в аудиоконференции звучал хрипло от усталости.— Но он хотел запутать нас. Он применил децимацию.

Матрица Z340 представляла собой сетку: 20 столбцов и 17 строк. Сэм предложил прочитать ее по диагонали. Правило было математически четким: начать с левого верхнего угла, прочитать символ, затем спуститься на одну строку вниз и сдвинуться на два столбца вправо. «Один вниз, два вправо» — как ход коня на шахматной доске, только растянутый.

Но что происходит, когда алгоритм доходит до правого края матрицы? Блейк применил концепцию тороидальной топологии. Представьте, что лист бумаги свернули в цилиндр: достигнув правого края, вы просто продолжаете движение с левого края той же строки. А если свернуть этот цилиндр в кольцо, соединив верх и низ, получится тор (форма пончика). Пространство становится замкнутым и бесконечным. Алгоритм, сдвигаясь «один вниз, два вправо», будет непрерывно наматывать круги по этой невидимой геометрической фигуре, пока не соберет все 340 символов в новую, вытянутую в одну линию последовательность.

Ярл Ван Эйк получил скрипт Сэма. В его тесной бельгийской комнате, освещенной лишь агрессивным свечением монитора, раздался щелчок мыши. AZdecrypt принял новую строку — последовательность, собранную по диагональному правилу Блейка из миллионов возможных перестановок, сгенерированных суперкомпьютером Spartan.

Дэвид Оранчак в Вирджинии затаил дыхание. На его экране транслировался рабочий стол Ярла.

Запустился процесс. Индикатор на экране, показывающий «оценку текста» (n-gram score), задрожал. Обычно этот показатель болтался в районе нескольких сотен баллов — верный признак бессмысленного набора букв.

Внезапно цифры прыгнули. Алгоритм восхождения на холм нашел крутой подъем. Оценка взлетела. Восемьсот. Тысяча. Тысяча двести.

Ярл подался вперед, почти касаясь носом монитора. AZdecrypt начал выбрасывать на экран фрагменты текста, которые больше не выглядели как случайный мусор.

В первой строке, среди каши из символов, отчетливо проступило слово «HOPE» (НАДЕЮСЬ). Чуть дальше, после цепочки бессмыслицы, выскочило «TRYING» (ПЫТАЕТЕСЬ). Затем появилось зловещее «CATCH ME» (ПОЙМАТЬ МЕНЯ).

— Боже мой, — прошептал Оранчак. Волосы на его затылке встали дыбом. Пятьдесят один год этот текст хранил молчание, и сейчас он заговорил.

Но радость длилась всего несколько секунд. Алгоритм рванул вверх, но внезапно ударился о невидимый потолок. Оценка замерла на отметке, которая была высока для случайности, но недостаточна для полного, осмысленного текста. После слова «CATCH ME» программа снова начала выдавать чистую, беспросветную энтропию. Белый шум вернулся, поглотив английскую речь. Машина забуксовала.

— Что произошло? — голос Блейка дрогнул. — Почему он остановился? — Локальный максимум, — сухо ответил Ярл, хотя его пальцы, летающие по клавиатуре, выдавали крайнюю степень напряжения. — Программа подобрала идеальные ключи для первых слов, но дальше эти же ключи выдают бред. Логика рушится.

Оранчак открыл матрицу на своем экране. Он впился взглядом в оригинальную сетку из 340 символов. Если гипотеза Сэма «один вниз, два вправо» работала в начале, но переставала работать потом, значит, проблема была не в алгоритме. Проблема была в самом шифре.

Дэвид абстрагировался от светящегося экрана. Он попытался перенестись мыслями туда, в ноябрь 1969 года.

Сан-Франциско. Напряжение в городе звенит, как натянутая струна. Полиция сбилась с ног, патрулируя улицы и сопровождая школьные автобусы. А где-то в дешевой съемной комнате или грязном подвале за столом сидит человек. Он чувствует себя всемогущим богом, дергающим за ниточки целый штат. Перед ним лежит лист миллиметровки, карандаш и линейка. Он создает свой шедевр. Он чертит матрицу 20 на 17.

Затем он берет свой черновик с посланием, которое хочет зашифровать. И начинает кропотливо, вручную, переносить буквы в сетку, следуя своему хитроумному правилу «один вниз, два вправо». Он отсчитывает ячейки. Вниз. Раз, два, вправо. Пишет символ. Вниз. Раз, два, вправо. Пишет символ.

Это скучная, монотонная работа. Требующая предельной концентрации.

А психопат с линейкой — всего лишь человек. Человек, который может устать. Которого может отвлечь шум за окном, лай собаки или собственные параноидальные мысли.

Дэвид водил курсором по строкам, повторяя путь убийцы. Первая строка, вторая, третья... Идеально. Восьмая строка. Девятая...

Стоп.

В девятой строке паттерн, по которому строились английские слова в программе Ярла, ломался с хрустом. Оранчак приблизил изображение.

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

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

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

Он быстро вывел на общий экран свои расчеты. — Смотрите. Паттерн работает только для первых 170 символов. Это ровно половина матрицы. Если мы разделим шифр на части...

Блейк мгновенно уловил математическую суть. — Он разбил матрицу. Он не шифровал ее как единый блок 20 на 17. Он разделил ее по горизонтали!

Они начали лихорадочно препарировать матрицу. Оранчак провел воображаемые линии, разрезая блок. Вырисовывалась новая структура: верхний блок из 9 строк. Средний блок из 9 строк. И нижний огрызок из 2 строк.

— В первом блоке, в 9-й строке, он сбился с шага. Сместил координаты, — Дэвид быстро набирал текст. — Нам нужно вручную исправить его ошибку. Нам нужно очистить код от человеческого фактора.

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

Сформировав новую, скорректированную строку, Оранчак переслал ее Ярлу. В Антверпене шел проливной дождь, капли барабанили по стеклу, сливаясь с гулом охлаждающих кулеров.

— Строка получена, — сухо констатировал Ван Эйк. В его голосе не было эмоций, но Дэвид знал: бельгиец сейчас напряжен, как оголенный провод. — Заряжаю в AZdecrypt. Перезапуск.

На экране снова появилось черное окно командной строки. Алгоритм восхождения на холм получил новые стартовые координаты. Он снова оказался у подножия горы, но на этот раз местность перед ним была свободна от непроходимых разломов, оставленных дрогнувшей рукой убийцы.

Начался процесс мутации ключей. Программа подставила случайные значения. Оценка: 300 баллов. Она изменила букву «E». Оценка: 500 баллов. Изменила «T». Оценка: 900 баллов. Шаг за шагом алгоритм карабкался вверх. Он больше не спотыкался на 9-й строке. Локальный максимум был пройден на огромной вычислительной скорости.

Оценка: 1500. Оценка: 2200.

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

Оценка текста пробила отметку в 3000 баллов. Это был статистический водораздел. Точка невозврата. За этой отметкой случайности не существовало. За этой отметкой начиналась чистая, математически подтвержденная правда.

Зеленые символы на черном фоне дрогнули, перестраиваясь. Геометрические фигуры, кресты, полукружья и треугольники, которые издевались над следователями ФБР, криптографами АНБ и армией любителей полвека, начали схлопываться, уступая место английскому алфавиту. Белый шум матрицы рассеивался, как утренний туман под палящим солнцем.

Программа приняла исправление. Бессмысленные обрывки слились в монолитный блок текста.

На экране Дэвида, буква за буквой, из цифровой бездны начало проступать послание из 1969 года.

«I HOPE YOU ARE...» (Я НАДЕЮСЬ ВЫ...)

Дэвид вцепился пальцами в подлокотники кресла. Алгоритм завершал последние корректировки, расставляя на места редкие буквы. Строки заполнялись смыслом, обнажая холодный, надменный разум человека, который пятьдесят лет ждал, чтобы с ними заговорить.

Глава 3:

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

Конец ознакомительного фрагмента
Купить и скачать всю книгу
На страницу:
2 из 2