[
[
['50','add','hl'],
['55','add','hl'],
['14','remove','slide-up'],
['2','add','slide-down']
],
[
['51','add','hl'],
['51','remove','slide-left'],
['22','add','hl'],
['22','remove','hidden'],
['4','add','hidden'],
['50','remove','hl'],
['50','add','slide-right'],
['55','remove','hl'],
['55','add','slide-right']
],
[
['51','remove','hl'],
['22','remove','hl'],
['53','add','hl'],
['26','remove','slide-up'],
['14','add','slide-down']
],
[
['54','add','hl'],
['54','remove','slide-left'],
['53','remove','hl'],
['53','add','slide-right']
],
[
['54','remove','hl'],
['51','add','hl'],
['22','add','hl'],
['38','remove','slide-up'],
['26','add','slide-down']
],
[
['40','remove','hidden'],
['50','add','hl'],
['50','remove','slide-right'],
['55','add','hl'],
['55','remove','slide-right'],
['51','remove','hl'],
['51','add','slide-right'],
['22','remove','hl'],
['22','add','hidden']
],
[
['50','remove','hl'],
['55','remove','hl']
]
]
The starting point is $\lib{crhf-real+ro}$.
A random oracle samples its outputs with replacement, but this behavior is indistinguishable from a function that samples without replacement. The simple three-hop maneuver involving \lemmaref{comp.lem.birthday-lib} has been omitted:
After making this change, distinct inputs are guaranteed to have distinct random-oracle outputs. Thus, $\ro(X)==\ro(X')$ \emph{if and only if} $X==X'$.
Finally, $\ro$ can be returned to its original behavior. The result is $\lib{crhf-idea+ro}$, completing the proof.
$\lib{crhf-real+ro}$
$\lib{crhf-ideal+ro}$
return
$\ro(X) == \ro(X')$
$X == X'$
if $\rotable[A]$ undefined:
$\rotable[A] \gets \bits^\secpar$
$$
${} \setminus \mathcal{Y}$
$$
$\mathcal{Y} := \mathcal{Y} \cup \{ \rotable[A] \}$
return $\rotable[A]$