Subject: Re: [GOST] Хэш ГОСТ 34.11-94

From: Dmitry Eremin-Solenikov <[email-masked]>
Date: Tue, 15 Nov 2016 22:01:15 +0300

15 ноября 2016 г., 21:46 пользователь Sergey Matveev
<[email-masked]> написал:
> *** Phil Kulin <[email-masked]> [2016-11-15 15:35]:
>>И например в php функция hash('gost') выдаёт совпадающее с
>>вышеперечисленными библиотеками значение, а hash('gost-crypto') - в
>>обратном порядке. Поведение модуля перла Digest::GOST и
>>Digest::GOST::CryptoPro идентичное. Да я знаю, что стандарт не
>>устанавливает порядок вывода. Это можно как-то поправить не устраивая
>>конфертацию результата?

[skip]

> На самом деле изначально я реализовал как-раз наоборот (относительно
> того, что есть сейчас), но раз с точки зрения стандарта всё равно: то я
> решил, как-раз таки, упростить задачу для большинства потенциальных
> потребителей и сделать как в X.509, чтобы не приходилось при его
> использовании "вертеть" хэш.

Я в свое время думал над этим, в итоге реализовывал так, чтобы endianness
подходил для результатов вычисления HMAC/PBKDF2/и т.п. При этом при
формировании подписи действительно приходится "переворачивать" хэш.

Для Стрибога проверочные примеры HMAC есть в рекомендации:
http://tc26.ru/methods/recommendation/%D0%A2%D0%9A26%D0%90%D0%9B%D0%93.pdf

Для GOST R 34.11-94 проверочных примеров HMAC нет, поэтому я добился, чтобы
совпадали результаты PBKDF2
(http://tc26.ru/methods/containers_v1/Addition_to_PKCS5_v1_0.pdf),
а потом уже фиксировал результаты HMAC.

Например, с КриптоПрошным s-box получается следующий результат:
Key: 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
Message: 0126bdb87800af214341456563780100
MAC: bad70b61c41095bc47e1141cfaed42726a5ceebd62ce75dbbb9ad76cda9f72f7

-- 
With best wishes
Dmitry