Digital Signal Processing Reference
In-Depth Information
L i-1
R i-1
K i
f
+
L i
R i
FIGURE 10.57. Encryption process—one round.
TABLE 10.11
Expansion of 32 Bits to 48
32
1
2
3
4
5
4
5
6
7
8
9
8
9
10
11
12
13
12
13
14
15
16
17
16
17
18
19
20
21
20
21
22
23
24
25
24
25
26
27
28
29
28
29
30
31
32
1
TABLE 10.12
S -Box Example, S 1
4 4 31
2 5 1 8 3 0 6 2 5 90 7
0
15
7
4
14
2
13
1
10
6
12
11
9
5
3
8
4
1
14
8
13
6
2
11
15
12
9
7
3
10
5
0
15
12
8
2
4
9
1
7
5
11
3
14
10
0
6
14
the first integer is 32, so that the first bit in the output block will be bit 32; the second
integer is 1, so that the second bit in the output block will be bit 1; and so on.
The 48-bit key transformations are XORed with these expanded data, and the
results are used as the input to eight different S -boxes. Each S -box takes 6 consec-
utive bits and outputs only 4 bits. The 4 output bits are taken directly from the
numbers found in a corresponding S -box table. This process is similar to that of a
decoder where the 6 bits act as a table address and the output is a binary repre-
sentation of the value at that address. The zeroth and fifth bits determine the row
of the S -box, and the first through fourth bits determine which column the number
is located in. For example, 110100 points to the third row (10) and 10th column
(1010). The first 6 bits of data correspond to the first of eight S -box tables, shown
in Table 10.12. The 32 bits of output from the S -boxes are permutated according to
the P -box shown in Table 10.13, and then output from the f -function shown in Figure
10.58. For example, from Table 10.13, bits 1 and 2 from the input block will be moved
to bits 16 and 7 in the output, respectively. After the 16 rounds of encryption, a final
Search WWH ::




Custom Search