

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

# キー仕様のリファレンス
<a name="symm-asymm-choose-key-spec"></a>

非対称 KMS キーまたは HMAC KMS キーを作成するときは、その[キーの仕様](create-keys.md#key-spec)を選択します。すべての のプロパティである*キー仕様*は AWS KMS key、KMS キーの暗号化設定を表します。KMS キーの作成時に選択したキー仕様を変更することはできません。間違ったキー仕様を選択した場合は、[KMS キーを削除し](deleting-keys.md)、新しいキー仕様を作成します。

**注記**  
KMS キーのキー仕様は、「カスタマーマスターキー仕様」として知られていました。[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションの `CustomerMasterKeySpec` パラメータは非推奨です。代わりに、`KeySpec` パラメータを使用します。`CreateKey` および [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) オペレーションのレスポンスには、同じ値を持つ `KeySpec` および `CustomerMasterKeySpec` メンバーが含まれます。

キー仕様は、KMS キーが対称か非対称か、KMS キー内のキーマテリアルのタイプ、および が KMS キーに対して AWS KMS サポートする暗号化アルゴリズム、署名アルゴリズム、またはメッセージ認証コード (MAC) アルゴリズムを決定します。選択するキー仕様は、通常、ユースケースと規制要件によって決まります。ただし、キー仕様の異なる KMS キーの暗号化オペレーションは料金が異なるため、クォータも異なる場合があります。料金の詳細については、「[AWS Key Management Service の料金](https://aws.amazon.com/kms/pricing/)」を参照してください。リクエストクォータの詳細については、「[クォータのリクエスト](requests-per-second.md)」を参照してください 。

KMS キーの作成時に、プリンシパルが使用できるキー仕様を制限するには、[kms:KeySpec](conditions-kms.md#conditions-kms-key-spec) 条件キーを使用します。`kms:KeySpec` 条件キーを使用して、プリンシパルが特定のキー仕様の KMS キーでのみ AWS KMS オペレーションを呼び出すことを許可することもできます。例えば、`RSA_4096` キー仕様を持つ KMS キーの削除をスケジュールする許可を拒否できます。

AWS KMS では、KMS キーの次のキー仕様がサポートされています。

[対称暗号化キーの仕様](#symmetric-cmks) (デフォルト)  
+ SYMMETRIC\_DEFAULT

[RSA キー仕様](#key-spec-rsa)（暗号化と復号、または署名と検証）  
+ RSA\_2048
+ RSA\_3072
+ RSA\_4096

[楕円曲線のキー仕様](#key-spec-ecc)  
+ 非対称 NIST 標準[楕円曲線キーペア](https://datatracker.ietf.org/doc/html/rfc5753/) (署名と検証、または共有シークレットの取得)
  + ECC\_NIST\_P256 (secp256r1)
  + ECC\_NIST\_P384 (secp384r1)
  + ECC\_NIST\_P521 (secp521r1)
  + ECC\_NIST\_EDWARDS25519 (ed25519) - 署名と検証のみ
    + **注:** ECC\_NIST\_EDWARDS25519 KMS キーの場合、ED25519\_SHA\_512 署名アルゴリズムには が必要で[https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType)、ED25519\_PH\_SHA\_512 には が必要です[https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType)。これらのメッセージタイプを同じ意味で使用することはできません。
+ その他の非対称楕円曲線キーペア (署名と検証)
  + ECC\_SECG\_P256K1 ([secp256k1](https://en.bitcoin.it/wiki/Secp256k1))、暗号化に一般的に使用されます。

[SM2 キー仕様](#key-spec-sm) (暗号化と復号、または署名と検証、または共有シークレットの取得のいずれか)  
+ SM2 (中国リージョンのみ)

[HMAC キーの仕様](#hmac-key-specs)  
+ HMAC\_224
+ HMAC\_256
+ HMAC\_384
+ HMAC\_512

[ML-DSA キー仕様](#key-spec-mldsa)  
+ ML\_DSA\_44
+ ML\_DSA\_65
+ ML\_DSA\_87

## SYMMETRIC\_DEFAULT キー仕様
<a name="symmetric-cmks"></a>

デフォルトのキー仕様である SYMMETRIC\_DEFAULT は、対称暗号化 KMS キーのキー仕様です。 AWS KMS コンソールで**対称**キータイプと**暗号化および復号**キーの使用を選択すると、`SYMMETRIC_DEFAULT`キー仕様が選択されます。[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションで、 `KeySpec` 値を指定しない場合、SYMMETRIC\_DEFAULT が選択されます。別のキー仕様を使用する理由がない場合は、SYMMETRIC\_DEFAULT を選択することをお勧めします。

SYMMETRIC\_DEFAULT は AES-256-GCM を表します。AES-256-GCM は [Galois Counter Mode](http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf) (GCM) の[アドバンスト暗号化スタンダード](https://csrc.nist.gov/csrc/media/publications/fips/197/final/documents/fips-197.pdf) (AES) に基づく対称アルゴリズムであり、安全な暗号化のための業界標準である 256 ビットキーを備えています。このアルゴリズムが生成する暗号文は、[暗号化コンテキスト](encrypt_context.md)などの追加認証データ (AAD) をサポートし、GCM は暗号文での追加の整合性チェックを提供します。

AES-256-GCM で暗号化されたデータは、現在も将来も保護されています。暗号作成者は、このアルゴリズムには*量子耐性がある*と考えています。理論上の将来、256 ビット AES-GCM キーで作成された暗号文に対する大規模な量子コンピューティング攻撃は、[キーの効果的なセキュリティを 128 ビットに低下させます](https://www.etsi.org/images/files/ETSIWhitePapers/QuantumSafeWhitepaper.pdf)。ただし、このセキュリティレベルは、 AWS KMS 暗号文に対するブルートフォース攻撃を実行不可能にするのに十分です。

中国リージョンでは唯一の例外で、SYMMETRIC\_DEFAULT は SM4 暗号化を使用する 128 ビットの対称キーを表します。128 ビット SM4 キーは、中国リージョンでのみ作成できます。中国リージョンでは、256 ビット AES-GCM KMS キーを作成することはできません。

で対称暗号化 KMS キーを使用して、データを AWS KMS 暗号化、復号、再暗号化し、生成されたデータキーと と統合されたデータキーペアを保護できます。 AWS サービスは、対称暗号化 KMS キー AWS KMS を使用して保管中のデータを暗号化します。対称暗号化 KMS キーに[独自のキーマテリアルをインポート](importing-keys.md)し、[カスタムキーストア](key-store-overview.md#custom-key-store-overview)で対称暗号化 KMS キーを作成することができます。対称および非対称 KMS キーで実行できるオペレーションを比較した表については、「[対称および非対称 KMS キーの比較](symm-asymm-compare.md)」を参照してください。

で対称暗号化 KMS キーを使用して、データを AWS KMS 暗号化、復号、再暗号化し、データキーとデータキーペアを生成できます。[マルチリージョン](multi-region-keys-overview.md)の対称暗号化 KMS キーの作成、対称暗号化 KMS キーへの[独自のキーマテリアルのインポート](importing-keys.md)、および[カスタムキーストア](key-store-overview.md#custom-key-store-overview)での対称暗号化 KMS キーの作成が可能です。異なるタイプの KMS キーで実行できるオペレーションを比較した表については、「[キータイプリファレンス](symm-asymm-compare.md)」を参照してください。

## RSA キー仕様
<a name="key-spec-rsa"></a>

RSA キー仕様を使用する場合、 は RSA キーペアを使用して非対称 KMS キー AWS KMS を作成します。プライベートキーが暗号化 AWS KMS されていないままになることはありません。内でパブリックキーを使用するか AWS KMS、外部で使用するパブリックキーをダウンロードできます AWS KMS。

**警告**  
の外部でデータを暗号化する場合は AWS KMS、暗号化テキストを復号できることを確認してください。 AWS KMSから削除された KMS キーのパブリックキー、署名と検証用に設定された KMS キーのパブリックキー、または KMS キーでサポートされていない暗号化アルゴリズムを使用する場合、データは回復できません。

では AWS KMS、非対称 KMS キーと RSA キーペアを使用して暗号化と復号、または署名と検証を行うことができますが、両方を使用することはできません。このプロパティは、*[Key usage](create-keys.md#key-usage)*と呼ばれ、キー仕様とは別に決定されますが、キー仕様を選択する前に決定する必要があります。

AWS KMS は、暗号化と復号、または署名と検証のために次の RSA キー仕様をサポートしています。
+ RSA\_2048
+ RSA\_3072
+ RSA\_4096

RSA キー仕様は、RSA キーの長さ（ビット単位）によって異なります。選択する RSA キー仕様は、セキュリティ標準またはタスクの要件によって決定される場合があります。一般的に、タスクに実用的で手頃な価格の、最大のキーを使用します。RSA キー仕様の異なる KMS キーの暗号化オペレーションは、料金が異なります。 AWS KMS 料金の詳細については、[AWS 「 Key Management Service の料金](https://aws.amazon.com/kms/pricing/)」を参照してください。リクエストクォータの詳細については、「[クォータのリクエスト](requests-per-second.md)」を参照してください。

### 暗号化および復号の RSA キー仕様
<a name="key-spec-rsa-encryption"></a>

RSA 非対称 KMS キーを暗号化および復号に使用する場合、パブリックキーで暗号化し、プライベートキーで復号します。RSA KMS キー AWS KMS の で `Encrypt`オペレーションを呼び出すと、 は RSA キーペアのパブリックキーと、指定した暗号化アルゴリズム AWS KMS を使用してデータを暗号化します。暗号文を復号するには、 `Decrypt`オペレーションを呼び出し、同じ KMS キーと暗号化アルゴリズムを指定します。 AWS KMS その後、 は RSA キーペアのプライベートキーを使用してデータを復号します。

パブリックキーをダウンロードし、それを使用して外部でデータを暗号化することもできます AWS KMS。RSA KMS キーに対して が AWS KMS サポートする暗号化アルゴリズムを使用してください。暗号テキストを復号するには、同じ KMS キーと暗号化アルゴリズムを使用して `Decrypt` 関数を呼び出します。

AWS KMS は、RSA キー仕様の KMS キーに対して 2 つの暗号化アルゴリズムをサポートしています。[PKCS \#1 v2.2](https://tools.ietf.org/html/rfc8017) で定義されるこれらのアルゴリズムは、内部的に使用するハッシュ関数によって異なります。 AWS KMSで、RSAES\_OAEP アルゴリズムは、ハッシュ目的と[マスク生成関数](https://tools.ietf.org/html/rfc8017#appendix-B.2) (MGF1) の両方に常に同じハッシュ関数を使用します。[Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) および [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) オペレーションを呼び出すときは、暗号化アルゴリズムを指定する必要があります。リクエストごとに異なるアルゴリズムを選択できます。


**RSA キー仕様にサポートされる暗号化アルゴリズム**  

| 暗号化アルゴリズム | アルゴリズムの説明 | 
| --- | --- | 
| RSAES\_OAEP\_SHA\_1 | PKCS \#1 v2.2、セクション 7.1。ハッシュと MGF1 マスク生成機能の両方に空のラベルとともに SHA-1 を使用した OAEP パディングによるRSA暗号化。 | 
| RSAES\_OAEP\_SHA\_256 | PKCS \#1、セクション 7.1. ハッシュと MGF1 マスク生成機能の両方に空のラベルとともに SHA-256 を使用した OAEP パディングによるRSA暗号化。 | 

特定の暗号化アルゴリズムを使用するように KMS キーを設定することはできません。ただし、[kms:EncryptionAlgorithm](conditions-kms.md#conditions-kms-encryption-algorithm) ポリシー条件を使用して、プリンシパルが KMS キーで使用できる暗号化アルゴリズムを指定できます。

KMS キーの暗号化アルゴリズムを取得するには、 AWS KMS コンソールで KMS キーの[暗号化設定を表示する](finding-keys.md#viewing-console-details)か、[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) オペレーションを使用します。 AWS KMS は、 AWS KMS コンソールまたは [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html) オペレーションを使用してパブリックキーをダウンロードするときに、キー仕様と暗号化アルゴリズムも提供します。

各リクエストで暗号化できるプレーンテキストデータの長さに基づいて、RSA キー仕様を選択できます。次の表に、[Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) オペレーションに対する 1 回の呼び出しで暗号化できるプレーンテキストの最大サイズをバイト単位で示します。値は、キー仕様と暗号化アルゴリズムによって異なります。比較すると、対称暗号化 KMS キーは一度に最大 4,096 バイトを暗号化するために使用できます。

これらのアルゴリズムのプレーンテキストの最大長（バイト単位）を計算するには、次の式を使用します。({{key\_size\_in\_bits}} / 8) - (2 \* {{hash\_length\_in\_bits}}/8) - 2。例えば、RSA\_2048 と SHA-256 の場合、バイト単位のプレーンテキストの最大サイズは、(2048/8) - (2 \* 256/8) -2 = 190 です。


**暗号化オペレーションの最大プレーンテキストサイズ（バイト単位）**  
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/symm-asymm-choose-key-spec.html)

### 署名および検証用の RSA キー仕様
<a name="key-spec-rsa-sign"></a>

署名と検証に RSA 非対称 KMS キーを使用する場合、プライベートキーを持つメッセージの署名を生成し、パブリックキーで署名を検証します。

非対称 KMS キー AWS KMS の で `Sign`オペレーションを呼び出すと、 は RSA キーペアのプライベートキー、メッセージ、および指定した署名アルゴリズム AWS KMS を使用して署名を生成します。署名を検証するには、[Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) オペレーションを呼び出します。署名に加えて、同じ KMS キー、メッセージ、署名アルゴリズムを指定します。 AWS KMS その後、 は RSA キーペアのパブリックキーを使用して署名を検証します。パブリックキーをダウンロードし、それを使用して外部の署名を検証することもできます AWS KMS。

AWS KMS は、RSA キー仕様のすべての KMS キーに対して次の署名アルゴリズムをサポートしています。[Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html) オペレーションと [Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) オペレーションを呼び出すときは、署名アルゴリズムを指定する必要があります。リクエストごとに異なるアルゴリズムを選択できます。RSA キーペアで署名する場合は、RSASSA-PSS アルゴリズムが推奨されます。既存のアプリケーションとの互換性を保つため、RSASSA-PKCS1-v1\_5 アルゴリズムが採用されています。


**RSA キー仕様でサポートされる署名アルゴリズム**  

| 署名アルゴリズム | アルゴリズムの説明 | 
| --- | --- | 
| RSASSA\_PSS\_SHA\_256 | PKCS \#1 v2.2、セクション 8.1、メッセージダイジェストと MGF1 マスク生成機能の両方に SHA-256 とともに 256 ビットソルトを使用する PSS パディング付きの RSA 署名 | 
| RSASSA\_PSS\_SHA\_384 | PKCS \#1 v2.2、セクション 8.1、メッセージダイジェストと MGF1 マスク生成機能の両方に SHA-384 とともに 384 ビットソルトを使用する PSS パディング付きの RSA 署名 | 
| RSASSA\_PSS\_SHA\_512 | PKCS \#1 v2.2、セクション 8.1、メッセージダイジェストと MGF1 マスク生成機能の両方に SHA-512 とともに 512 ビットソルトを使用する PSS パディング付きの RSA 署名 | 
| RSASSA\_PKCS1\_V1\_5\_SHA\_256 | PKCS \#1 v2.2、セクション 8.2、PKCS \#1v1.5 パディングおよび SHA-256 を使用した RSA 署名 | 
| RSASSA\_PKCS1\_V1\_5\_SHA\_384 | PKCS \#1 v2.2、セクション 8.2、PKCS \#1v1.5 パディングおよび SHA-384 を使用した RSA 署名 | 
| RSASSA\_PKCS1\_V1\_5\_SHA\_512 | PKCS \#1 v2.2、セクション 8.2、PKCS \#1v1.5 パディングおよび SHA-512 を使用した RSA 署名 | 

特定の署名アルゴリズムを使用するように KMS キーを設定することはできません。ただし、[km: SigningAlgorithm](conditions-kms.md#conditions-kms-signing-algorithm) ポリシー条件を使用して、プリンシパルが KMS キーで使用できる署名アルゴリズムを指定できます。

KMS キーの署名アルゴリズムを取得するには、 AWS KMS コンソールまたは [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) オペレーションを使用して KMS キーの[暗号化設定を表示します](finding-keys.md#viewing-console-details)。 AWS KMS は、 AWS KMS コンソールまたは [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html) オペレーションを使用してパブリックキーをダウンロードするときに、キー仕様と署名アルゴリズムも提供します。

## 楕円曲線のキー仕様
<a name="key-spec-ecc"></a>

****

楕円曲線 (ECC) キー仕様を使用する場合、 は署名と検証、または共有シークレットの取得 (両方ではない) のために、ECC キーペアを持つ非対称 KMS キー AWS KMS を作成します。署名を生成もしくは共有シークレットを取得するプライベートキーでは、 AWS KMS が暗号化されないままになることはありません。パブリックキーを使用して内部[の署名を検証する](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)か AWS KMS、外部で使用する[パブリックキーをダウンロードできます](importing-keys-get-public-key-and-token.md) AWS KMS。

Edwards Curve キー仕様を使用する場合、 は署名と検証のために Ed25519 キーペアを持つ非対称 KMS キー AWS KMS を作成します。署名を生成するプライベートキーが暗号化 AWS KMS されていないままになることはありません。パブリックキーを使用して 内の[署名を検証する](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)か AWS KMS、 の外部で使用する[パブリックキーをダウンロード](importing-keys-get-public-key-and-token.md)することができます AWS KMS。

AWS KMS は、非対称 KMS キーの次の ECC キー仕様をサポートしています。
+ 非対称 NIST 標準楕円曲線キーペア (署名と検証、または共有シークレットの取得)
  + ECC\_NIST\_P256 (secp256r1)
  + ECC\_NIST\_P384 (secp384r1)
  + ECC\_NIST\_P521 (secp521r1)
  + ECC\_NIST\_EDWARDS25519 (ed25519) - 署名と検証のみ
    + **注:** ECC\_NIST\_EDWARDS25519 KMS キーの場合、ED25519\_SHA\_512 署名アルゴリズムには が必要で[https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType)、ED25519\_PH\_SHA\_512 には が必要です[https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType)。これらのメッセージタイプを同じ意味で使用することはできません。
+ その他の非対称楕円曲線キーペア (署名と検証)
  + ECC\_SECG\_P256K1 ([secp256k1](https://en.bitcoin.it/wiki/Secp256k1))。一般に暗号通貨に用いられる。

選択する ECC キー仕様は、セキュリティ標準またはタスクの要件によって決定される場合があります。一般的に、タスクに実用的で手頃な価格の、最も多くのポイントがある曲線を使用します。

非対称 KMS キーを作成して[共有シークレットを取得する](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)場合は、NIST 標準の楕円曲線キー仕様のいずれかを使用します (ECC\_SECG\_P256K1 および ECC\_NIST\_EDWARDS25519 を除く）。共有シークレットの取得向けにサポートされている唯一のキーアグリーメントアルゴリズムは、[楕円曲線暗号化共同係数 Diffie-Hellman Primitive](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf#page=60) (ECDH) です。共有シークレットをオフラインで取得する方法の例については、「[オフラインで共有シークレットを取得する](offline-operations.md#key-spec-ecc-offline)」を参照してください。

暗号通貨で使用する非対称 KMS キーを作成する場合は、ECC\_SECG\_P256K1 キー仕様を使用します。このキー仕様を他の目的に使用することもできますが、Bitcoin やその他の暗号化通貨には必要です。

次の表は、ECC キー仕様ごとに が AWS KMS サポートする署名アルゴリズムを示しています。特定の署名アルゴリズムを使用するように KMS キーを設定することはできません。ただし、[km: SigningAlgorithm](conditions-kms.md#conditions-kms-signing-algorithm) ポリシー条件を使用して、プリンシパルが KMS キーで使用できる署名アルゴリズムを指定できます。


**ECC キー仕様でサポートされる署名アルゴリズム**  

|  キー仕様 | 署名アルゴリズム | アルゴリズムの説明 | 
| --- | --- | --- | 
| ECC\_NIST\_P256  | ECDSA\_SHA\_256 | メッセージダイジェストのためにキーおよび SHA-256 で指定された曲線を使用する、NIST FIPS 186-4、セクション 6.4、ECDSA 署名。 | 
| ECC\_NIST\_P384 | ECDSA\_SHA\_384 | メッセージダイジェストのためにキーおよび SHA-384 で指定された曲線を使用する、NIST FIPS 186-4、セクション 6.4、ECDSA 署名。 | 
| ECC\_NIST\_P521 | ECDSA\_SHA\_512 | メッセージダイジェストのためにキーおよび SHA-512 で指定された曲線を使用する、NIST FIPS 186-4、セクション 6.4、ECDSA 署名。 | 
| ECC\_SECG\_P256K1 | ECDSA\_SHA\_256 | メッセージダイジェストのためにキーおよび SHA-256 で指定された曲線を使用する、NIST FIPS 186-4、セクション 6.4、ECDSA 署名。 | 
| ECC\_NIST\_EDWARDS25519 | ED25519\_SHA\_512 | NIST FIPS 186-5、セクション 7.6、メッセージダイジェストのキーと SHA-512 で指定された曲線を使用した EdDSA 署名。KMS では、このアルゴリズム[https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType)で が必要です。 | 
| ECC\_NIST\_EDWARDS25519 | ED25519\_PH\_SHA\_512 | メッセージダイジェストのキーと SHA-512 で指定された曲線を使用した NIST FIPS 186-5、セクション 7.8、HashEdDSA 署名。KMS では、このアルゴリズム[https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType)で が必要です。で ED25519\_PH\_SHA\_512 署名アルゴリズムを指定するとMessageType:DIGEST、 AWS KMS はセクション 7.8.1 のステップ 1 で説明されている SHA-512 プレハッシュを実行します。 [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf#page=39](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf#page=39)つまり、入力は 2 回ハッシュされます。1 回はユーザーが、1 回は KMS によってハッシュされます。 | 

## HMAC KMS キーの主な仕様
<a name="hmac-key-specs"></a>

AWS KMS は、さまざまな長さの対称 HMAC キーをサポートしています。選択するキー仕様は、セキュリティ、規制、またはビジネス要件に応じて異なります。キーの長さによって、[GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html) および [VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html) オペレーションで使用される MAC アルゴリズムが決まります。一般に、キーが長いほど安全性が高くなります。ユースケースにとって実用的な最も長いキーを使用してください。


| HMAC キーの仕様 | MAC アルゴリズム | 
| --- | --- | 
| HMAC\_224 | HMAC\_SHA\_224 | 
| HMAC\_256 | HMAC\_SHA\_256 | 
| HMAC\_384 | HMAC\_SHA\_384 | 
| HMAC\_512 | HMAC\_SHA\_512 | 

## ML-DSA キー仕様
<a name="key-spec-mldsa"></a>

ML-DSA キーは、ポスト量子暗号用に設計された Module-Lattice-Based Digital Signature Algorithm (ML-DSA) で使用される暗号化キーです。このアルゴリズムは、NIST (米国国立標準技術研究所) の標準化の取り組みの一部で、[連邦情報処理標準 (FIPS) 204](https://csrc.nist.gov/pubs/fips/204/final) で具体的に説明されています。

ML-DSA キーは、パブリックキーとプライベートキーのペアシステムで使用されます。プライベートキーはデータの署名に使用され、パブリックキーは署名の検証に使用されます。このシステムは、量子コンピュータの潜在的な脅威に直面しても、デジタルメッセージまたはドキュメントの信頼性、完全性、および否認防止を保証します。

ML-DSA キー仕様でキーを作成すると、 は署名と検証のために ML-DSA キーペアを持つ非対称 KMS キー AWS KMS を作成します。署名を生成するプライベートキーが暗号化 AWS KMS されていないままになることはありません。パブリックキーを使用して内部[の署名を検証する](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)か AWS KMS、外部で使用する[パブリックキーをダウンロードできます](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-get-public-key-and-token.html) AWS KMS。

AWS KMS は、非対称 KMS キーに対して次の ML-DSA キー仕様をサポートしています。
+ ML\_DSA\_44
+ ML\_DSA\_65
+ ML\_DSA\_87

AWS KMS は、すべての ML-DSA キー仕様で ML\_DSA\_SHAKE\_256 署名アルゴリズムをサポートしています。

## SM2 キー仕様 (中国リージョンのみ)
<a name="key-spec-sm"></a>

SM2 キー仕様は、[中国国家商業暗号局 (OSCCA)](https://www.oscca.gov.cn/) によって公開されている GM/T シリーズの仕様で定義されている楕円曲線のキー仕様です。SM2 キー仕様は、中国リージョンでのみ利用可能です。SM2 キー仕様を使用する場合、 は SM2 キーペアを持つ非対称 KMS キー AWS KMS を作成します。SM2 キーペアは、 内で使用することも AWS KMS、 の外部で使用するパブリックキーをダウンロードすることもできます AWS KMS。詳細については、「[SM2 キーペアによるオフライン検証 (中国リージョンのみ)](offline-operations.md#key-spec-sm-offline-verification)」を参照してください。

各 KMS キーに指定できる[Key usage](create-keys.md#key-usage)は 1 つだけです。SM2 KMS キー は、署名と検証、暗号化と複合、または共有シークレットの取得の*いずれか*に使用できます。KMS キーの作成時にキーの用途を指定する必要があります。キーの作成後に変更することはできません。

非対称 KMS キーを作成して[共有シークレットを取得する](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)場合は、SM2 キー仕様を使用します。共有シークレットの取得向けにサポートされている唯一のキーアグリーメントアルゴリズムは、[楕円曲線暗号化共同係数 Diffie-Hellman Primitive](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf#page=60) (ECDH) です。

AWS KMS は、次の SM2 暗号化および署名アルゴリズムをサポートしています。
+   
**SM2PKE** 暗号化アルゴリズム  
SM2PKE は、GM/T 0003.4-2012 で OSCCA によって定義された楕円曲線ベースの暗号化アルゴリズムです。
+   
**SM2DSA** 署名アルゴリズム  
SM2DSA は、GM/T 0003.2-2012 で OSCCA によって定義された楕円曲線ベースの暗号化アルゴリズムです。SM2DSA には、SM3 ハッシュアルゴリズムでハッシュされ、渡したメッセージまたはメッセージダイジェストと組み合わされた識別 ID が必要です AWS KMS。この連結された値はハッシュされ、署名されます AWS KMS。