1. Introduction (简介)
1. Introduction (简介)
Advanced Encryption Standard (高级加密标准, AES -- [FIPS-197]) 已成为加密领域的黄金标准.其高效的设计, 广泛的实现以及硬件支持使其在许多领域都能实现高性能.在大多数现代平台上, AES 的速度是之前最常用的密码算法 Triple Data Encryption Standard (三重数据加密标准, 3DES -- [SP800-67]) 的四到十倍, 这使其不仅是最佳选择, 而且是唯一实用的选择.
但这也存在几个问题.如果未来密码分析的进展揭示了 AES 的弱点, 用户将处于尴尬的境地.由于唯一其他得到广泛支持的密码算法是速度慢得多的 3DES, 将部署重新配置为使用 3DES 并不可行.[Standby-Cipher] 更详细地描述了这个问题以及对备用密码算法的需求.另一个问题是, 虽然 AES 在专用硬件上非常快, 但在缺少此类硬件的平台上, 其性能要低得多.还有一个问题是, 许多 AES 实现容易受到缓存冲突时序攻击 ([Cache-Collisions]) 的影响.
本文档为三种算法提供定义和实现指南:
-
ChaCha20 密码算法.这是一种高速密码算法, 首次在 [ChaCha] 中描述.在纯软件实现中, 它比 AES 快得多, 在缺少专用 AES 硬件的平台上大约快三倍.一些具体数字请参见附录 B.ChaCha20 也不受时序攻击的影响 (参见第 4 节中的安全考虑).该算法在第 2.4 节中描述.
-
Poly1305 认证器.这是一种高速消息认证码.实现也很简单, 容易正确实现.该算法在第 2.5 节中描述.
-
CHACHA20-POLY1305 带关联数据的认证加密 (Authenticated Encryption with Associated Data, AEAD) 构造, 在第 2.8 节中描述.
本文档及其前身并非首次引入这些新算法.它们已在 D. J. Bernstein 的科学论文 [ChaCha][Poly1305] 中定义.本文档的目的是为使用这些算法的 IETF 文档提供稳定的参考.
这些算法已经过严格分析.有几篇论文讨论了 Salsa 和 ChaCha 的安全性 ([LatinDances], [LatinDances2], [Zhenqing2012]).
本文档代表了密码论坛研究组 (Crypto Forum Research Group, CFRG) 的共识.它取代了 [RFC7539].