Перейти к содержимому
ecdsa.com

BLAKE2

Семейство быстрых хеш-функций (BLAKE2b для 64-битных платформ с дайджестом до 64 байт, BLAKE2s для 32-битных с дайджестом до 32 байт), описанное в RFC 7693 и используемое в Argon2, WireGuard, PASETO и libsodium.
Другие написанияBLAKE2bBLAKE2sRFC 7693

BLAKE2 происходит от BLAKE, финалиста конкурса SHA-3, и использует итерационную схему в стиле HAIFA, устойчивую к атаке удлинения сообщения. В нём есть встроенный режим с ключом (MAC без HMAC), параметры соли и персонализации, а также варианты с древовидным хешированием. Тестовый вектор: BLAKE2b-512 от пустой строки начинается с 786a02f742015903.

BLAKE2 встречается в Argon2 (функция хеширования паролей из RFC 9106 внутри использует BLAKE2b), WireGuard (BLAKE2s для хеширования и в качестве MAC), токенах PASETO v4 типа local (BLAKE2b с ключом в роли MAC; v2 использует его для вывода nonce), crypto_generichash из libsodium, Zcash и многих хранилищах с адресацией по содержимому. BLAKE3 (2020) — отдельный, более быстрый преемник с древовидной структурой и собственной спецификацией.

BLAKE2 не входит в число хеш-функций, одобренных NIST, поэтому модули, сертифицированные по FIPS, не могут использовать его для одобренных сервисов. В программной реализации без аппаратных инструкций хеширования он обычно быстрее SHA-256, но на процессорах с расширениями SHA преимущество меняется на противоположное: на одном ядре Apple M4 Max OpenSSL 3.6.5 хеширует BLAKE2b-512 со скоростью около 1,27 ГБ/с, а SHA-256 — 2,85 ГБ/с.

Стандарты и ссылки

Все термины