

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

# AWS CloudHSM クライアント SDK 3 でサポートされているメカニズム
<a name="pkcs11-v3-mechanisms"></a>

PKCS \#11 ライブラリは、 AWS CloudHSM クライアント SDK 3 の次のアルゴリズムをサポートしています。
+ [**暗号化と復号化**] AES-CBC、AES-CTR、AES-ECB、AES-GCM、DES3-CBC、DES3-ECB、RSA-OAEP、RSA-PKCS
+ [**署名と確認**] RSA、HMAC、ECDSA (ハッシュあり、なし)
+ [**ハッシュ/ダイジェスト**] SHA1、SHA224、SHA256、SHA384、SHA512
+ [**キーラップ**] AES キーラップ、[[4](#pkcs11-v3-mech4)] AES-GCM、RSA-AES、RSA-OAEP
+ [**キーの導出**] — ECDH、[5](#pkcs11-v3-mech5) SP800-108 CTR KDF

## PKCS \#11 ライブラリのメカニズムと関数を示す表
<a name="pkcs11-v3-mech-function"></a>

PKCS \#11 ライブラリは PKCS \#11 仕様のバージョン 2.40 に準拠しています。PKCS\#11 を使用して暗号化機能を呼び出すには、指定されたメカニズムで関数を呼び出します。次の表は、 AWS CloudHSMでサポートされている関数とメカニズムの組み合わせをまとめたものです。

**サポートされている PKCS\#11 メカニズムと関数を示すテーブルの解釈**  
✔ マークは、 が関数のメカニズム AWS CloudHSM をサポートしていることを示します。PKCS \#11 仕様に一覧表示されている利用可能な関数がすべてサポートされているわけではありません。✖ マークは、PKCS \#11 標準で許可されている場合でも、 AWS CloudHSM が特定の関数のメカニズムをまだサポートしていないことを示します。空のセルは、PKCS \#11 標準で特定の関数のメカニズムがサポートされていないことを示します。


**サポートされている PKCS\#11 ライブラリのメカニズムと関数**  

<table>
<thead>
  <tr><th>メカニズム</th><th colspan="7">関数</th><th></th></tr>
</thead>
<tbody>
  <tr><td> </td><td>**キーの生成**または**キーペア**</td><td>**署名と検証**</td><td>**SR と VR**</td><td>**ダイジェスト**</td><td>**暗号化と復号**</td><td>**派生キー**</td><td>**ラップとラップ解除**</td><td></td></tr>
  <tr><td>`CKM_RSA_PKCS_KEY_PAIR_GEN`</td><td>**✔**</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_RSA_X9_31_KEY_PAIR_GEN`</td><td>**✔**[2](#pkcs11-v3-mech2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_RSA_X_509`</td><td> </td><td>**✔**</td><td> </td><td> </td><td>**✔**</td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_RSA_PKCS`**注記「[8](#pkcs11-v3-mech8)」を参照**</td><td> </td><td>✔[1](#pkcs11-v3-mech1)</td><td>✖</td><td> </td><td>✔[1](#pkcs11-v3-mech1)</td><td> </td><td>✔[1](#pkcs11-v3-mech1)</td><td></td></tr>
  <tr><td>`CKM_RSA_PKCS_OAEP`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**[1](#pkcs11-v3-mech1)</td><td> </td><td>**✔**[6](#pkcs11-v3-mech6)</td><td></td></tr>
  <tr><td>`CKM_SHA1_RSA_PKCS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA224_RSA_PKCS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA256_RSA_PKCS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA384_RSA_PKCS`</td><td> </td><td>**✔**[2](#pkcs11-v3-mech2),[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA512_RSA_PKCS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_RSA_PKCS_PSS`</td><td> </td><td>**✔**[1](#pkcs11-v3-mech1)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA1_RSA_PKCS_PSS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA224_RSA_PKCS_PSS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA256_RSA_PKCS_PSS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA384_RSA_PKCS_PSS`</td><td> </td><td>**✔**[2](#pkcs11-v3-mech2),[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA512_RSA_PKCS_PSS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_EC_KEY_PAIR_GEN`</td><td>**✔**</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDSA`</td><td> </td><td>**✔**[1](#pkcs11-v3-mech1)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDSA_SHA1`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDSA_SHA224`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDSA_SHA256`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDSA_SHA384`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDSA_SHA512`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDH1_DERIVE`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**[5](#pkcs11-v3-mech5)</td><td> </td><td></td></tr>
  <tr><td>`CKM_SP800_108_COUNTER_KDF`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td> </td><td></td></tr>
  <tr><td>`CKM_GENERIC_SECRET_KEY_GEN`</td><td>**✔**</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_AES_KEY_GEN`</td><td>**✔**</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_AES_ECB`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_AES_CTR`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_AES_CBC`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_AES_CBC_PAD`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_DES3_KEY_GEN` **注記「[8](#pkcs11-v3-mech8)」を参照**</td><td>**✔**</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_DES3_CBC` **注記「[8](#pkcs11-v3-mech8)」を参照**</td><td> </td><td> </td><td> </td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_DES3_CBC_PAD` **注記「[8](#pkcs11-v3-mech8)」を参照**</td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_DES3_ECB` **注記「[8](#pkcs11-v3-mech8)」を参照**</td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_AES_GCM`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3), [4](#pkcs11-v3-mech4) </td><td> </td><td>**✔**[7.1](#pkcs11-v3-mech7-1)</td><td></td></tr>
  <tr><td>`CKM_CLOUDHSM_AES_GCM`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**[7.1](#pkcs11-v3-mech7-1)</td><td> </td><td>**✔**[7.1](#pkcs11-v3-mech7-1)</td><td></td></tr>
  <tr><td>`CKM_SHA_1`</td><td> </td><td> </td><td> </td><td>**✔**[3.1](#pkcs11-v3-mech3-1)</td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA_1_HMAC`</td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA224`</td><td> </td><td> </td><td> </td><td>**✔**[3.1](#pkcs11-v3-mech3-1)</td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA224_HMAC`</td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA256`</td><td> </td><td> </td><td> </td><td>**✔**[3.1](#pkcs11-v3-mech3-1)</td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA256_HMAC`</td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA384`</td><td> </td><td> </td><td> </td><td>**✔**[3.1](#pkcs11-v3-mech3-1)</td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA384_HMAC`</td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA512`</td><td> </td><td> </td><td> </td><td>**✔**[3.1](#pkcs11-v3-mech3-1)</td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA512_HMAC`</td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_RSA_AES_KEY_WRAP`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td></td></tr>
  <tr><td>`CKM_AES_KEY_WRAP`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td></td></tr>
  <tr><td>`CKM_AES_KEY_WRAP_PAD`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td></td></tr>
  <tr><td>`CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**[7.1](#pkcs11-v3-mech7-1)</td><td></td></tr>
  <tr><td>`CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**[7.1](#pkcs11-v3-mech7-1)</td><td></td></tr>
  <tr><td>`CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**[7.1](#pkcs11-v3-mech7-1)</td><td></td></tr>
</tbody>
</table>


**メカニズムの注釈**
+ [1] シングルパートのオペレーションのみ
+ [2] メカニズムは機能的には `CKM_RSA_PKCS_KEY_PAIR_GEN` のメカニズムと似ていますが、`p` と `q` の生成に関してより強力な保証を提供します。
+ [3.1] クライアント SDK に基づいてハッシュを異なる方法で AWS CloudHSM アプローチします。クライアント SDK 3 では、ハッシュを行う場所はデータのサイズと、シングルパートオペレーションとマルチパートオペレーションのどちらを使用するかによって異なります。

  **クライアント SDK 3 のシングルパートのオペレーション**

  表 3.1 に、クライアント SDK 3 の各メカニズムの最大のデータ設定サイズを表します。ハッシュ全体が HSM 内で計算されます。16KB を超えるデータサイズはサポートされません。  
**表 3.1 シングルパートオペレーションの最大のデータ設定サイズ**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/pkcs11-v3-mechanisms.html)

  **クライアント SDK 3 のマルチパートオペレーション**

  16 KB を超えるデータサイズのサポートについては、データサイズによってハッシュが行われる場所が決まります。16 KB 未満のデータバッファは HSM 内でハッシュされます。16 KBからシステムの最大のデータサイズまでのバッファは、ソフトウェアでローカルにハッシュされます。[*留意点*]: ハッシュ関数は機密情報の暗号化を必要としないため、HSM の外部で安全にコンピューティングすることができます。
+ [3.2] クライアント SDK に基づいてハッシュを異なる方法で AWS CloudHSM アプローチします。クライアント SDK 3 では、ハッシュを行う場所はデータのサイズと、シングルパートオペレーションとマルチパートオペレーションのどちらを使用するかによって異なります。

  **クライアント SDK 3 のシングルパートのオペレーション**

  表 3.2 に、クライアント SDK 3 の各メカニズムの最大のデータ設定サイズを表します。16KB を超えるデータサイズはサポートされません。  
**表 3.2 シングルパートオペレーションの最大のデータ設定サイズ**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/pkcs11-v3-mechanisms.html)

  **クライアント SDK 3 のマルチパートオペレーション**

  16 KB を超えるデータサイズのサポートについては、データサイズによってハッシュが行われる場所が決まります。16 KB 未満のデータバッファは HSM 内でハッシュされます。16 KBからシステムの最大のデータサイズまでのバッファは、ソフトウェアでローカルにハッシュされます。[*留意点*]: ハッシュ関数は機密情報の暗号化を必要としないため、HSM の外部で安全にコンピューティングすることができます。
+ [3.3] 以下のいずれかのメカニズムを使用してデータを操作する際、データバッファが最大データサイズを超えるとエラーになります。これらのメカニズムでは、すべてのデータ処理が HSM 内で行われる必要があります。次の表は、各メカニズムに設定されている最大データサイズを示します:   
**表 3.3 最大のデータ設定サイズ**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/pkcs11-v3-mechanisms.html)
+ [4] AES-GCM の暗号化を実行している際、HSM はアプリケーションからの初期化ベクトル (IV) データを受け入れません。HSM が生成した IV を使用する必要があります。HSM で生成された 12 バイトの IV は、指定した `CK_GCM_PARAMS` パラメータ構造の pIV 要素が指すメモリ参照に書き込まれます。ユーザーが混乱しないよう、バージョン 1.1.1 以降の PKCS\#11 SDK では、AES-GCM 暗号化が初期化されると、pIV はゼロ化されたバッファを指し示すようになっています。
+ [5]**クライアント SDK 3 のみ**。メカニズムは SSL/TLS オフロードのケースをサポートするために実装されており、HSM 内の一部でのみ実行されます。このメカニズムを使用する前に、「[の PKCS \#11 ライブラリの既知の問題 AWS CloudHSMPKCS\#11 ライブラリの既知の問題](ki-pkcs11-sdk.md)」の「Issue: ECDH key derivation is executed only partially within the HSM」を参照してください。`CKM_ECDH1_DERIVE` では、 secp521r1 (P-521) カーブはサポートされません。
+ [6] 次の `CK_MECHANISM_TYPE` および `CK_RSA_PKCS_MGF_TYPE` は、`CK_RSA_PKCS_OAEP_PARAMS` の `CKM_RSA_PKCS_OAEP` としてサポートされています:
  + `CKG_MGF1_SHA1` を使用する `CKM_SHA_1`
  + `CKG_MGF1_SHA224` を使用する `CKM_SHA224`
  + `CKG_MGF1_SHA256` を使用する `CKM_SHA256`
  + `CKM_MGF1_SHA384` を使用する `CKM_SHA384`
  + `CKM_MGF1_SHA512` を使用する `CKM_SHA512`
+ [7.1] ベンダー定義のメカニズム。CloudHSM ベンダー定義のメカニズムを使用するには、コンパイル時に PKCS \#11 アプリケーションに `/opt/cloudhsm/include/pkcs11/cloudhsm_pkcs11_vendor_defs.h` を含める必要があります。

  `CKM_CLOUDHSM_AES_GCM`: この独自のメカニズムは、標準 `CKM_AES_GCM` よりもプログラム的に安全な代替手段です。これは、HSM によって生成された IV を、暗号の初期化中に提供される `CK_GCM_PARAMS` 構造体に書き戻すのではなく、暗号文の先頭に付加します。このメカニズムは `C_Encrypt`、`C_WrapKey`、`C_Decrypt`、`C_UnwrapKey` 関数で使用できます。このメカニズムを使用する場合は、`CK_GCM_PARAMS` 構造体内の pIV 変数を `NULL` に設定する必要があります。このメカニズムを `C_Decrypt` および `C_UnwrapKey` と共に使用する場合、IV は、ラップ解除される暗号文の前に付加されることが想定されます。

  `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`: PKCS \#5 パディングを使用する AES キーラップ

  `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`: ゼロパディングを使用する AES キーラップ

  AES キーラップに関する追加情報については、[[AES キーラップ](manage-aes-key-wrapping.md)] を参照してください。
+ [8] NIST ガイダンスに従い、2023 年以降の FIPS モードのクラスターでは、これは許可されません。FIPS 以外のモードのクラスターでは、2023 年以降も許可されます。詳細については、「[FIPS 140 コンプライアンス: 2024 年 メカニズムの非推奨](compliance-dep-notif.md#compliance-dep-notif-1)」を参照してください。