[
[
['120','add','hl'],
['14','remove','slide-up'],
['2','add','slide-down']
],
[
['19','add','hl'],
['19','remove','hidden'],
['8','remove','indent-1'],
['9','remove','indent-1'],
['10','remove','indent-1'],
['23','add','hl'],
['23','remove','hidden'],
['121','add','hl'],
['121','remove','slide-left'],
['4','add','hidden'],
['8','add','indent-2'],
['9','add','indent-2'],
['10','add','indent-2'],
['120','remove','hl'],
['120','add','slide-right']
],
[
['19','remove','hl'],
['23','remove','hl'],
['121','remove','hl'],
['5','add','hl'],
['6','add','hl'],
['129','add','hl'],
['136','add','hl'],
['142','add','hl'],
['126','add','hl'],
['133','add','hl'],
['139','add','hl'],
['123','add','hl'],
['27','remove','slide-up'],
['14','add','slide-down']
],
[
['31','add','hl'],
['31','remove','hidden'],
['32','add','hl'],
['32','remove','hidden'],
['130','add','hl'],
['130','remove','slide-left'],
['34','add','hl'],
['34','remove','hidden'],
['35','remove','indent-2'],
['35','add','hl'],
['35','remove','hidden'],
['127','add','hl'],
['127','remove','slide-left'],
['37','add','hl'],
['37','remove','hidden'],
['38','remove','indent-2'],
['38','add','hl'],
['38','remove','hidden'],
['124','add','hl'],
['124','remove','slide-left'],
['40','add','hl'],
['40','remove','hidden'],
['5','remove','hl'],
['5','add','hidden'],
['6','remove','hl'],
['6','add','hidden'],
['129','remove','hl'],
['129','add','slide-right'],
['136','remove','hl'],
['136','add','slide-left'],
['35','add','indent-3'],
['142','remove','hl'],
['142','add','slide-left'],
['126','remove','hl'],
['126','add','slide-right'],
['133','remove','hl'],
['133','add','slide-left'],
['38','add','indent-3'],
['139','remove','hl'],
['139','add','slide-left'],
['123','remove','hl'],
['123','add','slide-right']
],
[
['31','remove','hl'],
['32','remove','hl'],
['130','remove','hl'],
['34','remove','hl'],
['35','remove','hl'],
['127','remove','hl'],
['37','remove','hl'],
['38','remove','hl'],
['124','remove','hl'],
['40','remove','hl'],
['135','add','hl'],
['132','add','hl'],
['45','remove','slide-up'],
['27','add','slide-down']
],
[
['136','add','hl'],
['136','remove','slide-left'],
['35','remove','indent-3'],
['133','add','hl'],
['133','remove','slide-left'],
['38','remove','indent-3'],
['135','remove','hl'],
['135','add','slide-right'],
['35','add','indent-2'],
['132','remove','hl'],
['132','add','slide-right'],
['38','add','indent-2']
],
[
['136','remove','hl'],
['133','remove','hl'],
['141','add','hl'],
['9','add','hl'],
['138','add','hl'],
['10','add','hl'],
['63','remove','slide-up'],
['45','add','slide-down']
],
[
['71','add','hl'],
['71','remove','hidden'],
['142','add','hl'],
['142','remove','slide-left'],
['126','add','hl'],
['126','remove','slide-right'],
['74','add','hl'],
['74','remove','hidden'],
['139','add','hl'],
['139','remove','slide-left'],
['123','add','hl'],
['123','remove','slide-right'],
['141','remove','hl'],
['141','add','slide-right'],
['9','remove','hl'],
['9','add','hidden'],
['138','remove','hl'],
['138','add','slide-right'],
['10','remove','hl'],
['10','add','hidden']
],
[
['71','remove','hl'],
['142','remove','hl'],
['126','remove','hl'],
['74','remove','hl'],
['139','remove','hl'],
['123','remove','hl'],
['71','add','hl'],
['74','add','hl'],
['40','add','hl'],
['23','add','hl'],
['81','remove','slide-up'],
['63','add','slide-down']
],
[
['85','add','hl'],
['85','remove','hidden'],
['86','add','hl'],
['86','remove','hidden'],
['87','add','hl'],
['87','remove','hidden'],
['88','add','hl'],
['88','remove','hidden'],
['71','remove','hl'],
['71','add','hidden'],
['74','remove','hl'],
['74','add','hidden'],
['40','remove','hl'],
['40','add','hidden'],
['23','remove','hl'],
['23','add','hidden']
],
[
['85','remove','hl'],
['86','remove','hl'],
['87','remove','hl'],
['88','remove','hl'],
['85','add','hl'],
['86','add','hl'],
['87','add','hl'],
['11','add','hl'],
['99','remove','slide-up'],
['81','add','slide-down']
],
[
['101','remove','hidden'],
['104','add','hl'],
['104','remove','hidden'],
['105','add','hl'],
['105','remove','hidden'],
['106','add','hl'],
['106','remove','hidden'],
['108','add','hl'],
['108','remove','hidden'],
['109','add','hl'],
['109','remove','hidden'],
['110','add','hl'],
['110','remove','hidden'],
['120','add','hl'],
['120','remove','slide-right'],
['85','remove','hl'],
['85','add','hidden'],
['86','remove','hl'],
['86','add','hidden'],
['87','remove','hl'],
['87','add','hidden'],
['11','remove','hl'],
['11','add','hidden']
],
[
['104','remove','hl'],
['105','remove','hl'],
['106','remove','hl'],
['108','remove','hl'],
['109','remove','hl'],
['110','remove','hl'],
['120','remove','hl']
]
]
The starting point is $\lib{prf-real}^{\mathbb F}$.
We can add a cache $\prftable[\cdot]$ so that each distinct output is computed only once.
We can replace each PRF instance $F(\key_i,\cdot)$ with a separate lazy random dictionary $\prftable_i[\cdot]$. The standard three-hop maneuvers are not shown.
\FORMATTINGHACK{\needspace{4\baselineskip}} We expect $X_2$ and $X_3$ to never repeat. So we can use the usual PRF Golden Rule proof strategy to make the assignments to $\prftable_2[X_2]$ and $\prftable_3[X_3]$ unconditional, triggering a bad event if these values were already defined. Later, we must show that the bad event's probability is negligible.
Instead of sampling $\prftable_2[X_2]$ uniformly and then computing $X_3$, we can sample $X_3$ uniformly and compute $\prftable_2[X_2]$. The same reasoning applies to $\prftable_3[X_3]$ and $X_4$. The standard three-hop maneuver involving \claimref{provsec.clm.generalized-otp} is not shown.
Now $X_3$ and $X_4$ are sampled uniformly and concatenated into $\prftable[X_0\|X_1]$. These steps can happen as early as possible.
\FORMATTINGHACK{\needspace{3.5\baselineskip}}Nothing after the assignment to $\prftable[\cdot]$ affects what the adversary sees; it exists only to determine whether to trigger a bad event. We can therefore move all bad-event logic to the end of time, without changing the bad event's overall probability.\FORMATTINGHACK{\pagebreak}
$\lib{prf-real}^{\mathbb F}$
$\key_1 \| \key_2 \| \key_3 \gets \bits^{3\secpar}$
$\lib{prf-rand}^{\mathbb{F}}$
if $\prftable[X_0\|X_1]$ undefined:
$X_3 \gets \bits^\secpar$
$X_4 \gets \bits^\secpar$
$\prftable[ X_0\|X_1 ] := X_3 \| X_4$
$\prftable[X_0\|X_1] \gets \bits^{2\secpar}$
$\mathcal{X} := \mathcal{X} \cup \{ X_0 \| X_1 \}$
return $\prftable[X_0\|X_1]$
for each $X_0\|X_1 \in \mathcal{X}$:
$X_3 \| X_4 := \prftable[ X_0 \| X_1 ]$
if $\prftable_1[X_1]$ undefined:
$\prftable_1[X_1] \gets \bits^\secpar$
$X_2 := X_0 \oplus {}$
$F(\key_1,X_1)$
$\prftable_1[X_1]$
if $\prftable_2[X_2]$
undefined:
defined: $\badvar := \mytrue$
$X_3 \gets \bits^\secpar$
$\prftable_2[X_2] $
${}\gets \bits^\secpar$
${}:= X_3 \oplus X_1$
$X_3 := X_1 \oplus {}$
$F(\key_2,X_2)$
$\prftable_2[X_2]$
if $\prftable_3[X_3]$
undefined:
defined: $\badvar := \mytrue$
$X_4 \gets \bits^\secpar$
$\prftable_3[X_3] $
${}\gets \bits^\secpar$
${}:= X_4 \oplus X_2$
$X_4 := X_2 \oplus {}$
$F(\key_3,X_3)$
$\prftable_3[X_3]$
$\prftable[ X_0\|X_1 ] := X_3 \| X_4$
return
$X_3 \| X_4$
$\prftable[X_0\|X_1]$