Зашифрование открытых данных в режиме гаммирования с обратной связью. Криптосхема, реализующая алгоритм зашифрования в режиме гаммирования с обратной связью, имеет вид, показанный на рис. 3.14.
Открытые данные, разбитые на 64-разрядные блоки Т0(1), Т0(2),..., Т0(m), зашифровываются в режиме гаммирования с обратной связью путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бита:
Гш = (Гш(1), Гш(2),..., Гш(m)).
Число двоичных разрядов в блоке Т0(m) может быть меньше 64, при этом неиспользованная для шифрования часть гаммы шифра из блока Гш(m) отбрасывается.
Уравнения зашифрования в режиме гаммирования с обратной связью имеют вид:
Тш(1) = А () Т0(1) = Гш(1) Т0(1),
Тш(i) = A (Тш(i–1)) Т0(i) = Гш(i) Т0(i), i = 2…m.
Рисунок 3.14 – Схема реализации режима гаммирования с обратной связью
Здесь Тш(i) – i-й 64-разрядный блок зашифрованного текста; А(·) – функция зашифрования в режиме простой замены; m – определяется объемом открытых данных.
Аргументом функции А (·) на первом шаге итеративного алгоритма является 64-разрядная синхропосылка , а на всех последующих шагах – предыдущий блок зашифрованных дан-ных Тш(i–1).
|
|
Процедура зашифрования данных в режиме гаммирования с обратной связью реализуется следующим образом. В КЗУ вводятся 256 бит ключа. В накопители N1 и N2 вводится синхро-посылка = (S1, S2,..., S64) из 64 бит. Исходное заполнение накопителей N1 и N2 зашифровывается в режиме простой замены. Полученное в результате зашифрования заполнение накопителей N1 и N2 образует первый 64‑разрядный блок гаммы шифра Гш(1)=A(), который суммируется поразрядно по модулю 2 в сумматоре СМ5 с первым 64-разрядным блоком открытых данных
Т0(1) = (t1(1), t2(1),..., t64(1)).
В результате получают первый 64-разрядный блок зашифрованных данных
ТШ(1) = ГШ(1) Т0(1),
где ТШ(1) = (1(1), 2(1),..., 64(1)).
Блок зашифрованных данных ТШ(1) одновременно является также исходным состоянием накопителей N1, N2 для выработки второго блока гаммы шифра ГШ(2), и поэтому по обратной связи ТШ(1) записывается в указанные накопители N1 и N2.
Заполнение накопителя N1
(32(1), 31(1),..., 2(1), 1(1)).
32, 31,..., 2, 1 номер разряда N1
Заполнение накопителя N2
(64(1), 63(1),..., 34(1), 33(1)).
32, 31,..., 2, 1 номер разряда N2
Заполнение накопителей N1 и N2 зашифровывается в режиме простой замены. Полученное в результате зашифрования заполнение накопителей N1 и N2 образует второй 64-разрядный блок гаммы шифра ГШ(2), который суммируется поразрядно по модулю 2 в сумматоре СМ5 со вторым блоком открытых данных Т0(2):
ГШ(2) Т0(2) = ТШ(2).
Выработка последующих блоков гаммы шифра ГШ(i) и зашифрование соответствующих блоков открытых данных Т0(i) (i=3…m) производится аналогично.
|
|
Если длина последнего m-го блока открытых данных Т0(m) меньше 64 разрядов, то из ГШ(m) используется только соответствующее число разрядов гаммы шифра, остальные разряды отбрасываются.
В канал связи или память ЭВМ передаются синхропосылка и блоки зашифрованных данных ТШ(1), ТШ(2),..., ТШ(m).
Расшифрование в режиме гаммирования с обратной связью. При расшифровании криптосхема имеет тот же вид, что и при зашифровании (см. рис.3.14).
Уравнения расшифрования:
Т0(1) = А() Тш(1) = Гш(1) Тш(1),
Т0(i) = Гш(i) Тш(i) = A (Тш(i–1) ) Тш(i), i = 2…m.
Реализация процедуры расшифрования зашифрованных данных в режиме гаммирования с обратной связью происходит следующим образом. В КЗУ вводят 256 бит того же ключа, на котором осуществлялось зашифрование открытых блоков Т0(1), Т0(2),..., Т0(m). В накопители N1 и N2 вводится синхропосылка . Исходное заполнение накопителей N1 и N2 (синхропосылка ) зашифровывается в режиме простой замены. Полученное в результате зашифрования заполнение N1 и N2 образует первый блок гаммы шифра
ГШ(1) = А(),
который суммируется поразрядно по модулю 2 в сумматоре СМ5 с блоком зашифрованных данных ТШ(1).
В результате получается первый блок открытых данных
Т0(1) = Гш(1) Тш(1).
Блок зашифрованных данных Тш(1) является исходным заполнением накопителей N1 и N2 для выработки второго блока гаммы шифра ГШ(2): ГШ(2) = А(ТШ(1)). Полученное заполнение накопителей N1 и N2 зашифровывается в режиме простой замены. Образованный в результате зашифрования блок ГШ(2) суммируется поразрядно по модулю 2 в сумматоре СМ5 со вторым блоком зашифрованных данных ТШ(2). В результате получают второй блок открытых данных. Аналогично в N1, N2 последовательно записывают блоки зашифрованных данных ТШ(2), ТШ(3),..., ТШ(m), из которых в режиме простой замены вырабатываются блоки гаммы шифра ГШ(3), ГШ(4),..., ГШ(m).
Блоки гаммы шифра суммируются поразрядно по модулю 2 в сумматоре СМ5 с блоками зашифрованных данных ТШ(3),ТШ(4),..., ТШ(m).
В результате получают блоки открытых данных
Т0(3), Т0(4),..., Т0(m),
при этом последний блок открытых данных Т0(m) может содержать меньше 64 разрядов.