AEAD deterministik menyediakan enkripsi dengan properti deterministik: mengenkripsi data yang sama akan selalu menghasilkan ciphertext yang sama. Jenis enkripsi ini berguna untuk penggabungan kunci atau beberapa skema untuk menelusuri data terenkripsi (lihat RFC 5297, Bagian 1.3 untuk info selengkapnya). Karena memiliki properti deterministiknya, implementasi primitif ini dapat menyebabkan hilangnya kerahasiaan karena penyerang hanya perlu menemukan ciphertext suatu pesan untuk mengidentifikasi instance lain dari pesan tersebut.
AEAD deterministik memiliki properti berikut:
- Kerahasiaan: Tidak ada yang diketahui tentang teks biasa, kecuali panjangnya dan kesetaraan teks biasa berulang.
- Keaslian: Teks biasa terenkripsi yang mendasari ciphertext tidak dapat diubah tanpa terdeteksi.
- Simetris: Mengenkripsi teks biasa dan mendekripsi ciphertext dilakukan dengan kunci yang sama.
- Deterministik: Selama kunci utama tidak berubah, mengenkripsi teks biasa dua kali dengan parameter yang sama akan menghasilkan ciphertext yang sama.
Data terkait
AEAD deterministik juga dapat digunakan untuk mengikat ciphertext ke data
terkait tertentu. Misalkan Anda memiliki database dengan kolom user-id
dan encrypted-medical-history
. Dalam skenario ini, user-id
dapat digunakan sebagai
data terkait saat mengenkripsi encrypted-medical-history
. Hal ini mencegah
penyerang memindahkan histori medis dari satu pengguna ke pengguna lain.
Pilih jenis kunci
Sebaiknya gunakan jenis kunci AES256_SIV untuk semua kasus penggunaan.
Jaminan keamanan
- Kekuatan autentikasi minimal 80 bit.
- Teks biasa dan data terkait dapat memiliki panjang arbitrer (dalam rentang 0,232 byte).
- Level keamanan 128-bit terhadap serangan pemulihan kunci, dan juga dalam serangan multi-pengguna dengan maksimal 232 kunci. Artinya, jika lawan mendapatkan 232 ciphertext dari pesan yang sama yang dienkripsi dengan 232 kunci, mereka harus melakukan 2128 komputasi untuk mendapatkan satu kunci.
- Kemampuan untuk mengenkripsi 238 pesan dengan aman, asalkan panjang setiap pesan kurang dari 1 MB.
Contoh kasus penggunaan
Lihat Saya ingin mengenkripsi data secara deterministik dan Saya ingin mengikat ciphertext ke konteksnya.