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

//Шифр //  перестановки не заменяет одним символом другой, вместо этого он изменяет местоположение символов. Символ в первой позиции исходного текста может появиться в десятой позиции зашифрованного текста. Символ, который находится в восьмой позиции исходного текста, может появиться в первой позиции зашифрованного текста. Другими словами, //шифр// перестановки ставит в другом порядке (перемещает) символы. ** Шифр перестановки меняет порядок следования символов **.

Простой столбцевой перестановочный шифр
В данном виде шифра текст пишется на горизонтально разграфленном листе бумаги фиксированной ширины, а шифротекст считывается по вертикали. Дешифрирование заключается в записи шифротекста вертикально на листе разграфленной бумаги фиксированной ширины и затем считывании открытого текста горизонтально.

Зашифрованный текст: ВДГРНДЧ РОСОСЫАЕУСЛКСТЙГСНИОИУВ ОКИТГЙДЕПГИВЕО АНЕИЙЕТ

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

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

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

Шифр вертикальной перестановки.
Рассмотрим пример шифра вертикальной перестановки, для которого подстановка задается неявно, исходя из т.н. ключевого слова - «лозунга».

Открытый текст криптограммы следующий: //"В связи с создавшимся положением отодвигаем сроки возвращения домой Рамзай"//.

Для зашифрования шифром вертикальной перестановки построим прямоугольную таблицу, количество строк которой определяется длиной текста, а количество колонок равно шести. В качестве «лозунга» выберем слово "ЗАПИСЬ" (количество букв в ключевом слове должно равняться количеству колонок в нашей таблице).

Заменим теперь каждую букву ключевого слова на число от 1 до 6 таким образом, чтобы буква, имеющая меньший номер следования в алфавите, заменялась на меньшее число. Полученные числа (2,1,4,3,5,6) проставим подряд в начале соответствующих колонок таблицы и будем в дальнейшем считать их номерами этих колонок. Впишем открытый текст в таблицу, переходя обычным образом со строки на строку. В результате получим:


 * 2[[image:http://gendocs.ru/docs/3/2901/conv_8/file8_html_m53d4ecad.gif width="12" height="20" align="absmiddle"]] || 1 || 4 || 3 || 5 || 6 ||
 * в || с || в || я || з || и ||
 * с || с || о || з || д || а ||
 * в || ш || и || м || с || я ||
 * п || о || л || о || ж || е ||
 * н || и || е || м || о || т ||
 * о || д || в || и || г || а ||
 * е || м || с || р || о || к ||
 * и || в || о || з || в || р ||
 * а || щ || е || н || и || я ||
 * д || о || м || о || й || р ||
 * а || м || з || а || й ||  ||

Выпишем теперь буквы из столбцов таблицы: сначала весь столбец, в начале которого стоит единица, затем - столбец, помеченный двойкой и т.д.

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


 * ссшои дмвщо мвсвп ноеиа даязм омирз ноаво илевс оемзз дсжог овийй иаяет акряр**

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

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

Нетрудно видеть, что для расшифрования, т.е. перестановки знаков шифртекста на исходное место, необходимо воспользоваться подстановкой обратной шкале разноски, которая называется //**шкалой набора**//.

В зависимости от частного вида закона построения шкалы разноски, р

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



Двойная перестановка.
Для зашифровывания двойной перестановкой необходимо:

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

- в таблицу по определенному маршруту (к примеру, «а») заносится исходный текст (таблица А), а неиспользованные места полностью заполняются любыми, но лучше всего часто встречающимися буквами (здесь: с, в, и);

- переставить столбцы в порядке, соответствующем расположению букв в верхнем ключе («гевара») как в шифре вертикальной перестановки (таблица Б);

- аналогично переставить строки в соответствии с последовательностью букв второго ключевого слова («риск») в алфавите (таблица В);

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

Шифртекст - ** ^ ПЕААН РСИЕС ТВРЧТ ВСЕМЕ ЕЖНМИ **.

При расшифровывании криптограммы следует действовать в обратном порядке:

- шифртекст вписывается в таблицу определяемого длинами ключей размера; столбцы и строки в ней последовательно нумеруются, а избыток букв отбрасывается (так получается таблица В);

- строки располагают в соответствии с порядком номеров букв бокового ключевого слова (так получается таблица Б);

- столбцы переставляются согласно нумерации букв верхнего ключа (так получается таблица А);

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

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

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

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

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

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

Для этого достаточно подписать криптограммы комплекта друг под другом и комбинировать колонки, получая читаемые сочетания в группе столбцов. Чем глубже колонки, тем легче подобрать текст.

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

** Криптоанализ шифров перестановки ** Шифры перестановки уязвимы к нескольким видам атак только для зашифрованного текста.

** Статистическая атака ** Шифр перестановки не изменяет частоту букв в зашифрованном тексте; он только переставляет буквы. Так что первая атака, которая может быть применена, - анализ частоты отдельной буквы. Этот метод может быть полезен, если длина зашифрованного текста достаточно большая. Мы такую атаку рассматривали раньше. Однако шифры перестановки не сохраняют частоту пар и триграмм. Это означает, что Ева не может использовать такие инструментальные средства. Фактически, если шифр не сохраняет частоту пар и триграмм, но сохраняет частоту отдельных букв, то вероятнее всего, что это шифр перестановки.

** Атака грубой силы ** Ева, чтобы расшифровать сообщение, может попробовать все //возможные ключи// . Однако число ключей может быть огромно 1! + 2! + 3! + … + L !, где L  — длина зашифрованного текста. Лучший подход состоит в том, чтобы попробовать отгадать число столбцов. Ева знает, что число столбцов делится на L . Например, если длина шифра — 20 <span style="color: #000000; font-family: 'Times New Roman','serif';"> символов, то 20= 1*2*2*5. <span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 18.6667px;">Это означает, что номером столбцов может быть комбинация этих коэффициентов <span style="color: #8b0000; font-family: 'Times New Roman','serif';">(1, 2, 4, 5, 10, 20) <span style="color: #000000; font-family: 'Times New Roman','serif';">. Однако только один столбец и только одна строка — маловероятные варианты. **<span style="color: #000000; font-family: 'Times New Roman','serif';">Пример **

<span style="color: #000000; font-family: 'Times New Roman','serif';">Предположим, что Ева перехватила сообщение зашифрованного текста <span style="color: #8b0000; font-family: 'Times New Roman','serif';">"EEMYNTAACTTKONSHITZG" <span style="color: #000000; font-family: 'Times New Roman','serif';">. Длина сообщения <span style="color: #8b0000; font-family: 'Times New Roman','serif';">L = 20 <span style="color: #000000; font-family: 'Times New Roman','serif';">, число столбцов может быть <span style="color: #8b0000; font-family: 'Times New Roman','serif';">1, 2, 4, 5, 10 <span style="color: #000000; font-family: 'Times New Roman','serif';"> или <span style="color: #8b0000; font-family: 'Times New Roman','serif';">20 <span style="color: #000000; font-family: 'Times New Roman','serif';">. Ева игнорирует первое значение, потому что это означает только один столбец и оно маловероятно. <span style="color: #000000; font-family: 'Times New Roman','serif';">a. Если число столбцов — <span style="color: #8b0000; font-family: 'Times New Roman','serif';">2 <span style="color: #000000; font-family: 'Times New Roman','serif';">, единственные две перестановки — <span style="color: #8b0000; font-family: 'Times New Roman','serif';">(1,2) <span style="color: #000000; font-family: 'Times New Roman','serif';"> и <span style="color: #8b0000; font-family: 'Times New Roman','serif';">(2, 1) <span style="color: #000000; font-family: 'Times New Roman','serif';">. Первое означает, что перестановки не было. Ева пробует вторую комбинацию. Она делит зашифрованный текст на модули по два символа <span style="color: #8b0000; font-family: 'Times New Roman','serif';">"EE MY NT AA CT TK ON SH IT ZG" <span style="color: #000000; font-family: 'Times New Roman','serif';">. Затем она пробует переставлять каждый модуль из них, получая текст <span style="color: #8b0000; font-family: 'Times New Roman','serif';">"ee ym nt aa tc kt no hs ti gz" <span style="color: #000000; font-family: 'Times New Roman','serif';">, который не имеет смысла. <span style="color: #000000; font-family: 'Times New Roman','serif';">b. Если номер столбцов — <span style="color: #8b0000; font-family: 'Times New Roman','serif';">4 <span style="color: #000000; font-family: 'Times New Roman','serif';">, тогда имеется <span style="color: #8b0000; font-family: 'Times New Roman','serif';">4! = 24 <span style="color: #000000; font-family: 'Times New Roman','serif';"> перестановки. Первая перестановка <span style="color: #8b0000; font-family: 'Times New Roman','serif';">(1 2 3 4) <span style="color: #000000; font-family: 'Times New Roman','serif';"> означает, что не было никакой перестановки. Ева должна попробовать остальные. После испытания всех <span style="color: #8b0000; font-family: 'Times New Roman','serif';">23 <span style="color: #000000; font-family: 'Times New Roman','serif';"> возможностей Ева находит, что никакой исходный текст при таких перестановках не имеет смысла. <span style="color: #000000; font-family: 'Times New Roman','serif';">c. Если число столбцов — <span style="color: #8b0000; font-family: 'Times New Roman','serif';">5 <span style="color: #000000; font-family: 'Times New Roman','serif';">, тогда есть <span style="color: #8b0000; font-family: 'Times New Roman','serif';">5! = 120 <span style="color: #000000; font-family: 'Times New Roman','serif';"> перестановок. Первая <span style="color: #8b0000; font-family: 'Times New Roman','serif';">(1 2 3 4 5) <span style="color: #000000; font-family: 'Times New Roman','serif';"> означает отсутствие перестановки. Ева должна попробовать остальные. Перестановка <span style="color: #8b0000; font-family: 'Times New Roman','serif';">(2 5 13 4) <span style="color: #000000; font-family: 'Times New Roman','serif';"> приносит плоды — исходный текст <span style="color: #8b0000; font-family: 'Times New Roman','serif';">"enemyattackstonightz" <span style="color: #000000; font-family: 'Times New Roman','serif';">, который имеет смысл после удаления фиктивной буквы <span style="color: #8b0000; font-family: 'Times New Roman','serif';">z <span style="color: #000000; font-family: 'Times New Roman','serif';"> и добавления пробелов.

** Атака по образцу ** <span style="color: #000000; font-family: 'Times New Roman','serif';">Другая атака шифра перестановки может быть названа атакой по образцу. Зашифрованный текст, созданный с помощью ключевого шифра перестановки, имеет некоторые повторяющиеся образцы. Следующий пример показывает зашифрованный текст, относительно которого известно, что каждый символ в зашифрованном тексте в примере 4.28 получается из исходного текста по следующему правилу: <span style="color: #8b0000; font-family: 'Times New Roman','serif';">1 <span style="color: #000000; font-family: 'Times New Roman','serif';"> -й символ в зашифрованном тексте получается из <span style="color: #8b0000; font-family: 'Times New Roman','serif';">3 <span style="color: #000000; font-family: 'Times New Roman','serif';"> -го символа исходного текста. <span style="color: #8b0000; font-family: 'Times New Roman','serif';">2 <span style="color: #000000; font-family: 'Times New Roman','serif';"> -й символ в зашифрованном тексте получается из <span style="color: #8b0000; font-family: 'Times New Roman','serif';">8 <span style="color: #000000; font-family: 'Times New Roman','serif';"> -го символа исходного текста. <span style="color: #8b0000; font-family: 'Times New Roman','serif';">20 <span style="color: #000000; font-family: 'Times New Roman','serif';"> -й символ в зашифрованном тексте получается из <span style="color: #8b0000; font-family: 'Times New Roman','serif';">17 <span style="color: #000000; font-family: 'Times New Roman','serif';"> -го символа исходного текста, и так далее. У нас имеются образцы в вышеупомянутом списке. Мы имеем пять групп: <span style="color: #8b0000; font-family: 'Times New Roman','serif';">(3, 8, 13, 18), (1, 6, 11, 16), (4, 9, 14, 19), (5, 10, 15, 20) <span style="color: #000000; font-family: 'Times New Roman','serif';"> и <span style="color: #8b0000; font-family: 'Times New Roman','serif';">(2, 7, 12, 17) <span style="color: #000000; font-family: 'Times New Roman','serif';">. Во всех группах разность между двумя смежными номерами — <span style="color: #8b0000; font-family: 'Times New Roman','serif';">5 <span style="color: #000000; font-family: 'Times New Roman','serif';">. Эта регулярность может использоваться криптоаналитиком, чтобы взломать шифр. Если Ева знает или может предположить число столбцов (в этом случае оно равняется <span style="color: #8b0000; font-family: 'Times New Roman','serif';">5 <span style="color: #000000; font-family: 'Times New Roman','serif';"> ), она может преобразовать зашифрованный текст в группы по четыре символа. Перестановка групп может обеспечить ключ к нахождению исходного текста.

** Шифры c двойной перестановкой ** **<span style="color: #000000; font-family: 'Times New Roman','serif';">Шифры с двойной перестановкой **<span style="color: #000000; font-family: 'Times New Roman','serif';"> могут затруднить работу криптоаналитика. Примером такого шифра было бы повторение дважды алгоритма, используемого для шифрования и дешифрования в примере 4.26. На каждом шаге может применяться различный ключ, но обычно ключ используется один и тот же. **<span style="color: #000000; font-family: 'Times New Roman','serif';">Пример ** <span style="color: #000000; font-family: 'Times New Roman','serif';">Повторим пример 4.26, где использована двойная перестановка. Рисунок 4 показывает процесс. <span style="color: #000000; font-family: 'Times New Roman','serif';">Хотя криптоаналитик может еще использовать частоту появления отдельного символа для статистической атаки на зашифрованный текст, атака по образцу теперь затруднена. 13 16 05 07 03 06 10 20 18 04 10 12 01 09 15 17 08 11 19 02 <span style="color: #000000; font-family: 'Times New Roman','serif';">Сравнив приведенный текст и результат примера 4.28, мы видим, что теперь нет повторяющихся образцов. Двойная перестановка удалила ту регулярность, что мы имели раньше.

Источники:
 * 1) http://gendocs.ru/v2901/?cc=8
 * 2) http://students.uni-vologda.ac.ru/pages/pm00/kan/symmetric.htm#trans