Differential Cryptanalysis Attack
The differential cryptanalysis attack is complex; [BIHA93] provides a
complete description. The rationale behind differential cryptanalysis is to
observe the behavior of pairs of text blocks evolving along each round of the
cipher, instead of observing the evolution of a single text block. Here, we
provide a brief overview so that you can get the flavor of the attack.
We begin with a change in notation for DES. Consider the
original plaintext block m to consist of two
halves m0,m1. Each round of DES maps the right-hand
input into the left-hand output and sets the right-hand output to be a function
of the left-hand input and the subkey for this round. So, at each round, only
one new 32-bit block is created. If we label each new block m1(2
i 17), then
the intermediate message halves are related as follows:
mi+1 = mi-1 f(mi, Ki), i = 1,
2, ..., 16
In differential cryptanalysis, we start with two messages,
m and m', with a
known XOR difference Dm
= m m', and consider the difference between the
intermediate message halves: mi =
mi mi' Then we have:
Now, suppose that many pairs of inputs to f with the same
difference yield the same output difference if the same subkey is used. To put
this more precisely, let us say that X may cause Y with
probability p, if for a fraction p of the
pairs in which the input XOR is X, the output XOR
equals Y. We want to suppose that there are a
number of values of X that have high probability
of causing a particular output difference. Therefore, if we know Dmi-1 and Dmi with high
probability, then we know Dmi+1 with
high probability. Furthermore, if a number of such differences are determined,
it is feasible to determine the subkey used in the function f.
The overall strategy of differential cryptanalysis is based on
these considerations for a single round. The procedure is to begin with two
plaintext messages m and m' with a given difference and trace through a probable
pattern of differences after each round to yield a probable difference for the
ciphertext. Actually, there are two probable patterns of differences for the two
32-bit halves: (Dm17||m16). Next, we submit m and m' for encryption
to determine the actual difference under the unknown key and compare the result
to the probable difference. If there is a match,
E(K, m) E(K, m') = (Dm17||m16)
then we suspect that all the probable
patterns at all the intermediate rounds are correct. With that assumption, we
can make some deductions about the key bits. This procedure must be repeated
many times to determine all the key bits.
Figure 3.7, based on a
figure in [BIHA93],
illustrates the propagation of differences through three rounds of DES. The
probabilities shown on the right refer to the probability that a given set of
intermediate differences will appear as a function of the input differences.
Overall, after three rounds the probability that the output difference is as
shown is equal to 0.25 x 1 x 0.25 = 0.0625.
No comments:
Post a Comment