[
[
['96','add','hl'],
['13','add','hl'],
['14','add','hl'],
['92','add','hl'],
['20','remove','slide-up'],
['2','add','slide-down']
],
[
['23','add','hl'],
['23','remove','hidden'],
['25','add','hl'],
['25','remove','hidden'],
['26','add','hl'],
['26','remove','hidden'],
['99','add','hl'],
['99','remove','slide-left'],
['93','add','hl'],
['93','remove','slide-left'],
['4','add','hidden'],
['96','remove','hl'],
['96','add','slide-left'],
['13','remove','hl'],
['13','add','hidden'],
['14','remove','hl'],
['14','add','hidden'],
['92','remove','hl'],
['92','add','slide-right']
],
[
['23','remove','hl'],
['25','remove','hl'],
['26','remove','hl'],
['99','remove','hl'],
['93','remove','hl'],
['95','add','hl'],
['38','remove','slide-up'],
['20','add','slide-down']
],
[
['42','add','hl'],
['42','remove','hidden'],
['43','add','hl'],
['43','remove','hidden'],
['96','add','hl'],
['96','remove','slide-left'],
['95','remove','hl'],
['95','add','slide-right']
],
[
['42','remove','hl'],
['43','remove','hl'],
['96','remove','hl'],
['23','add','hl'],
['42','add','hl'],
['43','add','hl'],
['25','add','hl'],
['26','add','hl'],
['98','add','hl'],
['58','remove','slide-up'],
['38','add','slide-down']
],
[
['95','add','hl'],
['95','remove','slide-right'],
['14','add','hl'],
['14','remove','hidden'],
['69','add','hl'],
['69','remove','hidden'],
['23','remove','hl'],
['23','add','hidden'],
['42','remove','hl'],
['42','add','hidden'],
['43','remove','hl'],
['43','add','hidden'],
['25','remove','hl'],
['25','add','hidden'],
['26','remove','hl'],
['26','add','hidden'],
['98','remove','hl'],
['98','add','slide-right']
],
[
['95','remove','hl'],
['14','remove','hl'],
['69','remove','hl'],
['69','add','hl'],
['100','add','hl'],
['75','remove','slide-up'],
['58','add','slide-down']
],
[
['77','remove','hidden'],
['101','add','hl'],
['101','remove','slide-left'],
['69','remove','hl'],
['69','add','hidden'],
['100','remove','hl'],
['100','add','slide-right']
],
[
['101','remove','hl']
]
]
The starting point is $\lib{pk-1cpa-real}$.
Since $\ctxt_1 = g^r$ and $\pk^r$ (used to compute $\ctxt_2$) do not depend on the choice of $\ptxt$, they can be sampled at the beginning of time.
At the beginning of time, the library samples $g^{\sk}$, $g^r$, and $\pk^r = g^{\sk \cdot r}$. The DDH assumption says that values distributed in this way are pseudorandom. The three-hop maneuver is not shown.
We can move the selection of $\ctxt_1$ and $U$ back into $\cpaoneenc$. These values are sampled uniformly.
Now $U$ is distributed uniformly in $\G$, so $\ctxt_2$ is a OTP ciphertext (in a OTP variant that uses the group operation in place of \xor; see \exerciseref{provsec.ex.group-otp}). Thus, $\ctxt_2$ is distributed uniformly, independent of $\ptxt$. After making this change, the result is $\lib{pk-1cpa-rand}$.
$\lib{pk-1cpa-real}$
$\lib{pk-1cpa-rand}$
$\sk \gets \Z_\nmod$
$r \gets \Z_\nmod$
$u \gets \Z_\nmod$
$\pk := g^{\sk}$
$\ctxt_1 := g^r$
return $\pk$
if $\ctxt^*$ undefined:
$r \gets \Z_\nmod$
$U \gets \G$
$\ctxt^* := (\ctxt_1, \ctxt_2)$
return $\ctxt^*$