1. AES-GCM 与 ChaCha20-Poly1305 的工程选型
AES-GCM 与 ChaCha20-Poly1305 两种 AEAD 算法在工程选型上应如何权衡?
- 两种 AEAD 的构造与特点
- 硬件加速支持
- 平台适用性
AES-GCM 与 ChaCha20-Poly1305 都是被广泛部署的 AEAD(认证加密)算法,都提供保密性与完整性。AES-GCM 基于 AES 计数器模式 + GHASH,在支持 AES-NI 的 CPU 上硬件加速后性能极佳,是 TLS 1.3 的主流选择;ChaCha20-Poly1305 是软件优化算法,无需 AES-NI,在 ARM、移动端、无硬件加速平台上性能更好且抗侧信道更稳健。工程选型取决于平台:有 AES-NI 的 x86 服务器用 AES-GCM,资源受限或软件平台用 ChaCha20-Poly1305。两者都需注意 nonce 唯一性。
选型核心是"硬件加速可得性 + 平台性能"。工程上,TLS 1.3 同时支持两者,客户端/服务端按能力协商,兼顾性能与兼容性。