Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 119

BLAKE2

审核人Cybersecurity entrepreneur & security researcher

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 标准化、广泛部署的选择。

示例

  1. 01

    Argon2 在内部使用 BLAKE2b 作为其压缩原语。

  2. 02

    WireGuard 使用 BLAKE2s 对握手记录进行哈希。

常见问题

BLAKE2 是什么?

一种快速、现代的加密哈希函数,规范载于 RFC 7693,在提供与 SHA-3 相当的安全性的同时,在软件中拥有显著更高的性能。 它属于网络安全的 密码学 分类。

BLAKE2 是什么意思?

一种快速、现代的加密哈希函数,规范载于 RFC 7693,在提供与 SHA-3 相当的安全性的同时,在软件中拥有显著更高的性能。

如何防御 BLAKE2?

针对 BLAKE2 的防御通常结合技术控制与运营实践,详见上方完整定义。

BLAKE2 还有哪些其他名称?

常见的别称包括: BLAKE2b, BLAKE2s, RFC 7693。

相关术语

另见