Сущность методов замены (подстановки) заключается в замене символов исходной информации, записанных в одном алфавите, символами из другого алфавита по определенному правилу. Самым простым является метод прямой замены. Символам S0i исходного алфавита А0, с помощью которых записывается исходная информация, однозначно ставятся в соответствие символы S1i шифрующего алфавита A1. В простейшем случае оба алфавита могут состоять из одного и того же набора символов. Например, оба алфавита могут содержать буквы русского алфавита.
Задание соответствия между символами обоих алфавитов осуществляется с помощью преобразования числовых эквивалентов символов исходного текста Т0, длиной К символов, по определенному алгоритму.
Алгоритм моноалфавитной замены может быть представлен в виде последовательности шагов.
Шаг 1. Формирование числового кортежа L0h путем замены каждого символа s0iÎТ0(i= ), представленного в исходном алфавите А0 размера [1´R], на число h0i(s0i), соответствующее порядковому номеру символа S0i в алфавите А0.
Шаг 2. Формирование числового кортежа L1h путем замены каждого числа кортежа L0h на соответствующее число h1i кортежа L1h, вычисляемое по формуле:
h1i, = (k1 ´ h0i(s0i)+k2)(mod R),
где k1 – десятичный коэффициент;
k2 – коэффициент сдвига.
Выбранные коэффициенты k1, k2 должны обеспечивать однозначное соответствие чисел h0i и h1i, а при получении h1i = 0 выполнить замену h1i=R.
Шаг 3. Получение шифртекста Т1 путем замены каждого числа h1i(s1i) кортежа L1h соответствующим символом s1i Î T1 (i= ) алфавита шифрования A1 размера [1´R].
Шаг 4. Полученный шифртекст разбивается на блоки фиксированной длины b. Если последний блок оказывается неполным, то в конец блока помещаются специальные символы-заполнители (например, символ *).
Пример. Исходными данными для шифрования являются:
Т0= <МЕТОД_ШИФРОВАНИЯ>;
А0=<А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я _>;
А1=<О Р Щ Ь Я Т Э _ Ж М Ч Х А В Д Ы Ф К С Е З П И Ц Г Н Л Ъ Ш Б У Ю>;
R=32; k1=3; k2=15; b=4.
Пошаговое выполнение алгоритма приводит к получению следующих результатов.
Шаг 1. L0h= <12, 6, 18, 14, 5, 32, 24, 9, 20, 16, 14, 3, 1, 13, 9, 31>.
Шаг 2. L1h= <19, 1, 5, 25, 30, 15, 23, 10, 11, 31, 25, 24, 18, 22, 10, 12>.
Шаг З. Т1=<СОЯГБДИМЧУГЦКПМХ>.
Шаг 4. Т2=<СОЯГ БДИМ ЧУГЦ КПМХ>.
При расшифровании сначала устраняется разбиение на блоки. Получается непрерывный шифртекст Ti длиной К символов. Расшифрование осуществляется путем решения целочисленного уравнения:
k1h0i+k2=nR+h1i,
При известных целых величинах k1, k2, h1i и R величина h0i вычисляется методом перебора n.
Последовательное применение этой процедуры ко всем символам шифртекста приводит к его расшифрованию.
По условиям приведенного примера может быть построена таблица замены, в которой взаимозаменяемые символы располагаются в одном столбце (табл. 3.1).
Таблица 3.1
Таблица замен
s0i | А | Б | В | Г | Д | Е | Ж | З | И | К | Л | М | Н | О | П | Р |
h0i | ||||||||||||||||
s1i | К | З | Ц | Л | Б | О | Ь | Э | М | А | Ы | С | П | Г | Ъ | У |
h1i | ||||||||||||||||
s0i | С | Т | У | Ф | Х | Ц | Ч | Ш | Щ | Ъ | Ы | Ь | Э | Ю | Я | _ |
h0i | ||||||||||||||||
s1i | Р | Я | _ | Ч | В | Ф | Е | И | Н | Ш | Ю | Щ | Т | Ж | Х | Д |
h1i |
Расшифрование осуществляется аналогичным образом, но вход в таблицу производится по строке s1i.
Основным недостатком метода прямой замены является наличие одних и тех же статистических характеристик исходного и закрытого текста. Зная на каком языке написан исходный текст и частотную характеристику употребления символов алфавита этого языка, криптоаналитик путем статистической обработки перехваченных сообщений может установить соответствие между символами обоих алфавитов.