Кpиптогpафия от папиpуса до компьютеpа



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


Из-за отмеченных особенностей шифр замены в чистом его виде никогда не применяется, а всегда употребляется вместе с перестановкой, например, бит внутри байта. Если после замены символы сообщения превращались во что угодно, но сохраняли в шифровке свое исходное местоположение, то после перестановки они там и расположены еще и где угодно, что надежно защищает шифровку от атак криптологов. Потому что перестановку можно рассматривать как умножение вектора сообщения на матрицу перестановки бит Р с элементами 0 и 1 и размером в длину сообщения в битах. Рассмотрим два случая.
     1. Перестановка может делаться до наложения на
     сообщение случайной последовательности, то
     есть s'=Pt+y. В случае, если текст в сообщении
     отсутствует t=0 и идут нули или пробелы, то
     s'=y, а в канал связи попадает чистый ключ.
     2. Перестановка может делаться и после наложе-
     ния на сообщение случайной последовательно-
     сти, то есть s"=P(t+y). В случае, если текст в со-
     общении отсутствует t=0 и идут нули или пробе-
     лы, как s"=Py, а в канал связи попадает ключ,
     шифрованный перестановкой.

Поэтому обычно предпочтение отдается второй схеме, когда в отсутствие текста шифровка представляет собой не чистый ключ, а осложненный перестановкой. Хотя и в том, и в другом случае наложение на шифровку своего текста для введения получателя в заблуждение ничего не дает. Однако перестановки необходимы и для того, чтобы атака на ключ стала неэффективной. Если передача идет побайтно, то достаточно лишь переставлять биты внутри байта, чтобы с вероятностью 0.97 исказить его и сделать перехват ключа описанным способом невозможным.
     Перестановка может выполняться отдельными битами или группами бит как байты, что программно куда удобнее, хотя и не перемешивает биты полностью. Перестановку можно было бы произвести и побитно, но это был бы очень дорогой процесс. Временная сложность перестановки связана с квадратом числа переставляемых элементов, поэтому перестановка бит была бы в 64 раза дороже перестановки байт. Вычислительных способов перестановок существует множество, на любой вкус. Например, в программах широко применяется перестановка по номерам N от 0 до L-1 на основе рекуррентного выражения:
        




Содержание  Назад  Вперед