ChaCha20-Poly1305
ChaCha20-Poly1305 是什么?
ChaCha20-Poly1305由 ChaCha20 流密码与 Poly1305 一次性认证器组成的 AEAD 结构,在 RFC 8439 中标准化,用于 TLS 1.3 和 WireGuard。
ChaCha20-Poly1305 是 RFC 8439(原 RFC 7539)规定的 AEAD 算法。ChaCha20 是 Daniel J. Bernstein 设计的 256 位密钥 ARX 流密码,使用 96 位 nonce 和 32 位计数器,每次调用产生 512 位密钥流;Poly1305 是 128 位一次性 MAC,作用于密文与关联数据,其密钥来自 ChaCha20 第一个密钥流块。该组合具有恒定时间特性,在缺少 AES-NI 的软件实现中速度极快,因此成为 TLS 1.3、QUIC、SSH、OpenVPN 与 WireGuard 的默认备选算法。与 AES-GCM 一样,nonce 重用会带来灾难性后果,因此每个密钥的 nonce 必须唯一。
● 示例
- 01
TLS 1.3 套件 TLS_CHACHA20_POLY1305_SHA256。
- 02
WireGuard 隧道数据帧使用 ChaCha20-Poly1305 加密。
● 常见问题
ChaCha20-Poly1305 是什么?
由 ChaCha20 流密码与 Poly1305 一次性认证器组成的 AEAD 结构,在 RFC 8439 中标准化,用于 TLS 1.3 和 WireGuard。 它属于网络安全的 密码学 分类。
ChaCha20-Poly1305 是什么意思?
由 ChaCha20 流密码与 Poly1305 一次性认证器组成的 AEAD 结构,在 RFC 8439 中标准化,用于 TLS 1.3 和 WireGuard。
ChaCha20-Poly1305 是如何工作的?
ChaCha20-Poly1305 是 RFC 8439(原 RFC 7539)规定的 AEAD 算法。ChaCha20 是 Daniel J. Bernstein 设计的 256 位密钥 ARX 流密码,使用 96 位 nonce 和 32 位计数器,每次调用产生 512 位密钥流;Poly1305 是 128 位一次性 MAC,作用于密文与关联数据,其密钥来自 ChaCha20 第一个密钥流块。该组合具有恒定时间特性,在缺少 AES-NI 的软件实现中速度极快,因此成为 TLS 1.3、QUIC、SSH、OpenVPN 与 WireGuard 的默认备选算法。与 AES-GCM 一样,nonce 重用会带来灾难性后果,因此每个密钥的 nonce 必须唯一。
如何防御 ChaCha20-Poly1305?
针对 ChaCha20-Poly1305 的防御通常结合技术控制与运营实践,详见上方完整定义。
ChaCha20-Poly1305 还有哪些其他名称?
常见的别称包括: ChaCha20/Poly1305, RFC 8439, ChaPoly。
● 相关术语
- cryptography№ 023
AES-GCM
一种认证加密模式,将 AES 的计数器模式与基于 GHASH 的认证标签结合,在一次运算中同时提供机密性和完整性。
- cryptography№ 1109
流密码
通过将数据与由密钥和 nonce 派生的伪随机密钥流逐位或逐字节异或来加密的对称密码。
- network-security№ 1159
TLS(传输层安全)
由 IETF 标准化的加密协议,为两个联网应用之间的通信提供机密性、完整性与认证。
- network-security№ 1244
WireGuard
现代化、极简的 VPN 协议,采用固定的新一代密码学原语,并作为 Linux 内核的一部分运行。
- cryptography№ 258
Curve25519
由 Daniel J. Bernstein 设计的蒙哥马利椭圆曲线,用于 RFC 7748 中定义的 X25519 Diffie-Hellman,提供约 128 位安全性。