Методы и средства защиты информации

Процедура формирования подключей


Рис. 18.8. Формирование подключей

На каждом цикле (рис. 18.8) из ключа X длиной 56 бит формируется ключ Xi размером 48 бит. Сам ключ X размещается в восьмибайтовом слове, причем восьмые разряды каждого байта являются контрольными и в ключ не входят. Перед шифрованием, в соответствии с процедурой выбора PC1 (табл. 18.2), из X выбираются 56 бит, которыми заполняются два регистра (C и D) длиной 28 бит каждый. В дальнейшем, при входе в очередной цикл с номером i, регистры сдвигаются циклически влево. Величина сдвига зависит от номера цикла, но является фиксированной и заранее известна. После сдвига оба подблока объединяются в порядке (C, D). Затем, в соответствии с функцией выбора PC2 (табл. 18.3), из них выбираются 48 бит подключа Xi. Шифрование и расшифровывание отличаются направлением сдвигов (табл. 18.4).

Таблица 18.2. Преобразование PC1

Заполнение С



Заполнение D

57

49

41

33

25

17

9

63

55

47

39

31

23

15

1

58

50

42

34

26

18

7

62

54

46

38

30

22

10

2

59

51

43

35

27

14

6

61

53

45

37

29

19

11

3

60

52

44

36

21

13

5

28

20

12

4

Таблица 18.3.

Преобразование PC2

14

17

11

24

1

5

3

28

15

6

21

10

23

19

12

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

Выбор битов по таблицам 18.2–18.4 из соответствующих блоков производится следующим образом. Таблица рассматривается как последовательность ее строк, записанных друг за другом, начиная с первой строки. Биты блока данных соответствующей длины нумеруются слева направо, начиная с единицы. Каждый элемент s таблицы рассматривается, как номер бита bs в блоке данных. Преобразование заключается в замене всех элементов s на биты bs.

Таблица 18.4.


Соответствие сдвигов номерам циклов DES

Номер цикла

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

Сдвиг вправо

(расшифровывание)

1

1

2

2

2

2

2

2

1

2

2

2

2

2

2

1

Цикловая функция производит следующие действия.

1.     Расширение блока Ri-1

до 48 бит за счет повторения битов блока с помощью функции расширения EP (табл. 18.5).

2.       Поразрядное сложение результата с ключом Xi.

3.     Преобразование полученной суммы с помощью замены (используя так называемые S-блоки), в результате которого получается блок длиной 32 бит.

4.     Применение перестановки P (табл. 18.6), что дает значение функции

Y = f(R,X).

Таблица 18.5.

Преобразование EP       Таблица 18.6.

Перестановка P

32

1

2

3

4

5

16

7

20

21

29

12

28

17

4

5

6

7

8

9

1

15

23

26

5

18

31

10

8

9

10

11

12

13

2

8

24

14

32

27

3

9

12

13

14

15

16

17

19

13

30

6

22

11

4

25

16

17

18

19

20

21

20

21

22

23

24

25

24

25

26

27

28

29

28

29

30

31

32

1


Содержание раздела