Шифрование методом перестановки. Виды и способы шифров. Перестановочные шифры

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

Пример (маршрутной перестановки)

Зашифруем указанным выше способом фразу пример маршрутной перестановки, используя прямоугольную табли­цу размером 4х7:

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

Зашифрованная фраза выглядит следующим образом:

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

Обращение описанных шагов при расшифровании не представляет труда.

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

Пример (вертикальной перестановки)

Зашифруем фразу вот пример шифра вертикальной пере­становки, используя прямоугольник размером 6 х 7 и число­вой ключ (5,1,4,7,2,6,3).

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

Теперь, выписывая буквы по столбцам в порядке, указан­ном числовым ключом, получим такую криптограмму:

ореьекрфийамааеотшрнсивевлрвиркпнпитот

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

В нашем примере 38=7×5+3, поэтому в заполненной таблице имеется 3 длинных и 4 коротких столбца.

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

Шифры подстановки (замены) основаны на алгебраической операции, называемой подстановкой. Подстановкой называется взаимно-однозначное отображение конечного множества M на себя. Число N элементов множеств называется степенью подстановки. Количество n чисел действительно перемещаемых подстановкой называется длиной цикла подстановки.

Шифры перестановки – это шифр, преобразование из которого изменяют только порядок следования символов исходного текста, но не изменяют их самих.

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

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

  1. Сделать шифр легко усложняемым (за счет увеличения количества раундов)
  2. Сократить размера программного кода
  3. Унифицировать алгоритмическую формулу шифрования

Сеть Фейсиля (Файсиля) – Feistel – это способ построения цикла шифрования в алгоритмах шифрования итеративных на основе регистра сдвига, с функцией обратной связи, зависящей от раундового ключа (оптимальное число раундов от 8 до 32)

DES – федеральный стандарт шифрования США (1997-2001).

Архитектура – классическая, сбалансированная сеть Фейсиля с начальными и конечными битовыми перестановками общего вида. Размер ключа – 56 бит. На его основе – международный стандарт ISO 8372-87. Алгоритм предназначен для шифрования данных 64-битовыми блоками.

DES представляет собой комбинацию двух основных методов:

  1. Подстановка
  2. Перестановка.

К тексту применяется единичная комбинация этих двух методов.



DES включает 16 раундов, то есть одна и та же комбинация методов применяется к открытому тексту 16 раз.

Наложение ключа-раунда производится операцией XOR

Исходный текст=>Начальная перестановка=>Шифрование * 16(<=Ключ) =>Конечная перестановка=>шифротекст

Цель начальной перестановки – равномерно распределить по блокам рядом стоящие биты.

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

DES предусматривает 4 типа работы:

  1. ECB-электронный шифр-блокнот. Открытый текст обрабатывается блоками по 64 бит, шифруемых одним ключом
  2. CBC - цепочка блоков. Устраняет недостаток первого режима. Входное значение алгоритма зашифрования задается равным XOR-разности текущего блока открытого текста и полученного на предыдущем шаге блока шифрованного текста. Таким образом, все блоки исходного текста оказывается связанными (текст=>зашифрованный текст=>XOR=>текст=>зашифрованный текст)
  3. CFB – обратная связь по шифро-тексту. Алгоритм преобразуется в поточный шифр, то есть каждый символ можно зашифровать и сразу передавать получателю
  4. OFB – обратная связь по выходу. В регистр сдвига подается порция зашифрованного текста. Для каждого сеанса шифрования используется новое начальное состояние регистра.

Считается, что четырех режимов достаточно, чтобы использовать DES в практически любой области, для которой этот алгоритм подходит

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

AES-федеральный стандарт шифрования США, используемый в настоящее время.

AES – улучшенный стандарт шифрования.

Требования:

  1. Шифр должен быть блочным
  2. Шифр должен иметь длину блока, равную 128 битам
  3. Шифр должен поддерживать ключи длиной 128, 192, 256 бит

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

Алгоритм представляет каждый блок кодируемых данных в виде двумерного массива байтов размером 4х4, 4х6 или 4х8 в зависимости от установленной длины блока.

Алгоритм состоит из определенного количества раундов (от 10 до 14 – это зависит от размера блока и длины ключа).

ГОСТ 28147089 – стандарт РФ на шифрование и имитозащиту данных.

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

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

На каждом i-м раунде используется K­ i -й подключ.

Алгоритмы шифрования ГОСТ 28147-89 обладают достоинствами других алгоритмов для симметричных систем и превосходят их своими возможностями.

На каждом i-м раунде алгоритма ГОСТ выполняется следующие операции:

L i =R i -1 , R i =L i -1 (плюсвкружочке)f(R i -1 , K i)

После выполнения этих 32 операций реализация алгоритма шифрования будет завершена.

Достоинством ГОСТ является наличие защиты от навязывания ложных данных (режим имитовставки), а также одинаковый цикл шифрования во всех 4 режимах (алгоритмах) ГОСТ.

Высокая криптостойкость обеспечивается за счет большой длины ключа (256 бит) и 32 раундов преобразования.

Стандарт включает режимы (алгоритмы):

  1. Режим простой замены
  2. Режим гаммирования
  3. Режим гаммирования с обратной связью
  4. Режим выработки имитовставки

Асимметричные алгоритмы шифрования.

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

Эти ключи различны и не могут быть получены один из другого.

Схема обмена информацией:

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

Использование асимметричного метода шифрования

Применение таких шифров стало возможным благодаря К. Шеннону, предложившему строить шифр таким способом, чтобы его раскрытие было эквивалентно решению математической задачи, требующей выполнения объемов вычислений, превосходящих возможности современных ЭВМ (например, операции с большими простыми числами и их произведениями; нахождение значения произведения P=x*y)

Криптосистема шифрования данных RSA.

В настоящее время наиболее развитым методом криптографической защиты информации с известным ключом является RSA, названный так по начальным буквам фамилий её изобретателей (Rivest, Shamir, Adleman)

Чтобы использовать алгоритмы RSA, надо сначала сгенерировать открытый и секретный ключи, выполнив следующие шаги:

  1. Выбрать два очень больших простых числа p и q и определить n как результат умножения p на q (n=p*q)
  2. Выбрать большое случайное число d. Это число должно быть взаимно простым с m результатом умножения (p-1)(q-1)
  3. Определить такое число e, для которого является истинным следующее соотношения (e*d)mod(m)=1 или e=(1mod(m))/d
  4. Открытым ключом будут числа e,n, а секретным ключом – числа d,n

Красным выделено создание ключа.

Асимметрические криптосистемы на базе эллиптических кривых.

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

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

Для перечисленных выше реализаций используются эллиптические кривые над полями Галуа GF(p) конечным числом p элементов двух видов:

  1. Эллиптическая кривая над конечным полем типа E(GF(p)), где р – некоторое простое число
  2. Эллиптическая кривая над конечным полем типа E(GF(2m)), где p=2m

Пример: Алгоритм асимметричного шифрования на базе эллиптических кривых ECES (Elliptic Curve Encryption Scheme)

Алгоритм Эль-Гамаля.

Система Эль-Гамаля – это криптосистема с открытым ключом, основанная на проблеме вычисления логарифма. Данный алгоритм используется как для шифрования, так и для цифровой подписи.

Множество параметров системы включает простое число p и целое g, степени которого по модулю p порождают большое число элементов Z p

Методы замены.

Шифр замены замещает одни символы другими, но сохраняет порядок их следования в сообщении.

4 типа замены (подстановки):

  1. Моноалфавитная. Формула = Y i =k 1 X i +k 2 (modN), где Y i – i-символ алфавита, k 1 , k 2 – константы, Х i – i-символ открытого текста, N - длина используемого алфавита.

Пример. Замена – открытый текст, Ключ – Ключ

  1. Гомофоническая замена – замена одному символу открытого текста ставит в соответствие несколько символов шифртекста. Этот метод применяется для искажения статистических свойств шифротектста. Используется подстановка таблицей. Значения используются поочередно из столбца.
  1. Полиалфавитная замена – использование нескольких алфавитов. Смена алфавита идет на каждом шаге шифрования. Используется ступеньчатая замена букв по таблице.
  2. Полиграммная замена – формируется из одного алфавита с помощью специальных правил. Шифр располагается в матрице, а открытый текст разбивается на пары символов XiXi+1

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

Отличие шифра перестановки – изменяется только порядок следования символов сходного текста, но не изменяют их самих.

Пример. Текст «Грузите апельсины бочками Братья Карамазовы»

Шифротекст «Птр_аезгуионл_бысеьит_крабмчаизрямаакь_а__в____оы»

по разным путям геометрической фигуры.

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

Например, для d=6 в качестве ключа перестановки можно взять 436215 . Это означает, что в каждом блоке из 6 символов четвертый символ становится на первое место , третий – на второе, шестой – на третье и т.д. Пусть необходимо зашифровать такой текст:

Количество символов в исходном сообщении равно 24, следовательно, сообщение необходимо разбить на 4 блока. Результатом шифрования с помощью перестановки 436215 будет сообщение

ОЕТЭТ_ТЛСКДИШР_ЯФНАЯВОИ

Теоретически, если блок состоит из d символов, то число возможных перестановок d!=1*2*...*(d-1)*d . В последнем примере d=6 , следовательно, число перестановок равно 6!=1*2*3*4*5*6=720 . Таким образом, если противник перехватил зашифрованное сообщение из рассмотренного примера, ему понадобится не более 720 попыток для раскрытия исходного сообщения (при условии, что размер блока известен противнику).

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

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

Рассмотрим пример. Пусть в таблице кодирования будет 4 столбца и 3 строки (размер блока равен 3*4=12 символов). Зашифруем такой текст:

Количество символов в исходном сообщении равно 24, следовательно, сообщение необходимо разбить на 2 блока. Запишем каждый блок в свою таблицу по строчкам ( таблица 2.9).

Таблица 2.9. Шифрование методом перестановки по таблице
1 блок
Э Т О
Т Е К С
Т Д Л
2 блок
Я Ш И
Ф Р О В
А Н И Я

Затем будем считывать из таблицы каждый блок последовательно по столбцам:

ЭТТТЕ ОКД СЛЯФА РНШОИИВЯ

Можно считывать столбцы не последовательно, а, например, так: третий, второй, первый, четвертый:

ОКДТЕ ЭТТ СЛШОИ РНЯФАИВЯ

В этом случае порядок считывания столбцов и будет ключом.

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

Посмотрим, как зашифровать и расшифровать сообщение, имеющее длину, не кратной размеру таблицы перестановки. Зашифруем слово

ПЕРЕМЕНКА

Количество символов в исходном сообщении равно 9. Запишем сообщение в таблицу по строкам ( таблица 2.10), а последние три ячейки оставим пустыми.

Затем будем считывать из таблицы последовательно по столбцам:

ПМАЕЕРНЕК

Для расшифрования вначале определяют число полных столбцов, то есть количество символов в последней строке. Для этого делят размер сообщения (в нашем примере – 9) на количество столбцов или размер ключа (в примере – 4). Остаток от деления будет числом полных столбцов: 9 mod 4 = 1 . Следовательно, в нашем примере был 1 полный столбец и три коротких. Теперь можно поставить буквы сообщения на свои места и расшифровать сообщение. Так как ключом при шифровании было число 1234 (столбцы считывались последовательно), то при расшифровании первые три символа (ПМА ) записываются в первый столбец таблицы перестановки, следующие два (ЕЕ ) – во второй столбец, следующие два (РН ) – в третий, и последние два (ЕК ) – в четвертый. После заполнения таблицы считываем строки и получаем исходное сообщение ПЕРЕМЕНКА .

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

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

где i 1 номер места шифртекста, на которое попадает первая буква открытого текста при выбранном преобразовании, i 2 - номер места для второй буквы и т. д. В верхней строке таблицы выписаны по порядку числа от 1 до n , а в нижней те же числа, но в произвольном порядке. Такая таблица называется перестановкой степени n .

Зная перестановку, задающую преобразование, можно осуществить как шифрование, так и расшифрование текста. В этом случае, сама таблица перестановки служит ключом шифрования.

Число различных преобразований шифра перестановки, предназначенного для шифрования сообщений длины n , меньше либо равно n ! (n факториал). Заметим, что в это число входит и вариант преобразования, оставляющий все символы на своих местах.

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

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

Шифрование выполнялось следующим образом. На стержень цилиндрической формы, который назывался скитала, наматывали спиралью (виток к витку) полоску пергамента и писали на ней вдоль стержня несколько строк текста сообщения (рис. 1.2). Затем снимали со стержня полоску пергамента с написанным текстом. Буквы на этой полоске оказывались расположенными хаотично.

Рис. 1.2. Шифр "Скитала"

Такой же результат можно получить, если буквы сообщения писать по кольцу не подряд, а через определенное число позиций до тех пор, пока не будет исчерпан весь текст. Сообщение "НАСТУПАЙТЕ " при размещении его по окружности стержня по три буквы дает шифртекст: "НУТАПЕСА_ТЙ ".

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

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

В качестве ключа в шифрующих таблицах используются:

    размер таблицы;

    слово или фраза, задающие перестановку;

    особенности структуры таблицы.

Одним из самых примитивных табличных шифров перестановки является простая перестановка, для которой ключом служит размер таблицы. Этот метод шифрования сходен с шифром скитала. Например, сообщение "ТЕРМИНАТОР ПРИБЫВАЕТ СЕДЬМОГО В ПОЛНОЧЬ "записывается в таблицу поочередно по столбцам. Результат заполнения таблицы из 5 строк и 7 столбцов показан на рис. 1.3.

После заполнения таблицы текстом сообщения по столбцам для формирования шифртекста считывают содержимое таблицы по строкам. Если шифртекст записывать группами по пять букв, получается такое шифрованное сообщение: "ТНПВЕ ГЛЕАР АДОНР ТИЕЬВ ОМОБТ МПЧИР ЫСООЬ ".

Рис. 1.3. Заполнение шифрующей таблицы из 5 строк и 7 столбцов

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

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

Применим в качестве ключа, например, слово "ПЕЛИКАН ", а текст сообщения возьмем из предыдущего примера. На рис. 1.4 показаны две таблицы, заполненные текстом сообщения и ключевым словом, при этом левая таблица соответствует заполнению до перестановки, а правая таблица – заполнению после перестановки.

Рис. 1.4. Шифрующие таблицы, заполненные ключевым словом и текстом сообщения

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

При считывании содержимого правой таблицы по строкам и записи шифртекста группами по пять букв получим шифрованное сообщение: "ГНВЕП ЛТООА ДРНЕВ ТЕЬИО РПОТМ БЧМОР СОЫЬИ ".

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

Пример выполнения шифрования методом двойной перестановки показан на рис. 1.5. Если считывать шифртекст из правой таблицы построчно блоками по четыре буквы, то получится следующее: "ТЮАЕ ООГМ РЛИП ОЬСВ ".

Рис. 1.5. Пример выполнения шифрования методом двойной перестановки

Ключом к шифру двойной перестановки служит последовательность номеров столбцов и номеров строк исходной таблицы (в нашем примере последовательности 4132 и 3142 соответственно).

Число вариантов двойной перестановки быстро возрастает при увеличении размера таблицы:

    для таблицы 3x3 36 вариантов;

    для таблицы 4x4 576 вариантов;

    для таблицы 5x5 14400 вариантов.

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

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

Пример магического квадрата и его заполнения сообщением "ПРИЛЕТАЮ ВОСЬМОГО " показан на рис. 1.6.

Рис. 1.6. Пример магического квадрата 4х4 и его заполнение сообщением

Шифртекст, получаемый при считывании содержимого правой таблицы по строкам, имеет вполне загадочный вид: "ОИРМ ЕОСЮ ВТАЪ ЛГОП ".

Число магических квадратов быстро возрастает с увеличением размера квадрата. Существует только один магический квадрат размером 3x3 (если не учитывать его повороты). Количество магических квадратов 4x4 составляет уже 880, а количество магических квадратов 5x5 – около 250000.

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

(см. также )

Большое влияние на развитие криптографии оказали появившиеся в середине XX века работы американского математика Клода Шеннона. В этих работах были заложены основы теории информации, а также был разработан математический аппарат для исследований во многих областях науки, связанных с информацией. Более того, принято считать, что теория информации как наука родилась в 1948 году после публикации работы К. Шеннона "Математическая теория связи".

В своей работе "Теория связи в секретных системах" Клод Шеннон обобщил накопленный до него опыт разработки шифров. Оказалось, что даже в очень сложных шифрах в качестве типичных компонентов можно выделить такие простые шифры как шифры замены, шифры перестановки или их сочетания .

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


Рис. 6.1.

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

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

Шифр перестановки, как видно из названия, осуществляет преобразование перестановки букв в открытом тексте. Типичным примером шифра перестановки является шифр "Сцитала". Обычно открытый текст разбивается на отрезки равной длины и каждый отрезок шифруется независимо. Пусть, например, длина отрезков равна и - взаимнооднозначное отображение множества в себя. Тогда шифр перестановки действует так: отрезок открытого текста преобразуется в отрезок шифрованного текста.

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

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

6.3.1 Шифр столбцовой перестановки

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

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

Таблица 6.1. Сочетаемость букв русского языка
Г С Слева Справа Г С
3 97 л, д, к, т, в, р, н А л, н, с, т, р, в, к, м 12 88
80 20 я, е, у, и, а, о Б о, ы, е, а, р, у 81 19
68 32 я, т, а, е, и, о В о, а, и, ы, с, н, л, р 60 40
78 22 р, у, а, и, е, о Г о, а, р, л, и, в 69 31
72 28 р, я, у, а, и, е, о Д е, а, и, о, н, у, р, в 68 32
19 81 м, и, л, д, т, р, н Е н, т, р, с, л, в, м, и 12 88
83 17 р, е, и, а, у, о Ж е, и, д, а, н 71 29
89 11 о, е, а, и 3 а, н, в, о, м, д 51 49
27 73 р, т, м, и, о, л, н И с, н, в, и, е, м, к, з 25 75
55 45 ь, в, е, о, а, и, с К о, а, и, р, у, т, л, е 73 27
77 23 г, в, ы, и, е, о, а Л и, е, о, а, ь, я, ю, у 75 25
80 20 я, ы, а, и, е, о М и, е, о, у, а, н, п, ы 73 27
55 45 д, ь, н, о, а, и, е Н о, а, и, е, ы, н, у 80 20
11 89 р, п, к, в, т, н О в, с, т, р, и, д, н, м 15 85
65 35 в, с, у, а, и, е, о П о, р, е, а, у, и, л 68 32
55 45 и, к, т, а, п, о, е Р а, е, о, и, у, я,ы, н 80 20
69 31 с, т, в, а, е, и, о С т, к, о, я, е, ь, с, н 32 68
57 43 ч, у, и, а, е, о, с Т о, а, е, и, ь, в, р, с 63 37
15 85 п, т, к, д, н, м, р У т, п, с, д, н, ю, ж 16 84
70 30 н, а, е, о, и Ф и, е, о, а, е, о, а 81 19
90 10 у, е, о, а, ы, и X о, и, с, н, в, п, р 43 57
69 31 е, ю, н, а, и Ц и, е, а, ы 93 7
82 18 е, а, у, и, о Ч е, и, т, н 66 34
67 33 ь, у, ы, е, о, а, и, в Ш е, и, н, а, о, л 68 32
84 16 е, б, а, я, ю Щ е, и, а 97 3
0 100 м, р, т, с, б, в, н Ы Л, х, е, м, и, в, с, н 56 44
0 100 н, с, т, л Ь н, к, в, п, с, е, о, и 24 76
14 86 с, ы, м, л, д, т, р, н Э н, т, р, с, к 0 100
58 42 ь, о, а, и, л, у Ю д, т, щ, ц, н, п 11 89
43 57 о, н, р, л, а, и, с Я в, с, т, п, д, к, м, л 16 84

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

Систематически вопрос о зависимости букв алфавита в открытом тексте от предыдущих букв исследовался известным русским математиком А.А. Марковым (1856-1922). Он доказал, что появления букв в открытом тексте нельзя считать независимыми друг от друга. В связи с этим А.А. Марковым отмечена еще одна устойчивая закономерность открытых текстов, связанная с чередованием гласных и согласных букв. Им были подсчитаны частоты встречаемости биграмм вида гласная-гласная (г, г ), гласная-согласная (г, с ), согласная-гласная (с, г ), согласная-согласная (с, с ) в русском тексте длиной в знаков. Результаты подсчета отражены в следующей таблице:

Таблица 6.2. Чередование гласных и согласных
Г С Всего
Г 6588 38310 44898
С 38296 16806 55102

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

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

Д В Ы Т
Г О Е Р О
У Ь Д У Б
М М Я Ы Р П

Решение. Присвоим столбцам номера в порядке их следования. Наша задача - найти такой порядок столбцов, при котором текст будет осмысленным.

Составим таблицу:

1 2 3 4 5 6
1 Х
2 Х
3 Х
4 Х
5 Х
6 Х

Клетка (, ) в этой таблице означает, что столбец с номером следует за столбцом с номером . Знаком "Х" отметим невозможные случаи.

Сочетания столбцов 1, 2 и 5, 2 невозможны, так как гласная не может находиться перед мягким знаком. Невозможны и следования столбцов 2, 1 и 2, 5. Теперь из третьей строки следует, что 1, 5 и 5, 1 невозможны, так как УУ - нехарактерная для русского языка биграмма. Далее, два пробела подряд не могут быть в тексте, значит, ставим "Х" в клетках 3, 4 и 4, 3. Снова обратимся к третьей строке. Если бы столбец 2 следовал за столбцом 4, то слово начиналось бы с мягкого знака. Ставим "Х" в клетке 4, 2. Из первой строки: невозможна комбинация 4, 5, невозможна и 3, 5. Итог наших рассуждений представлен в таблице:

1 2 3 4 5 6
1 Х Х Х
2 Х Х Х
3 Х Х Х
4 Х Х Х Х
5 Х Х Х
6 Х

Итак, после столбца 6 обязательно следует столбец 5. Но тогда поставим "Х" в клетке 6, 2 и получим: столбец 2 следует за столбцом 3. Далее, мы вычеркнули 5, 1 и 2, 1, следовательно, надо проверить варианты: ...6532... и...65432... . Но (4, 3) вычеркнуто ранее. Итак, остались варианты расположения столбцов:

  • 1, 6, 5, 3, 2, 4
  • 6, 5, 3, 2, 4, 1
  • 4, 1, 6, 5, 3, 2
  • 1, 4, 6, 5, 3, 2

Запишем 6, 5, 3, 2 столбцы подряд:

6 5 3 2
т ы - в
о р о г
б у д ь
п р я м

Попытка поставить столбец 1 перед столбцом 6 приведет к биграмме МП в последней строке и сочетанию ДТЫ в первой. Остались варианты: 653241, 146532.

Ответ: 653241 - ключ, открытый текст: ты\_в\_дороге\_будь\_упрямым (строка из популярной в 1970-е годы песни).

Приведем еще один пример криптоанализа шифра столбцовой перестановки.

Пример 6.3 Расшифровать: СВПООЗЛУЙЬСТЬ\_ЕДПСОКОКАЙЗО

Решение. Текст содержит 25 символов, что позволяет записать его в квадратную матрицу 5х5. Известно, что шифрование производилось по столбцам, следовательно, расшифровывание следует проводить, меняя порядок столбцов.