Ключевой Стрибог
Проект содержит референсные реализации ключевых криптоалгоритмов (MAC) на основе российской хэш-функции “Стрибог” (ГОСТ 34.11-2018 [1]): HMAC-Стрибог [2], S3G [3], Стрибог-К [4,5], Стрибог-С [6].
Для всех алгоритмов представлены 256- и 512-битные версии.
Для хэш-функции “Стрибог” реализовано эквивалентное представление [7].
Все реализации преследуют исключительно иллюстративные и учебно-методические цели и НЕ предназначены для непосредственного использования!
- ГОСТ Р 34.11-2018 - Информационная технология - Криптографическая защита информации - Функция хэширования
- Р 50.1.113-2016 - Информационная технология - Криптографическая защита информации - Криптографические алгоритмы, сопутствующие применению алгоритмов электронной цифровой подписи и функции хэширования
- МР 26.X.XXX-2022 - Информационная технология - Криптографическая защита информации - Наборы криптографических функций f1, f1*, f2, f3, f4, f5 и f5*, используемых в протоколе аутентифицированного согласования общего ключа в сети подвижной радиотелефонной связи
- Kiryukhin Vitaly - “Keyed Streebog is a secure PRF and MAC” - CTCrypt 2022
- Kiryukhin Vitaly - “About “k-bit security” of MACs based on hash function Streebog” - CTCrypt 2023
- Kiryukhin Vitaly, Sergeev Andrey - “Key-recovery security of keyed hash functions based on GOST 34.11-2018 (Streebog)” - SibeCRYPT 2023
- Guo J., Jean J., Leurent G., Peyrin T., Wang L. – The Usage of Counter Revisited: Second-Preimage Attack on New Russian Standardized Hash Function – 2014
Сборка и запуск
Сбока исполняемого файла (streebog) для ОС Linux:
make
или
make lin
Сборка исполняемого файла (streebog.exe) для ОС Windows:
make win
Для тестирования алгоритмов S3G-128 и S3G-256:
./streebog --s3g
Для тестирования алгоритмов Стрибог, HMAC-Стрибог, Стрибог-К и других:
./streebog --all
Нотация
Для соответствия с контрольными примерами [1], cтроки вида ABCDEF01020304 интерпретируются как 16-е числа, где младший байт - 0x04, а старший байт - 0xAB.
Соответственно, в виде массива строка представляется как uint8_t arr[] = {0x04, 0x03, 0x02, 0x01, 0xEF, 0xCD, 0xAB}.
Описание
Референсная реализация хэш-функции "Стрибог" (ГОСТ 34.11-2018) и основанных на ней ключевых алгоритмов (HMAC-Стрибог, Стрибог-К, Стрибог-С)