4. Attack Refinements
The attack described in Sections 3.3 and 3.4 is more or less an exhaustive key search.
While an exhaustive key search for the SIGABA keyspace as it was used during the war (≈
2
48.4
bits) is possible given the speed and power of today’s computers, an exhaustive key
search for the practical keyspace is still not feasible, even with today’s computers.
2
Here we
will examine possible ways to reduce the keyspace in both Phase 1 and Phase 2 of the
attack.
For Phase 2, we will look at an improvement that is also partially described in [1]. We will
examine the frequency of the active outputs of the control rotor bank to the index rotor
bank. Recall from Table 1 that the inputs for the index rotor bank are energized by a
variable number of outputs from the control rotor bank. Input 8 of the index rotor bank is
energized by six outputs of the control rotor bank, but inputs 9, 1, and 2 are each only
energized by one output of the control rotor bank. With the frequency of the stepping of the
cipher rotors from Phase 1’s survivors, we can estimate the probabilities for the index
rotors’ permutation.
In Figure 8, we show how the control and index rotors interact. In that figure, we have
collapsed both banks of rotors into one equivalent rotor. The control rotors receive four
energized inputs for F, G, H, and I. The four inputs are passed through the control rotor and
combined according to the rules in Table 1 before being sent to the index rotors. The one to
four active index rotor inputs are combined according to the rules in Table 2. Since the
control rotors permutation changes with each letter, we model the collapsed version of the
control rotors as being uniformly random. This means that we assume all of the
26
4
=
14,950 combinations of outputs from the control rotors are equally likely. However, since
the outputs of the control rotors are ORed together according to Table 1, the inputs to the
index rotors are not uniform. Input 8 on the index rotors will be active more than inputs 1,
2, or 9 since input 8 is activated by 6 letter, whereas inputs 1, 2, and 9 are activated by only
one letter.
The index rotor outputs are ORed together according to the rules in Table 2 to determine
which cipher rotors will step. If we can determine the frequency with which the cipher
2
The 56 bit key for the Data Encryption Standard (DES) has been successfully attacked using an exhaustive
key search. [2]
24
rotors step, we can assign probabilities to the index permutation. For each of the surviving
paths from Phase 1, we have a list of the cipher rotor steppings. By using this list, we can
determine how many times each cipher rotor steps. For the merged paths from Phase 1, we
do not lose any information. In Figure 11, we have the initial position of AAAAA. There
are two paths from AAAAA to the second letter, BBABA and ABABA. At the third letter,
both of those paths merged to BBBBA. Since both paths reached BBBBA, we know that on
both paths, cipher rotors C
0
, C
1
, C
2
, and C
3
stepped once while cipher rotor C
4
did not step.
Let us consider an index permutation of (5, 4, 7, 9, 3, 8, 1, 0, 2, 6). This permutation
indicates that an input of 0 maps to an output of 5, an input of 1 maps to an output of 4, and
so forth. If we consider the pairs of outputs that will determine the cipher rotor steppings,
we see that some rotors will step more often than others. In Table 6, inputs 6 and 8 map to
outputs of 1 and 2 respectively. The inputs of 6 and 8 correspond to the outputs of 6 and 8
from the control rotors. At least one of these outputs from the control rotors will be active if
at least one of the following letters are the active output of the four signals though the
control rotors according to Figure 8: L, M, N, O, U, V, W, X, Y, Z. The same method can
be used to determine the letters that control the other four cipher rotors. From the counts,
we can see that for this index permutation, cipher rotor C
0
will step more than all the other
cipher rotors.
Cipher Rotor
C
0
C
1
C
2
C
3
C
4
Index Rotor Outputs
(1,2) (3,4) (5,6) (7,8) (9,0)
Index Rotor Inputs
(6,8) (4,1) (0,9) (2,5) (3,7)
Control Rotor Count
10
4
1
4
7
Do'stlaringiz bilan baham: |