

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

# Mekanisme yang didukung untuk pustaka PKCS \$111 untuk SDK AWS CloudHSM Klien 5
<a name="pkcs11-mechanisms"></a>

Pustaka PKCS \$111 sesuai dengan spesifikasi PKCS \$111 versi 2.40. Untuk memanggil fitur kriptografi menggunakan PKCS \$111, panggil fungsi dengan mekanisme tertentu. Bagian berikut merangkum kombinasi fungsi dan mekanisme yang didukung oleh AWS CloudHSM Client SDK 5. 

Pustaka PKCS \$111 mendukung algoritme berikut ini:
+ **Enkripsi dan dekripsi** — AES-CBC, AES-CTR, AES-ECB, AES-GCM, -CBC, -ECB, RSA-OAEP, dan RSA-PKCS DES3 DES3
+ **Tanda tangani dan verifikasi**- RSA, HMAC, dan ECDSA; dengan dan tanpa hashing
+ **Hash/digest** — SHA1,,, SHA224, dan SHA256 SHA384 SHA512
+ **Bungkus kunci**— Bungkus Kunci AES,[1](#mech1)AES-GCM, RSA-AES, dan RSA-OAEP
+ **Derivasi kunci** — SP800 -108 Counter KDF dan ECDH dengan KDF (Algoritma KDF yang didukung adalah X9.63 dengan,,,,) SHA1 SHA224 SHA256 SHA384 SHA512

**Topics**
+ [Menghasilkan fungsi key dan key pair](#pkcs11-mech-function-genkey)
+ [Tanda tangani dan verifikasi fungsi](#pkcs11-mech-function-signverify)
+ [Tanda tangani pemulihan dan verifikasi fungsi pemulihan](#pkcs11-mech-function-sr-vr)
+ [Fungsi mencerna](#pkcs11-mech-function-digest)
+ [Enkripsi dan dekripsi fungsi](#pkcs11-mech-function-enc-dec)
+ [Turunkan fungsi kunci](#pkcs11-mech-function-derive-key)
+ [Fungsi Bungkus dan Buka Bungkus](#pkcs11-mech-function-wrap-unwrap)
+ [Ukuran data maksimum untuk setiap mekanisme](#pkcs11-mech-max)
+ [Anotasi mekanisme](#pkcs11-mech-annotations)

## Menghasilkan fungsi key dan key pair
<a name="pkcs11-mech-function-genkey"></a>

Pustaka AWS CloudHSM perangkat lunak untuk pustaka PKCS \$111 memungkinkan Anda menggunakan mekanisme berikut untuk fungsi Generate Key dan Key Pair.
+ `CKM_RSA_PKCS_KEY_PAIR_GEN`
+ `CKM_RSA_X9_31_KEY_PAIR_GEN`Mekanisme ini secara fungsional identik dengan `CKM_RSA_PKCS_KEY_PAIR_GEN` mekanisme, tetapi menawarkan jaminan yang lebih kuat untuk `p` dan `q` generasi.
+ `CKM_EC_KEY_PAIR_GEN`
+ `CKM_GENERIC_SECRET_KEY_GEN`
+ `CKM_AES_KEY_GEN`
+ `CKM_DES3_KEY_GEN`— perubahan yang akan datang tercantum dalam catatan kaki[5](#mech5).

## Tanda tangani dan verifikasi fungsi
<a name="pkcs11-mech-function-signverify"></a>

Pustaka AWS CloudHSM perangkat lunak untuk pustaka PKCS \$111 memungkinkan Anda menggunakan mekanisme berikut untuk fungsi Masuk dan Verifikasi. Dengan Client SDK 5, data di-hash secara lokal dalam perangkat lunak. Ini berarti tidak ada batasan ukuran data yang dapat di-hash oleh SDK.

Dengan Client SDK 5 RSA dan ECDSA hashing dilakukan secara lokal sehingga tidak ada batasan data. Dengan HMAC, ada batas data. Lihat catatan kaki [2](#mech2) untuk info lebih lanjut.

**RSA**
+ `CKM_RSA_X_509`
+ `CKM_RSA_PKCS`— operasi satu bagian saja.
+ `CKM_RSA_PKCS_PSS`— operasi satu bagian saja.
+ `CKM_SHA1_RSA_PKCS`
+ `CKM_SHA224_RSA_PKCS`
+ `CKM_SHA256_RSA_PKCS`
+ `CKM_SHA384_RSA_PKCS`
+ `CKM_SHA512_RSA_PKCS`
+ `CKM_SHA512_RSA_PKCS`
+ `CKM_SHA1_RSA_PKCS_PSS`
+ `CKM_SHA224_RSA_PKCS_PSS`
+ `CKM_SHA256_RSA_PKCS_PSS`
+ `CKM_SHA384_RSA_PKCS_PSS`
+ `CKM_SHA512_RSA_PKCS_PSS`

**ECDSA**
+ `CKM_ECDSA`— operasi satu bagian saja.
+ `CKM_ECDSA_SHA1`
+ `CKM_ECDSA_SHA224`
+ `CKM_ECDSA_SHA256`
+ `CKM_ECDSA_SHA384`
+ `CKM_ECDSA_SHA512`

**HMAC**
+ `CKM_SHA_1_HMAC`[2](#mech2)
+ `CKM_SHA224_HMAC`[2](#mech2)
+ `CKM_SHA256_HMAC`[2](#mech2)
+ `CKM_SHA384_HMAC`[2](#mech2)
+ `CKM_SHA512_HMAC`[2](#mech2)

**CMAC**
+ `CKM_AES_CMAC`

## Tanda tangani pemulihan dan verifikasi fungsi pemulihan
<a name="pkcs11-mech-function-sr-vr"></a>

Client SDK 5 tidak mendukung fungsi Sign Recover dan Verify Recover.

## Fungsi mencerna
<a name="pkcs11-mech-function-digest"></a>

Pustaka AWS CloudHSM perangkat lunak untuk pustaka PKCS \$111 memungkinkan Anda menggunakan mekanisme berikut untuk fungsi Digest. Dengan Client SDK 5, data di-hash secara lokal dalam perangkat lunak. Ini berarti tidak ada batasan ukuran data yang dapat di-hash oleh SDK.
+ `CKM_SHA_1`
+ `CKM_SHA224`
+ `CKM_SHA256`
+ `CKM_SHA384`
+ `CKM_SHA512`

## Enkripsi dan dekripsi fungsi
<a name="pkcs11-mech-function-enc-dec"></a>

Pustaka AWS CloudHSM perangkat lunak untuk pustaka PKCS \$111 memungkinkan Anda menggunakan mekanisme berikut untuk fungsi Enkripsi dan Dekripsi.
+ `CKM_RSA_X_509`
+ `CKM_RSA_PKCS`— operasi satu bagian saja. Perubahan yang akan datang tercantum dalam catatan kaki[5](#mech5).
+ `CKM_RSA_PKCS_OAEP`— operasi satu bagian saja.
+ `CKM_AES_ECB`
+ `CKM_AES_CTR`
+ `CKM_AES_CBC`
+ `CKM_AES_CBC_PAD`
+ `CKM_DES3_CBC`— perubahan yang akan datang tercantum dalam catatan kaki[5](#mech5).
+ `CKM_DES3_ECB`— perubahan yang akan datang tercantum dalam catatan kaki[5](#mech5).
+ `CKM_DES3_CBC_PAD`— perubahan yang akan datang tercantum dalam catatan kaki[5](#mech5).
+  `CKM_AES_GCM` [1](#mech1), [2](#mech2)
+ `CKM_CLOUDHSM_AES_GCM`[3](#mech3)

## Turunkan fungsi kunci
<a name="pkcs11-mech-function-derive-key"></a>

Pustaka AWS CloudHSM perangkat lunak untuk pustaka PKCS \$111 mendukung mekanisme derivasi kunci berikut:
+ `CKM_SP800_108_COUNTER_KDF`
+ `CKM_ECDH1_DERIVE`- Mendukung derivasi kunci ECDH dengan jenis KDF yang ditentukan vendor berikut: [6](#kdf6)
  + `CKD_CLOUDHSM_X963_SHA1_KDF`- X9.63 KDF dengan SHA1 [7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA224_KDF`- X9.63 KDF dengan SHA224 [7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA256_KDF`- X9.63 KDF dengan SHA256 [7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA384_KDF`- X9.63 KDF dengan SHA384 [7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA512_KDF`- X9.63 KDF dengan SHA512 [7](#kdf7)

## Fungsi Bungkus dan Buka Bungkus
<a name="pkcs11-mech-function-wrap-unwrap"></a>

Pustaka AWS CloudHSM perangkat lunak untuk pustaka PKCS \$111 memungkinkan Anda menggunakan mekanisme berikut untuk fungsi Wrap dan Unwrap.

Untuk informasi tambahan mengenai pembungkus kunci AES, lihat Pembungkus Kunci [AES.](manage-aes-key-wrapping.md) 
+ `CKM_RSA_PKCS`— operasi satu bagian saja. Perubahan yang akan datang tercantum dalam catatan kaki[5](#mech5).
+ `CKM_RSA_PKCS_OAEP`[4](#mech4)
+ `CKM_AES_GCM`[1](#mech1), [3](#mech3)
+ `CKM_CLOUDHSM_AES_GCM`[3](#mech3)
+ `CKM_RSA_AES_KEY_WRAP`
+ `CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD`[3](#mech3)
+ `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`[3](#mech3)
+ `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`[3](#mech3)

## Ukuran data maksimum untuk setiap mekanisme
<a name="pkcs11-mech-max"></a>

Tabel berikut mencantumkan ukuran data maksimum yang ditetapkan untuk setiap mekanisme:


**Ukuran set data maksimum**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloudhsm/latest/userguide/pkcs11-mechanisms.html)

## Anotasi mekanisme
<a name="pkcs11-mech-annotations"></a>
+ [1] Saat melakukan enkripsi AES-GCM, HSM tidak menerima data vektor inisialisasi (IV) dari aplikasi. Anda harus menggunakan IV yang dihasilkannya. IV 12-byte yang disediakan oleh HSM ditulis ke dalam referensi memori yang ditunjukkan oleh elemen pIV dari parameter `CK_GCM_PARAMS` struktur yang Anda suplai. Untuk mencegah kebingungan pengguna, PKCS \$111 SDK di versi 1.1.1 dan sebelumnya memastikan bahwa pIV menunjuk ke penyangga yang dinolkan ketika enkripsi AES-GCM diinisialisasi.
+ [2] Saat mengoperasikan data dengan menggunakan salah satu mekanisme berikut, jika buffer data melebihi ukuran data maksimum, operasi menghasilkan kesalahan. Untuk mekanisme ini, semua pemrosesan data harus terjadi di dalam HSM. Untuk informasi tentang set ukuran data maksimum untuk setiap mekanisme, lihat[Ukuran data maksimum untuk setiap mekanisme](#pkcs11-mech-max).
+ [3] Mekanisme yang ditentukan vendor. Untuk menggunakan mekanisme yang ditetapkan vendor CloudHSM, aplikasi PKCS \$111 harus menyertakan `/opt/cloudhsm/include/pkcs11/pkcs11t.h` selama kompilasi.

  `CKM_CLOUDHSM_AES_GCM`: Mekanisme kepemilikan ini adalah alternatif pemrograman yang lebih aman untuk `CKM_AES_GCM` standar. Ini menambahkan IV yang dihasilkan oleh HSM untuk ciphertext, bukan menuliskannya kembali ke dalam struktur `CK_GCM_PARAMS` yang disediakan selama inisialisasi cipher. Anda dapat menggunakan mekanisme ini dengan fungsi `C_Encrypt`, `C_WrapKey`, `C_Decrypt`, dan `C_UnwrapKey`. Bila menggunakan mekanisme ini, variabel pIV di struk `CK_GCM_PARAMS` harus diatur ke `NULL`. Bila menggunakan mekanisme ini dengan `C_Decrypt` dan `C_UnwrapKey`, IV diharapkan akan ditambahkan ke ciphertext yang sedang dibuka.

  `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`: Bungkus Kunci AES dengan Padding PKCS \$15.

  `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`: Bungkus Kunci AES dengan Padding Nol.
+ [4] Berikut ini `CK_MECHANISM_TYPE` dan `CK_RSA_PKCS_MGF_TYPE` didukung `CK_RSA_PKCS_OAEP_PARAMS` untuk`CKM_RSA_PKCS_OAEP`:
  + `CKM_SHA_1` menggunakan `CKG_MGF1_SHA1`
  + `CKM_SHA224` menggunakan `CKG_MGF1_SHA224`
  + `CKM_SHA256` menggunakan `CKG_MGF1_SHA256`
  + `CKM_SHA384` menggunakan `CKM_MGF1_SHA384`
  + `CKM_SHA512` menggunakan `CKM_MGF1_SHA512`
+ [5] Sesuai dengan panduan NIST, ini tidak diizinkan untuk cluster dalam mode FIPS setelah 2023. Untuk cluster dalam mode non-FIPS, masih diperbolehkan setelah 2023. Lihat [Kepatuhan FIPS 140: Penutupan Mekanisme 2024](compliance-dep-notif.md#compliance-dep-notif-1) untuk detail.
+ [6] Jenis yang ditentukan vendor. Untuk menggunakan tipe yang ditentukan vendor CloudHSM, aplikasi PKCS \$111 harus menyertakan selama kompilasi. `cloudhsm_pkcs11_vendor_defs.h` Ini ditemukan di `/opt/cloudhsm/include/pkcs11/cloudhsm_pkcs11_vendor_defs.h` platform berbasis Linux dan `C:\Program Files\Amazon\CloudHSM\include\pkcs11\cloudhsm_pkcs11_vendor_defs.h` untuk platform berbasis Windows
+ [7] Fungsi derivasi kunci (KDFs) ditentukan dalam [Publikasi Khusus NIST 800-56A](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf) Revisi 3.