Стихотворный код представляет собой простой и небезопасный криптографический метод , который использовался во время Второй мировой войны британским Управлением специальных операций (SOE) для связи со своими агентами в оккупированной нацистами Европе.
Метод работает, когда отправитель и получатель заранее договариваются о стихотворении для использования. Отправитель выбирает определенное количество слов из стихотворения случайным образом и присваивает каждой букве в выбранных словах номер. Затем эти номера используются в качестве ключа для транспозиционного шифра, чтобы скрыть открытый текст сообщения. В качестве шифра часто использовалась двойная транспозиция . Чтобы указать получателю, какие слова были выбраны, в начале сообщения отправляется индикаторная группа букв.
Чтобы зашифровать сообщение, агент выбирал слова из поэмы в качестве ключа. Каждое сообщение с кодом поэмы начиналось с индикаторной группы из пяти букв, позиция которых в алфавите указывала, какие пять слов поэмы агента будут использоваться для шифрования сообщения. Например, предположим, что поэма является первой строфой «Бармоглота» :
Это было блестяще, и скользкие туф
Вращался и крутился в волнах:
Все мимзи были бородачи,
И моме рах перехваляют.
Мы могли бы выбрать пять слов THE WABE TOVES TWAS MOME, которые находятся в стихотворении на позициях 4, 13, 6, 1 и 21, и описать их с помощью соответствующей индикаторной группы DMFAU.
Пять слов пишутся последовательно, а их буквы нумеруются, чтобы создать ключ транспозиции для шифрования сообщения. Нумерация продолжается путем нумерации сначала букв A в пяти словах, начиная с 1, затем продолжается буквами B, затем C и так далее; любые отсутствующие буквы просто пропускаются. В нашем примере THE WABE TOVES TWAS MOME две буквы A пронумерованы 1, 2; B пронумерована 3; нет ни C, ни D; четыре E пронумерованы 4, 5, 6, 7; нет ни G; H пронумерована 8; и так далее по алфавиту. Это приводит к ключу транспозиции 15 8 4, 19 1 3 5, 16 11 18 6 13, 17 20 2 14, 9 12 10 7.
Это определяет перестановку, которая используется для шифрования. Сначала текстовое сообщение записывается в строки сетки, которая имеет столько столбцов, сколько и длина ключа транспозиции. Затем столбцы считываются в порядке, заданном ключом транспозиции. Например, текстовое сообщение «ОПЕРАЦИЯ ПО УНИЧТОЖЕНИЮ БУНКЕРА СОСТОИТСЯ ЗАВТРА В ОДИННАДЦАТЬ, ВСТРЕЧА В ШЕСТЬ У ФЕРМЕРА ЖАКА» будет написано на клетчатой бумаге вместе с номерами ключей транспозиции, например:
15 8 4 19 1 3 5 16 11 18 6 13 17 20 2 14 9 12 10 7ОПЕРАЦИЯTODEMOLIШТЕБУНКЕРИСТОМОРРОWATELEVENRENDEZVOUSATSIXATFARMERJACQUESX
Затем столбцы будут считываться в порядке, указанном номерами ключей транспозиции:
PELA DOZC EBET ETTI RUVF OREE IOAX HHAS MOOU LRSS TKNR ORUE NINR EMVQ TSWT ANEA TSDJ IERM OHEX OTEA
Затем добавляется группа индикаторов (DMFAU), в результате чего получается следующий шифртекст:
DMFAU PELAD OZCEB ETETT IRUVF OREEI OAXHH ASMOU ULRSS TKNRO RUENI NREMV QTSWT ANEAT SDJIE RMOHE XOTEA
В большинстве случаев использования кодовых поэм этот процесс выбора группы индикаторов и транспонирования текста будет повторяться один раз ( двойная транспозиция ) для дальнейшего перемешивания букв. В качестве дополнительной меры безопасности агент будет добавлять заранее подготовленные ошибки в текст в качестве проверок безопасности. Например, может быть преднамеренная ошибка в каждой 18-й букве, чтобы гарантировать, что если агент будет пойман или поэма будет найдена, противник сможет передать без проверок безопасности.
Преимущество кода в том, что он обеспечивает относительно высокую степень безопасности, не требуя никакой кодовой книги.
Однако процесс шифрования подвержен ошибкам, если выполняется вручную, и по соображениям безопасности сообщения должны быть длиной не менее 200 слов. Проверка безопасности обычно не была эффективной: если код использовался после того, как его перехватил и расшифровал противник, любые проверки безопасности были раскрыты. Кроме того, проверку безопасности часто можно было выпытать у агента.
Есть и ряд других недостатков.
Когда Лео Маркс был назначен офицером по кодам Управления специальных операций (SOE) в Лондоне во время Второй мировой войны , он очень быстро осознал слабость этой техники и последующий ущерб агентам и их организациям на континенте и начал настаивать на изменениях. В конце концов, SOE начало использовать оригинальные композиции (таким образом, не вошедшие ни в один опубликованный сборник стихов какого-либо поэта), чтобы обеспечить дополнительную защиту (см. пример «Жизнь , которая у меня есть»). Часто стихи были юмористическими или откровенно сексуальными, чтобы сделать их запоминающимися («Дело де Голля в том, что //Двенадцать дюймов толщиной //Может ли он подняться //До размера //Гордого флагштока //И светит ли солнце //Из его задницы?»). Другим усовершенствованием стало использование нового стихотворения для каждого сообщения, причем стихотворение было написано на ткани, а не заучено.
Постепенно SOE заменило код поэмы более безопасными методами. Выработанные ключи (WOK) были первым крупным усовершенствованием — изобретением Маркса. WOK — это заранее подготовленные ключи транспозиции, которые выдавались агентам, что делало поэму ненужной. Каждое сообщение шифровалось на одном ключе, который был написан на специальном шелке. Ключ уничтожался путем отрывания куска шелка при отправке сообщения.
Проект Маркса, названный им «Операция Дареный конь», представлял собой обманную схему, направленную на маскировку более безопасного трафика кода WOK под трафик кода поэмы, чтобы немецкие криптографы думали, что сообщения «дареного коня» легче взломать, чем они были на самом деле. Это было сделано путем добавления ложных дублирующих групп индикаторов к ключам WOK, чтобы создать видимость того, что агент повторил использование определенных слов их кодовой поэмы. Целью «Дареного коня» было потратить время противника, и она была развернута до дня «Д» , когда трафик кода резко возрос.
Код стихотворения в конечном итоге был заменен одноразовым блокнотом , а именно одноразовым блокнотом с буквами (LOP). В LOP агенту предоставлялась строка букв и квадрат подстановки. Открытый текст был написан под строкой на блокноте. Пары букв в каждом столбце (например, P и L) указывали на уникальную букву в квадрате (Q). Блокнот никогда не использовался повторно, в то время как квадрат подстановки можно было использовать повторно без потери безопасности. Это обеспечивало быстрое и безопасное кодирование сообщений.