2.1. Authenticated Encryption (認証付き暗号化)
2.1. Authenticated Encryption (認証付き暗号化)
認証付き暗号化操作には, いずれもオクテット列である 4 つの入力があります。
秘密鍵 K。K は, 一様にランダムまたは疑似ランダムとなるように生成しなければならない。
Nonce (ノンス) N。Authenticated Encryption 操作への異なる呼び出しに供される各ノンスは, 鍵の任意の特定値について, すべてのノンスが長さゼロでない限り, 互いに異なっていなければならない。互いに異なるノンスを生成できるアプリケーションは, セクション 3.2 で定義されるノンス構成法を用いるべきであり, 一意性要件を満たす他の任意の方法を用いてもよい。それ以外のアプリケーションは, 長さゼロのノンスを用いるべきである。
Plaintext (平文) P。暗号化および認証の対象となるデータを含む。
Associated data (関連データ) A。認証の対象となるが, 暗号化されないデータを含む。
単一の出力があります。
平文と同じ長さ以上の Ciphertext (暗号文) C, または
要求された暗号化操作を実行できなかったことを示す指示。
すべての入出力は可変長のオクテット列であり, その長さは次の制約に従います。
鍵 K のオクテット数は 1 から 255 の間である。各 AEAD アルゴリズムについて, K の長さは固定でなければならない。
鍵の任意の特定値について, 1) Authenticated Encryption 操作への異なる呼び出しに供される各ノンスは互いに異なっていなければならない, または 2) すべてのノンスは長さゼロでなければならない, のいずれかである。特定の鍵で長さゼロのノンスを用いる場合, その鍵で用いるすべてのノンスの長さはゼロでなければならない。そうでない場合, ノンスのオクテット数は 12 であるべきである。特定の鍵に対して異なる長さのノンスを用いてもよい。一部のアルゴリズムは長さゼロのノンスでは使用できないが, 他は使用できる, セクション 4 を参照。推奨ノンス長に適合するアプリケーションは, 使用中のアルゴリズムに応じて異なる長さのノンスを構成する必要を避ける。この指針は, アプリケーションからアルゴリズム固有の論理を追い出すのに役立つ。
平文 P のオクテット数はゼロでもよい。
関連データ A のオクテット数はゼロでもよい。
暗号文 C のオクテット数はゼロでもよい。
本仕様は, ノンス, 平文, 暗号文, 追加の認証付きデータの最大長を定めない。ただし, 特定の AEAD アルゴリズムは, それらの入出力の長さをさらに制限してもよい。特定の AEAD 実装は, その入出力の長さをさらに制限してもよい。AEAD アルゴリズムの特定の実装に対し, 許容長の範囲外の入力, またはその実装が支援する長さの範囲外の入力を処理するよう求められた場合, それはエラーコードを返さなければならず, 他のいかなる情報も出力してはならない。特に, 部分的に暗号化または部分的に復号されたデータを返してはならない。
機密性とメッセージ認証の両方が平文 P に対して提供される。P の長さがゼロのとき, AEAD アルゴリズムは入力 A に対する Message Authentication Code として振る舞います。
関連データ A は, 認証が必要だが機密に保つ必要がない情報を保護するために用いられます。たとえばネットワークプロトコルを AEAD で保護する場合, この入力にはアドレス, ポート, シーケンス番号, プロトコルバージョン番号, および平文または暗号文をどのように取り扱い, 転送し, 処理すべきかを示すその他のフィールドを含めてもよい。多くの状況ではこれらのフィールドを認証することが望ましいが, ネットワークまたはシステムが正しく機能するためには平文のまま残さなければならない。このデータを入力 A に含めると, そのデータを平文に複写せずに認証を提供できます。
秘密鍵 K は, 他のいずれの入力 (N, P, A) にも含めてはならない。(この制限は, それらの入力の値が鍵と一致する部分文字列を含まないことを確認しなければならない, という意味ではない。代わりに, 鍵を明示的にそれらの入力に複写してはならない, という意味である。)
ノンスはアルゴリズム内部で認証され, AD 入力に含める必要はない。アプリケーションにとって都合がよければ, ノンスを P または A に含めてもよい。
ノンスは暗号文とともに格納または転送してもよく, 認証付き復号操作の直前に再構成してもよい。復号モジュールに, ノンスを構成するのに十分な情報を与えれば足りる。(たとえば, システムは特定形式のシーケンス番号からなるノンスを用い, その場合は暗号文の順序から推論できる。) 認証付き復号過程は誤ったノンス値を検出するため, ノンスが誤って再構成され認証付き復号操作に与えられても, セキュリティ上の失敗は生じない。いかなるノンス再構成法も, 暗号化と復号の間で暗号文が失われたり順序が入れ替わったりする可能性を考慮する必要がある。
アプリケーションは, 暗号文の特定の構造や書式を仮定してはならない。