Для повышения криптостойкости методы замены и перестановки нередко используют в сочетании с аддитивным методом.
При шифровании аддитивным методом вначале открытый текст шифруют методом замены, преобразуя каждую букву в число. Затем к каждому числу добавляют секретную гамму (псевдослучайную числовую последовательность). Технически добавление гаммы в криптографических системах осуществляется поразрядно (поточный шифр): на каждый бит открытого текста поочередно накладывается бит секретной гаммы.
Генератор потока ключей — гаммы выдает поток битов: g1, g2, g3,…, gi. Этот поток битов и поток битов открытого текста p1, p2, p3, …, pi подвергаются поразрядно логической операции Исключающее ИЛИ. В результате получается поток битов шифротекста:
ci = pi Å gi
При дешифровании операция Исключающее ИЛИ выполняется над битами шифротекста и тем же самым потоком гаммы:
pi = ci Å gi
В ЭВМ преобразование открытого текста в числа происходит естественным путем, так как каждый символ кодируется двоичным числом. Вид этого преобразования зависит от используемой операционной системы. Для определенности будем считать, что сообщение в ЭВМ кодируется с помощью кодовой таблицы СР-1251. Итак, будем считать, что секретная гамма добавляется к открытому тексту по правилу сложения по модулю два без переносов в старшие разряды (логическая операция Исключающее ИЛИ).
|
|
Результаты всех преобразований поместим в таблицу.
Открытый текст | Г | Д | Е | А | Б | Б | А |
Десятичное число | |||||||
Двоичное число | |||||||
Гамма (десятич.) | |||||||
Гамма (двоич.) | |||||||
Результат (двоич.) | |||||||
Результат (десят.) | |||||||
Шифрограмма | г | Ц | б | Л | ь | Ц | Г |
Для наглядности результат шифрования (шифрограмма) переведен с помощью таблицы
СР-1251 в буквы. Из таблицы видно, что открытый текст был записан прописными буквами, а криптограмма содержит как прописные, так и строчные буквы. Естественно, что при реальном (а не учебном) шифровании набор символов в шифрограмме будет еще богаче. Кроме русских букв будут присутствовать латинские буквы, знаки препинания, управляющие символы.