メインコンテンツまでスキップ

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" という名前は互換的に使用されます。