AWS Encryption SDK アルゴリズムリファレンス - AWS Encryption SDK

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

AWS Encryption SDK アルゴリズムリファレンス

このページの情報は、 AWS Encryption SDKと互換性のある独自の暗号化ライブラリを構築するためのリファレンスです。互換性のある独自の暗号化ライブラリを構築しない場合は、この情報は必要ありません。

サポートされているプログラミング言語のいずれか AWS Encryption SDK で を使用するには、「」を参照してくださいプログラミング言語

適切な AWS Encryption SDK 実装の要素を定義する仕様については、「」のAWS Encryption SDK 「仕様」を参照してください GitHub。

と互換性のある暗号文を読み取りおよび書き込みできる独自のライブラリを構築する場合は AWS Encryption SDK、 がサポートするアルゴリズムスイート AWS Encryption SDK を実装して生データを暗号化する方法を理解する必要があります。

は、次のアルゴリズムスイート AWS Encryption SDK をサポートしています。すべての AES-GCM アルゴリズムスイートには、12 バイトの初期化ベクトルと 16 バイトのAES認証GCMタグがあります。デフォルトのアルゴリズムスイートは、 AWS Encryption SDK バージョンと選択したキーコミットメントポリシーによって異なります。詳細については、「Commitment policy and algorithm suite」を参照してください。

AWS Encryption SDK アルゴリズムスイート
アルゴリズム ID メッセージ形式バージョン 暗号化アルゴリズム データキーの長さ (ビット) キー導出アルゴリズム 署名アルゴリズム キーコミットメントアルゴリズム アルゴリズムスイートのデータ長 (バイト)
05 78 0x02 AES-GCM 256 HKDF SHA-512 を使用 ECDSA P-384 および SHA-384 を使用 HKDF SHA-512 を使用 32 (キーコミットメント)
04 78 0x02 AES-GCM 256 HKDF SHA-512 を使用 なし HKDF SHA-512 を使用 32 (キーコミットメント)
03 78 0x01 AES-GCM 256 HKDF SHA-384 を使用 ECDSA P-384 および SHA-384 を使用 なし 該当なし
03 46 0x01 AES-GCM 192 HKDF SHA-384 を使用 ECDSA P-384 および SHA-384 を使用 なし 該当なし
02 14 0x01 AES-GCM 128 HKDF SHA-256 を使用 ECDSA P-256 および SHA-256 を使用 なし 該当なし
01 78 0x01 AES-GCM 256 HKDF SHA-256 を使用 なし なし 該当なし
01 46 0x01 AES-GCM 192 HKDF SHA-256 を使用 なし なし 該当なし
01 14 0x01 AES-GCM 128 HKDF SHA-256 を使用 なし なし 該当なし
00 78 0x01 AES-GCM 256 なし なし なし 該当なし
00 46 0x01 AES-GCM 192 なし なし なし 該当なし
00 14 0x01 AES-GCM 128 なし なし なし 該当なし
アルゴリズム ID

アルゴリズム実装を一意に識別する 2 バイトの 16 進値。この値は、暗号化テキストのメッセージヘッダーに保存されます。

メッセージ形式バージョン

メッセージ形式のバージョン。キーコミットメントがあるアルゴリズムスイートでは、メッセージ形式バージョン 2 (0x02) を使用します。キーコミットメントがないアルゴリズムスイートでは、メッセージ形式バージョン 1 (0x01) を使用します。

アルゴリズムスイートのデータ長

アルゴリズムスイートに固有のデータの長さ (バイト単位)。このフィールドは、メッセージ形式バージョン 2 (0x02) でのみサポートされます。メッセージ形式バージョン 2 (0x02) では、このデータはメッセージヘッダーの Algorithm suite data フィールドに表示されます。キーコミットメントをサポートするアルゴリズムスイートでは、キーコミットメント文字列に 32 バイトを使用します。詳細については、このリストのキーコミットメントアルゴリズムを参照してください。

データキーの長さ

データキーの長さ (ビット単位)。 AWS Encryption SDK では、256 ビット、192 ビット、128 ビットのキーをサポートしています。データキーは、キーリングまたはマスターキーによって生成されます。

一部の実装では、このデータキーは HMACベースの extract-and-expandキー導出関数 () への入力として使用されますHKDF。の出力HKDFは、暗号化アルゴリズムのデータ暗号化キーとして使用されます。詳細については、このリストのキー取得アルゴリズムを参照してください。

暗号化アルゴリズム

使用する暗号化アルゴリズムの名前とモード。のアルゴリズムスイートは、Galois/Counter モード (AES) で Advanced Encryption Standard () 暗号化アルゴリズム AWS Encryption SDK を使用しますGCM。

キーコミットメントアルゴリズム

キーコミットメント文字列の計算に使用するアルゴリズム。出力は、メッセージヘッダーの Algorithm suite data フィールドに保存され、キーコミットメントのデータキーの検証に使用されます。

アルゴリズムスイートにキーコミットメントを追加する技術的な説明については、「暗号化 ePrint アーカイブ」の「キーコミットAEADs」を参照してください。

キー導出アルゴリズム

データ暗号化キーの導出に使用される HMACベースの extract-and-expandキー導出関数 (HKDF)。は RFC5869 でHKDF定義された AWS Encryption SDK を使用します。

キーコミットメントのないアルゴリズムスイート (アルゴリズム ID 01xx03xx)

  • 使用されるハッシュ関数は、アルゴリズムスイートに応じて SHA-384 または SHA-256 です。

  • 抽出ステップの場合

    • ソルトは使用されません。に従ってRFC、ソルトは 0 の文字列に設定されます。文字列の長さは、ハッシュ関数出力の長さに等しく、SHA-384 の場合は 48 バイト、SHA-256 の場合は 32 バイトです。

    • 入力キーマテリアルは、キーリングまたはマスターキープロバイダーからのデータキーです。

  • 展開ステップの場合

    • 入力疑似ランダムキーは抽出ステップからの出力です。

    • 入力情報は、アルゴリズム ID とメッセージ ID の連結です (この順序)。

    • 出力キーマテリアルの長さはデータキーの長さです。この出力は、暗号化アルゴリズムのデータ暗号化キーとして使用されます。

キーコミットメントがあるアルゴリズムスイート (アルゴリズム ID 04xx05xx)

  • 使用されるハッシュ関数は SHA-512 です。

  • 抽出ステップの場合

    • ソルトは 256 ビットの暗号化ランダム値です。メッセージ形式バージョン 2 (0x02) の場合、この値は MessageID フィールドに保存されます。

    • 初期キーマテリアルは、キーリングまたはマスターキープロバイダーからのデータキーです。

  • 展開ステップの場合

    • 入力疑似ランダムキーは抽出ステップからの出力です。

    • キーラベルは、DERIVEKEY文字列の UTF-8 エンコードされたバイトをビッグエンディアンバイトの順序で示します。

    • 入力情報は、アルゴリズム ID とキー ラベルの連結です (この順序)。

    • 出力キーマテリアルの長さはデータキーの長さです。この出力は、暗号化アルゴリズムのデータ暗号化キーとして使用されます。

メッセージ形式バージョン

アルゴリズムスイートで使用するメッセージ形式のバージョン。詳細については、「メッセージ形式のリファレンス」を参照してください。

署名アルゴリズム

暗号化テキストのヘッダーと本文へのデジタル署名の生成に使用される署名アルゴリズム。は、次の詳細を含む楕円曲線デジタル署名アルゴリズム (ECDSA) AWS Encryption SDK を使用します。

  • 使用される楕円曲線のは、P-384 または P-256 のいずれかで、アルゴリズム ID によって指定されます。これらの曲線は、デジタル署名標準 (DSS) (FIPS 186-4) PUB で定義されています。

  • 使用されるハッシュ関数は、SHA-384 (P-384 曲線) または SHA-256 (P-256 曲線) です。