Краткое описание алгоритма

Алгоритм шифрования ГОСТ 28147-89

Обзор криптоаналитических исследований отечественного стандарта шифрования ГОСТ 28147-89

Отечественный алгоритм шифрования ГОСТ 28147-89 определен в стандарте [14]. Алгоритм шифрует данные 64-битными блоками с использованием 256-битного ключа шифрования. Выполняется 32 раунда преобразований, в каждом из которых предусмотрены следующие операции (см. рис. 1):

Рис 1. Раунд алгоритма ГОСТ 28147-89.

1. Один из 32-битных субблоков данных складывается с 32-битным значением ключа раунда Ki по модулю 232.

2. Результат предыдущей операции разбивается на 8 фрагментов по 4 бита, которые параллельно «прогоняются» через 8 таблиц замен S1…S8. Таблицы замен в стандарте [14] не определены. Примеры возможных таблиц замен можно найти, например, в [17] или [18].

3. 4-битные фрагменты (после замен) объединяются обратно в 32-битный субблок, значение которого циклически сдвигается влево на 11 бит.

4. Обработанный предыдущими операциями субблок накладывается на необработанный с помощью побитовой логической операции «исключающее или» (XOR).

5. Субблоки меняются местами.

Процедура расширения ключа в алгоритме ГОСТ 28147-89, фактически, отсутствует: в раундах шифрования последовательно используются 32-битные фрагменты K1…K8 исходного 256-битного ключа шифрования в следующем порядке: K1, K2, K3, K4, K5, K6, K7, K8,
– за исключением последних 8 раундов – в раундах с 25-го по 31-й фрагменты используются в обратном порядке.

Расшифрование полностью аналогично зашифрованию, но с другим порядком использования фрагментов ключа:

 в прямом порядке – в первых 8 раундах;

 в остальных раундах – в обратном порядке.

Стандарт [14] также предусматривает и описывает различные режимы применения алгоритма:

 описанный выше режим простой замены;

 режимы гаммирования и гаммирования с обратной связью, предусматривающие вычисление с помощью описанных выше преобразований псевдослучайной последовательности – гаммы шифра – и ее наложение на шифруемый текст;

 режим вычисления имитовставки – криптографической контрольной суммы, используемой для подтверждения целостности данных; в данном режиме выполняется 16 раундов преобразований вместо 32-х.

Алгоритм ГОСТ 28147-89 можно использовать и в различных общеупотребительных режимах шифрования (предусмотренных стандартом [4]). Кроме того, на основе данного алгоритма построен отечественный стандарт хэширования ГОСТ Р 34.11-94 [15].

Как видно из описания, алгоритм ГОСТ 28147-89 является весьма простым в реализации, что является его несомненным достоинством.