Setiap kunci Cloud Key Management Service memiliki tujuan, yang menentukan kemampuan kriptografi kunci. Tujuan juga menentukan algoritma mana yang didukung untuk versi kunci. Setiap algoritma menentukan parameter yang harus digunakan untuk setiap operasi kriptografi. Setiap kunci juga memiliki tingkat perlindungan yang menunjukkan apakah operasi kriptografis dilakukan di software atau di modul keamanan hardware (HSM).
Tujuan utama
Cloud KMS menyediakan tujuan kunci untuk skenario berikut:
| Skenario | Tujuan utama (SDK) | Tujuan utama (API) | Metode yang didukung |
|---|---|---|---|
| Enkripsi simetris | encryption |
ENCRYPT_DECRYPT |
cryptoKeys.encrypt, cryptoKeys.decrypt |
| Enkripsi simetris mentah | raw-encryption |
RAW_ENCRYPT_DECRYPT |
cryptoKeys.rawEncrypt, cryptoKeys.rawDecrypt |
| Penandatanganan asimetris | asymmetric-signing |
ASYMMETRIC_SIGN |
cryptoKeyVersions.asymmetricSign, cryptoKeyVersions.getPublicKey |
| Enkripsi asimetris | asymmetric-encryption |
ASYMMETRIC_DECRYPT |
cryptoKeyVersions.asymmetricDecrypt, cryptoKeyVersions.getPublicKey |
| Mekanisme enkapsulasi kunci | key-encapsulation |
KEY_ENCAPSULATION |
cryptoKeyVersions.decapsulate, cryptoKeyVersions.getPublicKey |
| Penandatanganan MAC | mac |
MAC |
cryptoKeyVersions.macSign, cryptoKeyVersions.macVerify |
Saat membuat kunci, Anda menentukan tujuan dan algoritma kunci tersebut. Anda dapat mengubah algoritma saat membuat versi kunci baru, bergantung pada cakupan tujuannya. Tujuan tidak dapat diubah.
Dua kunci dengan tujuan yang sama dapat menggunakan algoritma pokok yang berbeda, tetapi harus mendukung serangkaian operasi kriptografi yang sama.
Algoritma enkripsi simetris
Tujuan kunci ENCRYPT_DECRYPT memungkinkan enkripsi simetris. Semua kunci dengan tujuan
kunci ENCRYPT_DECRYPT menggunakan algoritma GOOGLE_SYMMETRIC_ENCRYPTION. Tidak ada parameter yang digunakan dengan algoritma ini. Algoritma ini menggunakan kunci Advanced Encryption Standard (AES-256) 256-bit dalam Galois Counter Mode (GCM), yang di-padding dengan metadata internal Cloud KMS.
Algoritma enkripsi simetris seperti AES-256 umumnya dianggap aman dari serangan kuantum. Anda dapat terus menggunakan enkripsi simetris.
Algoritma penandatanganan asimetris
Tujuan kunci ASYMMETRIC_SIGN memungkinkan penandatanganan asimetris. Kunci dengan tujuan
penggunaan ASYMMETRIC_SIGN yang berbeda menggunakan algoritma yang berbeda, bergantung pada apakah kunci
mendukung penandatanganan kurva elips atau
penandatanganan RSA.
Untuk kunci yang memiliki tujuan ASYMMETRIC_SIGN, Anda dapat beralih antara kunci berukuran
berbeda dan skema tanda tangan yang berbeda dengan mengubah algoritma.
Algoritma penandatanganan asimetris yang menggunakan kurva eliptik dan RSA rentan terhadap serangan oleh komputer kuantum di masa mendatang. Untuk penyangkalan jangka panjang tanda tangan Anda, pilih algoritma penandatanganan asimetris pasca-kuantum.
Algoritma penandatanganan kurva eliptik
Format algoritma penandatanganan kurva elips adalah
EC_SIGN_ELLIPTIC_CURVE_DIGEST_ALGORITHM
di mana
ELLIPTIC_CURVEadalah kurva eliptikDIGEST_ALGORITHMadalah algoritma digest
Tabel berikut mencantumkan kemungkinan algoritma untuk kunci kurva elips dengan
tujuan ASYMMETRIC_SIGN. Gunakan nama algoritma huruf kecil dengan perintah gcloud, dan nama algoritma huruf besar dengan Cloud Key Management Service API.
| Algoritma (SDK) | Algoritma (API) | Deskripsi |
|---|---|---|
ec-sign-ed25519 |
EC_SIGN_ED25519 |
EdDSA di Curve25519 dalam mode PureEdDSA, yang menggunakan data mentah sebagai input, bukan data yang di-hash |
ec-sign-p256-sha256 **(direkomendasikan)** |
EC_SIGN_P256_SHA256 |
ECDSA pada Kurva P-256 dengan ringkasan SHA-256 |
ec-sign-p384-sha384 |
EC_SIGN_P384_SHA384 |
ECDSA pada Kurva P-384 dengan ringkasan SHA-384 |
ec-sign-secp256k1-sha256 |
EC_SIGN_SECP256K1_SHA256 |
ECDSA pada Kurva Secp256k1 dengan ringkasan SHA-256 |
Algoritma penandatanganan RSA
Format algoritma penandatanganan RSA adalah
RSA_SIGN_PADDING_ALGORITHM_MODULUS_BIT_LENGTH_DIGEST_ALGORITHM
di mana
PADDING_ALGORITHMadalah algoritma paddingMODULUS_BIT_LENGTHadalah panjang bit kunciDIGEST_ALGORITHMadalah algoritma digest
Perhatikan bahwa beberapa algoritma diformat sebagai
RSA_SIGN_RAW_PADDING_ALGORITHM_MODULUS_BIT_LENGTH
dan menghilangkan algoritma digest. Algoritma ini adalah varian penandatanganan PKCS #1 yang menghilangkan encoding ke DigestInfo. Dalam varian:
- ringkasan dihitung berdasarkan pesan yang akan ditandatangani
- Padding PKCS #1 diterapkan langsung ke digest
- tanda tangan ringkasan yang di-padding dihitung, menggunakan kunci pribadi RSA
Tabel berikut mencantumkan kemungkinan algoritma untuk kunci RSA dengan tujuan
ASYMMETRIC_SIGN. Gunakan nama algoritma huruf kecil dengan perintah gcloud, dan nama algoritma huruf besar dengan Cloud Key Management Service API.
| Algoritma (SDK) | Algoritma (API) | Deskripsi |
|---|---|---|
rsa-sign-pss-2048-sha256 |
RSA_SIGN_PSS_2048_SHA256 |
Kunci RSASSA-PSS 2048 bit dengan ringkasan SHA-256 |
rsa-sign-pss-3072-sha256(direkomendasikan) |
RSA_SIGN_PSS_3072_SHA256 |
Kunci 3072 bit RSASSA-PSS dengan ringkasan SHA-256 |
rsa-sign-pss-4096-sha256 |
RSA_SIGN_PSS_4096_SHA256 |
Kunci RSASSA-PSS 4096 bit dengan ringkasan SHA-256 |
rsa-sign-pss-4096-sha512 |
RSA_SIGN_PSS_4096_SHA512 |
Kunci 4096 bit RSASSA-PSS dengan ringkasan SHA-512 |
rsa-sign-pkcs1-2048-sha256 |
RSA_SIGN_PKCS1_2048_SHA256 |
RSASSA-PKCS1 v1_5 dengan kunci 2048 bit dan ringkasan SHA-256 |
rsa-sign-pkcs1-3072-sha256 |
RSA_SIGN_PKCS1_3072_SHA256 |
RSASSA-PKCS1 v1_5 dengan kunci 3072 bit dan ringkasan SHA-256 |
rsa-sign-pkcs1-4096-sha256 |
RSA_SIGN_PKCS1_4096_SHA256 |
RSASSA-PKCS1 v1_5 dengan kunci 4096 bit dan ringkasan SHA-256 |
rsa-sign-pkcs1-4096-sha512 |
RSA_SIGN_PKCS1_4096_SHA512 |
RSASSA-PKCS1 v1_5 dengan kunci 4096 bit dan ringkasan SHA-512 |
rsa-sign-raw-pkcs1-2048 |
RSA_SIGN_RAW_PKCS1_2048 |
Penandatanganan RSASSA-PKCS1-v1_5 tanpa encoding, dengan kunci 2048 bit |
rsa-sign-raw-pkcs1-3072 |
RSA_SIGN_RAW_PKCS1_3072 |
Penandatanganan RSASSA-PKCS1-v1_5 tanpa encoding, dengan kunci 3072 bit |
rsa-sign-raw-pkcs1-4096 |
RSA_SIGN_RAW_PKCS1_4096 |
Penandatanganan RSASSA-PKCS1-v1_5 tanpa encoding, dengan kunci 4096 bit |
Untuk Probabilistic Signature Scheme (PSS), panjang salt yang digunakan sama dengan
panjang algoritma ringkasan. Misalnya, RSA_SIGN_PSS_2048_SHA256 akan menggunakan
PSS dengan panjang salt 256 bit. Selain itu, untuk PSS, algoritma digest yang ditentukan dalam nama algoritma juga digunakan untuk fungsi pembuatan mask (MGF1). Misalnya, jika Anda menggunakan RSA_SIGN_PSS_2048_SHA256, Anda akan mengirimkan
hash SHA-256 dari data yang akan ditandatangani, dan Cloud KMS akan
menggunakan SHA-256 secara internal sebagai algoritma hash untuk MGF1 saat menghitung
tanda tangan.
Algoritma penandatanganan PQC
Algoritma penandatanganan kriptografi pasca-kuantum (PQC) dimulai dengan awalan
PQ_SIGN_. Tabel berikut mencantumkan algoritma PQC yang dapat digunakan Cloud KMS untuk kunci dengan tujuan ASYMMETRIC_SIGN. Algoritma murni menggunakan data mentah
sebagai input, sedangkan algoritma pra-hash menerima hash data.
| Algoritma (SDK) | Algoritma (API) | Varian | Deskripsi |
|---|---|---|---|
pq-sign-ml-dsa-65 |
PQ_SIGN_ML_DSA_65 |
Pure | Algoritma tanda tangan digital berbasis kisi-kisi modul. |
pq-sign-slh-dsa-sha2-128s |
PQ_SIGN_SLH_DSA_SHA2_128S |
Pure | Algoritma tanda tangan digital berbasis hash stateless. |
pq-sign-hash-slh-dsa-sha2-128s-sha256 |
PQ_SIGN_HASH_SLH_DSA_SHA2_128S_SHA256 |
Pra-hash | Algoritma tanda tangan digital berbasis hash stateless. |
Algoritma enkripsi asimetris
Tujuan kunci ASYMMETRIC_DECRYPT memungkinkan enkripsi RSA. Format algoritma ASYMMETRIC_DECRYPT adalah
RSA_DECRYPT_PADDING_ALGORITHM_MODULUS_BIT_LENGTH_DIGEST_ALGORITHM
di mana
PADDING_ALGORITHMadalah algoritma paddingMODULUS_BIT_LENGTHadalah panjang bit kunciDIGEST_ALGORITHMadalah algoritma digest
Enkripsi asimetris menggunakan algoritma RSA rentan terhadap komputasi kuantum, termasuk serangan "kumpulkan sekarang, dekripsi nanti" (HNDL). Dalam serangan HNDL, aktor jahat mencegat ciphertext yang tidak dapat didekripsinya, lalu menyimpannya dengan harapan bahwa dia dapat mendekripsinya menggunakan komputasi kuantum pada akhirnya. Jika Anda mentransmisikan data yang harus tetap rahasia dalam jangka panjang meskipun ada kemajuan dalam komputasi kuantum, pilih algoritma enkapsulasi kunci.
Tabel berikut mencantumkan kemungkinan algoritma untuk kunci RSA dengan tujuan
ASYMMETRIC_DECRYPT. Gunakan nama algoritma huruf kecil dengan perintah gcloud, dan nama algoritma huruf besar dengan Cloud Key Management Service API.
| Algoritma (SDK) | Algoritma (API) | Deskripsi |
rsa-decrypt-oaep-2048-sha1 |
RSA_DECRYPT_OAEP_2048_SHA1 |
Kunci RSAES-OAEP 2048 bit dengan ringkasan SHA-1 |
rsa-decrypt-oaep-2048-sha256 |
RSA_DECRYPT_OAEP_2048_SHA256 |
Kunci RSAES-OAEP 2048 bit dengan ringkasan SHA-256 |
rsa-decrypt-oaep-3072-sha1 |
RSA_DECRYPT_OAEP_3072_SHA1 |
Kunci 3072 bit RSAES-OAEP dengan ringkasan SHA-1 |
rsa-decrypt-oaep-3072-sha256(direkomendasikan)> |
RSA_DECRYPT_OAEP_3072_SHA256 |
Kunci RSAES-OAEP 3072 bit dengan ringkasan SHA-256 |
rsa-decrypt-oaep-4096-sha1 |
RSA_DECRYPT_OAEP_4096_SHA1 |
Kunci RSAES-OAEP 4096 bit dengan ringkasan SHA-1 |
rsa-decrypt-oaep-4096-sha256 |
RSA_DECRYPT_OAEP_4096_SHA256 |
Kunci RSAES-OAEP 4096 bit dengan ringkasan SHA-256 |
rsa-decrypt-oaep-4096-sha512 |
RSA_DECRYPT_OAEP_4096_SHA512 |
Kunci RSAES-OAEP 4096 bit dengan ringkasan SHA-512 |
Semua algoritma ini menggunakan Optimal Asymmetric Encryption Padding (OAEP) dengan
fungsi pembuatan mask MGF1. MGF1 memerlukan algoritma digest. Di Cloud KMS, fungsi digest yang akan digunakan dengan MGF1 ditentukan sebagai bagian dari nama algoritma kunci. Misalnya, jika Anda menggunakan algoritma
RSA_DECRYPT_OAEP_3072_SHA256, Anda harus menggunakan SHA-256 dengan MGF1 saat
mengenkripsi data.
Algoritma enkapsulasi kunci
Tujuan kunci KEY_ENCAPSULATION digunakan untuk membuat rahasia bersama
menggunakan mekanisme enkapsulasi kunci.
Tabel berikut mencantumkan kemungkinan algoritma untuk kunci dengan tujuan
KEY_ENCAPSULATION. Semua algoritma ini dirancang agar aman pasca-kuantum. Gunakan nama algoritma huruf kecil dengan perintah gcloud, dan nama algoritma huruf besar dengan Cloud Key Management Service API.
| Algoritma (SDK) | Algoritma (API) | Deskripsi |
ml-kem-768 |
ML_KEM_768 |
Mekanisme enkapsulasi kunci berbasis kisi-modul dengan set parameter ML-KEM-768 (FIPS 203) |
ml-kem-1024 |
ML_KEM_1024 |
Mekanisme enkapsulasi kunci berbasis kisi-modul dengan set parameter ML-KEM-1024 (FIPS 203) |
kem-xwing |
KEM_XWING |
KEM hybrid X-Wing yang menggabungkan ML-KEM-768 dengan X25519 |
Algoritma penandatanganan MAC
Tujuan kunci MAC memungkinkan penandatanganan MAC simetris. Kunci dengan tujuan penggunaan kunci MAC hanya mendukung penandatanganan HMAC.
Algoritma penandatanganan HMAC
Format algoritma penandatanganan HMAC adalah
HMAC_HASH_ALGORITHM
di mana
HASH_ALGORITHMadalah algoritma hash
Sebagian besar algoritma simetris umumnya dianggap aman dari serangan kuantum. Namun, algoritma
HMAC-SHA1 tidak aman dari serangan kuantum. Jika Anda ingin tanda tangan simetris Anda tetap tepercaya dalam jangka panjang meskipun ada perkembangan dalam komputasi kuantum, pilih kunci HMAC dengan ukuran ringkasan yang lebih besar.
Tabel berikut mencantumkan algoritma HMAC yang tersedia untuk kunci dengan
tujuan MAC. Gunakan nama algoritma huruf kecil dengan perintah gcloud, dan nama algoritma huruf besar dengan Cloud Key Management Service API.
| Algoritma (SDK) | Algoritma (API) | Deskripsi |
hmac-sha1 |
HMAC_SHA1 |
HMAC dengan ringkasan SHA-1 |
hmac-sha224 |
HMAC_SHA224 |
HMAC dengan ringkasan SHA-224 |
hmac-sha256(direkomendasikan) |
HMAC_SHA256 |
HMAC dengan ringkasan SHA-256 |
hmac-sha384 |
HMAC_SHA384 |
HMAC dengan digest SHA-384 |
hmac-sha512 |
HMAC_SHA512 |
HMAC dengan ringkasan SHA-512 |
Rekomendasi algoritma
Untuk penandatanganan digital, sebaiknya gunakan algoritma penandatanganan kurva elips. EC_SIGN_P256_SHA256 adalah algoritma kurva eliptik yang direkomendasikan.
Jika Anda akan menggunakan algoritma penandatanganan RSA, algoritma penandatanganan RSA yang direkomendasikan adalah RSA_SIGN_PSS_3072_SHA256.
Untuk enkripsi asimetris, RSA_DECRYPT_OAEP_3072_SHA256 adalah algoritma yang direkomendasikan.
Untuk penandatanganan MAC, HMAC_SHA256 adalah algoritma yang direkomendasikan.
Untuk enkapsulasi kunci, sebaiknya gunakan KEM_XWING, yang merupakan algoritma hibrida yang dapat memberikan pertahanan berlapis terhadap musuh klasik dan musuh kuantum potensial.
Untuk mengetahui daftar nilai algoritma yang didukung untuk digunakan dengan
gcloud CLI, lihat
--default-algorithm.
Level perlindungan
Level perlindungan menunjukkan cara operasi kriptografi dilakukan. Setelah membuat kunci, Anda tidak dapat mengubah tingkat perlindungan.
| Level perlindungan | Deskripsi |
|---|---|
SOFTWARE |
Operasi kriptografi dilakukan di software. |
HSM |
Operasi kriptografis dilakukan di HSM. |
HSM_SINGLE_TENANT |
Operasi kriptografi dilakukan di |
: cluster of HSM partitions, exclusively created for a
: single-tenant Cloud HSM instance.
EXTERNAL | Operasi kriptografi dilakukan menggunakan kunci yang disimpan
: di pengelola kunci eksternal yang terhubung ke
: Google Cloud menggunakan internet. Terbatas pada enkripsi simetris dan penandatanganan asimetris.
EXTERNAL_VPC | Operasi kriptografi dilakukan menggunakan kunci yang disimpan
: di pengelola kunci eksternal yang terhubung ke Google Cloud melalui
: Virtual Private Cloud (VPC). Terbatas pada enkripsi simetris
: dan penandatanganan asimetris.
Semua tujuan kunci didukung untuk kunci dengan tingkat perlindungan
SOFTWARE atau HSM.