Моно- и многоалфавитные подстановки

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

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

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

 

Рис.3.

Для того чтобы пользоваться шифром Цезаря, и отправитель, и получатель шифровки должны иметь к ней так называемый секретный (тайный) ключ. В нашем примере ключ – это буква под номером “7” (буква “З”). Отправитель сообщения создает шифртекст, просто складывая 7 числами, соответствующих каждой букве шифртекста.

Рис.4.

Так первая буква открытого текста «С» соответствует числу «17». Складывая его с «7», получаем число «24», которое соответствует букве “Ш” – первой букве шифртекста на рис.3.

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

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

Слабая криптостойкость моноалфавитных подстановок преодолевается с применением подстановок многоалфавитных.

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

Для такой системы подстановки используют также термин «одноразовая лента» или «одноразовый блокнот2. Именно такую идею, выдвинул Вернам. Она как раз и состояла в том, чтобы использовать ключ только один раз; при этом каждый символ (бит) шифруется с использованием нового случайного символа (бита) ключа. Это требует передачи по секретному каналу ключа, объем которого равен объему шифруемого затем текста, однако это дает действительно нераскрываемый шифр. Вернам и в самом деле считал свой шифр нераскрываемым и знал, что это его свойство теряется при повторном использовании символов (битов) ключа.

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

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

Рис.5. Таблица Вижинера

Для шифрования текста устанавливается ключ, представляющий собой некоторое слово или набор букв. Далее из полной матрицы (см. рис.5.) выбирается подматрица шифрования, включающая, например, первую строку и строки матрицы, первым символом (буквой) которой являются последовательно буквы ключа, например МОРЕ. В итоге получаем следующую подматрицу:

Рис.6. Подматрица шифрования сформированная на основе таблицы Вижинера

Процесс шифрования включает следующую последовательность действий:

• под каждой буквой шифруемого текста записываются буквы ключа, повторяющие ключ требуемое число раз (см. рис.7.);

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

Рис.7. Пример шифрования текста

Так, под первой буквой шифруемого текста оказалась буква “М” ключа. В первой строке подматрицы находим букву "3" и выбираем из данной колонки подматрицы букву в той строке, начальный символ которой соответствует букве "М" ключа. Такой буквой оказалась буква "У" (см. рис.6.).

Далее выполняется замена исходной буквы "3" на "У" в выходном тексте. Выходной текст делится на группы, например по четыре знака. Для этого алгоритма может быть составлена программа ЭВМ.

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

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

Расшифровка текста выполняется в следующей последовательности (см. рис.8):

· над буквами шифрованного текста сверху последовательности записываются буквы ключа;

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

· полученный текст группируется в слова по смыслу.

рис.8. Механизм дешифрования

Один из недостатков шифрования по таблице Вижинера – это ненадежность шифрования при небольшой длине ключа и сложность формирования длинных ключей.