[In english | На русском]
ГОСТ Р 34.11-2012: функция хеширования «Стрибог»
На сайте представлена информация и исходный код для российской
криптографической функции хеширования ГОСТ Р 34.11-2012, являющейся
национальным стандартом Российской Федерации.
Неофициальное название — «Стрибог», в честь славянского божества.
Исходный код
Реализация, доступная на этом сайте, представлена в виде консольной
утилиты, способной вычислять ГОСТ Р 34.11-2012 для строк, файлов и
произвольного потока данных. Программа выводит результат хеширования
в шестнадцатеричном формате. Исходный код программы на языке «Си»
доступен для просмотра и загрузки с сайта.
Последняя версия программы: 0.13.
Информация об использовании и исходный код на языке «Си» доступны на GitHub:
https://github.com/adegtyarev/streebog/
Контрольные суммы файла 0.13.tar.gz:
SHA256:
12ef38893ac631f83301ca4c0e2ac1455f4c2ebee82b4e7d1effed064137c5a6
ГОСТ Р 34.11-2012 (256 бит):
946fa60ed9841010d54f90c7ee299efd2b7ffe9755b9b29130695b0df0e72a85
Общая информация
1. Стандарт ГОСТ Р 34.11-2012 был разработан Центром защиты
информации и специальной связи ФСБ России с участием Открытого
акционерного общества «Информационные технологии и
коммуникационные системы» (ОАО «ИнфоТеКС»).
2. Стандарт утверждён и введён в действие Приказом Федерального
агентства по техническому регулированию и метрологии от 7 августа
2012 года No 216-ст.
3. ГОСТ Р 34.11-2012 разработан взамен национальному стандарту на
функцию хеширования ГОСТ Р 34.11-94.
Область применения
ГОСТ Р 34.11-2012 определяет алгоритм и процедуру вычисления
хэш-функции для любой последовательности двоичных символов, которые
применяются в криптографических методах обработки и защиты
информации, в том числе для реализации процедур обеспечения
целостности, аутентичности, электронной цифровой подписи (ЭЦП) при
передаче, обработке и хранении информации в автоматизированных
системах.
Функция хэширования ГОСТ Р 34.11-2012 используется при реализации
систем электронной цифровой подписи на базе ассиметричного
криптографического алгоритма по ГОСТ Р 34.10–2012.
Внутреннее устройство
Семейство хэш-функций Стрибог состоит из двух хэш-функций с длинами
результирующего значения в 256 и 512 бит, которые отличаются
начальным внутренним состоянием и его частью, принимаемой за
результат вычислений.
Устройство новой хэш-функции во многом следует старому стандарту.
Входное сообщение разбивается на блоки фиксированного размера, для
сообщений размером не кратным длине блока используется дополнение.
Начальное внутреннее состояние хэш-функции обновляется
последовательной обработкой блоков сообщения функцией сжатия.
Параллельно с этим вычисляются число обработанных бит и контрольная
сумма блоков. После всех блоков сообщения функция сжатия
обрабатывает блок с общей длиной сообщения и блок с контрольной
суммой для завершения вычисления значения хэш-функции. Размер блоков
сообщения и внутреннего состояния хэш-функции составляет 512 бит.
Основное отличие хэш-функции Стрибог от своего предшественника —
функция сжатия.
Функция сжатия
Основная операция функции сжатия обозначается как LPS и состоит из
трёх преобразований: подстановки на байтах, транспонирования матрицы
байт и умножения 64-битных векторов на матрицу 64 × 64 в GF(2):
1. S — нелинейная биекция. 512 бит аргумента рассматриваются как
массив из шестидесяти четырёх байт, каждый из которых заменяется
по заданной стандартом таблице подстановки;
2. P — переупорядочивание байт. Байты аргумента меняются местами по
определённому в стандарте порядку;
3. L — линейное преобразование. Аргумент рассматривается как 8
64-битных векторов, каждый из которых заменяется результатом
умножения на определённую стандартом матрицу 64 × 64 над GF(2).
Переупорядочивание байт P, определённое стандартом, является
операций транспонирования матрицы байт размером 8 × 8.
В функции сжатия используются только преобразование LPS и побитовое
исключающее ИЛИ над 512-битными блоками. Вместе со сложением по
модулю 2^512 они составляют полный набор операций, использующихся в
функции хеширования ГОСТ Р 34.11-2012.
Значение функции сжатия на каждом шаге зависит от предыдущего шага.
Поэтому невозможно обрабатывать блоки одного потока данных
параллельно. Это свойство не является особенностью Стрибога, а
присуще многим хэш-функциям.
Используемые материалы
Размещённая на сайте информация взята из публичных источников сети
интернет.
* П. А. Лебедев: СРАВНЕНИЕ СТАРОГО И НОВОГО СТАНДАРТОВ РФ НА
КРИПТОГРАФИЧЕСКУЮ ХЭШ-ФУНКЦИЮ НА ЦП И ГРАФИЧЕСКИХ ПРОЦЕССОРАХ NVIDIA
Московский институт электроники и математики Национального
исследовательского университета «Высшая школа экономики», 2012 год.
* RFC6986: GOST R 34.11-2012: Hash Function