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 с ошибкой