logo
ОЗІ / Лекц_ї / все / Методы и средства защиты информации, 2003

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

Рис. 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