Перестановки
Рассмотрим примеры шифрования сообщения методом перестановки. Идея этого метода криптографии заключается в том, что запись открытого текста и последующее считывание шифровки производится по разным путям некоторой геометрической фигуры (например, квадрата).
Для пояснения идеи возьмем квадрат (матрицу) 8х8, будем записывать текст последовательно по строкам сверху вниз, а считывать по столбцам последовательно слева направо.
Предположим, что требуется зашифровать сообщение:
"НА ПЕРВОМ КУРСЕ ТЯЖЕЛО УЧИТЬСЯ ТОЛЬКО ПЕРВЫЕ ЧЕТЫРЕ ГОДА ДЕКАНАТ".
Н | А | _ | П | Е | Р | В | О |
М | _ | К | У | Р | С | Е | _ |
Т | Я | Ж | Е | Л | О | _ | У |
Ч | И | Т | Ь | С | Я | _ | Т |
О | Л | Ь | К | О | _ | П | Е |
Р | В | Ы | Е | _ | Ч | Е | Т |
Ы | Р | Е | _ | Г | О | Д | А |
_ | Д | Е | К | А | Н | А | Т |
В таблице символом "_" обозначен пробел.
В результате преобразований получится шифровка: "НМТЧОРЫ_А_ЯИЛВРД_КЖТЬЫЕЕПУЕЬКЕ_КЕРЛСО_ ГАР СОЯ_ЧОНВЕ__ПЕДАО_УТЕТАТ" (читаем таблицу по столбцам).
Ключом является размер матрицы, порядок записи открытого текста и считывания шифрограммы. Естественно, что ключ может быть другим. Например, запись открытого текста по строкам может производиться в таком порядке: 48127653, а считывание криптограммы может происходить по столбцам в следующем порядке: 81357642.
Методы замены и перестановки по отдельности не обеспечивают необходимую криптостойкость. Поэтому их используют совместно, а также в сочетании с аддитивным методом (методом гамирования). Гамирование заключается в наложении на исходный текст некотоpой псевдослучайной последовательности, генеpиpуемой на основе ключа.
При шифровании гамированием вначале открытый текст шифруют методом замены, преобразуя каждую букву в число, а затем к каждому числу добавляют секретную гамму (псевдослучайную числовую последовательность).
В компьютерах преобразование открытого текста происходит естественным путем, так как каждый символ кодируется двоичным числом. Вид этого преобразования зависит от используемой операционной системы. Для определенности будем считать, что открытое сообщение кодируется с помощью кодовой таблицы CP1251 (операционная система Windows). Кроме того, будем считать, что секретная гамма добавляется к открытому тексту по правилу сложения по модулю два без переносов в старшие разряды (логическая операция Исключающее ИЛИ). Результаты всех преобразований поместим в таблицу.
Для наглядности результат шифрования переведен с помощью таблицы CP-1251 в буквы.
Из таблицы видно, что исходный текст был записан прописными буквами, а криптограмма содержит как прописные, так и строчные буквы. Естественно, что при реальном (а не учебном) шифровании набор символов в шифрограмме будет еще богаче. Кроме русских букв будут присутствовать латинские буквы, знаки препинания, управляющие символы.