1. Introduction (はじめに)
1. Introduction (はじめに)
Advanced Encryption Standard (高度暗号化標準, AES -- [FIPS-197]) は暗号化における金字塔となっています。その効率的な設計, 広範な実装, およびハードウェアサポートにより, 多くの分野で高いパフォーマンスを実現できます。ほとんどの最新プラットフォームでは, AES は以前最も使用されていた暗号である Triple Data Encryption Standard (トリプルデータ暗号化標準, 3DES -- [SP800-67]) の4倍から10倍の速度であり, これにより最良の選択であるだけでなく, 唯一の実用的な選択となっています。
これにはいくつかの問題があります。将来の暗号解読の進歩がAESの弱点を明らかにした場合, ユーザーは望ましくない立場に置かれます。他に広くサポートされている暗号がはるかに遅い3DESしかないため, 3DESを使用するように展開を再構成することは現実的ではありません。[Standby-Cipher] はこの問題と予備暗号の必要性についてより詳しく説明しています。もう一つの問題は, AESは専用ハードウェアでは非常に高速ですが, そのようなハードウェアを欠くプラットフォームでのパフォーマンスはかなり低いことです。さらに別の問題は, 多くのAES実装がキャッシュ衝突タイミング攻撃 ([Cache-Collisions]) に対して脆弱であることです。
この文書は3つのアルゴリズムの定義と実装ガイドを提供します:
-
ChaCha20暗号。これは [ChaCha] で最初に説明された高速暗号です。ソフトウェアのみの実装ではAESよりもかなり高速で, 特殊なAESハードウェアを欠くプラットフォームでは約3倍の速度です。具体的な数値については付録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] に取って代わります。