logo
Алексеев информатика

9.8.1. Шифрование сообщений различными методами

Рассмотрим, как зашифровать сообщение методом замены (другими словами методом подстановки). Вначале используем шифр Цезаря. Предположим, что требуется зашифровать сообщение «ГДЕ АББА».

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

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

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

Замена может осуществляться на символы другого алфавита и с более сложным ключом (алгоритмом замены). Для простоты опять приведем лишь начальные части алфавитов. Линии показывают порядок замены букв русского алфавита на буквы латинского алфавита. Зашифруем фразу «ГДЕ АББА»:

В результате такого шифрования получится криптограмма:

CDB EFFE.

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

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

Замена символов открытого текста может происходить на специальные символы, например, на «пляшущих человечков», как в рассказе К. Доила.

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

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

Ниже приведен фрагмент ключа многоалфавитной замены:

С помощью многоалфавитного шифра сообщение «ГДЕ АББА» можно зашифровать несколькими способами:

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

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

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

Таблица Виженера

Предположим, что нужно зашифровать сообщение «ГДЕ АББА». В качестве ключа выберем слово «ДЕВА». В результате получим:

В результате преобразований получится шифровка

ЯЯГ АЭЬЮ.

Рассмотрим примеры шифрования сообщения методом перестановки.

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

Для пояснения идеи возьмем квадрат (матрицу) 8  8, будем записывать текст последовательно по строкам сверху вниз, а считывать по столбцам последовательно слева направо.

Предположим, что требуется зашифровать сообщение:

НА ПЕРВОМ КУРСЕ ТЯЖЕЛО УЧИТЬСЯ ТОЛЬКО ПЕРВЫЕ ЧЕТЫРЕ ГОДА ДЕКАНАТ.

В таблице символом «_» обозначен пробел.

В результате преобразований получится шифровка

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

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

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

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

В ЭВМ преобразование открытого текста происходит естественным путем, так как каждый символ кодируется двоичным числом. Вид этого преобразования зависит от используемой операционной системы. Для определенности будем считать, что сообщение в ЭВМ кодируется с помощью кодовой таблицы СР-1251. Кроме того, будем считать, что секретная гамма добавляется к открытому тексту по правилу сложения по модулю два без переносов в старшие разряды (логическая операция Исключающее ИЛИ). Результаты всех преобразований поместим в таблицу.

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