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

ChaCha20

审核人Cybersecurity entrepreneur & security researcher

ChaCha20 是什么?

ChaCha20由 Daniel J. Bernstein 设计的现代流密码,使用 256 位密钥和 96 位 nonce,常与 Poly1305 组合为 AEAD 算法 ChaCha20-Poly1305 广泛部署。


ChaCha20 是 Daniel J. Bernstein 于 2008 年提出的 20 轮流密码,是 Salsa20 的改进设计。它使用 256 位密钥、96 位 nonce 和 32 位分组计数器,通过对 32 位字的加、循环移位、异或等简单运算生成密钥流,在无 AES 硬件加速的 CPU(移动端、嵌入式)上具有高速且恒定时间的特性。与 Poly1305 消息认证码结合形成的 AEAD 方案 ChaCha20-Poly1305 由 RFC 8439 标准化,并与 AES-GCM 一同成为 TLS 1.3 必须支持的两套密码套件之一。ChaCha20 广泛用于 TLS、QUIC、WireGuard、OpenSSH、Signal 协议以及 Linux 内核加密。经过十余年的密码分析,完整 20 轮版本至今未发现已知攻击。

示例

  1. 01

    TLS 1.3 与 QUIC 在移动设备上常用 TLS_CHACHA20_POLY1305_SHA256。

  2. 02

    WireGuard 使用 ChaCha20-Poly1305 加密所有数据包。

常见问题

ChaCha20 是什么?

由 Daniel J. Bernstein 设计的现代流密码,使用 256 位密钥和 96 位 nonce,常与 Poly1305 组合为 AEAD 算法 ChaCha20-Poly1305 广泛部署。 它属于网络安全的 密码学 分类。

ChaCha20 是什么意思?

由 Daniel J. Bernstein 设计的现代流密码,使用 256 位密钥和 96 位 nonce,常与 Poly1305 组合为 AEAD 算法 ChaCha20-Poly1305 广泛部署。

如何防御 ChaCha20?

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

相关术语

另见