Многоалфавитная одноконтурная монофоническая подстановка
В монофонической подстановке количество и состав алфавитов выбирается таким образом, чтобы частоты появления всех символов в зашифрованном тексте были одинаковыми. При таком положении затрудняется криптоанализ зашифрованного текста с помощью его статистической обработки. Выравнивание частот появления символов достигается за счет того, что для часто встречающихся символов исходного текста предусматривается большее число заменяющих символов, чем для редко встречающихся.
Пример таблицы монофонической замены:
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я _
Ф Н ( Щ И Г Е R A Д Ы ~ @ S Л Я Ж ^ C Ш М Б Q П Т Х Ю Ъ Р } \ _ #
* Н У Щ D + Е R = Д Ц Й Ч [ В Ь ) O & { М Б Q П Т Х Ю Ъ Р } \ _ <
Л Н ( Щ И ] Е R % Д Ы ~ @ G / Я Э З " Ш М Б Q П Т Х Ю Ъ Р } \ _ W
Ф Н У Щ D К Е R A Д Ц Й Ч S + Ь Ж ^ C { М Б Q П Т Х Ю Ъ Р } \ _ V
Шифрование проводится так же, как и при простой подстановке, с той лишь разницей, что после шифрования каждого символа соответствующий ему столбец алфавитов циклически сдвигается вверх на одну позицию. Таким образом, столбцы алфавитов как бы образуют независимые друг от друга кольца, поворачиваемые вверх на один знак каждый раз после шифрования соответствующего знака исходного текста.
Многоалфавитная многоконтурная подстановка
Многоконтурная подстановка заключается в том, что для шифрования используются несколько наборов (контуров) алфавитов, используемых циклически, причем каждый контур в общем случае имеет свой индивидуальный период применения. Частным случаем многоконтурной полиалфавитной подстановки является замена по таблице Вижинера, если для шифрования используется несколько ключей, каждый из которых имеет свой период применения.
Общая модель шифрования подстановкой может быть представлена в следующем виде:
tш = tо + w mod (k-1),
где tш - символ зашифрованного текста,
tо - символ исходного текста,
w - целое число в диапазоне 0 - (k-1),
k - число символов используемого алфавита.
Если w фиксировано, то формула описывает одноалфавитную подстановку, если w выбирается из последовательности w1 ,w2 ,...,wn, то получается многоалфавитная подстановка с периодом n.
Если в многоалфавитной подстановке n > m (где m - число знаков шифруемого текста) и любая последовательность wi, i=1,2,...,n используется только один раз, то такой шифр является теоретически нераскрываемым. Такой шифр получил название шифра Вермэна.
Стойкость простой многоалфавитной подстановки оценивается величиной 20*n, где n - число различных алфавитов, используемых для замены. Усложнение многоалфавитной подстановки существенно повышает ее стойкость. Монофоническая подстановка может быть весьма стойкой (и даже теоретически нераскрываемой), однако строго монофоническую подстановку реализовать на практике трудно, а любые отклонения от монофоничности снижают реальную стойкость шифра.
Шифрование методом перестановки
При шифровании перестановкой символы шифруемого текста переставляются по определенным правилам внутри шифруемого блока этого текста.
Простая перестановка
Выбирается размер блока шифрования в n столбцов и m строк и ключевая последовательность, которая формируется из натурального ряда чисел 1,2,...,n случайной перестановкой.
Шифрование проводится в следующем порядке:
1. Шифруемый текст записывается последовательными строками под числами ключевой последовательности, образуя блок шифрования размером n*m.
2. Зашифрованный текст выписывается колонками в порядке возрастания номеров колонок, задаваемых ключевой последовательностью.
3. Заполняется новый блок и т.д.
Например, зашифруем текст
ГРУЗИТЕ_АПЕЛЬСИНЫ_БОЧКАХ
блоком размером 8*3 и ключом 5-8-1-3-7-4-6-2.
Таблица простой перестановки будет иметь вид:
Ключ 5 8 1 3 7 4 6 2 |
Г Р У З И Т Е _ А П Е Л Ь С И Н Ы _ Б О Ч К А Х |
Зашифрованное сообщение:
УЕБ_НХЗЛОЕСЛГАЫЕИАИЬЧРП_
Расшифрование выполняется в следующем порядке:
1. Из зашифрованного текста выделяется блок символов размером n*m.
2. Этот блок разбивается на n групп по m символов.
3. Символы записываются в те столбцы таблицы перестановки, номера которых совпадают с номерами групп в блоке. Расшифрованный текст читается по строкам таблицы перестановки.
4. Выделяется новый блок символов и т.д.