OSS-GOST-Crypto/gost-yescrypt: различия между версиями

Материал из ALT Linux Wiki
мНет описания правки
(Отмена правки 56824, сделанной Voropaevdmtr (обсуждение))
Метка: отмена
 
(не показано 8 промежуточных версий 2 участников)
Строка 1: Строка 1:
= Хеширование паролей на ГОСТ =
= Хеширование паролей на ГОСТ =
В 2013-2015 был проведен международный конкурс Password Hashing Competition (PHC) <http://password-hashing.net/> в котором были особо отмечены несколько алгоритмов хеширования паролей, среди которых ''yescrypt'' <https://www.openwall.com/yescrypt/>. '''yescrypt''' разработан как усовершенствование популярного алгоритма '''scrypt''' (Colin Percival 2009, RFC 7914), который в свою очередь использует '''PBKDF2''' (RSA, RFC 2898, RFC 8018) для одной итерации. (Описание ''yescrypt'': http://password-hashing.net/submissions/specs/yescrypt-v2.pdf). Безопасность ''yescrypt'' обеспечивается свойствами ''SHA-256'' и ''HMAC''. Криптографические свойства '''gost-yescrypt''' обеспечиваются применением алгоритма вычисления кода аутентификации сообщения ''HMAC_GOSTR3411_2012_256'' поверх результата работы ''yescrypt'', по формуле:
В 2013-2015 был проведен международный конкурс Password Hashing Competition (PHC) <http://password-hashing.net/> в котором были особо отмечены несколько алгоритмов хеширования паролей, среди которых ''yescrypt'' <https://www.openwall.com/yescrypt/>.


[[Файл:Gost-yescrypt.png|центр|HMAC_{sb256}(HMAC_{sb256}(sb256(P),S),yescrypt(P,S))]]
'''yescrypt''' разработан как усовершенствование популярного алгоритма '''scrypt''' (Colin Percival 2009, RFC 7914), который в свою очередь использует '''PBKDF2''' (RSA, RFC 2898, RFC 8018) для преобразования входных данных в начальный блок алгоритма scrypt и для обратного преобразования конечного блока в выходное значение. (Описание ''yescrypt'': http://password-hashing.net/submissions/specs/yescrypt-v2.pdf). Безопасность ''yescrypt'' обеспечивается свойствами ''SHA-256'' и ''HMAC''.


где '''HMAC<sub>sb256</sub>''' это функция ''HMAC_GOSTR3411_2012_256'', '''sb256''', это функция ''streebog<sub>256</sub>'', т.е. функция ''Streebog'' с длиной хэш-кода 256-бит, '''P''' пароль, '''S''' соль. Функция ''HMAC_GOSTR3411_2012_256'' определена рекомендациях по стандартизации ''Р 50.1.113─2016'' и ''RFC 7836'', функция ''Streebog'' определена в ''ГОСТ Р 34.11─2012'' и ''RFC 7091''.
'''gost-yescrypt''' является расширением ''yescrypt'', где криптографические свойства обеспечиваются применением алгоритма вычисления кода аутентификации сообщения ''HMAC_GOSTR3411_2012_256'' поверх результата работы ''yescrypt'', по формуле:


[[Файл:Gost-yescrypt.png|центр|HMAC_{256}(HMAC_{256}(sb256(P),S),yescrypt(P,S))]]
где
* '''HMAC<sub>256</sub>''' это функция ''HMAC_GOSTR3411_2012_256'' (определена в ''рекомендациях по стандартизации Р 50.1.113─2016'' и ''RFC 7836'');
* '''sb256''', это функция ''streebog<sub>256</sub>'', т.е. функция ''Streebog'' с длиной хэш-кода 256-бит (определена в ''ГОСТ Р 34.11─2012'' и ''RFC 7091'');
* '''P''' пароль;
* '''S''' соль.
Функция ''yescrypt()'' используется как черный ящик и не влияет на криптографические свойства всей конструкции. Таким образом, обеспечивается как расширенная устойчивость к перебору паролей - благодаря yescrypt, так и криптографические свойства всей конструкции ГОСТом.
Формат строки с хэшем: <code>$gy$params$salt$hash</code>, где ''params'', ''salt'' и ''hash'' закодированы в base64, а "''gy''" текстовый идентификатор.


[[Категория:Криптография]]
[[Категория:Криптография]]

Текущая версия от 08:29, 30 октября 2021

Хеширование паролей на ГОСТ

В 2013-2015 был проведен международный конкурс Password Hashing Competition (PHC) <http://password-hashing.net/> в котором были особо отмечены несколько алгоритмов хеширования паролей, среди которых yescrypt <https://www.openwall.com/yescrypt/>.

yescrypt разработан как усовершенствование популярного алгоритма scrypt (Colin Percival 2009, RFC 7914), который в свою очередь использует PBKDF2 (RSA, RFC 2898, RFC 8018) для преобразования входных данных в начальный блок алгоритма scrypt и для обратного преобразования конечного блока в выходное значение. (Описание yescrypt: http://password-hashing.net/submissions/specs/yescrypt-v2.pdf). Безопасность yescrypt обеспечивается свойствами SHA-256 и HMAC.

gost-yescrypt является расширением yescrypt, где криптографические свойства обеспечиваются применением алгоритма вычисления кода аутентификации сообщения HMAC_GOSTR3411_2012_256 поверх результата работы yescrypt, по формуле:

HMAC_{256}(HMAC_{256}(sb256(P),S),yescrypt(P,S))

где

  • HMAC256 это функция HMAC_GOSTR3411_2012_256 (определена в рекомендациях по стандартизации Р 50.1.113─2016 и RFC 7836);
  • sb256, это функция streebog256, т.е. функция Streebog с длиной хэш-кода 256-бит (определена в ГОСТ Р 34.11─2012 и RFC 7091);
  • P пароль;
  • S соль.

Функция yescrypt() используется как черный ящик и не влияет на криптографические свойства всей конструкции. Таким образом, обеспечивается как расширенная устойчивость к перебору паролей - благодаря yescrypt, так и криптографические свойства всей конструкции ГОСТом.

Формат строки с хэшем: $gy$params$salt$hash, где params, salt и hash закодированы в base64, а "gy" текстовый идентификатор.