跳到主要内容

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]) 的影响。

本文档为三种算法提供定义和实现指南:

  1. ChaCha20 密码算法。这是一种高速密码算法, 首次在 [ChaCha] 中描述。在纯软件实现中, 它比 AES 快得多, 在缺少专用 AES 硬件的平台上大约快三倍。一些具体数字请参见附录 B。ChaCha20 也不受时序攻击的影响 (参见第 4 节中的安全考虑)。该算法在第 2.4 节中描述。

  2. Poly1305 认证器。这是一种高速消息认证码。实现也很简单, 容易正确实现。该算法在第 2.5 节中描述。

  3. 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]。