Симметричные алгоритмы шифрования
В режиме гаммирования каждый блок открытого текста по-битно складывается по модулю 2 с блоком гаммы шифра размером 64 бит. Гамма шифра — это специальная последовательность, которая получается в результате определенных операций с регистрами N1 и N2 (рис. 6.4):

1. В регистры N1 и N2 записывается их начальное заполнение — 64-битовая величина, называемая синхропосылкой.
2. Выполняется зашифровывание содержимого регистров N1, и N2 (в данном случае — синхропосылки) в режиме простой замены.
3. Содержимое регистра N1 складывается по модулю (232 — 1) с константой С1 = 224 + 216 + 28 + 24, а результат сложения записывается в регистр N1.
4. Содержимое регистра N2 складывается по модулю 232 с константой С2 = 224 + 216 + 28 + 1, а результат сложения записывается в регистр N2.
5. Содержимое регистров N1 и N2 подается на выход в качестве 64-битового блока гаммы шифра (в данном случае N1 и N2 образуют первый блок гаммы).
Если необходим следующий блок гаммы (т. е. необходимо продолжить зашифровывание или расшифровывание), выполняется возврат к операции 2.
Для расшифровывания гамма вырабатывается аналогичным образом, а затем к битам зашифрованного текста и гаммы снова применяется операция XOR. Поскольку эта операция обратима, в случае правильно выработанной гаммы получается исходный текст (табл. 6.1).
Таблица 6.1. Зашифровывание и расшифровывание в режиме гаммирования
| Операция | Результат | |
| Исходный текст | 100100 | |
| Гамма | XOR | 111000 |
| Шифртекст | = | 011100 |
| Гамма | XOR | 111000 |
| Исходный текст | = | 100100 |
Для выработки нужной для расшифровки гаммы шифра у пользователя, расшифровывающего криптограмму, должен быть тот же ключ и то же значение синхропосылки, которые применялись при зашифровывании информации. В противном случае получить исходный текст из зашифрованного не удастся.
В большинстве реализаций алгоритма ГОСТ 28147—89 син-хропосылка не секретна, однако есть системы, где синхропосыл-ка такой же секретный элемент, как и ключ шифрования. Для таких систем эффективная длина ключа алгоритма (256 бит) увеличивается еще на 64 бит секретной синхропосылки, которую также можно рассматривать как ключевой элемент.
В режиме гаммирования с обратной связью для заполнения регистров N1 и N2, начиная со 2-го блока, используется не предыдущий блок гаммы, а результат зашифрования предыдущего блока открытого текста (рис. 6.4). Первый же блок в данном режиме генерируется полностью аналогично предыдущему.
Рассматривая режим генерации имитоприставок, следует определить понятие предмета генерации. Имитоприставка — это криптографическая контрольная сумма, вычисляемая с использованием ключа шифрования и предназначенная для проверки целостности сообщений. При генерации имитоприставки выполняются следующие операции: первый 64-битовый блок массива информации, для которого вычисляется имитоприставка, записывается в регистры N1 и N2 и зашифровывается в сокращенном режиме простой замены (выполняются первые 16 раундов из 32). Полученный результат суммируется по модулю 2 со следующим блоком информации с сохранением результата в N1 и N2.
Цикл повторяется до последнего блока информации. Получившееся в результате этих преобразований 64-битовое содержимое регистров N1 и N2 или его часть и называется имитопри-ставкой. Размер имитоприставки выбирается, исходя из требуемой достоверности сообщений: при длине имитоприставки N-бит вероятность, что изменение сообщения останется незамеченным, равна 2N.
Эта статья была опубликована Вторник, 11 августа, 2009 at 21:05 в рубрике Криптографические алгоритмы. Вы можете следить за ответами через RSS 2.0 feed.
А где можно найти программу,которая реализовует этот алгоритм?