Setup: challenger C takes security parameter λ and outputs (pk, sk).
C gives public key pk to A.
Phase1: A sends decryption queries to C.
Specifically, A sends an arbitrary ciphertext
Ci to C, and C returns
Dec(sk,Ci)=Mi.
Challenge: A chooses two plaintexts
M0,M1, and C chooses one of them (
b∈{1,2}) and returns
Enc(pk,Mb)=Cb.
A then guesses
b, identifying which plaintext the ciphertext corresponds to.
Phase2: A sends decryption queries to C.
Specifically, A sends an arbitrary ciphertext
Ci to C, and C returns
Dec(sk,Ci)=Mi.