ГОСТ Р 34.11-94: различия между версиями

19 байт убрано ,  10 лет назад
→‎Формат вывода: правка языка
(→‎Параметры алгоритма: Параграф: Формат вывода)
(→‎Формат вывода: правка языка)
Согласно ГОСТ стандарту, результатом хэш-функции является 256-битное число.
Стандарт не указывает, как оно должно выводиться.
Разные реализации используют различные форматы вывода, что вкупе с двумя распространёнными S-Box'миблоками усиливает путанницу.
 
 
Из используемых в стандарте примеров<ref name="gostAppA"/> видно, что алгоритм оперирует с [[Little-endian]] числами.
Из «приложения А» <ref name="gostAppA"/> стандарта видно, что алгоритм оперирует с [[Little-endian]] числами. Многие реализации (в частности rhash, mhash library) выводят результирующий хэш — 32 байта в шестнадцаричном представлении в том порядке, как они располагаются в памяти, младшие байты первыми. Данное представление оправдывается тем, что оно же используется при выводе хэш сумм широко распространённых западных алгоритмов [[MD5]], [[SHA1]], [[Tiger]], [[Whirlpool]] и др.
Многие реализации (в частности rhash, mhash library) выводят результирующий хэш —
256-битного число, как сплошную строку из 32-байт в том порядке,
как он располагается в памяти, младшие байты первыми:
GOST("This is message, length=32 bytes") = B1C466D37519B82E8319819FF32595E047A28CB6F83EFF1C6916A815A637FFFA
Данное представление оправдывается тем, что оно же используется при выводе
хэшей широко распространённых западных алгоритмов [[MD5]], [[SHA1]], [[Tiger]], [[Whirlpool]] и др.
 
 
В приведённых в стандарте примерах<ref name="gostAppA"/>,
В приведённых в стандарте примерах<ref name="gostAppA"/>, результирующий хэш записывается, как шестнадцатеричное представление 256-битного числа. Тем самым, получается обратный порядок байт:
В результате порядок байт получается обратный:
H = FAFF37A6 15A81669 1CFF3EF8 B68CA247 E09525F3 9F811983 2EB81975 D366C4B1