跳到主要内容
ecdsa.com

BLAKE2

一族快速哈希函数(BLAKE2b 面向 64 位平台,摘要最长 64 字节;BLAKE2s 面向 32 位平台,摘要最长 32 字节),由 RFC 7693 定义,用于 Argon2、WireGuard、PASETO 和 libsodium。
其他写法BLAKE2bBLAKE2sRFC 7693

BLAKE2 源自 SHA-3 决赛算法 BLAKE,采用可抵御长度扩展攻击的 HAIFA 式迭代结构。BLAKE2 内置密钥功能(无需 HMAC 即可用作 MAC),支持盐和个性化参数,还有树形哈希变体。测试向量:空字符串的 BLAKE2b-512 哈希以 786a02f742015903 开头。

用到 BLAKE2 的地方包括 Argon2(RFC 9106 定义的密码哈希在内部使用 BLAKE2b)、WireGuard(BLAKE2s 用于哈希和 MAC)、PASETO v4 local 令牌(以带密钥的 BLAKE2b 作为 MAC;v2 用它派生 nonce)、libsodium 的 crypto_generichash、Zcash,以及许多内容寻址存储。BLAKE3(2020年)是一个独立的、更快的树形后继算法,有自己的规范。

BLAKE2 不是 NIST 批准的哈希算法,因此通过 FIPS 验证的模块不能把它用于经批准的服务。在没有哈希指令的软件实现中,BLAKE2 通常比 SHA-256 快;但在带有 SHA 扩展指令的 CPU 上,优势会反转:在 Apple M4 Max 的单个核心上,OpenSSL 3.6.5 计算 BLAKE2b-512 的速度约为 1.27 GB/s,计算 SHA-256 约为 2.85 GB/s。

标准与参考资料

全部术语