[
[
['120','add','hl'],
['114','add','hl'],
['16','add','hl'],
['35','remove','slide-up'],
['17','add','slide-down']
],
[
['32','add','hl'],
['32','remove','hidden'],
['15','remove','indent-1'],
['115','add','hl'],
['115','remove','slide-left'],
['34','add','hl'],
['34','remove','hidden'],
['3','add','hidden'],
['120','remove','hl'],
['120','add','slide-left'],
['15','add','indent-2'],
['114','remove','hl'],
['114','add','slide-right'],
['16','remove','hl'],
['16','add','hidden']
],
[
['32','remove','hl'],
['115','remove','hl'],
['34','remove','hl'],
['122','add','hl'],
['127','add','hl'],
['11','add','hl'],
['119','add','hl'],
['116','add','hl'],
['38','remove','slide-up'],
['35','add','slide-down']
],
[
['41','add','hl'],
['41','remove','hidden'],
['47','add','hl'],
['47','remove','hidden'],
['123','add','hl'],
['123','remove','slide-left'],
['49','add','hl'],
['49','remove','hidden'],
['120','add','hl'],
['120','remove','slide-left'],
['117','add','hl'],
['117','remove','slide-left'],
['122','remove','hl'],
['122','add','slide-right'],
['127','remove','hl'],
['127','add','slide-right'],
['11','remove','hl'],
['11','add','hidden'],
['119','remove','hl'],
['119','add','slide-right'],
['116','remove','hl'],
['116','add','slide-right']
],
[
['41','remove','hl'],
['47','remove','hl'],
['123','remove','hl'],
['49','remove','hl'],
['120','remove','hl'],
['117','remove','hl'],
['124','add','hl'],
['58','remove','slide-up'],
['38','add','slide-down']
],
[
['125','add','hl'],
['125','remove','slide-left'],
['124','remove','hl'],
['124','add','slide-right']
],
[
['125','remove','hl'],
['125','add','hl'],
['95','remove','slide-up'],
['58','add','slide-down']
],
[
['126','add','hl'],
['126','remove','slide-left'],
['125','remove','hl'],
['125','add','slide-right']
],
[
['126','remove','hl'],
['41','add','hl'],
['47','add','hl'],
['123','add','hl'],
['49','add','hl'],
['32','add','hl'],
['15','add','hl'],
['111','remove','slide-up'],
['95','add','slide-down']
],
[
['99','remove','hidden'],
['122','add','hl'],
['122','remove','slide-right'],
['127','add','hl'],
['127','remove','slide-right'],
['119','add','hl'],
['119','remove','slide-right'],
['124','add','hl'],
['124','remove','slide-right'],
['114','add','hl'],
['114','remove','slide-right'],
['116','add','hl'],
['116','remove','slide-right'],
['125','add','hl'],
['125','remove','slide-right'],
['41','remove','hl'],
['41','add','hidden'],
['47','remove','hl'],
['47','add','hidden'],
['123','remove','hl'],
['123','add','slide-right'],
['49','remove','hl'],
['49','add','hidden'],
['32','remove','hl'],
['32','add','hidden'],
['15','remove','hl'],
['15','add','hidden']
],
[
['122','remove','hl'],
['127','remove','hl'],
['119','remove','hl'],
['124','remove','hl'],
['114','remove','hl'],
['116','remove','hl'],
['125','remove','hl']
]
]
The starting point for the proof is $\lib{rsa*-real}$.
First, we rewrite the check for membership in $\mathcal{Y}$ as a for-loop involving explicit comparisons.
Suppose we initially choose one value $Y^*$ and later define each $Y \in \mathcal{Y}$ as $Y = Y^* \cdot \Delta^e$. If each $\Delta$ is uniformly distributed, then the $Y$'s are also uniformly distributed. In $\rsacheck^*$, we can then replace each $Y$ with its equivalent expression $Y^* \cdot \Delta^e$. Instead of keeping track of a collection of $Y$-values, it is then enough to keep track of their $\Delta$ values.
Now we can rearrange the equation $X^e \equiv_\nmod Y^* \cdot \Delta^e$ to obtain the equivalent equation $(X \Delta^{-1})^e \equiv_\nmod Y^*$.
Now the library has a single target value $Y^*$ and repeatedly checks whether a certain expression ($X \cdot \Delta^{-1}$) is its $e$-th root. We can therefore apply the RSA assumption, with $Y^*$ playing the role of its single target value. The standard three-hop maneuver is not shown.
As we argued above, each $Y$ value is sampled uniformly. Now that the $\Delta$ values are not needed, we can simply sample the $Y$ values uniformly in a more direct way, as they were previously. After simplifying its code, the result is $\lib{rsa*-ideal}$, which completes the proof.\FORMATTINGHACK{\pagebreak}
$\lib{rsa*-real}$
$\lib{rsa*-ideal}$
$(\nmod,e,d) := \RSA.\KeyGen()$
$Y^* \gets \Z_\nmod$
return $(\nmod,e)$
$\Delta \gets \Z_\nmod$
$Y $
${}\gets \Z_\nmod$
${}:= Y^* \cdot \Delta^e \pct \nmod$
${}\gets \Z_\nmod$
$\mathcal{Y} := \mathcal{Y} \cup \{Y\}$
$\mathcal{D} := \mathcal{D} \cup \{\Delta\}$
return $Y$
for each
$Y \in \mathcal{Y}$:
$\Delta \in \mathcal{D}$:
if
$X^e $
${}\pct \nmod \in \mathcal{Y}$: return $\mytrue$
$\equiv_\nmod $
$Y$: return $\mytrue$
$Y^* \cdot \Delta^e$: return $\mytrue$
$(X \cdot \Delta^{-1})^e \equiv_\nmod Y^*$: return $\mytrue$
$\myfalse$: return $\mytrue$
else: return $\myfalse$
return $\myfalse$