Операция "Раздолбай"

ГОСТ 28147-89 (подробно).

ГОСТ 28147-89 - блочный шифр.

Алгоритм шифрования

Состоит из 32 последовательных раундов.

Описание одного раунда

На вход первого раунда i=1 поступает 64-битовый блок открытого текста T_0.

На вход раунда i=2,\ldots,32 поступает результат шифрования в предыдущем раунде T_{i-1}.

Входной блок T_{i-1} разделяется на равные 32-битовые половины - левую L_{i-1} и правую R_{i-1}.

На выходе получаем T_{i}=L_{i}R_{i}, где

L_{i}=R_{i-1}
R_{i}=L_{i-1}\oplus f(R_{i-1},K_{i})

Описание функции f(R_{i-1},K_i)

  1. Сложение с подключом по модулю 2^{32}: R'_{i-1}=R_{i-1}+K_i~\bmod~{2^{32}}
  2. Разделение результата на восемь частей: R'_{i-1}=B_1B_2\ldots B_8
  3. Каждый B_i поступает на свой S_i - блок, на выходе с каждого блока получаем B'_i=S_i(B_i).
  4. Выходы всех блоков объединяются в 32-битовое слово B'_1B'_2\ldots B'_8 и это слово циклически сдвигается влево на 11-битов, и мы получаем значение функции f

Получение подключа K_i

256-битовый ключ K разбивается на 8 подключей размером 32-бита: K=K_1\ldots K_8 и на каждом этапе используется свой подключ: 3 раза в прямом порядке и 1 раз в обратном.

Режимы работы ГОСТа

Режим простой замены

Режим гаммирования

K_0=E_k(IV)
K_{i-1}=L_{i-1}||R_{i-1}
K'_{i-1}=L_{i-1}\oplus 1010101_{16}||R_{i-1}\oplus 1010104_{16}
K_i=E_K(K'_{i-1})
C_{i}=M_i\oplus K_i

Режим гаммирования с обратной связью

C_0=IV
K_i=E_K(C_{i-1})
C_i=M_i\oplus K_i

Режим выработки имитовставки

C_i=E_K(E_K(M_i)\oplus M_{i+1})

Имитовствка - последовательность длинной L бит из зашифрованного сообщения: биты под номерами 32\cdot L,32\cdot(L-1),\ldots,32.

Достоинства ГОСТа

Криптоанализ


Система Orphus

Комментарии (показать)