Semantic Security

#Cryptography #Simulation

A small history tour

Definition

Definition: A private-key encryption scheme (G,E,D) is semantically secure (in the private-key model)

PrkG(1n)[A(1n,Ek(Xn),1|Xn|,h(1n,Xn))=f(1n,Xn)]<Pr[A(1n,1|Xn|,h(1n,Xn))=f(1n,Xn)]+1p(n)

(The probability in the above terms is taken over Xn as well as over the internal coin tosses of the algorithms G,E and A or A.)

Observe that the adversary A is given the ciphertext Ek(Xn) as well as auxiliary information h(1n,Xn), and attempts to guess the value of f(1n,Xn).
Algorithm A also attempts to guess the value of f(1n,Xn), but is given only h(1n,Xn) and the length of Xn. The security requirement states that A can correctly guess f(1n,Xn) with almost the same probability as A. Intuitively, then, the ciphertext Ek(Xn) does not reveal any information about f(1n,Xn), for any f, since whatever can be learned by A (given the ciphertext) can be learned by A (without being given the ciphertext).

A simulation view of the above definition

Simulator A:

Upon input 1n,1|Xn|,h=h(1n,Xn), algorithm A works as follows:

  1. A runs the key generation algorithm G(1n) in order to receive k (note that A indeed needs to be given 1n in order to do this).
  2. A computes c=Ek(0|Xn|) as an encryption of “garbage” (note that A indeed needs to be given 1|Xn| in order to do this).
  3. A runs A(1n,c,1|Xn|,h) and outputs whatever A outputs.

from BS23

Attack Game 2.1 (semantic security)

For a given cipher E=(E,D), defined over (K,M,C), and for a given adversary A, we define two experiments, Experiment 0 and Experiment 1. For b=0,1, we define

Experiment b:

SSadv[A,E]:=|Pr[W0]Pr[W1]|.

Attack Game 2.4 (semantic security: bit-guessing version)\

For a given cipher E=(E,D), defined over (K,M,C), and for a given adversary A, the attack game runs as follows:


Definition

A cipher E is semantically secure if for all efficient adversaries A, the value SSadv[A,E] is negligible.

What we are interested in is how much better than random guessing an adversary can do.
If W denotes the event that the adversary wins the bit-guessing version of the attack game, then we are interested in the quantity |Pr[W]1/2|, which we denote by SSadv[A,E].

Theorem 2.10. For every cipher E and every adversary A, we have

SSadv[A,E]=2SSadv[A,E].

Proof.

If we condition on the event that b=0, then in this conditional probability space, all of the other random choices made by the challenger and the adversary are distributed in exactly the same way as the corresponding values in Experiment 0 of Attack Game 2.1.
Therefore, if b^ is the output of the adversary in Attack Game 2.4, we have

Pr[b^=1b=0]=p0.

By a similar argument, we see that

Pr[b^=1b=1]=p1.

So we have

Pr[b^=b]=Pr[b^=bb=0]Pr[b=0]+Pr[b^=bb=1]Pr[b=1]=Pr[b=0b=0]12+Pr[b^=1b=1]12=12(1Pr[b^=1b=0]+Pr[b^=1b=1])=12(1p0+p1).

Therefore,

SSadv[A,E]=|Pr[b^=b]12|=12|p1p0|=12SSadv[A,E].

That proves the theorem.

Reference