
Шифры перестановки
Шифр, преобразования из которого изменяют только порядок следования символов исходного текста, но не изменяют их самих, называется шифром перестановки (ШП).
Рассмотрим
преобразование из ШП, предназначенное
для зашифрования сообщения длиной
символов. Его можно представить с помощью
таблицы
|
|
где
-
номер места шифртекста, на которое
попадает первая буква исходного сообщения
при выбранном преобразовании,
-
номер места для второй буквы и т.д. В
верхней строке таблицы выписаны по
порядку числа от 1 до
,
а в нижней - те же числа, но в произвольном
порядке. Такая таблица называется
подстановкой степени
.
Зная подстановку, задающую преобразование, можно осуществить как зашифрование, так и расшифрование текста.
Существует
вариантов заполнения нижней строки
таблицы. Таким образом, число различных
преобразований шифра перестановки,
предназначенного для зашифрования
сообщений длины
,
меньше либо равно
(заметим, что в это число входит и вариант
преобразования, оставляющий все символы
на своих местах).
С увеличением числа значение растет очень быстро.
Примером ШП, предназначенного для зашифрования сообщений длины , является шифр, в котором в качестве множества ключей взято множество всех подстановок степени , а соответствующие им преобразования шифра задаются, как было описано выше. Число ключей такого шифра равно .
Широкое распространение получили шифры перестановки, использующие некоторую геометрическую фигуру. Преобразования из этого шифра состоят в том, что в фигуру исходный текст вписывается по ходу одного ``маршрута'', а затем по ходу другого выписывается с нее. Такой шифр называют маршрутной перестановкой. Например, можно вписывать исходное сообщение в прямоугольную таблицу, выбрав такой маршрут: по горизонтали, начиная с левого верхнего угла поочередно слева направо и справа налево. Выписывать же сообщение будем по другому маршруту: по вертикали, начиная с верхнего правого угла и двигаясь поочередно сверху вниз и снизу вверх.
Теоретически маршруты могут быть значительно более изощренными, однако запутанность маршрутов усложняет использование таких шифров.
К ШП относятся такие шифры как:
Шифр «Сцитала»,
Шифр «Поворотная решетка» или «решетка Кардано»,
шифром вертикальной перестановки'' и др.
Рассмотрим более подробно шифр «Поворотная решетка».
«Поворотная решетка»
В середине XVI века в Италии появляется книга математика, врача и философа Дж. Кардано «О тонкостях» с дополнением «О разных вещах», в котором имеются разделы, посвященные криптографии. В ней нашли отражение новые идеи криптографии: использование части самого передаваемого открытого текста в качестве ключа шифра и новый способ шифрования, который вошел в историю как «Поворотная решетка» («решетка Кардано»). Для ее изготовления брался лист из твердого материала (картон, пергамент, металл), представляющий собой квадрат, в котором вырезаны «окна». При шифровании решетка накладывалась на лист бумаги, и буквы открытого текста вписывались в «окна». При использовании всех «окон» решетка поворачивалась на 90 градусов, и вновь буквы открытого текста вписывались в «окна» повернутой решетки. Затем вновь производился поворот на 90 градусов и т. д. В один «заход» решетка работала 4 раза. Если текст зашифрован не полностью, то решетка ставилась в исходное положение и вся процедура повторялась. Это ни что иное, как шифр перестановки.
Главное требование к решетке Кардано - при всех поворотах «окна» не должны попадать на одно и то же место в квадрате, в котором образуется шифртекст.
Если в квадрате после снятия решетки образовывались пустые места, то в них вписывались произвольные буквы. Затем буквы квадрата выписывались построчно, что и было шифрованным текстом.
Как
математик, Кардано сумел вычислить
количество квадратов-решеток (ключей)
заданного размера
.
Если
-
четное число, то это количество равно
.
При
оно
имеет порядок десять в пятнадцатой
степени. Вместе
с тем, Кардано ошибочно сводил стойкость
всех шифров к количеству возможных
ключей. Не только количество ключей, но
и сам способ (алгоритм) шифрования при
заданном ключе влияет на стойкость
шифров.
В
то же время сами шифры Кардано составляют
весьма незначительную часть
всех шифров перестановок. Так, например,
при
шифр
Кардано переставляет буквы внутри
блока, состоящего из 100 букв открытого
текста. Число
ключей, как указывалось выше, имеет
порядок десять в пятнадцатой степени.
Количество же ключей шифра общей
перестановки внутри блоков из 100
букв имеет порядок 100!, то есть примерно
. Таким образом, шифры Кардано составляют
часть
от общего количества шифров перестановок.
Однако эффективно и быстро осуществлять
произвольную перестановку в
блоках длиной в 100 знаков - достаточно
трудная задача даже в наши дни.
Решетка Кардано позволяет осуществлять перестановку букв достаточно просто.
Предложив свой шифр перестановки, Кардано рекомендовал шифровать три раза подряд, т.е. предложил идею многократного перешифрования. Эта идея дошла до наших дней. Многократное зашифрование (тем более на различных шифрах) значительно повышает надежность защиты.