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

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

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

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

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

適切なの要素を定義する仕様のためにAWS Encryption SDK実装の詳細については、AWS Encryption SDK仕様()aws-s-sdk仕様リポジトリをGitHub に保存します。

と互換性のある、暗号化テキストを読み書きできる独自のライブラリを構築している場合、AWS Encryption SDKどのように理解する必要があります。AWS Encryption SDKは、サポートされているアルゴリズムスイートを実装して、生データを暗号化します。

-AWS Encryption SDKでは、以下のアルゴリズムスイートがサポートされています。すべてのAES-GCMアルゴリズムスイートには、12バイトの初期化ベクトルおよび 16 バイトの AES-GCM 認証タグを使用します。デフォルトのアルゴリズムスイートは、AWS Encryption SDKバージョンと、選択したキーコミットメントポリシーの両方に適用されます。詳細については、「」を参照してください。コミットメントポリシーとアルゴリズムスイート

AWS Encryption SDK のアルゴリズムスイート
アルゴリズム ID メッセージ形式のバージョン 暗号化アルゴリズム データキーの長さ (ビット) キー導出アルゴリズム 署名アルゴリズム キーコミットメントアルゴリズム アルゴリズムスイートのデータ長 (バイト)
05 78 02 AES-GCM 256 SHA-512 を使用する HKDF P-384 および SHA-384 を使用する ECDSA SHA-512 を使用する HKDF 32(主なコミットメント)
04 78 02 AES-GCM 256 SHA-512 を使用する HKDF なし SHA-512 を使用する HKDF 32(主なコミットメント)
03 78 01 AES-GCM 256 SHA-384 を使用する HKDF P-384 および SHA-384 を使用する ECDSA なし 該当なし
03 46 01 AES-GCM 192 SHA-384 を使用する HKDF P-384 および SHA-384 を使用する ECDSA なし 該当なし
02 14 01 AES-GCM 128 SHA-256 を使用する HKDF P-256 および SHA-256 を使用する ECDSA なし 該当なし
01 78 01 AES-GCM 256 SHA-256 を使用する HKDF なし なし 該当なし
01 46 01 AES-GCM 192 SHA-256 を使用する HKDF なし なし 該当なし
01 14 01 AES-GCM 128 SHA-256 を使用する HKDF なし なし 該当なし
00 78 01 AES-GCM 256 なし なし なし 該当なし
00 46 01 AES-GCM 192 なし なし なし 該当なし
00 14 01 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 ベースの抽出および展開キー取得関数 (HKDF) への入力として使用されます。HKDF の出力は、暗号化アルゴリズムのデータ暗号化キーとして使用されます。詳細については、「」を参照してください。キー導出アルゴリズムこのリストにあります。

暗号化アルゴリズム

使用される暗号化アルゴリズムの名前とモード。のアルゴリズムスイートAWS Encryption SDKGalois/Counter Mode (GCM) を使用したAdvanced Encryption Standard (AES) 暗号化アルゴリズムを使用します。

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

キーコミットメント文字列の計算に使用されるアルゴリズム。出力はAlgorithm suite dataフィールドがあり、キーコミットメントのデータキーを検証するために使用されます。

アルゴリズムスイートへのキーコミットメントの追加に関する技術的な説明については、AEAds のキーコミット暗号学のePrintアーカイブで。

キー導出アルゴリズム

データ暗号化キーを取得するために使用される、HMAC ベースの抽出および展開キー取得関数 (HKDF)。-AWS Encryption SDKで定義された HKDF を使用します。RFC 5869

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

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

  • 抽出ステップの場合

    • ソルトは使用されません。RFC では、ソルトはゼロの文字列に設定されます。文字列の長さは、ハッシュ関数の出力の長さと同じです。これは、SHA-384 の場合は 48 バイト、SHA-256 の場合は 32 バイトです。

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

  • 展開ステップの場合

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

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

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

キーコミットメントを持つアルゴリズムスイート(アルゴリズムID04xxおよび05xx)

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

  • 抽出ステップの場合

    • ソルトは、256 ビットの暗号化ランダム値です。Eclipseメッセージ形式バージョン 2(0x02) の場合、この値はMessageIDfield。

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

  • 展開ステップの場合

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

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

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

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

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

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

署名アルゴリズム

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

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

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