When working with State Separable Proofs, it's often easier to frame every game as distinguishing
between the "real world" and the "ideal world". This allows
keeping the framing consistent throughout the composition
of different games / packages.
For example, the security of a PRF is defined in this real ideal
paradigm, by distinguishing between the case of actually calling
the PRF with a key, and the case of a genuine random function.
If you then use this PRF to make an encryption scheme,
it's useful to also define security in terms of distinguishing
between encrypting messages, and encrypting random ciphertexts,
which helps the proofs go more smoothly when trying
to reduce the security of the larger encryption scheme
to the security of the smaller PRF.
Contrast this with the other common notion of encryption security,
in which the adversary sends two messages each round,
and has to figure out whether the challenger is consistently
encrypting the first or the second message.
This begs the question: can you reduce the real-or-random
notion of encryption to the left-or-right notion of encryption?
Yes.
Background
For left-or-right, we have the following pair of games:
[!note] Note:
For full generality, you'd have a function which lets you
sample a random message of the same length as another message,
which lets you accomodate cases where the messages aren't
just simple bit-strings.
Note that because the oracles are the same in both cases,
I'll omit them in the reductions for simplicity.
RRϵLR
In other words, for every adversary A against RRb with
advantage ϵ, there exists an adversary B
against LRb with advantage ϵ as well.
To show this, we provide a shim S which provides
the interface for RRb over LRb:
Then, we clearly have S∘LRb=RRb,
in the sense of providing identical distributions.
Thus ϵ(A∘RRb)=ϵ(A∘S∘LRb)=ϵ((A∘S)∘LRb), and B:=A∘S is the adversary
breaking LRb.
The Other Direction
In the other direction, the idea is more subtle. We
can't directly translate an oracle encrypting either our message
or a random message into one encrypting one of two messages.
The idea of the reduction in standard game notation is
to choose the random bit for the message ourselves, inside
of the shim. Then, if the adversary is able to accurately
detect the bit, that tells us that we're in the
case where we're not seeing random ciphertexts from
the oracle.
There's actually a general lesson to be learned here.
Let's say you have two bit-indexed games, GbG and HbH.
If we look at:
HbH∘GbG
Then we can replace HbH with a concrete game H,
where the bit is flipped on initialization. Ditto with G.
From a technical point of view, H includes a special
function to read this bit, called get-b.
Then, given an adversary A
for HbH, whose interface
doesn't include get-b, of course, we have
an adversary B^ which runs A,
and then checks if that bit is equal to get-b(),
returning 1 if that's the case.
The question is about the advantage:
ϵ(B^∘(1(get-b)⊗A)∘H∘GbG)
By definition, we have:
ϵ:=∣P[B^→1∣bG=0]−P[B^→1∣bG=1]∣
Letting B^(x0,x1):=P[B^→1∣bH=x0,bG=x1], we can expand this to get:
ϵ=21∣B^(0,0)+B^(1,0)−(B(0,1)+B(1,1))∣
Letting A(x0,x1) denote a similar quantity,
we have:
ϵ=21∣(1−A(0,0))+A(1,0)−((1−A(0,1))+A(1,1))∣
which we can reduce to:
ϵ=21∣A(1,0)−A(0,0)+A(0,1)−A(1,1)∣
Using the reverse triangle inequality, we can write this as:
ϵ≥21∣∣A(0,0)−A(1,0)∣−∣A(0,1)−A(1,1)∣∣
Or, in terms of advantages, we have:
ϵ≥21∣ϵ(A∘Hb∘G0)−ϵ(A∘Hb∘G1)∣
Which is actually a useful result. We can use an adversary
A which can break the inner part, and use
that to get an adversary breaking Gb.
A similar reasoning shows that:
ϵ(B^∘A∘HbH∘G)≥21∣ϵ(A∘H0∘Gb)−ϵ(A∘H1∘Gb)∣
Let's summarize the main result. Given an adversary A
playing against HbH∘GbG, there exists
an adversary B such that:
ϵ(B∘Gb)≥21∣ϵ(A∘Hb∘G0)−ϵ(A∘Hb∘G1)∣
LR21ϵRR
If we let Gb:=RRb, then we can create a shim
Hb such that Hb∘G0=LLb, as follows:
It should be clear that Hb∘RR0 provides
an equivalent game as LLb. Note
also that LL0∘RR1=LL1∘RR1, since the bit has no impact, since the ciphertext is always
random.
We can now apply the result we derived in the previous section.
Given an adversary A playing against LRb,
there exists an adversary B playing against RR
such that: