

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

# [データの暗号化]
<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 | 1,000 | 
| None | 488 | 744 | 1,000 | 

主な出力には、HexBinary 形式の暗号文として暗号化されたデータと、暗号化キーのチェックサム値が含まれます。使用可能なすべてのオプションの詳細については、「 API Guide for [Encrypt](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html)」を参照してください。

**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` に設定され、KeyUsage が `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` に設定され、KeyUsage が `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` に設定され、KeyUsage が `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"
}
```