Открыть сервис

Многоалфавитный шифр

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

История

Ранние предшественники

Идея использования нескольких алфавитов для шифрования восходит к античности. Одним из первых известных примеров является шифр Полибия (II век до н. э.), который, хотя и не был многоалфавитным в современном смысле, использовал квадрат 5×5 для замены букв координатами. Однако настоящий прорыв произошёл в эпоху Возрождения.

Шифр Альберти

В 1466 году итальянский архитектор и теоретик искусства Леон Баттиста Альберти в своём трактате «De componendis cifris» впервые описал принцип многоалфавитной замены. Он предложил использовать два вращающихся диска (шифровальный диск Альберти), на одном из которых был написан алфавит открытого текста, а на другом — смешанный алфавит шифротекста. После шифрования нескольких букв диск поворачивался, меняя соответствие между алфавитами. Это изобретение считается первым в истории многоалфавитным шифром.

Шифр Тритемия

В начале XVI века немецкий аббат Иоганн Тритемий в своей книге «Полиграфия» (1508) разработал таблицу Тритемия — квадратную таблицу размером 26×26, где каждая строка представляла собой алфавит, сдвинутый на одну позицию относительно предыдущей. Для шифрования использовалась последовательная замена букв открытого текста на буквы из разных строк таблицы, начиная с первой строки для первой буквы, со второй — для второй и так далее. Это был первый систематический многоалфавитный шифр, не требующий механических устройств.

Шифр Виженера

Наиболее известным и широко применяемым многоалфавитным шифром стал шифр Виженера, описанный французским дипломатом Блезом де Виженером в 1586 году. Он усовершенствовал таблицу Тритемия, добавив использование ключевого слова для определения порядка сдвига алфавитов. Шифр Виженера долгое время считался невзламываемым (le chiffre indéchiffrable), пока в 1863 году немецкий криптоаналитик Фридрих Касиски не разработал метод его взлома (тест Касиски).

Развитие в XIX—XX веках

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

Принцип работы

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

Ключ и сдвиг

Ключом обычно является слово, фраза или числовая последовательность. Для шифрования каждая буква ключа определяет, какой алфавит (или сдвиг) будет использован для текущей буквы открытого текста. Например, в шифре Виженера ключу «KEY» соответствуют сдвиги 10 (K), 4 (E) и 24 (Y). Если ключ короче сообщения, он повторяется циклически.

Таблица Виженера (квадрат Виженера)

Это таблица размером 26×26 (для латиницы), где строки и столбцы помечены буквами алфавита. Строка i представляет собой алфавит, сдвинутый на i позиций. Для шифрования буквы открытого текста (столбец) с помощью буквы ключа (строка) на пересечении находится буква шифротекста. Для расшифровки используется обратная операция: зная букву ключа (строку), находят в ней букву шифротекста и определяют соответствующий столбец — букву открытого текста.

Математическая модель

Для латинского алфавита (A=0, B=1, ..., Z=25) шифрование и расшифровка в шифре Виженера описываются формулами:

  • Шифрование: Ci = (Pi + Ki) mod 26
  • Расшифровка: Pi = (Ci - Ki) mod 26

где Pi — номер буквы открытого текста, Ci — номер буквы шифротекста, Ki — номер буквы ключа (сдвиг) для i-й позиции.

Классификация

Многоалфавитные шифры можно классифицировать по нескольким признакам.

По способу генерации алфавитов

  • Последовательные (циклические): Алфавиты меняются в фиксированном порядке, обычно циклически (например, таблица Тритемия или шифр Виженера с повторяющимся ключом).
  • Апериодические: Последовательность алфавитов не повторяется или повторяется через очень большой период. Примером может служить шифр с использованием бесконечного ключа (одноразовый блокнот) или роторные машины с нерегулярным вращением роторов.

По типу ключа

  • С фиксированным ключом: Ключ задаётся заранее и используется для всего сообщения (шифр Виженера).
  • С автоматическим ключом: Ключ генерируется из самого открытого текста или шифротекста (шифр Плейфера, шифр Бофора).
  • С одноразовым ключом (одноразовый блокнот): Ключ является случайной последовательностью, равной по длине сообщению, и используется только один раз. Теоретически такой шифр является абсолютно стойким.

Примеры многоалфавитных шифров

  • Шифр Виженера: Классический пример с циклическим ключом.
  • Шифр Бофора: Вариант шифра Виженера, где используется обратный сдвиг.
  • Шифр Плейфера: Шифрует пары букв (биграммы) с помощью таблицы 5×5, используя ключевое слово.
  • Роторные машины («Энигма», «Сигма»): Электромеханические устройства, реализующие сложную многоалфавитную замену с помощью вращающихся роторов.
  • Одноразовый блокнот: Теоретически абсолютно стойкий шифр, использующий случайный ключ, равный по длине сообщению.

Криптоанализ

Многоалфавитные шифры значительно устойчивее к частотному анализу, чем одноалфавитные, но не являются абсолютно стойкими (за исключением одноразового блокнота).

Метод Касиски (1863)

Фридрих Касиски разработал метод взлома шифра Виженера, основанный на поиске повторяющихся последовательностей букв в шифротексте. Расстояние между повторениями указывает на возможную длину ключа (или её кратное). Зная длину ключа, шифротекст разбивается на группы, каждая из которых зашифрована одним и тем же алфавитом, и к каждой группе применяется частотный анализ.

Индекс совпадений (1920-е годы)

Метод, разработанный Уильямом Фридманом, позволяет статистически оценить длину ключа. Индекс совпадений (IC) для случайного текста составляет около 0,038 (для латиницы), а для осмысленного текста — около 0,065. Если шифротекст разбит на группы с правильной длиной ключа, то внутри каждой группы IC будет близок к 0,065, что указывает на одноалфавитную замену.

Атака по известному открытому тексту

Если криптоаналитик знает фрагмент открытого текста и соответствующий ему шифротекст, он может восстановить часть ключа. Для шифра Виженера это делается простым вычитанием: Ki = (Ci - Pi) mod 26.

Применение

В настоящее время классические многоалфавитные шифры (Виженера, Плейфера) не используются для защиты конфиденциальной информации из-за низкой стойкости по сравнению с современными алгоритмами (AES, ChaCha20). Однако они находят применение в следующих областях:

  • Обучение криптографии: Как наглядный пример принципов подстановки и частотного анализа.
  • Исторические исследования: Для расшифровки архивных документов, зашифрованных такими методами.
  • Развлекательные задачи: В головоломках, квестах, настольных играх и литературных произведениях.
  • Основы для современных алгоритмов: Принципы многоалфавитной замены лежат в основе многих поточных шифров и генераторов псевдослучайных последовательностей.

Источники

  • Криптография и свобода / М. Е. Смышляев. — М.: Издательство «Либроком», 2010.
  • Handbook of Applied Cryptography / A. J. Menezes, P. C. van Oorschot, S. A. Vanstone. — CRC Press, 1996.
  • The Codebreakers: The Comprehensive History of Secret Communication from Ancient Times to the Internet / D. Kahn. — Scribner, 1996.
  • История криптографии / В. В. Ященко. — М.: МЦНМО, 2012.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →