Введение
Шифр многоалфавитной подстановки — это шифр, использующий несколько алфавитов подстановки. Шифр Виженера, вероятно, является наиболее известным примером многоалфавитного шифра, хотя и представляет собой упрощенный частный случай. Машина «Энигма» более сложна, но в основе своей остаётся многоалфавитным шифром подстановки.
A polyalphabetic cipher is a substitution, using multiple substitution alphabets. The Vigenère cipher is probably the best known example of a polyalphabetic cipher, though it is a simplified special case. The Enigma machine is more complex but is still fundamentally a polyalphabetic substitution cipher.
История
В работе Аль Калкашанди (1355–1418), основанной на более ранней работе Ибн аль-Дурайима (1312–1359), содержалось первое опубликованное обсуждение подстановки и перестановки шифров, а также первое описание полиалфавитного шифра, в котором каждой букве открытого текста присваивается более одного заместителя. Однако утверждается, что полиалфавитные шифры могли быть разработаны арабским криптологом Аль Кинди (801–873) за столетия до этого. Шифр Альберти, созданный Леоном Баттистой Альберти около 1467 года, был ранним полиалфавитным шифром. Альберти использовал смешанный алфавит для шифрования сообщения, но при желании переключался на другой алфавит, указывая это включением в шифротекст прописной буквы или числа. Для этого шифрования Альберти использовал декодирующее устройство – свой шифровальный диск, который реализовывал полиалфавитную подстановку со смешанными алфавитами. Иоганн Тритемий – в своей книге Polygraphiae libri sex (Шесть книг о полиграфии), опубликованной в 1518 году после его смерти, – изобрел полиалфавитный шифр с прогрессивным ключом, названный шифром Тритемия. В отличие от шифра Альберти, который переключал алфавиты через случайные интервалы, Тритемий переключал алфавиты для каждой буквы сообщения. Он начал с tabula recta – таблицы, представляющей собой квадрат с 26 буквами (хотя Тритемий, писавший на латыни, использовал 24 буквы). Каждый алфавит был сдвинут на одну букву влево от предыдущего, и начинался снова с A после достижения Z (см. таблицу). Идея Тритемия заключалась в шифровании первой буквы сообщения с использованием первого сдвинутого алфавита, так что A становилось B, B – C и т.д. Вторая буква сообщения шифровалась с использованием второго сдвинутого алфавита и так далее. Шифровальный диск Альберти реализовывал ту же схему. Он имел два алфавита: один на неподвижном внешнем кольце, а другой – на вращающемся диске. Буква шифровалась путем поиска этой буквы на внешнем кольце и кодирования ее буквой, находящейся под ней на диске. Диск начинался с A под B, и пользователь поворачивал диск на одну букву после шифрования каждой буквы. Шифр был тривиальным для взлома, а аппаратная реализация Альберти не намного сложнее. Прогрессия ключа в обоих случаях была плохо скрыта от злоумышленников. Даже реализация полиалфавитного шифра Альберти была довольно легкой для взлома (прописная буква – важная подсказка для криптоаналитика). На протяжении последующих нескольких сотен лет значимость использования множества алфавитов подстановки оставалась незамеченной почти всеми. Разработчики полиалфавитных шифров, по-видимому, сосредотачивались на сокрытии выбора нескольких таких алфавитов (повторяя их по мере необходимости), а не на повышенной безопасности, которую можно было бы получить, используя множество алфавитов и не повторяя ни один из них. Принцип (особенно неограниченные дополнительные алфавиты подстановки Альберти) был крупным прорывом – самым значительным за несколько сотен лет с момента разработки частотного анализа. Разумная реализация была бы (и, когда она была достигнута, оказалась) значительно сложнее для взлома. Только в середине XIX века (в секретных работах Бэббиджа во время Крымской войны и в публичной публикации Фридриха Касиски, примерно эквивалентной его работе, несколько лет спустя) криптоанализ хорошо реализованных полиалфавитных шифров достиг каких-либо успехов. См. исследование Касиски.