首页/安全/加密与证书速查/ChaCha20-Poly1305 AEAD
本包目录(305 条)
加密算法基础95 条
TLS 与 HTTPS60 条证书与 PKI30 条OpenSSL 实战30 条证书运维排查49 条密钥管理41 条

ChaCha20-Poly1305 AEAD

RFC 8439 定义的认证加密组合:ChaCha20 加密 + Poly1305 认证,是 TLS 1.3 的三个标准套件之一,也是 WireGuard 等协议的数据面算法。

加密与证书速查安全更新于 2026-10-12
标准RFC 8439
nonce / tag96 位 / 128 位
TLS 1.3 套件TLS_CHACHA20_POLY1305_SHA256
优势无 AES-NI 时性能好,便于常量时间实现

Python 使用示例

Python 使用示例
from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305
import os

key = ChaCha20Poly1305.generate_key()
aead = ChaCha20Poly1305(key)
nonce = os.urandom(12)
ct = aead.encrypt(nonce, b"payload", None)
TLS 1.3 部署时常把 ChaCha20-Poly1305 放在 AES-GCM 之后,客户端无 AES 加速或服务端策略偏好时才优先选用。

易错点

  • Poly1305 的密钥必须每消息唯一,重复使用会直接泄漏认证密钥
  • 应用层自行实现时容易忽略 nonce 管理,建议用提供 AEAD 封装的标准库

数据来源与参考

  • RFC 8439
  • RFC 8446(TLS 1.3 密码套件)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌