Что за шифр убийцы?
В тексте содержатся упоминания убийств
31 июля 1969 года в офисы газет Vallejo Times-Herald, San Francisco Examiner и San Francisco Chronicle поступили письма с примерно одинаковым содержанием. Анонимный автор писал, что берёт на себя ответственность за серию убийств, недавно прогремевших на всю Калифорнию, и угрожал продолжить убивать, если приложенные материалы не будут опубликованы. К каждому из писем прилагался лист со 136 символами, и вскоре все три письма появились в газетах.
408-символьный шифр Зодиака
А ещё через несколько дней у супружеской пары Дональда и Бетти Харден получилось разгадать криптограммы — вернее, криптограмму. Оказалось, что автор, позднее давший себе имя Zodiac, зашифровал в символах послание, используя одну из разновидностей шифра подстановки — метод омофонической замены. В криптограмме, которая станет известна как Z408 (по первой букве имени Zodiac и количеству использованных знаков), Хардены обнаружили сюръективное соответствие между буквами английского алфавита и загадочными символами: каждой букве соответствовал один или несколько использованных в шифровке символов.
Соответствие между буквами английского алфавита и символами криптограммы
После расшифровки получился текст, который содержал сбивчивые рассуждения убийцы о жизни и смерти.
<…> I WILL NOT GIVE YOU MY NAME BECAUSE YOU WILL TRS [TRY] TO SLOI [SLOW] DOWN OR ATOP [STOP] MY COLLECTING OF SLAVES FOR MY AFTERLIFE EBEO RIET EMETH HPITI.
Фрагмент расшифровки Харденов
Часть слов в расшифровке Харденов содержали опечатки, а сам текст заканчивался неясным набором символов, но профессор математики и член Американской ассоциации криптограмм Дональд Марш провёл независимое исследование и подтвердил правильность такого решения. Неподдавшееся расшифровке ebeorietemethhpiti Марш объяснил желанием автора соблюсти форму прямоугольника 17 × 8 путём добавления филлерных символов, за которыми ничего не стояло.
Но одним шифром дело не кончилось. 8 ноября того же года в San Francisco Chronicle пришла ещё одна криптограмма с похожим набором знаков, однако в этот раз за пару дней шифр разгадать не удалось — не хватило ни пары месяцев, ни даже пары лет.
Только в 2020 году, более чем через полвека после публикации письма в газете, удалось пролить свет на тайну Z340, второго шифра Зодиака. Случилось это благодаря усилиям команды энтузиастов-криптографов Дэвида Оранчака, Сэма Блейка и Ярла Ван Эйке, а также большого интернет-комьюнити.
Стоит отметить, что криптоанализ практически неприменим к шифротекстам малого объёма, потому что маленькие криптограммы могут допускать слишком большое количество решений, ни одно из которых не является научно фальсифицируемым. По этой причине два других шифра Зодиака, отправленные им уже в 1970 году — Z13 и Z32, — вероятно, никогда не будут дешифрованы.
Виды шифров
Но какие вообще бывают шифры? Все способы шифрования строятся на двух принципах: подстановке (substitution) и перестановке (transposition). Давайте посмотрим на каждый из них.
Заметим, что в этом кратком обзоре мы будем рассматривать только методы симметричного шифрования — то есть такого, где для шифрования и расшифровывания используется один и тот же ключ. Асимметричное же шифрование, зародившееся в середине 1970-х, использует два разных ключа: открытый (public), предназначенный для шифрования, и закрытый (private) — для дешифровки.
Как работают шифры подстановки
В шифрах подстановки элементы исходного текста в соответствии с неким правилом заменяются на другие, шифрующие, элементы. В простом моноалфавитном шифре подстановки каждому символу исходного текста приводится в соответствие один и тот же знак. К таким шифрам относится, например, шифр Цезаря, получивший название в честь римского императора, который, по свидетельствам историка Светония, использовал подобную кодировку при передаче сообщений военачальникам. Согласно алгоритму шифра, каждая буква исходного текста как бы сдвигается на фиксированное количество позиций вправо. Алфавит при этом считается цикличным: после Я опять идёт А и так далее.
Для декодировки шифра вроде шифра Цезаря, где сдвиг для всех букв строго фиксирован, можно просто рассмотреть все возможные варианты и выбрать наиболее осмысленный из них (к счастью, вариантов всего n – 1, где n — количество букв в алфавите). Такой подбор называется методом «грубой силы», или брутфорсом. Но даже на это у человека уйдёт немало времени, а вот машины с такого рода (и гораздо более сложными) переборами справляются быстро и эффективно.
Прочие простые моноалфавитные шифры тоже не назовёшь надёжными. Это связано, в первую очередь, с частотностью символов и их последовательностей (биграмм, триграмм и т. д.) в языке. Так, согласно Новому частотному словарю русской лексики, самой часто встречающейся русской буквой является О с относительной частотностью почти 11%, а самой редкой — Ё с частотностью менее 0,05%. Таким образом, если русский текст зашифрован простым моноалфавитным шифром, то с большой долей вероятности самый часто встречающийся символ будет соответствовать букве О. Шифр омофонической замены, который Зодиак использовал в своей первой криптограмме, позволяет скрыть изначальную частотность символов, потому что допускает присваивать каждому знаку исходного текста более одного шифровочного символа.
Ещё более сложное семейство шифров подстановки — полиалфавитные. Они, как следует из названия, используют несколько алфавитов, что позволяет одному и тому же символу в исходном тексте в зависимости от позиции соответствовать разным символам итоговой шифровки. Наиболее популярный полиалфавитный шифр — шифр Виженера, названный так в честь популяризовавшего его дипломата Блеза Виженера. Обычно при кодировании шифром Виженера используется таблица n × n, иначе называемая tabula recta, где n — количество букв в алфавите.
Суть в следующем: каждая буква исходного текста сдвигается, как в шифре Цезаря, но число сдвигов задаёт соответствующий ей символ кодового слова. Попробуем зашифровать текст «СИСТЕМНЫЙ», используя кодовое слово «БЛОКЪ». Чтобы получить ключ для шифрования, циклически будем писать кодовое слово до тех пор, пока его длина не будет соответствовать длине исходного текста: «БЛОКЪБЛОК». Давайте условимся, что нумерация букв начинается с нуля, тогда первая буква текста должна быть сдвинута на одну позицию вправо (потому что Б, вторая буква алфавита, соответствует единице), вторая буква текста — на 12 позиций вправо, третья буква — на 15, четвёртая — на 11, пятая — на 27, шестая — снова на одну и так до конца. Шифрование удобно проводить по таблице, просто находя знак на пересечении столбца буквы из исходного текста и строки буквы из кодового слова. В итоге получим текст «ТФАЭЯНЩЙФ», декодирование которого представляет более трудоёмкую задачу для криптографов, чем моноалфавитные шифры.
Существует целый ряд вариаций и усложнений шифра Виженера. Так, немного иначе работает шифр Бофора: в таблице шифрования буква исходного текста указывает на столбец, а буква зашифрованного текста — на строку. На их пересечении находится соответствующая буква ключевого слова, которая используется для шифрования.
В другом полиалфавитном шифре, шифре Плейфера, текст делится на биграммы (последовательности из двух символов), а затем каждая из биграмм кодируется c помощью специальной таблицы. Несмотря на обилие методов, все перечисленные шифры в наше время поддаются дешифровке — во многом благодаря вычислительным мощностям, которые позволяют эффективно перебрать все возможные варианты брутфорсом.
Как работают шифры перестановки
В шифрах перестановки элементы текста остаются неизменными, но переставляются в порядке, отличном от исходного. В V веке до нашей эры греки использовали устройство, известное как скитала (от др.-греч. σκυτάλη — «жезл»), которое представляло собой длинную полосу пергамента, плотно обмотанную по спирали вокруг стержня определённого размера. Сообщение записывалось на намотанном пергаменте по длине стержня и после разматывания ленты становилось зашифрованным. Чтобы прочитать изначальный текст, ленту необходимо было снова обмотать вокруг стержня аналогичной длины и диаметра.
К шифрам перестановки можно отнести и анаграммы, в которых буквы исходного слова перемешиваются, образуя другое слово, — правда, без строгого следования какому-то алгоритму. Ещё в XVII веке Галилей использовал анаграммы для защиты авторских прав, а уже в XX веке телеканалы с аналогичными целями стали шифровать своё вещание от пиратов. Подробнее об этом можно почитать в материале «СБъ».
Примечателен метод шифрования поворотной решёткой, который активно использовался в XVI–XVII веках. Решётка — это перфорированный шаблон с вырезами, соответствующими символам сообщения. Для шифрования текст записывался в ячейки матрицы через эти вырезы, затем решётка поворачивалась под определённым углом, и процесс повторялся до заполнения всей матрицы.
Более сложные шифры могут предусматривать многократное и нелинейное изменение порядка символов. В таких случаях декодирование обычно заключается в переборе возможных перестановок и анализе закономерностей, выявляющихся при перестановке.
Окей, расскажите уже, как расшифровали шифр Зодиака!
Вернёмся в 1969 год. Проанализировав второй шифр Зодиака, Агентство национальной безопасности заявило, что криптограмма без сомнения содержит сообщение, но метод шифрования существенно отличается от того, который был применен в Z408. Как же был зашифрован Z340?
После ряда безуспешных попыток дешифровки криптографы заметили странность: в Z340 частота встречаемости биграмм практически соответствовала случайному распределению, в отличие от Z408, в котором присутствовало значительное количество повторяющихся биграмм. В то же время при попытке посчитать биграммы, отстоящие друг от друга на определённый промежуток, криптографы заметили, что Z340 демонстрирует значительное увеличение повторяющихся биграмм на фиксированном периоде 19 — то есть биграмм c 18 другими символами между, — тогда как Z408 подобных закономерностей не показывает. Это натолкнуло исследователей на мысль о возможном использовании перестановки. Идея гибридного шифра, который сочетает подстановку и перестановку, стала ключевым направлением в попытках его расшифровки.
Сравнение повторяющихся биграмм в двух шифрах
В 2006 году группа программистов создала софт ZKDecrypto, способный автоматически дешифровать Z408. На его основе Ян Ван Эйке в 2014 году создал AZdecrypt, решающий до двухсот подобных шифров в секунду. В AZdecrypt Ван Эйке применил оптимизированный алгоритм имитации отжига (simulated annealing), названный по аналогии с физическим процессом медленного охлаждения материалов для достижения устойчивого состояния. Этот алгоритм современные исследователи применяли и при дешифровке секретных писем королевы Марии Стюарт.
AZdecrypt эффективно справлялся с решением шифров подстановки, позволяя быстро находить слова в последовательностях символов. Однако оставалась задача определения правильного порядка расположения этих символов. В 2019 году Сэм Блейк отобрал возможные схемы перестановки, учитывая особенность периода 19, и применил каждую из схем к шифру. Затем он сформировал набор вариантов с переставленными символами для каждой схемы и отфильтровал их, исключив те, в которых количество повторяющихся биграмм оказалось недостаточно большим.
Схемы перестановки Блейка
После этого Сэм Блейк и Дэвид Оранчак начали проводить эксперименты, загружая варианты перестановок в ZKDecrypto и AZdecrypt. Это продолжалось на протяжении двух лет, пока 3 декабря 2020 года AZdecrypt не показал исследователям результат для одного из многочисленных вариантов:
e [HOPE YOU ARE] he sing ist torra enn [TRYING TO CATCH ME] th aftaint mt on the ts [SHOT WHICH BRINGS UP] als in tabs it me name of ar heed [OR THE GAS CHAMBER] beca ate it wild vent me roler a dice ai i the vs shen because too wha seen tight deserts wors ros me there everyoneed [HE HAS NOTHING THEN THEY] he ach paradict is they alreare and norder ther ameo earre and becauite is yot tv hat mr newe itle never ind baeyn neia at a hoe cdr pet
Расшифровка AZdecrypt. Капсом выделены слова, которые привлекли внимание исследователей
То, что расшифровки перестановочных вариантов иногда содержали осмысленные слова, не было чем-то необычным. Но в этот раз некоторые конструкции уж очень сильно напоминали характерные для писем Зодиака фразы. Для дальнейшей дешифровки Оранчак использовал встроенную в AZdecrypt функцию cribbing, суть которой заключается во вставке известных или предполагаемых фрагментов в определённые места предполагаемого исходного текста, чтобы облегчить дешифровку оставшихся областей. Таким образом исследователи получили полный текст первых девяти рядов и дешифровка оставшейся части уже не представляла большой сложности.
В итоге вышло следующее:
I HOPE YOU ARE HAVING LOTS OF [FAN: FUN] IN TRYING TO CATCH ME THAT WASN’T ME ON THE TV SHOW WHICH [BRINGO: BRINGS] UP A POINT ABOUT ME I AM NOT AFRAID OF THE GAS CHAMBER [BECAASE: BECAUSE] IT WILL SEND ME TO [PARADLCE: PARADISE] ALL THE [SOOHER: SOONER] BECAUSE [E: I] NOW HAVE ENOUGH SLAVES TO [WORV: WORK] FOR ME WHERE EVERYONE ELSE HAS NOTHING WHEN THEY REACH [PARADICE: PARADISE] SO THEY ARE AFRAID OF DEATH I AM NOT AFRAID BECAUSE I [VNOW: KNOW] THAT MY NEW LIFE WILL BE AN EASY ONE IN [PARADICE: PARADISE] LIFE IS DEATH
Полная расшифровка Z340. В квадратных скобках — предполагаемое прочтение слов с орфографическими ошибками
Cхема перестановки Z340
Приблизительный перевод с расставленными знаками препинания:
Я НАДЕЮСЬ, ЧТО ВЫ ПОЛУЧАЕТЕ МНОГО УДОВОЛЬСТВИЯ ОТ ПОПЫТОК ПОЙМАТЬ МЕНЯ. ЭТО БЫЛ НЕ Я НА ТЕЛЕШОУ, КОТОРОЕ ЗАТРОНУЛО ВОПРОС ОБО МНЕ. Я НЕ БОЮСЬ ГАЗОВОЙ КАМЕРЫ, ПОТОМУ ЧТО ОНА ОТПРАВИТ МЕНЯ В РАЙ РАНЬШЕ, ПОТОМУ ЧТО Я ТЕПЕРЬ ИМЕЮ ДОСТАТОЧНО СЛУГ, ЧТОБЫ ОНИ РАБОТАЛИ НА МЕНЯ, В ТО ВРЕМЯ КАК У ВСЕХ ОСТАЛЬНЫХ НЕТ НИЧЕГО, КОГДА ОНИ ДОСТИГАЮТ РАЯ, ПОЭТОМУ ОНИ БОЯТСЯ СМЕРТИ. Я НЕ БОЮСЬ, ПОТОМУ ЧТО Я ЗНАЮ, ЧТО МОЯ НОВАЯ ЖИЗНЬ БУДЕТ ЛЕГКОЙ В РАЮ. ЖИЗНЬ — ЭТО СМЕРТЬ.
Содержание сообщения соответствует фактам реальности: за несколько недель до отправки письма с криптограммой, 22 октября 1969 года, неизвестный, представившийся Зодиаком, несколько раз позвонил в прямой эфир одного американского телешоу. Звонивший заявлял, что «ему нужна помощь» и «он не хочет в газовую камеру» (I need help. I’m sick. I don’t want to go to the gas chamber).
Расшифровка шифра Зодиака, безусловно, стала одной из самых трудных задач в истории криптографии, и её решение не было бы возможным без долгих лет неудачных попыток и тупиковых идей. За пять десятилетий множество людей пробовало разгадать загадку шифра. Сотрудники ФБР, получив шифр Z340 в 1969 году, пытались проанализировать его с использованием ключа Z408. Дешифровка не удалась, но обнаруженные повторяющиеся последовательности применялись в последующем криптоанализе. В разное время свою разгадку шифра предлагали Роберт Грейсмит, Кори Старлипер и Крейг Бауэр, но все их решения были подвергнуты критике и опровергнуты.
На пути к разгадке важную роль сыграла интернет-коммуникация. Множество юзеров делились своими мыслями и открытиями через форумы, блоги, электронные письма и социальные сети. В 2012 году Дэвид Оранчак начал собирать проверенные факты и наблюдения о шифрах Зодиака на своей веб-странице, чем положил начало большой коллективной работе.
Исследователи отмечают, что шифр оставался неразгаданным столь долго из-за множества преднамеренных усложнений, внесённых Зодиаком. Среди них — разделение текста на секции и сложные перестановки с нарушением последовательности. Зодиак успешно применил принцип «безопасность через неясность» (security through obscurity), предполагающий, что сама трудность выявления метода шифрования служит его защитой. Однако благодаря кропотливой ручной работе и многократным итерациям компьютерных программ криптографам удалось решить эту задачу. Вполне возможно, что более сложный шифр, например, с бо́льшим числом уникальных символов, мог бы остаться нераскрытым до сих пор.
Источники
- D. Oranchak, S. Blake, J. Van Eycke. The Solution of the Zodiac Killer’s 340-Character Cipher. 2024. URL: https://arxiv.org/abs/2403.17350 (дата обращения 10.12.2024)
- Friedrich L. Bauer. Decrypted Secrets: Methods and Maxims of Cryptology. 4th ed. Heidelberg: Springer Berlin, 2007.
- Richard A. Mollin. An Introduction to Cryptography. 2nd ed. Boca Raton: Taylor & Francis Group, 2007.
- AZDecrypt [Computer Software] // GitHub. 2025. URL: https://github.com/doranchak/azdecrypt (дата обращения 09.12.2024).
- ZKDecrypto [Computer Software] // GitHub. 2025. URL: https://github.com/glurk/zkdecrypto (дата обращения 09.12.2024).