

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Encryption SDK 初期化ベクトルリファレンス
<a name="IV-reference"></a>


|  | 
| --- |
|  このページの情報は、 AWS Encryption SDKと互換性のある独自の暗号化ライブラリを構築するためのリファレンスです。互換性のある独自の暗号化ライブラリを構築しない場合は、この情報は必要ありません。 サポートされているプログラミング言語のいずれか AWS Encryption SDK で を使用するには、「」を参照してください[プログラミング言語](programming-languages.md)。 適切な AWS Encryption SDK 実装の要素を定義する仕様については、GitHub の[AWS Encryption SDK 「仕様](https://github.com/awslabs/aws-encryption-sdk-specification/)」を参照してください。  | 

は、サポートされているすべての[アルゴリズムスイート](algorithms-reference.md)に必要な[初期化ベクトル](https://en.wikipedia.org/wiki/Initialization_vector) (IVs) AWS Encryption SDK を提供します。SDK は、フレームのシーケンス番号を使用して IV を構築し、同じメッセージ内の 2 つのフレームが同じ IV を持つことがないようにします。

各 96 ビット (12 バイト) IV は、以下の順序で連結された 2 つのビッグエンディアンバイト配列で構築されています。
+ 64 ビット: 0 (将来の利用のために予約されています)
+ 32 ビット: フレームシーケンス番号。ヘッダー認証タグの場合、この値はすべてゼロです。

[データキーキャッシュ](data-key-caching.md)が導入されるまで、 AWS Encryption SDK では、常に新しいデータキーを使用して各メッセージを暗号化し、すべての IV をランダムに生成していました。データキーが再利用されることはないので、ランダムに生成された IV は暗号論的に安全です。SDK で意図的にデータキーを再利用するデータキーキャッシュを導入した際、SDK が IV を生成する方法を変更しました。

メッセージ内で繰り返し使用できない決定的な IV を使用すると、単一のデータキーの下で安全に実行される呼び出しの数が大幅に増加します。さらに、キャッシュされたデータキーは常に[キー取得関数](https://en.wikipedia.org/wiki/Key_derivation_function)と合わせてアルゴリズムスイートを使用します。擬似ランダムキー取得関数で決定論的な IV を使用してデータキーから暗号化キーを取得すると、 は暗号化境界を超えることなく 2^32 メッセージを暗号化 AWS Encryption SDK できます。