Cryptography Reference
In-Depth Information
4.7 Bidirectional Key Search
The main idea behind this approach [10] is to guess K[0],K[1],... using
the left end of the permutation S and guess K[l−1],K[l−2],... using the right
end of S simultaneously. After a number key bytes are guessed, the KSA may
be run (in the forward or in the backward direction, depending on the position
of the guessed key bytes) until a known j y+1 is encountered. If this matches
with the computed j y+1 , then the guessing continues, otherwise the partial
key is discarded. The indices y for which j y+1 's are known act as “filters” for
separating out the wrong candidate keys from the correct ones. This algorithm
can recover secret keys of length 16 bytes with a success probability of 0.1409,
which is almost two times the earlier best known value of 0.0745 reported
in [5].
4.7.1 Sequences of Filter Indices
Here we present the structure and algebraic properties of the sequence of
indices that act as filters for validating the secret key guesses. For simplicity,
l is assumed to be a factor of N.
The secret index j is pseudo-random and may be considered to follow
uniform distribution over the domain [0,N − 1]. Hence, if the values of m
consecutive j's are guessed randomly, the success probability is N −m . For N =
256 and m = 8, this probability turns out to be (256) −8 = 2 −64 . Whereas,
using theoretical framework of this section, one can guess a sequence of j
values with better probability (see Table 4.9).
Definition 4.7.1. (Event A y ) For 0 ≤ y ≤ N − 1, event A y occurs if and
only if the following three conditions hold.
1. S y [y] = y and S y [j y+1 ] = j y+1 .
2. j y+1 ≥y.
3. S N [y] = S y+1 [y].
Proposition 4.7.2. For 0 ≤ y ≤ N −1,
y
N−1−y
N −y
N
N −2
N
N −1
N
p y = P(A y ) =
.
Proof: Let us analyze the three cases mentioned in the definition of A y .
1. S y [y] = y and S y [j y+1 ] = j y+1 occur if j t ∈{y,j y+1
}, for 1 ≤ t ≤ y, the
probability of which is ( N−2
N
) y .
2. P(j y+1 ≥y) = N−y
N
.
Search WWH ::




Custom Search