Algoritma suite yang didukung diAWS Encryption SDK - AWS Encryption SDK

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

Algoritma suite yang didukung diAWS Encryption SDK

SesiSuite algoritmeadalah kumpulan algoritma kriptografi dan nilai-nilai terkait. Sistem kriptografi menggunakan implementasi algoritma untuk menghasilkan pesan ciphertext.

ParameterAWS Encryption SDKalgorithm suite menggunakan algoritma Advanced Encryption Standard (AES) di Galois/Counter Mode (GCM), yang dikenal sebagai AES-GCM, untuk mengenkripsi data mentah. ParameterAWS Encryption SDKmendukung kunci enkripsi 256-bit, 192-bit, dan 128-bit. Panjang vektor inisialisasi (IV) selalu 12 byte. Panjang tag otentikasi selalu 16 byte.

Secara default,AWS Encryption SDKmenggunakan algoritma suite dengan AES-GCM dengan berbasis HMACextract-and-expandfungsi derivasi kunci (HKDF), penandatanganan, dan kunci enkripsi 256-bit. JikaKebijakan KomitmenmemerlukanKomitmen kunci, yangAWS Encryption SDKmemilih suite algoritma yang juga mendukung komitmen utama; jika tidak, ia memilih suite algoritma dengan derivasi kunci dan penandatanganan, tetapi bukan komitmen utama.

ParameterAWS Encryption SDKmerekomendasikan suite algoritma yang memperoleh kunci enkripsi AES-GCM dengan memasok kunci enkripsi data 256-bit ke berbasis HMACextract-and-expandfungsi derivasi kunci (HKDF). ParameterAWS Encryption SDKmenambahkan tanda tangan Elliptic Curve Digital Signature Algorithm (ECDSA). Untuk mendukungKomitmen kunci, algoritma suite ini juga berasalString Komitmen Kunci— pengenal kunci data non-rahasia — yang disimpan dalam metadata pesan terenkripsi. String komitmen kunci ini juga diturunkan melalui HKDF menggunakan prosedur yang mirip dengan menurunkan kunci enkripsi data.

AWS Encryption SDKAlgoritme Suite
Enkripsi algoritme Panjang kunci enkripsi data (dalam bit) Algoritme derivasi kunci Algoritma tanda tangan Komitmen kunci
AES-GCM 256 HKDF dengan SHA-384 ECDSA dengan P-384 dan SHA-384 HKDF dengan SHA-512

HKDF membantu Anda menghindari penggunaan kembali kunci enkripsi data yang tidak disengaja dan mengurangi risiko menggunakan kunci data secara berlebihan.

Untuk penandatanganan, suite algoritma ini menggunakan ECDSA dengan algoritma fungsi hash kriptografi (SHA-384). ECDSA digunakan secara default, bahkan ketika tidak ditentukan oleh kebijakan untuk kunci master yang mendasarinya. Penandatanganan pesanmemverifikasi pengirim pesan berwenang untuk mengenkripsi pesan dan memberikan non-penolakan. Hal ini sangat berguna ketika kebijakan otorisasi untuk kunci master memungkinkan satu set pengguna untuk mengenkripsi data dan satu set pengguna yang berbeda untuk mendekripsi data.

Algoritma suite dengan komitmen kunci memastikan bahwa setiap ciphertext mendekripsi hanya satu plaintext. Mereka melakukan ini dengan memvalidasi identitas kunci data yang digunakan sebagai masukan ke algoritma enkripsi. Saat mengenkripsi, suite algoritma ini memperoleh string komitmen utama. Sebelum mendekripsi, mereka memvalidasi bahwa kunci data sesuai dengan string komitmen utama. Jika tidak, panggilan dekripsi gagal.

Algoritme suite yang didukung

ParameterAWS Encryption SDKmendukung algoritma suite alternatif berikut untuk kompatibilitas mundur. Secara umum, kami tidak merekomendasikan suite algoritma ini. Namun, kami menyadari bahwa penandatanganan dapat menghambat kinerja secara signifikan, jadi kami menawarkan rangkaian komitmen kunci dengan derivasi utama untuk kasus-kasus tersebut. Untuk aplikasi yang harus membuat tradeoff kinerja yang lebih signifikan, kami terus menawarkan suite yang tidak memiliki penandatanganan, komitmen utama, dan derivasi kunci.

AES-GCM tanpa komitmen kunci

Algoritma suite tanpa komitmen kunci tidak memvalidasi kunci data sebelum mendekripsi. Akibatnya, suite algoritma ini mungkin mendekripsi ciphertext tunggal menjadi pesan plaintext yang berbeda. Namun, karena algoritma suite dengan komitmen kunci menghasilkanpesan terenkripsi sedikit lebih besar (+30 byte)dan membutuhkan waktu lebih lama untuk memproses, mereka mungkin bukan pilihan terbaik untuk setiap aplikasi.

ParameterAWS Encryption SDKmendukung algoritma suite dengan derivasi kunci, komitmen kunci, penandatanganan, dan satu dengan derivasi kunci dan komitmen kunci, tetapi tidak menandatangani. Kami tidak merekomendasikan menggunakan algoritme suite tanpa komitmen kunci. Jika Anda harus, kami merekomendasikan sebuah suite algoritma dengan derivasi kunci dan komitmen kunci, tetapi tidak menandatangani. Namun, jika profil kinerja aplikasi Anda mendukung menggunakan suite algoritma, menggunakan suite algoritma dengan komitmen utama, derivasi kunci, dan penandatanganan adalah praktik terbaik.

AES-GCM tanpa penandatanganan

Algoritma suite tanpa penandatanganan tidak memiliki tanda tangan ECDSA yang memberikan keaslian dan non-penolakan. Gunakan suite ini hanya ketika pengguna yang mengenkripsi data dan mereka yang mendekripsi data sama-sama dipercaya.

Saat menggunakan rangkaian algoritma tanpa penandatanganan, kami sarankan Anda memilih salah satu dengan derivasi kunci dan komitmen utama.

AES-GCM tanpa derivasi kunci

Algoritma suite tanpa derivasi kunci menggunakan kunci enkripsi data sebagai kunci enkripsi AES-GCM, alih-alih menggunakan fungsi turunan kunci untuk mendapatkan kunci unik. Kami mencegah menggunakan suite ini untuk menghasilkan ciphertext, tapiAWS Encryption SDKmendukungnya untuk alasan kompatibilitas.

Untuk informasi lebih lanjut tentang cara suite ini diwakili dan digunakan di perpustakaan, lihatAWS Encryption SDK referensi algoritma.