README.md

Ключевой Стрибог

Проект содержит референсные реализации ключевых криптоалгоритмов (MAC) на основе российской хэш-функции “Стрибог” (ГОСТ 34.11-2018 [1]): HMAC-Стрибог [2], S3G [3], Стрибог-К [4,5], Стрибог-С [6].

Для всех алгоритмов представлены 256- и 512-битные версии.

Для хэш-функции “Стрибог” реализовано эквивалентное представление [7].

Все реализации преследуют исключительно иллюстративные и учебно-методические цели и НЕ предназначены для непосредственного использования!

  1. ГОСТ Р 34.11-2018 - Информационная технология - Криптографическая защита информации - Функция хэширования
  2. Р 50.1.113-2016 - Информационная технология - Криптографическая защита информации - Криптографические алгоритмы, сопутствующие применению алгоритмов электронной цифровой подписи и функции хэширования
  3. МР 26.X.XXX-2022 - Информационная технология - Криптографическая защита информации - Наборы криптографических функций f1, f1*, f2, f3, f4, f5 и f5*, используемых в протоколе аутентифицированного согласования общего ключа в сети подвижной радиотелефонной связи
  4. Kiryukhin Vitaly - “Keyed Streebog is a secure PRF and MAC” - CTCrypt 2022
  5. Kiryukhin Vitaly - “About “k-bit security” of MACs based on hash function Streebog” - CTCrypt 2023
  6. Kiryukhin Vitaly, Sergeev Andrey - “Key-recovery security of keyed hash functions based on GOST 34.11-2018 (Streebog)” - SibeCRYPT 2023
  7. 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-Стрибог, Стрибог-К, Стрибог-С)

Конвейеры
0 успешных
0 с ошибкой