

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

# 키 생성
<a name="create-keys"></a>

 **CreateKey** API 작업을 사용하여 AWS Payment Cryptography 키를 생성할 수 있습니다. 키를 생성할 때 키 알고리즘, 키 사용, 허용된 작업, 내보내기 가능 여부와 같은 속성을 지정합니다. AWS Payment Cryptography 키를 생성한 후에는 이러한 속성을 변경할 수 없습니다.

**참고**  
에 대해 다중 리전 키 복제가 활성화되어 AWS 계정 있고 Payment Cryptography 키를 생성하는 경우이 키는 자동으로 [기본 리전 키(PRK)](terminology.md#term.prk)가 됩니다. PRK는 **CreateKey** 명령에 `--replication-regions` 파라미터를 지정하지 않은 경우에도 복제됩니다. 자세한 내용은 [다중 리전 키 복제 작동 방식](keys-multi-region-replication.md#how-mrr-works) 단원을 참조하십시오.

**Topics**
+ [3KEY TDES 기본 파생 키 생성](#3des-deriv-mrr-example)
+ [CVV/CVV2용 2KEY TDES 키 생성](#cvvkey-example)
+ [HMAC 키 생성](#hmac-example)
+ [AES-256 키 생성](#aes-example)
+ [PIN 암호화 키(PEK) 생성](#pekkey-example)
+ [비대칭(RSA) 키 생성](#asymmetrickey-example)
+ [PIN 확인 값(PVV) 키 생성](#pvv-example)
+ [비대칭 ECC 키 생성](#ECDH-example)

## 3KEY TDES 기본 파생 키 생성
<a name="3des-deriv-mrr-example"></a>

**Example**  
이 명령은 미국 동부(오하이오) 및 미국 서부(오레곤) 리전에 [복제](keys-multi-region-replication.md#how-mrr-works)될 3KEY TDES 파생 키를 생성합니다. 응답에는 reques 파라미터, 후속 호출을 위한 Amazon 리소스 이름(ARN), 키 확인 값(KCV)이 포함됩니다.  

```
$ aws payment-cryptography create-key --exportable --key-attributes \
     "KeyUsage=TR31_B0_BASE_DERIVATION_KEY, \ 
     KeyClass=SYMMETRIC_KEY,KeyAlgorithm=TDES_3KEY, \
     KeyModesOfUse={NoRestrictions=true}" \ 
     --replication-regions us-east-2 --region us-west-2
```
출력 예시:  

```
{
    "Key": {
        "CreateTimestamp": "2022-10-26T16:04:11.642000-07:00",
        "Enabled": true,
        "Exportable": true,
        "KeyArn": "FE23D3",
        "KeyAttributes": {
            "KeyAlgorithm": "TDES_3KEY",
            "KeyClass": "SYMMETRIC_KEY",
            "KeyModesOfUse": {
                "Decrypt": false,
                "DeriveKey": true,
                "Encrypt": false,
                "Generate": false,
                "NoRestrictions": false,
                "Sign": false,
                "Unwrap": false,
                "Verify": true,
                "Wrap": false
            },
            "KeyUsage": "TR31_B0_BASE_DERIVATION_KEY"
        },
        "KeyCheckValue": "FE23D3",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "KeyState": "CREATE_COMPLETE",
        "UsageStartTimestamp": "2022-10-26T16:04:11.559000-07:00"
}
```

## CVV/CVV2용 2KEY TDES 키 생성
<a name="cvvkey-example"></a>

**Example**  
이 명령은 CVV/CVV2 값을 생성하고 확인하기 위한 2KEY TDES 키를 생성합니다. 응답에는 요청 파라미터, 후속 호출을 위한 Amazon 리소스 이름(ARN) 및 키 확인 값(KCV)이 포함됩니다.  

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY, \
    KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY, \
    KeyModesOfUse='{Generate=true,Verify=true}'
```
출력 예시:  

```
{
    "Key": {
        "CreateTimestamp": "2022-10-26T16:04:11.642000-07:00",
        "Enabled": true,
        "Exportable": true,
        "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/7f7g4spf3xcklhzu",
        "KeyAttributes": {
            "KeyAlgorithm": "TDES_2KEY",
            "KeyClass": "SYMMETRIC_KEY",
            "KeyModesOfUse": {
                "Decrypt": false,
                "DeriveKey": false,
                "Encrypt": false,
                "Generate": true,
                "NoRestrictions": false,
                "Sign": false,
                "Unwrap": false,
                "Verify": true,
                "Wrap": false
            },
            "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY"
        },
        "KeyCheckValue": "AEA5CD",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "KeyState": "CREATE_COMPLETE",
        "UsageStartTimestamp": "2022-10-26T16:04:11.559000-07:00"
    }
}
```

## HMAC 키 생성
<a name="hmac-example"></a>

**Example**  
HMAC 키는 해시 메시지 인증 코드(HMAC)를 생성하거나 확인하는 데 사용됩니다. HMAC 키를 사용하면 키 생성 시 해시 유형(예: HMAC\$1SHA224 및 HMAC\$1SHA512)이 할당되며 수정할 수 없습니다.  

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=HMAC_SHA512,KeyUsage=TR31_M7_HMAC_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate = true,Verify = true}'
```
출력 예시:  

```
{
 "Key": {
 "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6",
 "KeyAttributes": {
 "KeyUsage": "TR31_M7_HMAC_KEY",
 "KeyClass": "SYMMETRIC_KEY",
 "KeyAlgorithm": "HMAC_SHA512",
 "KeyModesOfUse": {
 "Encrypt": false,
 "Decrypt": false,
 "Wrap": false,
 "Unwrap": false,
 "Generate": true,
 "Sign": false,
 "Verify": true,
 "DeriveKey": false,
 "NoRestrictions": false
 }
 },
 "KeyCheckValue": "2976E7",
 "KeyCheckValueAlgorithm": "HMAC",
 "Enabled": true,
 "Exportable": true,
 "KeyState": "CREATE_COMPLETE",
 "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
 "CreateTimestamp": "2025-07-30T10:06:12.142000-07:00",
 "UsageStartTimestamp": "2025-07-30T10:06:12.128000-07:00"
 }
}
```

## AES-256 키 생성
<a name="aes-example"></a>

**Example**  
이 명령은 데이터 암호화 및 복호화를 위한 AES-256 대칭 키를 생성합니다. AES 키는 민감한 데이터에 대한 강력한 암호화를 제공하며 카드 소지자 데이터 및 기타 민감한 정보를 암호화하는 결제 처리에 일반적으로 사용되지만 TDES는 EMV와 같은 발급자 사용 사례에 더 일반적으로 사용됩니다.  

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=AES_256,KeyUsage=TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Encrypt=true,Decrypt=true,Wrap=true,Unwrap=true}'
```
출력 예시:  

```
{
    "Key": {
        "CreateTimestamp": "2025-02-02T10:15:30.142000-08:00",
        "Enabled": true,
        "Exportable": true,
        "KeyArn": "arn:aws:payment-cryptography:us-east-1:111122223333:key/kwapwa6qaifllw2h",
        "KeyAttributes": {
            "KeyAlgorithm": "AES_256",
            "KeyClass": "SYMMETRIC_KEY",
            "KeyModesOfUse": {
                "Decrypt": true,
                "DeriveKey": false,
                "Encrypt": true,
                "Generate": false,
                "NoRestrictions": false,
                "Sign": false,
                "Unwrap": true,
                "Verify": false,
                "Wrap": true
            },
            "KeyUsage": "TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY"
        },
        "KeyCheckValue": "2976F5",
        "KeyCheckValueAlgorithm": "CMAC",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "KeyState": "CREATE_COMPLETE",
        "UsageStartTimestamp": "2025-02-02T10:15:30.128000-08:00"
    }
}
```

## PIN 암호화 키(PEK) 생성
<a name="pekkey-example"></a>

**Example**  
이 명령은 PIN 값을 암호화하기 위한 3KEY TDES 키를 생성하지만 핀 키는 상호 운용성 요구 사항에 따라 AES일 수도 있습니다. 이 키를 사용하여 트랜잭션에서와 같이 확인 중에 PINs 안전하게 저장하거나 PINs 해독할 수 있습니다. 응답에는 요청 파라미터, 후속 호출을 위한 ARN 및 KCV가 포함됩니다.  

```
$ aws payment-cryptography create-key --exportable --key-attributes \
    KeyAlgorithm=TDES_3KEY,KeyUsage=TR31_P0_PIN_ENCRYPTION_KEY, \
    KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Encrypt=true,Decrypt=true,Wrap=true,Unwrap=true}'
```
출력 예시:  

```
{
    "Key": {
        "CreateTimestamp": "2022-10-27T08:27:51.795000-07:00",
        "Enabled": true,
        "Exportable": true,
        "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
        "KeyAttributes": {
            "KeyAlgorithm": "TDES_3KEY",
            "KeyClass": "SYMMETRIC_KEY",
            "KeyModesOfUse": {
                "Decrypt": true,
                "DeriveKey": false,
                "Encrypt": true,
                "Generate": false,
                "NoRestrictions": false,
                "Sign": false,
                "Unwrap": true,
                "Verify": false,
                "Wrap": true
            },
            "KeyUsage": "TR31_P0_PIN_ENCRYPTION_KEY"
        },
        "KeyCheckValue": "7CC9E2",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "KeyState": "CREATE_COMPLETE",
        "UsageStartTimestamp": "2022-10-27T08:27:51.753000-07:00"
    }
}
```

## 비대칭(RSA) 키 생성
<a name="asymmetrickey-example"></a>

**Example**  
이 명령은 새로운 비대칭 RSA 2048비트 키 페어를 생성합니다. 새 프라이빗 키와 일치하는 퍼블릭 키를 생성합니다. [getPublicCertificate](keys.getpubliccertificate-example.md) API를 사용하여 퍼블릭 키를 검색할 수 있습니다.  

```
$ aws payment-cryptography create-key --exportable \
    --key-attributes KeyAlgorithm=RSA_2048,KeyUsage=TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION, \
    KeyClass=ASYMMETRIC_KEY_PAIR,KeyModesOfUse='{Encrypt=true, Decrypt=True,Wrap=True,Unwrap=True}'
```
출력 예시:  

```
{
    "Key": {
        "CreateTimestamp": "2022-11-15T11:15:42.358000-08:00",
        "Enabled": true,
        "Exportable": true,
        "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/nsq2i3mbg6sn775f",
        "KeyAttributes": {
            "KeyAlgorithm": "RSA_2048",
            "KeyClass": "ASYMMETRIC_KEY_PAIR",
            "KeyModesOfUse": {
                "Decrypt": true,
                "DeriveKey": false,
                "Encrypt": true,
                "Generate": false,
                "NoRestrictions": false,
                "Sign": false,
                "Unwrap": true,
                "Verify": false,
                "Wrap": true
            },
            "KeyUsage": "TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION"
        },
        "KeyCheckValue": "40AD487F",
        "KeyCheckValueAlgorithm": "SHA-1",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "KeyState": "CREATE_COMPLETE",
        "UsageStartTimestamp": "2022-11-15T11:15:42.182000-08:00"
    }
}
```

## PIN 확인 값(PVV) 키 생성
<a name="pvv-example"></a>

**Example**  
이 명령은 PVV 값을 생성하기 위한 3KEY TDES 키를 생성합니다. 이 키를 사용하여 이후에 계산된 PVV와 비교할 수 있는 PVV를 생성할 수 있습니다. 응답에는 요청 파라미터, 후속 호출을 위한 ARN 및 KCV가 포함됩니다.  

```
$ aws payment-cryptography create-key --exportable \
    --key-attributes KeyAlgorithm=TDES_3KEY,KeyUsage=TR31_V2_VISA_PIN_VERIFICATION_KEY, \
    KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}'
```
출력 예시:  

```
{
    "Key": {
        "CreateTimestamp": "2022-10-27T10:22:59.668000-07:00",
        "Enabled": true,
        "Exportable": true,
        "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2",
        "KeyAttributes": {
            "KeyAlgorithm": "TDES_3KEY",
            "KeyClass": "SYMMETRIC_KEY",
            "KeyModesOfUse": {
                "Decrypt": false,
                "DeriveKey": false,
                "Encrypt": false,
                "Generate": true,
                "NoRestrictions": false,
                "Sign": false,
                "Unwrap": false,
                "Verify": true,
                "Wrap": false
            },
            "KeyUsage": "TR31_V2_VISA_PIN_VERIFICATION_KEY"
        },
        "KeyCheckValue": "7F2363",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "KeyState": "CREATE_COMPLETE",
        "UsageStartTimestamp": "2022-10-27T10:22:59.614000-07:00"
    }
}
```

## 비대칭 ECC 키 생성
<a name="ECDH-example"></a>

**Example**  
이 명령은 두 당사자 간에 ECDH(Elliptic Curve Diffie-Hellman) 키 계약을 설정하기 위한 ECC 키 페어를 생성합니다. ECDH를 사용하면 각 당사자는 키 목적 K3 및 사용 모드 X로 자체 ECC 키 페어를 생성하고 퍼블릭 키를 교환합니다. 그런 다음 양 당사자는 프라이빗 키와 수신된 퍼블릭 키를 사용하여 공유 파생 키를 설정합니다.  
결제 시 암호화 키의 일회용 원칙을 유지하려면 ECDH 키 유도 및 서명과 같은 여러 용도로 ECC 키 페어를 재사용하지 않는 것이 좋습니다.  

```
$ aws payment-cryptography create-key --exportable \
    --key-attributes KeyAlgorithm=ECC_NIST_P256,KeyUsage=TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT, \
    KeyClass=ASYMMETRIC_KEY_PAIR,KeyModesOfUse='{DeriveKey=true}'
```
출력 예시:  

```
{
    "Key": {
        "CreateTimestamp": "2024-10-17T01:31:55.908000+00:00",
        "Enabled": true,
        "Exportable": true,
        "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv",
        "KeyAttributes": {
            "KeyAlgorithm": "ECC_NIST_P256",
            "KeyClass": "ASYMMETRIC_KEY_PAIR",
            "KeyModesOfUse": {
                "Decrypt": false,
                "DeriveKey": true,
                "Encrypt": false,
                "Generate": false,
                "NoRestrictions": false,
                "Sign": false,
                "Unwrap": false,
                "Verify": false,
                "Wrap": false
            },
            "KeyUsage": "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT"
        },
        "KeyCheckValue": "7E34F19F",
        "KeyCheckValueAlgorithm": "SHA-1",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "KeyState": "CREATE_COMPLETE",
        "UsageStartTimestamp": "2024-10-17T01:31:55.866000+00:00"
    }
}
```