BLAKE2
BLAKE2 是什么?
BLAKE2一种快速、现代的加密哈希函数,规范载于 RFC 7693,在提供与 SHA-3 相当的安全性的同时,在软件中拥有显著更高的性能。
BLAKE2 是由 Jean-Philippe Aumasson、Samuel Neves、Zooko Wilcox-O'Hearn 和 Christian Winnerlein 于 2012 年设计的加密哈希家族,是对 SHA-3 决赛入围者 BLAKE 的精简改进。它在 **RFC 7693(2015)**中被标准化。它有两个主要变体:BLAKE2b(摘要最长 64 字节,针对 64 位 CPU 调优)和 BLAKE2s(摘要最长 32 字节,面向 32 位和嵌入式平台),二者各有其并行形式(BLAKE2bp/BLAKE2sp)。
工作原理
BLAKE2 在一个源自 ChaCha 流密码置换(带旋转的 G 函数混合)的压缩函数之上,采用 HAIFA 迭代模式。关键在于,它将带密钥哈希、加盐、个性化和树形哈希直接构建进原语之中,因此带密钥的 BLAKE2 可以无需单独的 HMAC 封装即充当 MAC,从而避免了 SHA-2 的长度扩展弱点。与其前身相比,它减少了轮数(2b 为 12 轮,2s 为 10 轮),并简化了填充以提升速度。
flowchart LR M[Message blocks] --> C[Compression f: HAIFA + ChaCha permutation] K[Optional key] --> C S[Salt / personalization] --> C T[Block counter t] --> C C --> C2[Chained state h] C2 -->|final block flag| O[Digest up to 64 bytes]
采用情况与后继者
BLAKE2 尚未被攻破,不存在实际可行的碰撞或原像攻击,且在软件中比 MD5、SHA-1、SHA-2 和 SHA-3 都要快。它支撑着密码哈希竞赛冠军 Argon2(作为其内部压缩原语)、WireGuard 握手哈希(BLAKE2s)、libsodium 的 crypto_generichash 以及 Zcash。同一团队于 2020 年发布了 BLAKE3,这是一种提供更进一步并行性的 Merkle 树设计,不过 BLAKE2 仍是经 RFC 标准化、广泛部署的选择。
● 示例
- 01
Argon2 在内部使用 BLAKE2b 作为其压缩原语。
- 02
WireGuard 使用 BLAKE2s 对握手记录进行哈希。
● 常见问题
BLAKE2 是什么?
一种快速、现代的加密哈希函数,规范载于 RFC 7693,在提供与 SHA-3 相当的安全性的同时,在软件中拥有显著更高的性能。 它属于网络安全的 密码学 分类。
BLAKE2 是什么意思?
一种快速、现代的加密哈希函数,规范载于 RFC 7693,在提供与 SHA-3 相当的安全性的同时,在软件中拥有显著更高的性能。
如何防御 BLAKE2?
针对 BLAKE2 的防御通常结合技术控制与运营实践,详见上方完整定义。
BLAKE2 还有哪些其他名称?
常见的别称包括: BLAKE2b, BLAKE2s, RFC 7693。