ГОСТ Р 34.12-2015. Национальный стандарт Российской Федерации. Информационная технология. Криптографическая защита информации. Блочные шифры
5. Алгоритм блочного шифрования с длиной блока n = 64 бит
5.1 Значения параметров
5.1.1 Нелинейное биективное преобразование
В качестве нелинейного биективного преобразования выступают подстановки , где
, i = 0, 1, ..., 7. Значения подстановок
записаны ниже в виде массивов
, i = 0, 1, ..., 7:
;
;
;
;
;
;
;
.
5.2 Преобразования
При реализации алгоритмов зашифрования и расшифрования используются следующие преобразования:
где | (14) | |
где | (15) | |
где | (16) | |
где | (17) |
5.3 Алгоритм развертывания ключа
Итерационные ключи , i = 1, 2, ..., 32, вырабатываются на основе ключа
,
, i = 0, 1, ..., 255 и определяются равенствами:
K1 = k255||...||k224;
K2 = k223||...||k192;
K3 = k191||...||k160;
K4 = k159||...||k128;
K5 = k127||...||k96;
K6 = k95||...||k64;
K7 = k63||...||k32;
K8 = k31||...||k0;
Ki + 8 = Ki, i = 1, 2, ..., 8;
Ki + 16 = Ki, i = 1, 2, ..., 8;
Ki + 24 = K9 - i, i = 1, 2, ..., 8. (18)
5.4 Базовый алгоритм шифрования
5.4.1 Алгоритм зашифрования
Алгоритм зашифрования в зависимости от значений итерационных ключей , i = 1, 2, ..., 32 реализует подстановку
, заданную на множестве V64 в соответствии с равенством
, (19)
где ,
.
5.4.2 Алгоритм расшифрования
Алгоритм расшифрования в зависимости от значений итерационных ключей , i = 1, 2, ..., 32 реализует подстановку
, заданную на множестве V64 в соответствии с равенством
, (20)
где ,
.
