[
[
['13','add','hl'],
['141','add','hl'],
['19','add','hl'],
['21','add','hl'],
['134','add','hl'],
['135','add','hl'],
['142','add','hl'],
['143','add','hl'],
['24','remove','slide-up'],
['2','add','slide-down']
],
[
['36','add','hl'],
['36','remove','hidden'],
['41','add','hl'],
['41','remove','hidden'],
['42','add','hl'],
['42','remove','hidden'],
['4','add','hidden'],
['13','remove','hl'],
['13','add','hidden'],
['141','remove','hl'],
['141','add','slide-left'],
['19','remove','hl'],
['19','add','hidden'],
['21','remove','hl'],
['21','add','hidden'],
['134','remove','hl'],
['134','add','slide-left'],
['135','remove','hl'],
['135','add','slide-left'],
['142','remove','hl'],
['142','add','slide-left'],
['143','remove','hl'],
['143','add','slide-left']
],
[
['36','remove','hl'],
['41','remove','hl'],
['42','remove','hl'],
['138','add','hl'],
['133','add','hl'],
['45','remove','slide-up'],
['24','add','slide-down']
],
[
['62','add','hl'],
['62','remove','hidden'],
['41','remove','indent-1'],
['134','add','hl'],
['134','remove','slide-left'],
['64','add','hl'],
['64','remove','hidden'],
['138','remove','hl'],
['138','add','slide-left'],
['41','add','indent-2'],
['133','remove','hl'],
['133','add','slide-right']
],
[
['62','remove','hl'],
['134','remove','hl'],
['64','remove','hl'],
['140','add','hl'],
['20','add','hl'],
['137','add','hl'],
['134','add','hl'],
['68','remove','slide-up'],
['45','add','slide-down']
],
[
['141','add','hl'],
['141','remove','slide-left'],
['138','add','hl'],
['138','remove','slide-left'],
['135','add','hl'],
['135','remove','slide-left'],
['140','remove','hl'],
['140','add','slide-right'],
['20','remove','hl'],
['20','add','hidden'],
['137','remove','hl'],
['137','add','slide-right'],
['134','remove','hl'],
['134','add','slide-right']
],
[
['141','remove','hl'],
['138','remove','hl'],
['135','remove','hl'],
['135','add','hl'],
['90','remove','slide-up'],
['68','add','slide-down']
],
[
['142','add','hl'],
['142','remove','slide-left'],
['135','remove','hl'],
['135','add','slide-right']
],
[
['142','remove','hl'],
['62','add','hl'],
['142','add','hl'],
['64','add','hl'],
['112','remove','slide-up'],
['90','add','slide-down']
],
[
['114','remove','hidden'],
['137','add','hl'],
['137','remove','slide-right'],
['41','remove','indent-2'],
['143','add','hl'],
['143','remove','slide-left'],
['62','remove','hl'],
['62','add','hidden'],
['41','add','indent-1'],
['142','remove','hl'],
['142','add','slide-right'],
['64','remove','hl'],
['64','add','hidden']
],
[
['137','remove','hl'],
['143','remove','hl']
]
]
The starting point is $\lib{sig-real}$.
First, apply the security of signature scheme $\Sigma$. The standard three-hop maneuver is not shown.
Rewrite the check $(X,S) \in \mathcal{S}$ explicitly in terms of equality tests. This will make it easier to apply the collision resistance of $H$ later.
Instead of storing $H(T,\ptxt)$ in $\mathcal{S}$, we can store $\ptxt$ in $\mathcal{S}$ and recompute its hash $H(T,\ptxt)$ later when it is needed.
Now that $\sigver$ is implemented in terms of hash comparisons, we can apply the collision resistance of $H$ (\definitionref{crhf.def.crhf}). The standard three-hop maneuver is not shown.\FORMATTINGHACK{\pagebreak}
The for-loop is just an explicit implementation of the check $(\ptxt,S) \in \mathcal{S}$. Rewriting in this way results in $\lib{sig-fake}$.
$\lib{sig-real}$
$\lib{sig-fake}$
$(\pk',\sk) := \Sigma.\KeyGen()$
$T \gets \bits^\secpar$
$\pk := (\pk,T)$
return $\pk$
$X := H(T,\ptxt)$
$S := \Sigma.\Sign(\sk,X)$
$\mathcal{S} := \mathcal{S} \cup {}$
$\{ (X,S) \}$
$\{ (\ptxt,S) \}$
return $S$
$X := H(T,\ptxt)$
return $\Sigma.\Verify(\pk',X,S)$
for
$(X',S') \in \mathcal{S}$:
$(\ptxt',S') \in \mathcal{S}$:
if
$(X,S) \in \mathcal{S}$: return $\mytrue$
$X == X'$ and $S == S'$:
$H(T,\ptxt) == H(T,\ptxt')$ and $S == S'$:
$\ptxt == \ptxt'$ and $S == S'$:
$(\ptxt,S) \in \mathcal{S}$: return $\mytrue$
return $\mytrue$
else: return $\myfalse$