Преобразования ключа
Сначала 64-битовый ключ DES уменьшается до 56-битового ключа отбрасыванием каждого восьмого бита, как показано в Табл. 12-2. Эти биты используются только для контроля четности, позволяя проверять правильность ключа. После извлечения 56-битового ключа для каждого из 16 этапов DES генерируется новый 48-битовый подключ. Эти подключи, Ki, определяются следующим образом.
Табл. 12-2.
Перестановка ключа
57, |
49, |
41, |
33, |
25, |
17, |
9, |
1, |
58, |
50, |
42, |
34, |
26, |
18, |
10, |
2, |
59, |
51, |
43, |
35, |
27, |
19, |
11, |
3, |
60, |
52, |
44, |
36, |
63, |
55, |
47, |
39, |
31, |
23, |
15, |
7, |
62, |
54, |
46, |
38, |
30, |
22, |
14, |
6, |
61, |
53, |
45, |
37, |
29, |
21, |
13, |
5, |
28, |
20, |
12, |
4 |
Во первых, 56-битовый ключ делится на две 28-битовых половинки. Затем, половинки циклически сдвигаются налево на один или два бита в зависимости от этапа. Этот сдвиг показан в Табл. 12-3.
Табл. 12-3.
Число битов сдвига ключа в зависимости от этапа
Этап |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
Число |
1 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
После сдвига выбирается 48 из 56 битов. Так как при этом не только выбирается подмножество битов, но и изменяется их порядок, эта операция называется перестановка со сжатием. Ее результатом является набор из 48 битов. Перестановка со сжатием (также называемая переставленным выбором) определена в Табл. 12-4. Например, бит сдвинутого ключа в позиции 33 перемещается в позицию 35 результата, а 18-й бит сдвинутого ключа отбрасывается.
Табл. 12-4.
Перестановка со сжатием
14, |
17, |
11, |
2,4, |
1, |
5, |
3, |
28, |
15, |
6, |
21, |
10, |
23, |
19, |
11, |
4, |
26, |
8, |
16, |
7, |
27, |
20, |
13, |
2, |
41, |
52, |
31, |
37, |
47, |
55, |
30, |
40, |
51, |
45, |
33, |
48, |
44, |
49, |
39, |
56, |
34, |
53, |
46, |
42, |
50, |
36, |
29, |
32 |
Из-за сдвига для каждого подключа используется отличное подмножество битов ключа. Каждый бит используется приблизительно в 14 из 16 подключей, хотя не все биты используются в точности одинаковое число раз.