Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 8 DES.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
648.82 Кб
Скачать

Шифртекст

Р ис.3.1. Обобщенная схема шифрования в алгоритме DES

Rw=L15ef(R1J,Kw)

- R

15

К

16

-1

Следует сразу отметить, что все приводимые таблицы яв­ляются стандартными и должны включаться в реализацию алго­ритма DES в неизменном виде.

Все перестановки и коды в таблицах подобраны разработ­чиками таким образом, чтобы максимально затруднить процесс расшифровки путем подбора ключа. При описании алгоритма DES (рис. 3.2) применены следующие обозначения:

L и R - последовательности битов (левая (left) и пра­вая (right));

84

1,2

Конечная перестановка IP

В ыходная последовательность битов (шифртекст)

Рис.3.2. Структура алгоритма DES

64

85

LR - конкатенация последовательностей L и R, т.е. такая последовательность битов, длина которой равна сумме длин L и R; в последовательности LR биты последовательности R следуют за битами последовательности L;

© - операция побитового сложения по модулю 2.

Пусть из файла исходного текста считан очередной 64-битовый (8-байтовый) блок Т. Этот блок Т преобразуется с помо­щью матрицы начальной перестановки IP (табл. 3.1).

Таблица 3.1 Матрица начальной перестановки IP

58

50

42

34

26

18

10

2

60

52

44

36

28

20

12

4

62

54

46

38

30

22

14

6

64

56

48

40

32

24

16

8

57

49

41

33

25

17

9

1

59

51

43

35

27

19

11

3

61

53

45

37

29

21

13

5

63

55

47

39

31

23

15

7

Биты входного блока Т (64 бита) переставляются в соот­ветствии с матрицей IP: бит 58 входного блока Т становится битом 1, бит 50 - битом 2 и т.д. Эту перестановку можно описать выра­жением То = IP(T). Полученная последовательность битов То разделяется на две последовательности: Lo - левые или старшие биты, Ro - правые или младшие биты, каждая из которых содер­жит 32 бита.

Затем выполняется итеративный процесс шифрования, состоящий из 16 шагов (циклов). Пусть Tj - результат i-й итерации:

Т: = Li R,,

где Li = U t2... t32 (первые 32 бита); Rs = t33134... t64 (последние 32 бита). Тогда результат i-й итерации описывается следующими формулами:

Lj = Ri_1, i = 1, 2 16;

Ri = Li_1©f(RM,Ki), i= 1,2 16.

Функция f называется функцией шифрования. Ее аргумен­тами являются последовательность Rm, получаемая на предыду­щем шаге итерации, и 48-битовый ключ Kj, который является ре­зультатом преобразования 64-битового ключа шифра К. (Подроб­нее функция шифрования f и алгоритм получения ключа К, описаны ниже.)

На последнем шаге итерации получают последовательно­сти R^ и L16 (без перестановки местами), которые конкатенируются в 64-битовую последовательность R16 L16.

86

По окончании шифрования осуществляется восстановле­ние позиций битов с помощью матрицы обратной перестановки IP"1 (табл.3.2).

Таблица 3.2 Матрица обратной перестановки IP"1

40

8

48

16

56

24

64

32

39

7

47

15

55

23

63

31

38

6

46

14

54

22

62

30

37

5

45

13

53

21

61

29

36

4

44

12

52

20

60

28

35

3

43

11

51

19

59

27

34

2

42

10

50

18

58

26

33

1

41

9

49

17

57

25

Пример того, как соотносятся элементы первой строки матрицы 1Р~1 с элементами матрицы IP приведен в табл. 3.3.

Таблица 3.3

Связь элементов

матриц

Элемент матрицы IP"'

Элемент матрицы IP

40

01

8

02

48

03

16

04

56

05

Процесс расшифрования данных является инверсным по отношению к процессу шифрования. Все действия должны быть выполнены в обратном порядке. Это означает, что расшифровы­ваемые данные сначала переставляются в соответствии с матри­цей IP"1, а затем над последовательностью битов R16L16 выпол­няются те же действия, что и в процессе шифрования, но в обрат­ном порядке.

Итеративный процесс расшифрования может быть описан следующими формулами:

Ri-i = Li, 1=1,2 16;

L+.1 = R,-Ф f (Ц K|), i = 1,2, ..., 16.

Таким образом, для процесса расшифрования с перестав­ленным входным блоком R16L16 на первой итерации используется ключ «16, на второй итерации - К15 и т.д. На 16-й итерации ип-пользуется ключ Ki. На последнем шаге итерации будут получены последовательности Lo и ROl которые конкатенируются в 64-битовую последовательность LoRo. Затем в этой последователь­ности 64 бита переставляются в соответствии с матрицей IP. Ре-

87

LR - конкатенация последовательностей L и R, т.е. такая последовательность битов, длина которой равна сумме длин L и R; в последовательности LR биты последовательности R следуют за битами последовательности L;

©-операция побитового сложения по модулю 2.

Пусть из файла исходного текста считан очередной 64-битовый (8-байтовый) блок Т. Этот блок Т преобразуется с помо­щью матрицы начальной перестановки IP (табл. 3.1).

Таблица 3.1 Матрица начальной перестановки IP

58

50

42

34

26

18

10

2

60

52

44

36

28

20

12

4

62

54

46

38

30

22

14

6

64

56

48

40

32

24

16

8

57

49

41

33

25

17

9

1

59

51

43

35

27

19

11

3

61

53

45

37

29

21

13

5

63

55

47

39

31

23

15

7

Биты входного блока Т (64 бита) переставляются в соот­ветствии с матрицей !Р: бит 58 входного блока Т становится битом 1, бит 50 - битом 2 и т.д. Эту перестановку можно описать выра­жением То = IP(T). Полученная последовательность битов То разделяется на две последовательности: Lo - левые или старшие биты, Ro-правые или младшие биты, каждая из которых содер­жит 32 бита.

Затем выполняется итеративный процесс шифрования, состоящий из 16 шагов (циклов). Пусть Т,- результат i-й итерации:

Т, = Ц Ri(

где Lj = ti t2... t32 (первые 32 бита); R, = t33134 ... t64 (последние 32 бита). Тогда результат i-й итерации описывается следующими формулами:

Li = RM, i = 1.2 16;

Ri = LM©f(RM, Ki), i= 1,2 16.

Функция f называется функцией шифрования. Ее аргумен­тами являются последовательность Rw, получаемая на предыду­щем шаге итерации, и 48-битовый ключ Kj, который является ре­зультатом преобразования 64-битового ключа шифра К. (Подроб­нее функция шифрования f и алгоритм получения ключа К, описаны ниже.)

На последнем шаге итерации получают последовательно­сти Ri6 и 1_1б (без перестановки местами), которые конкатенируются в 64-битовую последовательность R16 Це.

86

-.-1

По окончании шифрования осуществляется восстановле­ние позиций битов с помощью матрицы обратной перестановки

IP"1 (табл. 3.2).

Таблица 3.2 Матрица обратной перестановки IP"1

40

8

48

16

56

24

64

32

39

7

47

15

55

23

63

31

38

6

46

14

54

22

62

30

37

5

45

13

53

21

61

29

36

4

44

12

52

20

60

28

35

3

43

11

51

19

59

27

34

2

42

10

50

18

58

26

33

1

41

9

49

17

57

25

Пример того, как соотносятся элементы первой строки матрицы IP"1 с элементами матрицы IP приведен в табл. 3.3.

Таблица 3.3

Связь элементов

матриц

Элемент матрицы IP"'

Элемент матрицы IP

40

01

8

02

48

03

16

04

56

05

Процесс расшифрования данных является инверсным по отношению к процессу шифрования. Все действия должны быть выполнены в обратном порядке. Это означает, что расшифровы­ваемые данные сначала переставляются в соответствии с матри­цей IP"1, а затем над последовательностью битов R16L16 выпол­няются те же действия, что и в процессе шифрования, но в обрат­ном порядке.

Итеративный процесс расшифрования может быть описан следующими формулами:

Ri-i = Li, 1 = 1,2 16;

LM = Ri©f(UK,). i = 1,2 16.

Таким образом, для процесса расшифрования с перестав­ленным входным блоком R16Li6 на первой итерации используется ключ «16, на второй итерации - К^ и т.д. На 16-й итерации ис­пользуется ключ Ki. На последнем шаге итерации будут получены последовательности Lo и Ro, которые конкатенируются в 64-битовую последовательность LoRo. Затем в этой последователь­ности 64 бита переставляются в соответствии с матрицей IP. Ре-

87

з ультат такого преобразования - исходная последовательность битов (расшифрованное 64-битовое значение).

Теперь рассмотрим, что скрывается под преобразованием, обозначенным буквой f. Схема вычисления функции шифрования f (Ri_i,Kj) показана на рис. 3.3.

Ri_-i (32 бита)

Расширитель Е

48 бит -"^

г

К, (48 бит)

Г

Si £

>2 S

з £

4 £

5 £

к £

>7 £>8

Г

Перестановка битов Р