Режим гаммирования с обратной связью.
Зашифрование открытых данных в режиме гаммирования с обратной связью.Криптосхема, реализующая алгоритм зашифрования в режиме гаммирования с обратной связью, имеет вид, показанный на рис. 25.
Рис. 25. Схема реализации режима гаммирования
С обратной связью
Открытые данные, разбитые на 64-разрядные блоки T0(1),
То(2)....... Т0(m), зашифровываются в режиме гаммирования с обратной связью путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бита:
Гш = (Гш(1), Гш(2), …, Гш(m)).
Число двоичных разрядов в блоке Т0(m) может быть меньше 64, при этом неиспользованная для шифрования часть гаммы шифра из блока Гш(m) отбрасывается.
Уравнения зашифрования в режиме гаммирования с обратной связью имеют вид:
Тш(1) = А(S) + Т0(1) = Гш(1) + Т0(1),
Тш(i) = А (Тш(i-1)) + Т0(i) = Гш(i) + Т0(i), i = 2....m.
Здесь Тш(i) - i-й 64-разрядный блок зашифрованного текста; А(-) -функция зашифрования в режиме простой замены; m - определяется объемом открытых данных.
Аргументом функции А (•) на первом шаге итеративного алгоритма является 64-разрядная синхропосылка S, а на всех последующих шагах - предыдущий блок зашифрованных данных Тш(i-1).
Процедура зашифрования данных в режиме гаммирования с обратной связью реализуется следующим образом.
1. В КЗУ вводят 256 бит ключа.
2. В накопители N1 и N2 записывают синхропосылку S = (Si, S2, ..., S64) из 64 бит.
3. Исходное заполнение накопителей N1 и N2 зашифровывают в режиме простой замены. Полученное в результате зашифрования заполнение накопителей N1 и N2 образует первый 64-разрядный блок гаммы шифра Гш(1)=A(S).
4. Блок гаммы суммируют поразрядно по модулю 2 в сумматоре СМ5 с первым 64-разрядным блоком открытых данных
T0(1) = (t1(1), t2(1), …, t64(1)).
В результате получают первый 64-разрядный блок зашифрованных данных
Тш(1) = Гш(1) + Т0(1),
где Тш(1) = (r1(1), r2(1),…, r64(1)).
5. Блок зашифрованных данных Тш(1) одновременно является также исходным состоянием накопителей N1, N2 для выработки второго блока гаммы шифра Гш(2), и поэтому по обратной связи Тш(1) записывается в указанные накопители N1 и N2.
Заполнение накопителя N1
(r32(1), r31(1),…, r2(1), r1(1))
32, 31,… 2, 1 номер разряда N1.
Заполнение накопителя N2
(r64(1), r63(1),…, r34(1),r33(1)).
32, 31, ..., 2, 1 номер разряда N2 .
6. Содержимое накопителей N1 и N2 зашифровывают в режиме простой замены. Полученное в результате зашифрования заполнение накопителей N1 и N2 образует второй 64-разрядный блок гаммы шифра Гш(2), который суммируется поразрядно по модулю 2 в сумматоре СМ5 со вторым блоком открытых данных Т0(2):
Гш(2) + Т0(2) = Тш(2).
7. Выработка последующих блоков гаммы шифра Гш(i) и зашифрование соответствующих блоков открытых данных T0(i) (i=3..,m) производится аналогично.
Если длина последнего m-го блока открытых данных Т0(m) меньше 64 разрядов, то из Гш(m) используется только соответствующее число разрядов гаммы шифра, остальные разряды отбрасываются.
В канал связи или память ЭВМ передаются синхропосылка S и блоки зашифрованных данных Тш(1), Тш(2),…, Тш(m).
Расшифрование в режиме гаммирования с обратной связью.При расшифровании криптосхема имеет тот же вид, что и при зашифровании (см. рис. 17).
Уравнения расшифрования:
То(1) = А(S) + Тш(1) = Гш(1) + Тш(1),
T0(i) = Гш(i) + Тш(i) = А (ТШ(i-1)) + Тш(i), i = 2...m.
Реализация процедуры расшифрования зашифрованных данных в режиме гаммирования с обратной связью происходит следующим образом.
1. В КЗУ вводят 256 бит того же ключа, на котором осуществлялось зашифрование открытых блоков Т0(1), Т0(2), ..., Т0(m).
2. В накопители N1 и N2 вводят синхропосылку S.
3. Исходное заполнение накопителей N1 и N2 (синхропосылка S) зашифровывают в режиме простой замены. Полученное в результате зашифрования заполнение N1 и N2 образует первый блок гаммы шифра
ГШ(1) = А(S),
который суммируется поразрядно по модулю 2 в сумматоре СМ5 с блоком зашифрованных данных Тш(1).
В результате получается первый блок открытых данных
То(1) = Гш(1) + Тш(1).
4. Блок зашифрованных данных Тш(1) является исходным заполнением накопителей N1 и N2 для выработки второго блока гаммы шифра Гш(2): Гш(2) = А(ТШ(1)). Полученное заполнение накопителей N1 и N2 зашифровывается в режиме простой замены. Образованный в результате зашифрования блок Гш(2) суммируется поразрядно по модулю 2 в сумматоре СМ5 со вторым блоком зашифрованных данных Тш(2). В результате получают второй блок открытых данных.
5. Аналогично в N1, N2 последовательно записывают блоки зашифрованных данных Тш(2), Тш(3), .... Тш(m), из которых в режиме простой замены вырабатываются блоки гаммы шифра Гш(3), Гш(4), .... Гш(m).
Блоки гаммы шифра суммируются поразрядно по модулю 2 в сумматоре СМ5 с блоками зашифрованных данных ТШ(3),ТШ(4), …, Тш(m).