Введение

Метод шифрования

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

Двойная имплементация

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

Визуальная демонстрация двойного перевода

В следующем примере мы используем ключи JANEAUSTEN и AEROPLANES для шифрования следующего открытого текста: "Шифры транспозиции перемешивают буквы, как детали головоломки, чтобы создать нечитаемую комбинацию. Цвета показывают, как буквы перемешиваются на каждом шаге транспозиции. В то время как один шаг вызывает лишь небольшое изменение порядка, второй шаг приводит к значительному эффекту перемешивания, если последний ряд сетки неполный.

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

Шифр двойной транспозиции можно рассматривать как однократную транспозицию с ключом, длина которого равна произведению длин двух ключей. В конце 2013 года задача двойной транспозиции, которую её автор считал неразрешимой, была решена Джорджем Ласри с использованием подхода "разделяй и властвуй", при котором каждая транспозиция подвергалась отдельной атаке.

Решетки

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

Комбинации

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

Фракционирование

Транспозиция особенно эффективна при использовании с фракционированием – то есть, предварительным этапом, который разделяет каждый символ открытого текста на два или более символа шифротекста. Например, алфавит открытого текста можно представить в виде сетки, и каждую букву сообщения заменить на её координаты (см. квадрат Полибия и шахматную доску Страддлинга). Другой способ фракционирования – просто преобразовать сообщение в код Морзе, используя символ для пробелов, а также точки и тире. Когда такое фракционированное сообщение подвергается транспозиции, компоненты отдельных букв широко разрозниваются в сообщении, тем самым обеспечивая диффузию по Клоду Э. Шеннону. Примеры шифров, сочетающих фракционирование и транспозицию, включают бифидный шифр, трифидный шифр, шифр ADFGVX и шифр VIC. Другой вариант – заменить каждую букву её двоичным представлением, выполнить транспозицию, а затем преобразовать полученную двоичную строку в соответствующие символы ASCII. Многократное применение процесса перемешивания к двоичной строке перед преобразованием в символы ASCII, вероятно, усложнит её взлом. Многие современные блочные шифры используют более сложные формы транспозиции, основанные на этой простой идее.