Cryptography Reference
In-Depth Information
Input: The keystream after a fault is injected.
Output: Classification of the state (Finney or non-Finney).
Process the next keystream byte z
r
;
1
if z already appeared at least once (i.e., there has been at least one
2
collision with z
r
) then
Denote the number of bytes since the last fault by n;
3
if n < 30 then
4
Return(non-Finney);
5
end
if 30 ≤ n < 40 and this is the second collision then
6
Return(non-Finney);
7
end
if 40 ≤ n < 50 and this is the third collision then
8
Return(non-Finney);
9
end
if n > 255 then
10
Vefiry that the 255th preceding byte z
r−255
is different from
11
the current byte z
r
(unless one of z
r
and z
r−255
is 1);
Also verify that no other pair (x,z
r
) or (z
r−255
,y) appeared
12
separated by 255 rounds;
If such a pair appeared, return(non-Finney);
13
end
if n > 600 then
14
Return(Finney);
15
end
else
16
Go to Step 1;
17
end
end
else
18
Go to Step 1;
19
end
Algorithm 8.2.1: DetectFinney