

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Enkripsi, Dekripsi, dan Enkripsi Ulang Data
<a name="crypto-ops.encryptdecrypt"></a>

Metode enkripsi dan dekripsi dapat digunakan untuk mengenkripsi atau mendekripsi data menggunakan berbagai teknik simetris dan asimetris termasuk TDES, AES dan RSA. Metode ini juga mendukung kunci yang diturunkan menggunakan teknik [DUKPT](terminology.md#terms.dukpt) dan [EMV](terminology.md#terms.emv). Untuk kasus penggunaan di mana Anda ingin mengamankan data di bawah kunci baru tanpa mengekspos data yang mendasarinya, ReEncrypt perintah juga dapat digunakan.

**catatan**  
 Saat menggunakan encrypt/decrypt fungsi, semua input diasumsikan berada di HexBinary - misalnya nilai 1 akan dimasukkan sebagai 31 (hex) dan huruf kecil t direpresentasikan sebagai 74 (hex). Semua output ada di HexBinary juga. 

[Untuk detail tentang semua opsi yang tersedia, silakan baca Panduan API untuk [Enkripsi, Dekripsi](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html)[, dan Enkripsi](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DecryptData.html) Ulang.](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_ReEncryptData.html) 

**Topics**
+ [Enkripsi data](encrypt-data.md)
+ [Dekripsi data](decrypt-data.md)

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

 `Encrypt Data`[API digunakan untuk mengenkripsi data menggunakan kunci enkripsi data simetris dan asimetris serta kunci turunan [DUKPT](terminology.md#terms.dukpt) dan EMV.](terminology.md#terms.emv) Berbagai algoritma dan variasi didukung termasuk`TDES`, `RSA` dan`AES`.

Input utama adalah kunci enkripsi yang digunakan untuk mengenkripsi data, data teks biasa dalam format HexBinary yang akan dienkripsi dan atribut enkripsi seperti vektor inisialisasi dan mode untuk sandi blok seperti TDES. Data plaintext harus dalam kelipatan 8 byte untuk`TDES`, 16 byte untuk `AES` dan panjang kunci dalam kasus. `RSA` Input kunci simetris (TDES, AES, DUKPT, EMV) harus empuk dalam kasus di mana data input tidak memenuhi persyaratan ini. Tabel berikut menunjukkan panjang maksimum plaintext untuk setiap jenis kunci dan jenis padding yang Anda tentukan `EncryptionAttributes` untuk kunci RSA.


| Jenis bantalan | 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 | 

Output utama termasuk data terenkripsi sebagai ciphertext dalam format HexBinary dan nilai checksum untuk kunci enkripsi. Untuk detail tentang semua opsi yang tersedia, silakan baca Panduan API untuk [Enkripsi](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html). 

**Topics**
+ [Enkripsi data menggunakan kunci simetris AES](#w2aac15c16c11c13)
+ [Enkripsi data menggunakan kunci DUKPT](#w2aac15c16c11c15)
+ [Enkripsi data menggunakan kunci simetris turunan EMV](#w2aac15c16c11c17)
+ [Enkripsi data menggunakan kunci RSA](#crypto-ops.encrypt-rsa)

## Enkripsi data menggunakan kunci simetris AES
<a name="w2aac15c16c11c13"></a>

**catatan**  
 Semua contoh mengasumsikan kunci yang relevan sudah ada. Kunci dapat dibuat menggunakan [CreateKey](create-keys.md)operasi atau diimpor menggunakan [ImportKey](keys-import.md)operasi. 

**Example**  
 Dalam contoh ini, kita akan mengenkripsi data plaintext menggunakan kunci simetris yang telah dibuat menggunakan [CreateKey](create-keys.md)Operasi atau diimpor menggunakan Operasi. [ImportKey](keys-import.md) Untuk operasi ini, kunci harus KeyModesOfUse disetel ke `Encrypt` dan KeyUsage disetel ke`TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`. Silakan lihat [Kunci untuk Operasi Kriptografi](crypto-ops-validkeys-ops.md) untuk opsi lainnya.   

```
$ 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"
}
```

## Enkripsi data menggunakan kunci DUKPT
<a name="w2aac15c16c11c15"></a>

**Example**  
 [Dalam contoh ini, kita akan mengenkripsi data plaintext menggunakan kunci DUKPT.](terminology.md#terms.dukpt) AWS Dukungan Kriptografi Pembayaran `TDES` dan kunci `AES` DUKPT. Untuk operasi ini, kunci harus KeyModesOfUse disetel ke `DeriveKey` dan KeyUsage disetel ke`TR31_B0_BASE_DERIVATION_KEY`. Silakan lihat [Kunci untuk Operasi Kriptografi](crypto-ops-validkeys-ops.md) untuk opsi lainnya.   

```
$ 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"
}
```

## Enkripsi data menggunakan kunci simetris turunan EMV
<a name="w2aac15c16c11c17"></a>

**Example**  
 Dalam contoh ini, kita akan mengenkripsi data teks yang jelas menggunakan kunci simetris turunan EMV yang telah dibuat. Anda dapat menggunakan perintah seperti ini untuk mengirim data ke kartu EMV. Untuk operasi ini, kunci harus KeyModesOfUse disetel ke `Derive` dan KeyUsage disetel ke `TR31_E1_EMV_MKEY_CONFIDENTIALITY` atau`TR31_E6_EMV_MKEY_OTHER`. Silakan lihat [Kunci untuk Operasi Kriptografi](crypto-ops-validkeys-ops.md) untuk lebih jelasnya.   

```
$ 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"
}
```

## Enkripsi data menggunakan kunci RSA
<a name="crypto-ops.encrypt-rsa"></a>

**Example**  
 Dalam contoh ini, kita akan mengenkripsi data plaintext menggunakan [kunci publik RSA](terminology.md#terms.publickey) yang telah diimpor menggunakan operasi. [ImportKey](keys-import.md) Untuk operasi ini, kunci harus KeyModesOfUse disetel ke `Encrypt` dan KeyUsage disetel ke`TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION`. Silakan lihat [Kunci untuk Operasi Kriptografi](crypto-ops-validkeys-ops.md) untuk opsi lainnya.   
 *Untuk PKCS \$17 atau skema padding lainnya yang saat ini tidak didukung, mohon terapkan sebelum memanggil layanan dan pilih no padding dengan menghilangkan indikator padding '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"
}
```

# Dekripsi data
<a name="decrypt-data"></a>

 `Decrypt Data`[API digunakan untuk mendekripsi data menggunakan kunci enkripsi data simetris dan asimetris serta kunci turunan [DUKPT](terminology.md#terms.dukpt) dan EMV.](terminology.md#terms.emv) Berbagai algoritma dan variasi didukung termasuk`TDES`, `RSA` dan`AES`.

 Input utama adalah kunci dekripsi yang digunakan untuk mendekripsi data, data ciphertext dalam format HexBinary yang akan didekripsi dan atribut dekripsi seperti vektor inisialisasi, mode sebagai cipher blok dll. Output utama termasuk data yang didekripsi sebagai plaintext dalam format HexBinary dan nilai checksum untuk kunci dekripsi. Untuk detail tentang semua opsi yang tersedia, silakan baca Panduan API untuk [Dekripsi](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DecryptData.html). 

**Topics**
+ [Dekripsi data menggunakan kunci simetris AES](#w2aac15c16c13b9)
+ [Dekripsi data menggunakan kunci DUKPT](#w2aac15c16c13c11)
+ [Dekripsi data menggunakan kunci simetris turunan EMV](#w2aac15c16c13c13)
+ [Dekripsi data menggunakan kunci RSA](#crypto-ops.decrypt-rsa)

## Dekripsi data menggunakan kunci simetris AES
<a name="w2aac15c16c13b9"></a>

**Example**  
 Dalam contoh ini, kita akan mendekripsi data ciphertext menggunakan kunci simetris. Contoh ini menunjukkan `AES` kunci tetapi `TDES_2KEY` dan `TDES_3KEY` juga didukung. Untuk operasi ini, kunci harus KeyModesOfUse disetel ke `Decrypt` dan KeyUsage disetel ke`TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`. Silakan lihat [Kunci untuk Operasi Kriptografi](crypto-ops-validkeys-ops.md) untuk opsi lainnya.   

```
$ aws payment-cryptography-data decrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --cipher-text 33612AB9D6929C3A828EB6030082B2BD --decryption-attributes 'Symmetric={Mode=CBC}'
```

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

## Dekripsi data menggunakan kunci DUKPT
<a name="w2aac15c16c13c11"></a>

**catatan**  
 Menggunakan data dekripsi dengan DUKPT untuk transaksi P2PE dapat mengembalikan PAN kartu kredit dan data pemegang kartu lainnya ke aplikasi Anda yang perlu dipertanggungjawabkan saat menentukan cakupan PCI DSS-nya. 

**Example**  
 Dalam contoh ini, kita akan mendekripsi data ciphertext menggunakan kunci [DUKPT](terminology.md#terms.dukpt) yang telah dibuat menggunakan [CreateKey](create-keys.md)Operasi atau diimpor menggunakan Operasi. [ImportKey](keys-import.md) Untuk operasi ini, kunci harus KeyModesOfUse disetel ke `DeriveKey` dan KeyUsage disetel ke`TR31_B0_BASE_DERIVATION_KEY`. Silakan lihat [Kunci untuk Operasi Kriptografi](crypto-ops-validkeys-ops.md) untuk opsi lainnya. Bila Anda menggunakan`DUKPT`, untuk `TDES` algoritma, panjang data ciphertext harus kelipatan 16 byte. Untuk `AES` algoritma, panjang data ciphertext harus kelipatan 32 byte.   

```
$ aws payment-cryptography-data decrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --cipher-text 33612AB9D6929C3A828EB6030082B2BD --decryption-attributes 'Dukpt={KeySerialNumber=FFFF9876543210E00001}'
```

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

## Dekripsi data menggunakan kunci simetris turunan EMV
<a name="w2aac15c16c13c13"></a>

**Example**  
 Dalam contoh ini, kita akan mendekripsi data ciphertext menggunakan kunci simetris turunan EMV yang telah dibuat menggunakan operasi atau diimpor menggunakan operasi. [CreateKey[ImportKey](keys-import.md)](create-keys.md) Untuk operasi ini, kunci harus KeyModesOfUse disetel ke `Derive` dan KeyUsage disetel ke `TR31_E1_EMV_MKEY_CONFIDENTIALITY` atau`TR31_E6_EMV_MKEY_OTHER`. Silakan lihat [Kunci untuk Operasi Kriptografi](crypto-ops-validkeys-ops.md) untuk lebih jelasnya.   

```
$ aws payment-cryptography-data decrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --cipher-text 33612AB9D6929C3A828EB6030082B2BD --decryption-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",
"PlainText": "31323334313233343132333431323334"
}
```

## Dekripsi data menggunakan kunci RSA
<a name="crypto-ops.decrypt-rsa"></a>

**Example**  
 Dalam contoh ini, kita akan mendekripsi data ciphertext menggunakan [key pair](terminology.md#terms.privatekey) RSA yang telah dibuat menggunakan operasi. [CreateKey](create-keys.md) Untuk operasi ini, kunci harus KeyModesOfUse disetel untuk mengaktifkan `Decrypt` dan KeyUsage mengatur ke`TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION`. Silakan lihat [Kunci untuk Operasi Kriptografi](crypto-ops-validkeys-ops.md) untuk opsi lainnya.   
 Untuk PKCS \$17 atau skema padding lainnya yang saat ini tidak didukung, pilih no padding dengan menghilangkan indikator padding *'Asymmetric= \$1\$1* 'dan hapus padding setelah memanggil layanan.   

```
$ aws payment-cryptography-data decrypt-data \ 
        --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5dza7xqd6soanjtb --cipher-text 8F4C1CAFE7A5DEF9A40BEDE7F2A264635C... \ 
        --decryption-attributes 'Asymmetric={PaddingType=OAEP_SHA256}'
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-1:111122223333:key/5dza7xqd6soanjtb",
    "KeyCheckValue": "FF9DE9CE",
    "PlainText": "31323334313233343132333431323334"
}
```