加载中...
ChaCha20-Poly1305 是一种结合流密码 ChaCha20 与消息认证码 Poly1305 的认证加密算法。它在无硬件加速的设备上速度快、抗侧信道强,已成为 TLS 与主流协议的重要加密套件。

| 中文名 | ChaCha20-Poly1305 |
| 类型 | 认证加密 AEAD |
| 设计者 | 丹尼尔·伯恩斯坦 |
| 标准 | RFC 8439 |
| 典型应用 | TLS 1.3、WireGuard |
ChaCha20-Poly1305是一种带关联数据的认证加密(AEAD)算法,由流密码 ChaCha20 负责加密数据机密性,由 Poly1305 消息认证码负责校验数据完整性和真实性。它由密码学家丹尼尔·伯恩斯坦(Daniel J. Bernstein)设计,以高速度和实现安全性著称,已被 RFC 8439 标准化。
在移动设备和缺乏 AES 硬件加速的处理器上,基于软件实现的 AES 既慢又容易受缓存计时侧信道影响。ChaCha20 采用加法、异或和循环移位等简单运算,天然抗计时侧信道,且在纯软件下速度快。因此谷歌率先在移动端 TLS 中大规模部署它,如今它已成为 TLS 1.3、WireGuard 等现代协议的标准加密套件之一。
它广泛用于 TLS 1.3 加密的网页通信,尤其在移动浏览器与服务器之间;也是 WireGuard VPN 的核心加密算法,以及 SSH、QUIC 等协议的可选套件。在物联网和低功耗设备上,它是 AES 的高性能替代选择。
问:ChaCha20-Poly1305 比 AES 更安全吗?答:两者安全强度相当,都无已知实用破解。区别主要在性能和实现:在有硬件加速时 AES-GCM 更快,在纯软件或移动端 ChaCha20-Poly1305 更快且更抗侧信道。
问:nonce 可以重复使用吗?答:绝对不可以。同一密钥下重复使用 nonce 会破坏机密性并可能泄露认证密钥,必须确保每次加密的 nonce 唯一。

| 中文名 | ChaCha20-Poly1305 |
| 类型 | 认证加密 AEAD |
| 设计者 | 丹尼尔·伯恩斯坦 |
| 标准 | RFC 8439 |
| 典型应用 | TLS 1.3、WireGuard |
登录 后参与讨论
暂无讨论,来发表第一条评论吧