

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

# Encrypt data
<a name="encrypt-data"></a>

 `Encrypt Data` API는 대칭 및 비대칭 데이터 암호화 키와 [DUKPT](terminology.md#terms.dukpt) 및 [EMV](terminology.md#terms.emv) 파생 키를 사용하여 데이터를 암호화하는 데 사용됩니다. `TDES`, `RSA`, `AES`를 비롯한 다양한 알고리즘과 변형이 지원됩니다.

기본 입력은 데이터를 암호화하는 데 사용되는 암호화 키, 암호화할 hexBinary 형식의 일반 텍스트 데이터, TDES와 같은 블록 암호의 초기화 벡터 및 모드와 같은 암호화 속성입니다. 일반 텍스트 데이터는의 경우 8바이트`TDES`,의 경우 16바이트`AES`,의 경우 키 길이의 배수여야 합니다`RSA`. 입력 데이터가 이러한 요구 사항을 충족하지 않는 경우 대칭 키 입력(TDES, AES, DUKPT, EMV)을 패딩해야 합니다. 다음 표에는 각 키 유형에 대한 일반 텍스트의 최대 길이와 RSA 키에 `EncryptionAttributes` 대해에서 정의하는 패딩 유형이 나와 있습니다.


| 패딩 유형 | RSA\$12048 | RSA\$13072 | RSA\$14096 | 
| --- | --- | --- | --- | 
| OAEP SHA1 | 428 | 684 | 940 | 
| OAEP SHA256 | 380 | 636 | 892 | 
| OAEP SHA512 | 252 | 508 | 764 | 
| PKCS1 | 488 | 744 | 1000 | 
| None | 488 | 744 | 1000 | 

기본 출력값에는 hexBinary 형식의 사이퍼텍스트로 암호화된 데이터와 암호화 키의 체크섬 값이 포함됩니다. 사용 가능한 모든 옵션에 대한 자세한 내용은 [암호화](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html)를 위한 API 가이드를 참조하세요.

**Topics**
+ [AES 대칭 키를 사용하여 데이터를 암호화합니다.](#w2aac15c16c11c13)
+ [DUKPT 키를 사용한 데이터 암호화](#w2aac15c16c11c15)
+ [EMV 파생 대칭 키를 사용하여 데이터 암호화](#w2aac15c16c11c17)
+ [RSA 키를 사용한 데이터 암호화](#crypto-ops.encrypt-rsa)

## AES 대칭 키를 사용하여 데이터를 암호화합니다.
<a name="w2aac15c16c11c13"></a>

**참고**  
 모든 예제에서는 관련 키가 이미 있다고 가정합니다. 키는 [CreateKey](create-keys.md) 작업을 사용하여 생성하거나 [ImportKey](keys-import.md) 작업을 사용하여 가져올 수 있습니다.

**Example**  
 이 예시에서는 [CreateKey](create-keys.md) 작업을 사용하여 생성했거나 [ImportKey](keys-import.md) 작업을 사용하여 가져온 대칭 키를 사용하여 일반 텍스트 데이터를 암호화합니다. 이 작업을 수행하려면 키의 KeyModesOfuse를 `Encrypt`로 설정하고 KeyUse를 `TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`로 설정해야 합니다. 자세한 옵션은 [암호화 작업을 위한 키](crypto-ops-validkeys-ops.md)를 참조하세요.  

```
$ aws payment-cryptography-data encrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --plain-text 31323334313233343132333431323334 --encryption-attributes 'Symmetric={Mode=CBC}'
```

```
         
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "71D7AE",
    "CipherText": "33612AB9D6929C3A828EB6030082B2BD"
}
```

## DUKPT 키를 사용한 데이터 암호화
<a name="w2aac15c16c11c15"></a>

**Example**  
 이 예제에서는 [DUKPT](terminology.md#terms.dukpt) 키를 사용하여 일반 텍스트 데이터를 암호화합니다. AWS Payment Cryptography는 `TDES` 및 `AES` DUKPT 키를 지원합니다. 이 작업을 수행하려면 키의 KeyModesOfuse를 `DeriveKey`로 설정하고 KeyUse를 `TR31_B0_BASE_DERIVATION_KEY`로 설정해야 합니다. 자세한 옵션은 [암호화 작업을 위한 키](crypto-ops-validkeys-ops.md)를 참조하세요.  

```
$ aws payment-cryptography-data encrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --plain-text 31323334313233343132333431323334 --encryption-attributes 'Dukpt={KeySerialNumber=FFFF9876543210E00001}'
```

```
         
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "71D7AE",
    "CipherText": "33612AB9D6929C3A828EB6030082B2BD"
}
```

## EMV 파생 대칭 키를 사용하여 데이터 암호화
<a name="w2aac15c16c11c17"></a>

**Example**  
 이 예제에서는 이미 생성된 EMV 파생 대칭 키를 사용하여 일반 텍스트 데이터를 암호화합니다. 이와 같은 명령을 사용하여 EMV 카드에 데이터를 전송할 수 있습니다. 이 작업을 수행하려면 키에 KeyModesOfUse가 로 설정되어 `Derive` 있고 KeyUsage가 `TR31_E1_EMV_MKEY_CONFIDENTIALITY` 또는 로 설정되어 있어야 합니다`TR31_E6_EMV_MKEY_OTHER`. 자세한 내용은 [암호화 작업용 키를 참조하세요](crypto-ops-validkeys-ops.md).  

```
$ aws payment-cryptography-data encrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --plain-text 33612AB9D6929C3A828EB6030082B2BD --encryption-attributes 'Emv={MajorKeyDerivationMode=EMV_OPTION_A,PanSequenceNumber=27,PrimaryAccountNumber=1000000000000432,SessionDerivationData=02BB000000000000, InitializationVector=1500000000000999,Mode=CBC}'
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "71D7AE",
    "CipherText": "33612AB9D6929C3A828EB6030082B2BD"
}
```

## RSA 키를 사용한 데이터 암호화
<a name="crypto-ops.encrypt-rsa"></a>

**Example**  
 이 예시에서는 [ImportKey](keys-import.md) 작업을 사용하여 가져온 [RSA 퍼블릭 키](terminology.md#terms.publickey)를 사용하여 일반 텍스트 데이터를 암호화합니다. 이 작업을 수행하려면 키의 KeyModesOfuse를 `Encrypt`로 설정하고 KeyUse를 `TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION`로 설정해야 합니다. 자세한 옵션은 [암호화 작업을 위한 키](crypto-ops-validkeys-ops.md)를 참조하세요.  
 PKCS \$17 또는 현재 지원되지 않는 기타 패딩 체계의 경우 서비스를 호출하기 전에 적용하고 패딩 표시기 * 'Asymmetric=\$1\$1'*을 생략하여 패딩 없음을 선택하세요.  

```
$ aws payment-cryptography-data encrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/thfezpmsalcfwmsg --plain-text 31323334313233343132333431323334 --encryption-attributes 'Asymmetric={PaddingType=OAEP_SHA256}'
```

```
     
{
 "CipherText": "12DF6A2F64CC566D124900D68E8AFEAA794CA819876E258564D525001D00AC93047A83FB13 \ 
 E73F06329A100704FA484A15A49F06A7A2E55A241D276491AA91F6D2D8590C60CDE57A642BC64A897F4832A3930 \ 
 0FAEC7981102CA0F7370BFBF757F271EF0BB2516007AB111060A9633D1736A9158042D30C5AE11F8C5473EC70F067 \ 
 72590DEA1638E2B41FAE6FB1662258596072B13F8E2F62F5D9FAF92C12BB70F42F2ECDCF56AADF0E311D4118FE3591 \ 
 FB672998CCE9D00FFFE05D2CD154E3120C5443C8CF9131C7A6A6C05F5723B8F5C07A4003A5A6173E1B425E2B5E42AD \ 
 7A2966734309387C9938B029AFB20828ACFC6D00CD1539234A4A8D9B94CDD4F23A",
 "KeyArn": "arn:aws:payment-cryptography:us-east-1:111122223333:key/5dza7xqd6soanjtb",
 "KeyCheckValue": "FF9DE9CE"
}
```