Метод прямой замены (моноалфавитной подстановки)

Сущность методов замены (подстановки) заключается в замене символов исходной информации, записанных в одном алфавите, символами из другого алфавита по определенному правилу. Самым простым является метод прямой замены. Символам 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.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: