

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# KMU를 사용하여 AWS CloudHSM RSA 키 페어 생성
<a name="key_mgmt_util-genRSAKeyPair"></a>

 AWS CloudHSM key\$1mgmt\$1util 도구의 **genRSAKeyPair** 명령을 사용하여 [RSA](https://en.wikipedia.org/wiki/RSA_(cryptosystem)) 비대칭 키 페어를 생성합니다. 사용자는 키 유형, 모듈러스 길이 및 퍼블릭 지수를 지정합니다. 이 명령은 지정된 길이의 모듈러스를 생성하고 키 페어를 생성합니다. ID를 할당하고, 다른 HSM 사용자와 키를 공유하고, 추출할 수 없는 키를 생성하고, 세션이 끝날 때 만료되는 키를 생성할 수 있습니다. 명령이 성공하면 HSM이 키에 할당하는 키 핸들이 반환됩니다. 키 핸들을 사용하여 다른 명령에 대한 키를 식별할 수 있습니다.

key\$1mgmt\$1util 명령을 실행하기 전에 [key\$1mgmt\$1util을 시작](key_mgmt_util-setup.md#key_mgmt_util-start)하고 CU(Crypto User)로 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="genRSAKeyPair-syntax"></a>

```
genRSAKeyPair -h

genRSAKeyPair -m <modulus length>
              -e <public exponent> 
              -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="genRSAKeyPair-examples"></a>

다음 예제는 **genRSAKeyPair**를 사용하여 HSM에서 비대칭 키 페어를 생성하는 방법을 보여 줍니다.

**Example : RSA 키 페어 생성 및 검사**  
이 명령은 모듈러스가 2048비트이고 지수가 65537인 RSA 키 페어를 생성합니다. 출력은 퍼블릭 키 핸들이 `2100177`이고 프라이빗 키 핸들이 `2100426`임을 보여 줍니다.  

```
Command: genRSAKeyPair -m 2048 -e 65537 -l rsa_test 

Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 2100177    private key handle: 2100426

        Cluster Status:
        Node id 0 status: 0x00000000 : HSM Return: SUCCESS
        Node id 1 status: 0x00000000 : HSM Return: SUCCESS
```
다음 명령은 [getAttribute](key_mgmt_util-getAttribute.md)를 사용하여 방금 생성한 퍼블릭 키의 속성을 가져옵니다. 이 명령은 `attr_2100177` 파일에 출력을 기록합니다. 이어서 **cat** 명령이 속성 파일의 내용을 가져옵니다. 키 속성 해석에 대한 도움말은 [AWS CloudHSM KMU에 대한 키 속성 참조](key-attribute-table.md) 섹션을 참조하십시오.  
결과 16진수 값은 이 키가 퍼블릭 키(`OBJ_ATTR_CLASS 0x02`)이고 유형이 RSA(`OBJ_ATTR_KEY_TYPE 0x00`)임을 확인해 줍니다. 이 퍼블릭 키를 사용하여 암호화(`OBJ_ATTR_ENCRYPT 0x01`)는 할 수 있지만 암호 해독(`OBJ_ATTR_DECRYPT 0x00`)은 할 수 없습니다. 결과는 키 길이(512, `0x200`), 모듈러스, 모듈러스 길이(2048, `0x800`), 퍼블릭 지수(65537, `0x10001`)도 포함합니다.  

```
Command:  getAttribute -o 2100177 -a 512 -out attr_2100177

Attribute size: 801, count: 26
Written to: attr_2100177 file

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS

$  cat attr_2100177
OBJ_ATTR_CLASS
0x02
OBJ_ATTR_KEY_TYPE
0x00
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x01
OBJ_ATTR_DECRYPT
0x00
OBJ_ATTR_WRAP
0x01
OBJ_ATTR_UNWRAP
0x00
OBJ_ATTR_SIGN
0x00
OBJ_ATTR_VERIFY
0x01
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x00
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
rsa_test
OBJ_ATTR_ID

OBJ_ATTR_VALUE_LEN
0x00000200
OBJ_ATTR_KCV
0xc51c18
OBJ_ATTR_MODULUS
0xbb9301cc362c1d9724eb93da8adab0364296bde7124a241087d9436b9be57e4f7780040df03c2c
1c0fe6e3b61aa83c205280119452868f66541bbbffacbbe787b8284fc81deaeef2b8ec0ba25a077d
6983c77a1de7b17cbe8e15b203868704c6452c2810344a7f2736012424cf0703cf15a37183a1d2d0
97240829f8f90b063dd3a41171402b162578d581980976653935431da0c1260bfe756d85dca63857
d9f27a541676cb9c7def0ef6a2a89c9b9304bcac16fdf8183c0a555421f9ad5dfeb534cf26b65873
970cdf1a07484f1c128b53e10209cc6f7ac308669112968c81a5de408e7f644fe58b1a9ae1286fec
b3e4203294a96fae06f8f0db7982cb5d7f
OBJ_ATTR_MODULUS_BITS
0x00000800
OBJ_ATTR_PUBLIC_EXPONENT
0x010001
OBJ_ATTR_TRUSTED
0x00
OBJ_ATTR_WRAP_WITH_TRUSTED
0x00
OBJ_ATTR_DESTROYABLE
0x01
OBJ_ATTR_DERIVE
0x00
OBJ_ATTR_ALWAYS_SENSITIVE
0x00
OBJ_ATTR_NEVER_EXTRACTABLE
0x00
```

**Example : 공유 RSA 키 페어 생성**  
이 명령은 RSA 키 페어를 생성하고 프라이빗 키를 HSM의 다른 CU인 사용자 4와 공유합니다. 이 명령은 `m_value` 파라미터를 사용하여 페어의 프라이빗 키를 암호화 작업 사용하기 위해 최소 2개의 승인을 요구합니다. `m_value` 파라미터를 사용할 때 명령에 `-u`도 사용해야 합니다. 그래야 `m_value`가 총 사용자 수(`-u` 값 \$1 소유자)를 초과하지 않습니다.  

```
 Command:  genRSAKeyPair -m 2048 -e 65537 -l rsa_mofn -id rsa_mv2 -u 4 -m_value 2

        Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 27    private key handle: 28

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
```

## 파라미터
<a name="genRSAKeyPair-params"></a>

**-h**  
명령에 대한 도움말을 표시합니다.  
필수 항목 여부: 예

**-m**  
모듈러스 길이를 비트 단위로 지정합니다. 최소값은 2048입니다.  
필수 항목 여부: 예

**-e**  
퍼블릭 지수를 지정합니다. 값은 65537 이상의 홀수여야 합니다.  
필수 항목 여부: 예

**-l**  
키 페어에 대해 사용자 정의 레이블을 지정합니다. 문자열을 입력합니다. 같은 레이블이 페어의 두 키에 적용됩니다. `label`에 허용되는 최대 크기는 127자입니다.  
키 식별을 지원하는 임의의 문구를 사용할 수 있습니다. 레이블이 고유할 필요는 없으므로 이를 그룹에 사용하여 키를 분류할 수 있습니다.  
필수 항목 여부: 예

**-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 CU(Crypto User)에게 암호화 작업에 프라이빗 키를 사용할 수 있는 권한을 부여합니다. 퍼블릭 키는 공유하지 않고도 모든 사용자와 공유할 수 있습니다.  
`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="genRSAKeyPair-seealso"></a>
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [genDSAKeyPair](key_mgmt_util-genDSAKeyPair.md)
+ [genECCKeyPair](key_mgmt_util-genECCKeyPair.md)