Добавил:
t.me Инфо для ГУАП студентов от меня: https://kafaka.notion.site/99e6d9b70ca74f7baef3daea17839e5a Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР2 / Шифры_перестановки1

.docx
Скачиваний:
4
Добавлен:
18.06.2024
Размер:
254.78 Кб
Скачать

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

Шифры перестановки основаны на использовании принципа перемешивания, смысл которого заключается в том, что никаких замен в исходном (шифруемом сообщении) не производится. Вместо этого символы этого сообщения переставляются по некоторому правилу, задаваемому секретным ключом шифрования. Например, еще в V - IV вв. до н. э. греки для этой цели применяли специальное шифрующее устройство. По описанию Плутарха, оно состояло из двух деревянных цилиндров одинаковой длины и диаметра. Один оставляли себе (на «передающем конце»), а другой заранее передавали адресату. Эти деревянные цилиндры называли сциталами. Когда нужно было сообщить получателю что-то важное, отправитель наматывал на цилиндр ремень-ленту из пергамента (либо кожи, ткани), на который наносился текст сообщения, причем текст наносился вдоль оси цилиндра. Затем ремень-лента сматывался и отправлялся получателю сообщения. Последний, имея аналогичный цилиндр, расшифровывал сообщение. Так как буквы на ленте расположены в беспорядке, то прочитать написанное можно, имея точно такую же сциталу, намотав на нее полученный ремень-ленту.

При правильном размере диаметра цилиндра буквы послания совпадали и получался связный текст. Устройство было очень простым и практичным в использовании, хотя, конечно, достаточно надежным средством защиты информации его назвать никак нельзя (но в то время надо было понять заложенный принцип закрытия информации от посторонних, а он тогда держался в секрете). Способ взлома этого шифра предложил Аристотель. Он догадался, в чём состоит идея алгоритма шифрования, изготовил конус и наматывал на него перехваченный ремень, постепенно сдвигая ремень к основанию конуса до тех пор, пока не проявился осмысленный текст зашифрованного сообщения. Так он определил диаметр сциталы, который как раз и является ключом к шифру.

Итак, шифры перестановки основаны на использовании принципа перемешивания. Пусть имеется открытое сообщение длины , использующее алфавит и правило перестановки . Тогда применение этого криптографического преобразования к открытому сообщению дает криптограмму . Семейство криптографических преобразований называется шифром перестановки.

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

Шифр перестановки с фиксированным периодом. Процесс шифрования заключается в следующем. Сообщение делится на блоки, соответствующие заданному периоду (длине секретного ключа). К каждому блоку применяется одна и та же перестановка. Пример. Зашифруем короткое сообщение СТУДЕНТ. Под сообщением запишем секретный ключ перестановки. Все символы сообщения переставляются согласно этому ключу. При шифровании текущий символ секретного ключа указывает, на какую позицию надо переместить текущий символ открытого сообщения («куда надо поставить»).

СТУДЕНТ

7 4 1 5 3 2 6

УНЕТДТС

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

УНЕТДТС

7 4 1 5 3 2 6

СТУДЕНТ

Шифры маршрутной перестановки

Они используют прямоугольную таблицу определённого размера (со строго фиксированным количеством строк и столбцов), в которую текст записывается обычным образом, например, по строкам, а криптограмма считывается из этой же таблицы, но по какому-то другому заранее оговорённому маршруту (по столбцам, по диагонали, в «шахматном порядке» и т.п.). Расшифрование состоит в обратном действии: сначала по оговорённому маршруту таблица заполняется, а затем, например, обычным образом по строкам считывается уже исходный текст. Ключом к таким шифрам являются размеры таблицы и маршрут записи символов при шифровании.

Самостоятельно реализовать один из вариантов построения алгоритма маршрутной перестановки (шифрование/расшифрование) для таблицы, например, размером 6х8, 7х9 и т.д.

Шифр вертикальной перестановки является частным случаем шифра маршрутной перестановки. Шифрование заключается в записи (по строкам) открытого текста в прямоугольную таблицу (заранее определенного размера), все столбцы которой пронумерованы согласно некоторому секретному ключу. Например, ключ может иметь следующий вид: 7, 3, 9, 8, 2, 4, 6, 1, 5 (в этом примере таблица содержит 9 столбцов). Считывание криптограммы из таблицы осуществляется последовательно по ее столбцам, но уже в естественном порядке возрастания номеров столбцов (1, 2, 3 и т.д.). В результате символы исходного текста будут «перемешаны», а сам текст - нечитаемым. Для расшифрования сначала надо заготовить таблицу соответствующих размеров, все столбцы которой нумеруются согласно секретному ключу, а последовательные «порции» символов принятой криптограммы записываются по столбцам таблицы согласно ключу: 7, 3, 9, 8, 2, 4, 6, 1, 5. В результате исходный текст будет полностью восстановлен. Ключом к таким шифрам являются размеры таблицы и нумерация столбцов.

Самостоятельно реализовать один из вариантов построения шифра вертикальной перестановки (шифрование/расшифрование) для таблицы, например, размером 6х7, 7х8 и т.д.

Перестановка методом «зигзага»

При использовании метода «зигзага» исходное сообщение записывается вдоль некоторой ломаной линии, напоминающей по форме зигзаг, а символы зашифрованного сообщения считываются из полученной записи естественным образом - построчно слева-направо и сверху-вниз. Зашифруем сообщение «лабораторнаяработа» (без пробелов). Для этого запишем это сообщение по ломаной линии-ключу слева-направо (рисунок 1).

Рисунок 1. Шифрование методом «зигзага»

Теперь последовательно прочтем эту фразу, но двигаясь построчно слева-направо и сверху-вниз. Получим зашифрованное сообщение: «лтрааояаабррабтоно». Ключ к шифру K – это условная «высота зигзага». В приведенном примере K = 4. Для расшифрования полученного сообщения надо выполнить действия, обратные выполненным при его зашифровании (используя тот же самый ключ). Для шифрования можно также применить «сложный зигзаг» (с переменным шагом, несимметричный) (см. рисунок 2).

Рисунок 2. Шифрование «сложным зигзагом»

Тогда получим зашифрованное сообщение в виде: «олтраанаабрарбтояо». В этом случае секретный ключ K следует записать уже не одним единственным числом, а в виде последовательности чисел со знаком, описывающей последовательно все имеющиеся «отрезки» в ломаной линии-зигзаге. Например, для рисунка 2 следует, что K = -4, 5, -5, 3, -3, 3. Несмотря на свою простоту, шифрование методом зигзага дает хорошее перемешивание символов исходного сообщения.

В качестве примера предложить свой вариант реализации шифра «сложный зигзаг».

Следует учитывать, что шифры перестановки имеют существенную особенность: в процессе взлома зашифрованного сообщения криптоаналитиком противника у него могут появляться вполне осмысленные фрагменты сообщения, из которых ему придётся каким-то образом выбрать именно истинное. Это вносит для него дополнительную неопределенность, тем более, что цена неправильного решения (принятого на основе результатов взлома перехваченного зашифрованного сообщения) может оказаться чрезмерно велика.