

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

# Membuat kunci
<a name="create-keys"></a>

 Anda dapat membuat kunci Kriptografi AWS Pembayaran menggunakan operasi **CreateKey** API. Saat Anda membuat kunci, Anda menentukan atribut seperti algoritme kunci, penggunaan kunci, operasi yang diizinkan, dan apakah itu dapat diekspor. Anda tidak dapat mengubah properti ini setelah Anda membuat kunci Kriptografi AWS Pembayaran. 

**catatan**  
Jika replikasi Multi-Region kunci diaktifkan untuk Anda Akun AWS dan Anda membuat kunci Kriptografi Pembayaran, kunci ini akan secara otomatis menjadi [kunci Wilayah Utama (PRK](terminology.md#term.prk)). PRK direplikasi bahkan jika Anda tidak menentukan `--replication-regions` parameter dalam perintah. **CreateKey** Untuk informasi selengkapnya, lihat [Cara Multi-Region kerja replikasi kunci](keys-multi-region-replication.md#how-mrr-works).

**Topics**
+ [Membuat kunci derivasi dasar 3KEY TDES](#3des-deriv-mrr-example)
+ [Membuat kunci 2KEY TDES untuk CVV/CVV2](#cvvkey-example)
+ [Membuat kunci HMAC](#hmac-example)
+ [Membuat AES-256 kunci](#aes-example)
+ [Membuat Kunci Enkripsi PIN (PEK)](#pekkey-example)
+ [Membuat kunci asimetris (RSA)](#asymmetrickey-example)
+ [Membuat Kunci Nilai Verifikasi PIN (PVV)](#pvv-example)
+ [Membuat kunci ECC asimetris](#ECDH-example)

## Membuat kunci derivasi dasar 3KEY TDES
<a name="3des-deriv-mrr-example"></a>

**Example**  
Perintah ini menciptakan kunci derivasi 3KEY TDES yang akan [direplikasi](keys-multi-region-replication.md#how-mrr-works) ke wilayah AS Timur (Ohio) dan AS Barat (Oregon). Respons tersebut mencakup parameter reques, Amazon Resource Name (ARN) untuk panggilan berikutnya, dan Key Check Value (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
```
Contoh output:  

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

## Membuat kunci 2KEY TDES untuk CVV/CVV2
<a name="cvvkey-example"></a>

**Example**  
Perintah ini membuat kunci TDES 2KEY untuk menghasilkan dan memverifikasi CVV/CVV2 nilai. Respons tersebut mencakup parameter permintaan, Nama Sumber Daya Amazon (ARN) untuk panggilan berikutnya, dan Nilai Pemeriksaan Kunci (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}'
```
Contoh output:  

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

## Membuat kunci HMAC
<a name="hmac-example"></a>

**Example**  
Kunci HMAC digunakan untuk menghasilkan atau memverifikasi kode otentikasi pesan hash (HMAC). Dengan kunci HMAC, jenis hash ditetapkan pada saat pembuatan kunci (seperti HMAC\_SHA224 dan HMAC\_SHA512) dan tidak dapat dimodifikasi.   

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

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

## Membuat AES-256 kunci
<a name="aes-example"></a>

**Example**  
Perintah ini menciptakan kunci AES-256 simetris untuk enkripsi dan dekripsi data. Kunci AES menyediakan enkripsi yang kuat untuk data sensitif dan biasanya digunakan dalam pemrosesan pembayaran untuk mengenkripsi data pemegang kartu dan informasi sensitif lainnya, namun TDES lebih umum digunakan untuk kasus penggunaan penerbit seperti 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}'
```
Contoh output:  

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

## Membuat Kunci Enkripsi PIN (PEK)
<a name="pekkey-example"></a>

**Example**  
Perintah ini membuat kunci TDES 3KEY untuk mengenkripsi nilai PIN meskipun tombol pin juga dapat berupa AES tergantung pada kebutuhan Anda akan interoperabilitas. Anda dapat menggunakan kunci ini untuk menyimpan PIN atau mendekripsi PIN dengan aman selama verifikasi, seperti dalam transaksi. Respons termasuk parameter permintaan, ARN untuk panggilan berikutnya, dan 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}'
```
Contoh output:  

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

## Membuat kunci asimetris (RSA)
<a name="asymmetrickey-example"></a>

**Example**  
Perintah ini menghasilkan key pair asimetris RSA 2048-bit baru. Ini menciptakan kunci pribadi baru dan kunci publik yang cocok. Anda dapat mengambil kunci publik menggunakan [get PublicCertificate](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}'
```
Contoh output:  

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

## Membuat Kunci Nilai Verifikasi PIN (PVV)
<a name="pvv-example"></a>

**Example**  
Perintah ini menciptakan kunci TDES 3KEY untuk menghasilkan nilai PVV. Anda dapat menggunakan kunci ini untuk menghasilkan PVV yang dapat dibandingkan dengan PVV yang dihitung selanjutnya. Respons termasuk parameter permintaan, ARN untuk panggilan berikutnya, dan 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}'
```
Contoh output:  

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

## Membuat kunci ECC asimetris
<a name="ECDH-example"></a>

**Example**  
Perintah ini menghasilkan key pair ECC untuk membuat perjanjian kunci ECDH (Elliptic Curve Diffie-Hellman) antara dua pihak. Dengan ECDH, masing-masing pihak menghasilkan key pair ECC sendiri dengan tujuan utama K3 dan mode penggunaan X, dan mereka bertukar kunci publik. Kedua belah pihak kemudian menggunakan kunci pribadi mereka dan kunci publik yang diterima untuk membuat kunci turunan bersama.  
Untuk mempertahankan prinsip penggunaan tunggal kunci kriptografi dalam pembayaran, kami merekomendasikan untuk tidak menggunakan kembali pasangan kunci ECC untuk berbagai tujuan, seperti derivasi dan penandatanganan kunci ECDH.  

```
$ 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}'
```
Contoh output:  

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