Метод полиалфавитной замены

Существенно более стойкими являются методы полиалфавитной замены. Такие методы основаны на использовании нескольких алфавитов для замены символов исходного текста. Формально полиалфавитную замену можно представить следующим образом. При N - алфавитной замене символ s01 из исходного алфавита А0 заменяется символом s11 из алфавита A1, s02 заменяется символом s22 из алфавита А2 и так далее. После замены Son символом snn из An символ S0(n+i) замещается символом S1(n+1) из алфавита A1 и так далее.

Наибольшее распространение получил алгоритм полиалфавитной замены с использованием таблицы (матрицы) Вижинера Тв, которая представляет собой квадратную матрицу [R´R], где R - количество символов в используемом алфавите. В первой строке располагаются символы в алфавитном порядке. Начиная со второй строки, символы записываются со сдвигом влево на одну позицию. Выталкиваемые символы заполняют освобождающиеся позиции справа (циклический сдвиг). Если используется русский алфавит, то матрица Вижинера имеет размерность [32´32] (рис. 3.3).

    А Б В Г Д . . . . . . . Ь Ы Ъ Э Ю Я _
    Б В Г Д Е . . . . . . . Ы Ъ Э Ю Я _ А
Тв = В Г Д Е Ж . . . . . . . Ъ Э Ю Я _ А Б
    . . . . . . . . . . . . . . . . . . .
    _ А Б В Г . . . . . . . Э Ю Я _ А Б В

Рис. 3.3. Матрица Вижинера

Шифрование осуществляется с помощью ключа, состоящего из М неповторяющихся символов. Из полной матрицы Вижинера выделяется матрица шифрования Тш размерностью [(M+1),R]. Она включает первую строку и строки, первые элементы которых совпадают с символами ключа. Если в качестве ключа выбрано слово <ЗОНД>, то матрица шифрования содержит пять строк (рис. 3.4):

    А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я _
    З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я _ А Б В Г Д Е Ж
ТШ = О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я _ А Б В Г Д Е Ж З И К Л М Н
    Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я _ А Б В Г Д Е Ж З И К Л М
    Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я _ А Б В Г

Рис. 3.4. Матрица шифрования для ключа <ЗОНД>

Алгоритм зашифрования с помощью таблицы Вижинера представляет собой следующую последовательность шагов.

Шаг 1. Выбор ключа К длиной М символов.

Шаг 2. Построение матрицы шифрования Tш,=(bij) размерностью [(M+1), R] для выбранного ключа К.

Шаг 3. Под каждым символом s0r исходного текста длиной I символов размещается символ ключа km, (рис. 3.5). Ключ повторяется необходимое число раз.

Шаг 4. Символы исходного текста последовательно замещаются символами, выбираемыми из Тш по следующему правилу:

1) определяется символ km ключа К, соответствующий замещаемому символу sor;

2) находится строка i в Тш, для которойвыполняется условие km=bi1;

3) определяется столбец j, для которого выполняется условие:

sor=b1j;

4) символ sor замещается символом bij.

Шаг 5. Полученная зашифрованная последовательность разбивается на блоки определенной длины, например, по четыре символа. Последний блок дополняется, при необходимости, служебными символами до полного объема.

Расшифрование осуществляется в следующей последовательности.

Шаг 1. Под шифртекстом записывается последовательность символов ключа по аналогии с шагом 3 алгоритма зашифрования.

Шаг 2. Последовательно выбираются символы s1r из шифртекста и соответствующие символы ключа km. В матрице Тш определяется строка i, для которой выполняется условие km= bi1. В строке i определяется элемент bij =s1r. В расшифрованный текст на позицию j помещается символ b1j.

Шаг 3. Расшифрованный текст записывается без разделения на блоки. Убираются служебные символы.

Пример.Требуется с помощью ключа К = <ЗОНД> зашифровать исходный текст

Т = <БЕЗОБЛАЧНОЕ_НЕБО>. Механизмы зашифрования и расшифрования представлены в табл. 3.2.

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

Для повышения криптостойкости может использоваться модифицированная матрица шифрования. Она представляет собой матрицу размерности [11, R], где R – число символов алфавита. В первой строке располагаются символы в алфавитном порядке. Остальные 10 строк нумеруются от 0 до 9. В этих строках символы располагаются случайным образом.

Таблица 3.2


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: