Алгоритм криптографического преобразования данных ГОСТ 28147-89 -- является стандартом на криптографическую обработку в России. После создания он не публиковался, и был засекречен. Открыли его через пять лет после создания.
АКП является блочным симметричным шифром с длиной блока 64 бита. Базовый алгоритм ГОСТа используется в различных схемах:
· простая замена (электронная кодировочная книга) (Рисунок 1.1);
· гаммирование (см. Рисунок 1.2, плюс небольшое дополнение ниже);
· шифрование с обратной связью (см. Рисунок 1.4);
· выработка иммитоприставки (иммитоприставкой является выход алгоритма E схеме шифрования с обратной связью).
Рисунок 1.6 Базовый шаг алгоритма ГОСТ 28147-89
Ключ состоит из 256 битов и делится на 8 равных частей по 32 бита, которые называются подключами K[i], таблица замен – таблица 8x16 4-х битовых элементов S[i,j], i<8, j<16).
На входе -- две цепочки по 32 бита
где
K[i] – подключ номер i;
ROL-11 – циклический сдвиг на 11 бит влево;
S[j] – таблицы замены 4-х битовых величин.
Набор таблиц замены позволяет менять шифр не изменяя алгоритма шифрования и не ухудшая криптостойкости шифра.
|
|
Основной шаг применяется в различных режимах, различающихся порядком использования подключей, и числом повторений основного шага. Подключи используется в следующем порядке (ниже перечисляются их номера):
для шифрования (основной шаг выполняется 32 раза)
0-1-2-3-4-5-6-7-0-1-2-3-4-5-6-7-0-1-2-3-4-5-6-7-7-6-5-4-3-2-1-0
для расшифрования (тоже 32 раза) только в режиме простой замены
0-1-2-3-4-5-6-7-7-6-5-4-3-2-1-0-7-6-5-4-3-2-1-0-7-6-5-4-3-2-1-0
для выработки имитоприставки (16 раз)
0-1-2-3-4-5-6-7-0-1-2-3-4-5-6-7
Вкратце, о схемах использования АКП. Режим Простой замены является наиболее примитивным.
В режиме Гаммирования предусмотрено дополнительное преобразование гаммы перед каждым применением АКП:
G1:= (G1 + C1) mod 232,
G2:= (G2 + C2) mod (232 - 1);
где G1, G2 -- две 32-х битовых половины гаммы, С1=01010101h, C2=01010104h. Режим шифрования с обратной связью полностью совпадает со схемой шифрования с обратной связью из общего описания блочных шифров. Выработка цифровой сигнатуры происходит по той же схеме, но результатом является не зашифрованный текст, а значение гаммы шифра, получившееся после обработки всего текста (обычно используются только младшие 32 бита гаммы). Обратите внимание, что для выработки цифровой сигнатуры основной шаг вызывается только 16 раз, а не 32, как для шифрования с обратной связью.
Можно оценить, сколько надо в среднем перебрать различных текстов (N), чтобы подобрать один фальшивый текст с той же иммитоприставкой с вероятностью 0.5. Эта вероятность зависит от размера приставки M=2m (m – количество битов в иммитоприставке). Обычно используют младшие 32 бита иммитоприставки шифра ГОСТ 28147-89.