Skema enkripsi tidak hanya dapat memiliki keacakan, tetapi dalam beberapa kasus (misalnya, enkripsi kunci publik ), mereka harus diacak. Ini bukan masalah karena kami memerlukan skema enkripsi untuk menjadi benar , yaitu, untuk setiap pesan dan tombol apa saja itu menyatakan bahwa
atas keacakan .mk
Pr[ DEC( ENC(k,m,R) )=m]=1
R
Alasan mengapa skema kunci publik harus acak berasal dari cara kami mendefinisikan keamanan: kami tidak ingin ciphertext membocorkan informasi apa pun tentang pesan terenkripsi. Contoh klasik adalah sebagai berikut. Asumsikan bahwa masing-masing adalah kunci publik dan rahasia, dan bahwa musuh mencegat pesan terenkripsi dikirim ke beberapa unit di lapangan. Musuh tahu bahwa pesannya "ATTACK" atau "RETREAT", tetapi tidak tahu yang mana. Satu hal yang dapat dilakukan musuh adalah mengenkripsi kedua pesan menggunakan publik . biarkan dan . Jika(pk,sk)cpkcA=ENCpk("ATTACK ")cR=ENCpk("RETREAT")ENCbersifat deterministik, musuh dapat mengetahui pesan dengan pasti dengan membandingkan ke dan .ccAcR
Cara pengertian ini didefinisikan secara formal dikenal sebagai keamanan semantik :
Skema enkripsi secara semantik aman jika ada musuh tidak bisa memenangkan permainan berikut dengan probabilitas lebih besar dari :A1/2
- Penantang menghasilkan kunci dan mengirimkan kunci publik ke musuh.C(pk,sk)pk
- A memilih dua pesan dengan panjang yang sama dan dan memberikan keduanya ke .m0m1C
- C secara seragam mengambil sedikit dan mengirim kembali .b∈{0,1}ENC(mb)
- A perlu mengatakan pesan mana yang dienkripsi: atau , yaitu, ia perlu menampilkan bit .m0m1b
(Saya menghilangkan parameter keamanan , yang sangat penting untuk mendefinisikan "diabaikan" atau "terlihat"; Kita perlu mengasumsikan bahwa pembuatan kunci tergantung pada , dan bahwa keuntungan telah di atas dapat diabaikan dalam , yaitu kurang dari )
κκA1/2κκ−ω(1)