

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

# KMU を使用して AWS CloudHSM ECC キーペアを生成する
<a name="key_mgmt_util-genECCKeyPair"></a>

 AWS CloudHSM key\$1mgmt\$1util ツールの `genECCKeyPair` コマンドを使用して、ハードウェアセキュリティモジュール (HSM) [で楕円曲線暗号](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) (ECC) キーペアを生成します。`genECCKeyPair` コマンドを実行するときは、楕円曲線識別子とキーペアのラベルを指定する必要があります。また、他の CU ユーザーとプライベートキーを共有したり、抽出可能なキー、クォーラム制御キー、およびセッション終了時に失効するキーを作成したりできます。コマンドが成功すると、HSM がパブリックおよびプライベートの ECC キーに割り当てるキーハンドルが返されます。このキーハンドルでキーを識別することで、他のコマンドでキーを使用できます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start) Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

**ヒント**  
タイプ、長さ、ラベル、ID など、作成したキーの属性を検索するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用します。特定のユーザーのキーを見つけるには、[getKeyInfo](key_mgmt_util-getKeyInfo.md) を使用します。属性値に基づいてキーを検索するには、[findKey](key_mgmt_util-findKey.md) を使用します。

## 構文
<a name="genECCKeyPair-syntax"></a>

```
genECCKeyPair -h

genECCKeyPair -i <EC curve id> 
              -l <label> 
              [-id <key ID>]
              [-min_srv <minimum number of servers>]
              [-m_value <0..8>]
              [-nex]
              [-sess]
              [-timeout <number of seconds> ]
              [-u <user-ids>]
              [-attest]
```

## 例
<a name="genECCKeyPair-examples"></a>

以下の例では、**genECCKeyPair** を使用して ECC キーペアを HSM に作成する方法を示します。

**Example : ECC キーペアを作成して検査する**  
次のコマンドでは、NID\$1secp384r1 楕円曲線と `ecc14` ラベルを使用して ECC キーペアを作成します。出力は、プライベートキーのキーハンドルが `262177`、パブリックキーのキーハンドルが `262179` であることを示しています。ラベルは、パブリックキーとプライベートキーの両方に適用されます。  

```
Command: genECCKeyPair -i 14 -l ecc14

        Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 262179    private key handle: 262177

        Cluster Error Status
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
キーを生成した後、その属性を調べることができます。次のコマンドでは、[getAttribute](key_mgmt_util-getAttribute.md) を使用して新しい ECC プライベートキーのすべての属性 (定数 `512` で表される) を `attr_262177` ファイルに書き込みます。  

```
Command: getAttribute -o 262177 -a 512 -out attr_262177
got all attributes of size 529 attr cnt 19
Attributes dumped into attr_262177

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS
```
次に、`cat` コマンドを使用して、`attr_262177` 属性ファイルの内容を表示します。出力は、キーが楕円曲線プライベートキーであり、このキーは署名には使用できるが、暗号化、復号、ラップ、ラップ解除には使用できないことを示しています。キーは永続的で、エクスポート可能です。  

```
$  cat attr_262177

OBJ_ATTR_CLASS
0x03
OBJ_ATTR_KEY_TYPE
0x03
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x00
OBJ_ATTR_DECRYPT
0x00
OBJ_ATTR_WRAP
0x00
OBJ_ATTR_UNWRAP
0x00
OBJ_ATTR_SIGN
0x01
OBJ_ATTR_VERIFY
0x00
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x01
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
ecc2
OBJ_ATTR_ID

OBJ_ATTR_VALUE_LEN
0x0000008a
OBJ_ATTR_KCV
0xbbb32a
OBJ_ATTR_MODULUS
044a0f9d01d10f7437d9fa20995f0cc742552e5ba16d3d7e9a65a33e20ad3e569e68eb62477a9960a87911e6121d112b698e469a0329a665eba74ee5ac55eae9f5
OBJ_ATTR_MODULUS_BITS
0x0000019f
```

**Example 無効な EEC 曲線の使用**  
次のコマンドでは、NID\$1X9\$162\$1prime192v1 曲線を使用して ECC キーペアの作成を試行します。この楕円曲線は FIPS モードの HSM に対して無効であるため、コマンドは失敗します。クラスターのサーバーが使用不可であることがメッセージで報告されますが、通常、これはクラスターのサーバーに問題があることを示すものではありません。  

```
Command:  genECCKeyPair -i 1 -l ecc1

        Cfm3GenerateKeyPair returned: 0xb3 : HSM Error: This operation violates the current configured/FIPS policies

        Cluster Error Status
        Node id 0 and err state 0x30000085 : HSM CLUSTER ERROR: Server in cluster is unavailable
```

## パラメータ
<a name="genECCKeyPair-params"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-i **  
楕円曲線の識別子を指定します。識別子を入力します。  
有効な値:   
+ **2**: NID\$1X9\$162\$1prime256v1
+ **14**: NID\$1secp384r1
+ **16**: NID\$1secp256k1
必須: はい

**-I**  
キーペアのユーザー定義ラベルを指定します。文字列を入力します。同じラベルがペアの両方のキーに適用されます。`label` の最大長は 127 文字です。  
キーを識別するのに役立つ任意のフレーズを使用できます。ラベルは一意である必要がないため、このラベルを使用してキーをグループ化および分類できます。  
必須: はい

**-id**  
キーペアのユーザー定義識別子 (ID) を指定します。クラスター内で一意の文字列を入力します。デフォルトは空の文字列です。指定した ID は、ペアの両方のキーに適用されます。  
デフォルト: ID 値なし。  
必須: いいえ

**-min\$1srv**  
`-timeout` パラメーターの値が期限切れになる前に、キーが同期される HSM の最小数を指定します。キーが割り当てられた時間内に指定された数のサーバーに同期されない場合は、作成されません。  
AWS CloudHSM は、すべてのキーをクラスター内のすべての HSM に自動的に同期します。プロセスを高速化するため、`min_srv` の値をクラスターの HSM の数より少なく設定し、低いタイムアウト値を設定します。ただし、一部のリクエストでキーが生成されない場合があることに注意してください。  
デフォルト: 1  
必須: いいえ

**-m\$1value**  
ペアの秘密キーを使用する暗号化オペレーションを承認する必要があるユーザーの数を指定します。`0` から `8` までの値を入力します。  
このパラメータにより、プライベートキーのクォーラム認証要件が確立されます。デフォルト値、`0` で、キーのクォーラム認証機能を無効にします。クォーラム認証が有効になっている場合、指定された数のユーザーがトークンに署名して、プライベートキーを使用する暗号化オペレーション、およびプライベートキーを共有または共有解除するオペレーションを承認する必要があります。  
キーの `m_value` を見つけるには、[getKeyInfo](key_mgmt_util-getKeyInfo.md) を使用します。  
このパラメーターは、コマンドの `-u` パラメーターが `m_value` 要件を満たすのに十分なユーザーとキーペアを共有している場合にのみ有効です。  
デフォルト: 0  
必須: いいえ

**-nex**  
プライベートキーを抽出できなくなります。生成されたプライベートキーを [HSM からエクスポートする](export-keys.md) ことはできません。公開キーは常に抽出可能です。  
デフォルト: キーペアの公開キーとプライベートキーの両方が抽出可能です。  
必須: いいえ

**-sess**  
現在のセッションにのみ存在するキーを作成します。セッション終了後、キーをリカバリすることはできません。  
このパラメータは、別のキーを暗号化してからすばやく復号化するラッピングキーなど、キーが短時間だけ必要な場合に使用します。セッション終了後に復号する必要がある可能性のあるデータを暗号化するためにセッションキーを使用しないでください。  
セッションキーを永続(トークン)キーに変更するには、[setAttribute](key_mgmt_util-setAttribute.md) を使用します。  
デフォルト: キーは永続的です。  
必須: いいえ

**-timeout**  
キーが `min_srv` パラメータで指定された HSM の数に同期されるのをコマンドが待機する時間 (秒単位) を指定します。  
このパラメータは、`min_srv` パラメータがコマンドでも使用されている場合にのみ有効です。  
デフォルト: タイムアウトなし。このコマンドは無期限に待機し、キーが最小数のサーバーと同期されている場合にのみ戻ります。  
必須: いいえ

**-u**  
ペアのプライベートキーを指定されたユーザーと共有します。このパラメータは、他の HSM Crypto User (CU) に暗号化オペレーションでプライベートキーを使用する許可を与えます。公開キーは、共有なしですべてのユーザーが使用可能です。  
( -`u 5,6`などの) HSM ユーザー ID のカンマ区切りリストを入力します。現在のユーザーの HSM ユーザー ID を含めないでください。HSM で CU の HSM ユーザー ID を検索するには、[listUsers](key_mgmt_util-listUsers.md) を使用します。既存のキーを共有および共有解除するには、cloudhsm\$1mgmt\$1util で [shareKey](cloudhsm_mgmt_util-shareKey.md) を使用します。  
デフォルト: 現在のユーザーのみがプライベートキーを使用できます。  
必須: いいえ

**-attest**  
クラスターを実行するファームウェアが改ざんされていないことを確認する整合性チェックを実行します。  
デフォルト: 認証チェックなし。  
必須: いいえ

## 関連トピック
<a name="genECCKeyPair-seealso"></a>
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [genRSAKeyPair](key_mgmt_util-genRSAKeyPair.md)
+ [genDSAKeyPair](key_mgmt_util-genDSAKeyPair.md)