Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект часть2-Криптография.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.29 Mб
Скачать

3.4. Шифр перестановки

Из-за отмеченных особенностей шифр замены в чистом его виде никогда не применяется, а всегда употребляется вместе с перестановкой, например, бит внутри байта. Если после замены символы сообщения превращались во что угодно, но сохраняли в шифровке свое исходное местоположение, то после перестановки символы сообщения еще и расположены где угодно, что надежно защищает шифровку от атак криптолога.

Перестановку можно рассматривать как умножение вектора сообщения на матрицу перестановки бит P с элементами 0 и 1 и размером в длину сообщения в битах. При этом возможны два случая.

1. Перестановка может делаться до наложения на сообщение случайной последовательности:

S' = P t +

В случае если текст в сообщении отсутствует, то в канал связи попадет чистый ключ:

t = 0; S' = P 0 + =

2. Перестановка может делаться после наложения на сообщение случайной последовательности:

S' = P (t + )

В случае если текст отсутствует, в канал связи поступает ключ, шифрованный перестановкой:

t = 0; S' = P (0 + ) = P

Обычно предпочтение отдается второй схеме.

Перестановки необходимы еще и для того, чтобы атака на ключ стала неэффективной.

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

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

Существует множество вычислительных способов перестановок. Например, широко применяется перестановка по номерам N от 0 до L-1 на основе рекуррентного соотношения:

Ni+1 = (K Ni + M) mod L

при выполнении следующих условий:

1) K и M берутся из интервала [1, L-1];

2) M взаимно просто с L;

3) K-1 делится на любой простой делитель L;

4) K-1 делится на 4, если L делится на 4.

Для хорошего запутывания в этом случае приходится делать перестановку несколько раз, меняя случайным образом K и M.

Другая схема перестановки напоминает тасовку карт. Если S=A+B+C – исходный блок текста, переставляемый побайтно, то результатом перестановки будет S'=C+B+A. Разбиение на фрагменты A, B, C делается случайным образом. После нескольких тасовок исходный текст оказывается основательно перемешанным. Эта тасовка в состоянии после многократного повторения осуществить любую перестановку, но число тасовок при этом должно быть очень велико. Для быстрого получения качественной перестановки лучше употреблять перестановку пар:

For i:=1 to N

SWAP arr(i), arr(N*RND)

Next

Перестановка тасовкой удобна, т.к. одиночный ее шаг практически не оставляет ни одного символа на своем месте.

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

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