Корректное описание шагов режима гаммирования
Скорректированный фрагмент раздела 3.1 книги "Алгоритмы шифрования. Специальный справочник". © Панасенко Сергей, 2009-2016
- В регистры N1 и N2 записывается их начальное заполнение – 64-битовая величина, называемая «синхропосылкой» (синхропосылка практически является аналогом вектора инициализации в режимах CBC, CFB и OFB).
- Выполняется зашифрование содержимого регистров N1 и N2 (в данном случае – синхропосылки) в режиме простой замены.
- Результат зашифрования копируется в регистры N3 и N4.
- Содержимое N4 складывается по модулю
с константой
, результат сложения записывается в регистр N4. В данной операции существует исключение: если арифметическая сумма значения N4 и константы C1 равна
, то выходным значением данной операции становится значение
, а не 0.
- Содержимое N3 складывается по модулю
с константой
, результат сложения записывается в регистр N3.
- Содержимое N3 и N4 переписывается, соответственно, в N1 и N2.
- Выполняется зашифрование содержимого регистров N1 и N2 в режиме простой замены.
- Содержимое регистров N1 и N2 подается на выход в качестве 64-битового блока гаммы шифра (т. е. в данном случае N1 и N2 образуют первый блок гаммы).
- Если необходим следующий блок гаммы (т. е. необходимо продолжить зашифрование или расшифрование), выполняется возврат к шагу 4. Шаги 4–7 дают в N1 и N2 следующий блок гаммы шифра и повторяются по мере необходимости.
Скорректированный рис. 3.3 выглядит так:
