1.1 Conventions Used in This Document (本文档使用的约定)
1.1 Conventions Used in This Document (本文档使用的约定)
本文档中的关键词 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", 和 "OPTIONAL" 应按照 BCP 14 [RFC2119] [RFC8174] 中的描述进行解释, 当且仅当它们以全部大写形式出现时, 如此处所示。
对 ChaCha 算法的描述有时会将 ChaCha 状态称为"向量 (vector)"或"矩阵 (matrix)"。这遵循了 [ChaCha] 中这些术语的使用。矩阵表示法在视觉上更方便, 并能更好地说明为什么有些轮次被称为"列轮次 (column rounds)", 而另一些被称为"对角轮次 (diagonal rounds)"。以下是矩阵与向量关系的图示 (使用 C 语言的约定, 索引从零开始)。
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
此向量或矩阵中的元素是 32 位无符号整数。
算法名称是 "ChaCha"。"ChaCha20" 是一个特定实例, 其中使用 20 个"轮次 (rounds)" (或 80 个四分之一轮次 -- 参见第 2.1 节)。还定义了其他变体, 使用 8 或 12 轮次, 但在本文档中, 我们仅描述 20 轮 ChaCha, 因此 "ChaCha" 和 "ChaCha20" 这两个名称将互换使用。