Шифрование методом перестановки. Виды и способы шифров
Аатбаш, шифр Сцитала, решетка Кардано - известные способы скрыть информацию от чужих глаз. В классическом смысле шифр перестановки представляет собой анаграмму. Его суть заключается в том, что буквы открытого текста меняются по определенному правилу позициями. Иными словами, ключом шифра является смена очередности следования символов в открытом сообщении. Однако зависимость ключа от длины шифруемого текста породила множество неудобств для использования этого вида шифров. Но умные головы нашли интересные хитрые решения, которые описываются в статье.
Перевернутые группы
Для ознакомления с шифрованием методом перестановки упомянем один из простейших примеров. Алгоритм его заключается в разделение сообщения на n блоков, которые затем переворачиваются задом наперед и меняются местами. Рассмотрим пример.
- "День уходил, и неба воздух темный".
Разделим это сообщение на группы. В данном случае n = 6.
- "Деньух одили небав озд ухтем ный".
Теперь развернем группы, записав каждую с конца.
- "хуьнед вабен дзо метху йын".
Переставим определенным образом местами.
- "илидо метху йын хуьнед вабен дзо".
Для незнающего человека в таком виде сообщение представляет собой не более чем белиберду. Но, разумеется, тот, кому адресовано сообщение, ведает алгоритмом расшифровки.
Серединная вставка
Алгоритм данного шифрования немного сложнее шифрования методом перестановки:
- Разделить сообщение на группы с четным количеством символов.
- В середину каждой группы вставить дополнительные буквы.
Рассмотрим на примере.
-
"Земные твари уводил ко сну".
-
"Земн ыетв ариу води лкосну".
-
"Зеамн ыеабтв араиу воабди лкоасну".
В данном случае в середину групп были вставлены чередующиеся буквы "а"и "аб". Вставки могут быть разными, в разном количестве и не повторяться. Помимо этого, можно развернуть каждую группу, перемешать их и т.д.
Шифрограмма "Сэндвич"
Еще один занимательный и простой пример шифрования методом перестановки. Для его использования нужно открытый текст разделить на 2 половины и одну из них посимвольно вписать между букв другой. Покажем на примере.
- "От их трудов; лишь я один, бездомный".
Разделим на половины с равным количеством букв.
- "Отихтрудовлишь яодинбездомный".
Теперь запишем первую половину сообщения с большим интервалом между буквами.
- "О т и х т р у д о в л и ш ь".
И в этих промежутках разместим буквы второй половины.
- "Оятоидхитнрбуедзодволминшыьй".
Наконец сгруппируем буквы в своего рода слова (необязательная операция).
- "Оятои дхи тнрбуе дзодвол миншыьй".
Зашифровать текст этим методом очень легко. Полученную строку-белиберду непосвященному придется разгадывать некоторое время.
Перестановки по "маршруту"
Такое название получили шифры, широко применявшиеся в древности. Маршрутом в их построении выступала какая-либо геометрическая фигура. Открытый текст записывался в такую фигуру по определенной схеме, а извлекался по обратной ей. Например, одним из вариантов может быть запись в таблицу открытого текста по схеме: змейка ползает в ячейках по часовой стрелке, а зашифрованное сообщение составляется путем списывания столбцов в одну строку, с первого по последний. Это также является шифрованием методом перестановки.
Покажем на примере, как зашифровать текст. Попробуйте сами определить маршрут записи и маршрут составления шифрограммы.
-
"Приготовлялся выдержать войну".
Будем записывать сообщение в таблицу размерами 3x9 клеток. Размерность таблицы можно определить, исходя из длины сообщения, или использовать некоторую фиксированную таблицу несколько раз.
п | р | и | г | о | т | о | в | л |
р | е | д | ы | в | я | с | л | я |
ж | а | т | ь | в | о | й | н | у |
Шифр будем составлять, начиная с правого верхнего угла таблицы.
- "Ляунлвосйоятоввьыгидтаерпрж".
Обращение описанных шагов не представляет труда. Достаточно просто сделать все наоборот. Данный способ является крайне удобным, потому что позволяет легко запомнить процедуру шифрования и расшифровки. А также он является интересным, потому что использовать для шифра можно любую фигуру. Например, спираль.
Вертикальные перестановки
Этот вид шифров также является вариантом маршрутной перестановки. Интересен он в первую очередь наличием ключа. Данный способ был широко распространен в прошлом и также использовал таблицы для шифрования. Сообщение записывается в таблицу обычным образом - сверху вниз, а шифрограмма выписывается по вертикалям, при этом соблюдается порядок, указанный ключом или паролем. Посмотрим на образец такого шифрования.
-
"И с тягостным путем, и с состраданьем"
Используем таблицу размерностью 4х8 клеток и запишем в нее наше сообщение обычным образом. А для шифровки используем ключ 85241673.
и | с | т | я | г | о | с | т |
н | ы | м | п | у | т | е | м |
и | с | с | о | с | т | р | а |
д | а | н | ь | е | м |
Ключ приведен ниже.
8 | 5 | 2 | 4 | 1 | 6 | 7 | 3 |
Теперь, используя ключ в качестве указания на порядок следования, выпишем столбцы в строку.
- "Гусетмснтмаяпоьсысаоттмсеринид".
Важно заметить, что при этом способе шифрования пустые ячейки в таблице не следует заполнять случайными буквами или символами, надеясь, что это усложнит шифрограмму. На самом деле, наоборот, такое действие даст врагам подсказку. Потому что длина ключа окажется равной одному из делителей длины сообщения.
Обратная расшифровка вертикальной перестановки
Вертикальная перестановка представляет интерес тем, что расшифровка сообщения не является простым следованием алгоритму от обратного. Тому, кто знает ключ, известно, сколько в таблице столбцов. Чтобы дешифровать сообщение, нужно определить число длинных и коротких строк в таблице. Это позволит определить начало, откуда начинать записывать шифрограмму в таблицу, чтобы прочитать открытый текст. Для этого разделим длину сообщения на длину ключа и получим 30/8=3 и 6 в остатке.
Таким образом, нам стало известно, что в таблице 6 длинных столбцов и 2 коротких, заполненных буквами не до конца. Посмотрев на ключ, мы видим, что шифрование началось с 5-го столбца, и он должен быть длинным. Так мы находим, что первые 4 буквы шифрограммы соответствуют пятому по счету столбцу таблицы. Теперь можно записать все буквы по местам и прочесть тайное послание.
Решетка Кардано
Данный тип относится к так называемым трафаретным шифрам, но по своей сути является шифрованием методом перестановки символов. В роли ключа выступает трафарет в форме таблицы с прорезанными отверстиями в нем. На самом деле трафаретом может быть любая фигура, но чаще всего используется квадрат или таблица.
Трафарет Кардано изготавливается по следующему принципу: вырезанные ячейки при повороте на 90° не должны перекрывать друг друга. То есть после 4 поворотов трафарета вокруг своей оси прорези в нем не должны совпадать ни разу.
Используем для примера простую решетку Кардано (на рисунке ниже).
Используя этот трафарет, зашифруем фразу "О Музы, к вам я обращусь с воззваньем".
- | О | - | М | - | - |
У | |||||
З | Ы | ||||
К | |||||
В | А | ||||
М |
Заполняем ячейки трафарета буквами по правилу: сначала справа налево, а затем сверху вниз. Когда ячейки кончатся, поворачиваем трафарет на 90° по часовой стрелке. Таким способом получаем следующую таблицу.
Я | - | - | - | - | - |
О | Б | Р | |||
А | Щ | ||||
у | |||||
С | Ь |
И еще раз поворачиваем на 90°.
- | - | - | - | - | С |
В | О | ||||
З | |||||
В | А | ||||
Н | |||||
Ь | Е |
И последний поворот.
- | - | М | - | - | - |
После объединения 4 таблиц в одну получаем итоговое зашифрованное послание.
Я | О | М | М | Г | С |
В | О | У | Б | О | Р |
Г | З | А | З | Щ | Ы |
В | Г | К | Г | А | У |
Г | В | Г | Н | Г | А |
М | С | Ь | Ь | Е | Г |
Хотя послание может остаться и таким, но для передачи удобнее будет получить привычную на вид шифрограмму. Для этого пустые ячейки можно заполнить случайными буквами и выписать столбцы в одну строку:
- "ЯВГВГМ ООЗГВС МУАКГЬ МБЗГНЬ ГОЩАГЕ СРЫУАГ"
Для того чтобы расшифровать это послание, получатель должен обладать точной копией трафарета, который был использован для шифрования. Данный шифр долгое время считался достаточно устойчивым. Также у него существует множество вариаций. Например, применение сразу 4 решеток Кардано, каждая из которых вращается своим образом.
Анализ шифров перестановки
Все перестановочные шифры уязвимы против частотного анализа. Особенно в случаях, когда длина сообщения сопоставима с длиной ключа. И этот факт не может быть изменен многократным применением перестановок, какими бы сложными они ни были. Поэтому в криптографии устойчивыми могут быть только те шифры, которые используют сразу несколько механизмов, помимо перестановки.