Главная страница

Вопросы с 11 по 20. По принятому алгоритму шифрования выполним необходимые действия При этом зашифрованный текст будет иметь вид 85, 54, 25, 96, 60, 24


Скачать 0.61 Mb.
НазваниеПо принятому алгоритму шифрования выполним необходимые действия При этом зашифрованный текст будет иметь вид 85, 54, 25, 96, 60, 24
Дата01.06.2022
Размер0.61 Mb.
Формат файлаdocx
Имя файлаВопросы с 11 по 20.docx
ТипДокументы
#562826
страница4 из 6

Предположим, что {\displaystyle B_{3}=101111} , и мы хотим найти {\displaystyle B'_{3}} . Первый и последний разряды {\displaystyle B_{3}}  являются двоичной записью числа а, 0<=a<=3, средние 4 разряда представляют число b, 0<=b<=15. Строки таблицы S3 нумеруются от 0 до 3, столбцы таблицы S3 нумеруются от 0 до 15. Пара чисел (а, b) определяет число, находящееся в пересечении строки а и столбца b. Двоичное представление этого числа дает {\displaystyle B'_{3}}  . В нашем случае {\displaystyle a=11_{2}=3} {\displaystyle b=0111_{2}=7} , а число, определяемое парой (3,7), равно 7. Его двоичное представление {\displaystyle B'_{3}} =0111. Значение функции {\displaystyle f(R_{i-1},k_{i})}  (32 бит) получается перестановкой Р, применяемой к 32-битовому блоку {\displaystyle B'_{1}B'_{2}...B'_{8}} Перестановка Р задана таблицей 4.
1   2   3   4   5   6

0

7

13

14

3

0

6

9

10

1

2

8

5

11

12

4

15




1

13

8

11

5

6

15

0

3

4

7

2

12

1

10

14

9

{\displaystyle S_{4}}

2

10

6

9

0

12

11

7

13

15

1

3

14

5

2

8

4




3

3

15

0

6

10

1

13

8

9

4

5

11

12

7

2

14


























































0

2

12

4

1

7

10

11

6

8

5

3

15

13

0

14

9




1

14

11

2

12

4

7

13

1

5

0

15

10

3

9

8

6

{\displaystyle S_{5}}

2

4

2

1

11

10

13

7

8

15

9

12

5

6

3

0

14




3

11

8

12

7

1

14

2

13

6

15

0

9

10

4

5

3


























































0

12

1

10

15

9

2

6

8

0

13

3

4

14

7

5

11




1

10

15

4

2

7

12

9

5

6

1

13

14

0

11

3

8

{\displaystyle S_{6}}

2

9

14

15

5

2

8

12

3

7

0

4

10

1

13

11

6




3

4

3

2

12

9

5

15

10

11

14

1

7

6

0

8

13


























































0

4

11

2

14

15

0

8

13

3

12

9

7

5

10

6

1




1

13

0

11

7

4

9

1

10

14

3

5

12

2

15

8

6

{\displaystyle S_{7}}

2

1

4

11

13

12

3

7

14

10

15

6

8

0

5

9

2




3

6

11

13

8

1

4

10

7

9

5

0

15

14

2

3

12


























































0

13

2

8

4

6

15

11

1

10

9

3

14

5

0

12

7




1

1

15

13

8

10

3

7

4

12

5

6

11

0

14

9

2

{\displaystyle S_{8}}

2

7

11

4

1

9

12

14

2

0

6

10

13

15

3

5

8




3

2

1

14

7

4

10

8

13

15

12

9

0

3

5

6

11




Таблица 4. Перестановка P

16

7

20

21

29

12

28

17

1

15

23

26

5

18

31

10

2

8

24

14

32

27

3

9

19

13

30

6

22

11

4

25

{\displaystyle f(R_{i-1},k_{i})=P(B'_{1}B'_{2}...B'_{8})}
Согласно таблице 4, первые четыре бита результирующего вектора после действия функции f — это биты 16, 7, 20, 21 вектора {\displaystyle B'_{1}B'_{2}...B'_{8}}

Генерирование ключей {\displaystyle k_{i}} [править | править код]

Ключи {\displaystyle k_{i}}  получаются из начального ключа {\displaystyle k}  (56 бит = 7 байтов или 7 символов в ASCII) следующим образом. Добавляются биты в позиции 8, 16, 24, 32, 40, 48, 56, 64 ключа {\displaystyle k}  таким образом, чтобы каждый байт содержал нечетное число единиц. Это используется для обнаружения ошибок при обмене и хранении ключей. Затем делают перестановку для расширенного ключа (кроме добавляемых битов 8, 16, 24, 32, 40, 48, 56, 64). Такая перестановка определена в таблице 5.



Рис.6 Схема расшифрования алгоритма DES

Таблица 5.

57

49

41

33

25

17

9

1

58

50

42

34

26

18

{\displaystyle C_{0}}

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

{\displaystyle D_{0}}

14

6

61

53

45

37

29

21

13

5

28

20

12

4




Эта перестановка определяется двумя блоками {\displaystyle C_{0}}  и {\displaystyle D_{0}}  по 28 бит каждый. Первые 3 бита {\displaystyle C_{0}}  есть биты 57, 49, 41 расширенного ключа. А первые три бита {\displaystyle D_{0}}  есть биты 63, 55, 47 расширенного ключа. {\displaystyle C_{i},D_{i}}  i=1,2,3…получаются из {\displaystyle C_{i-1},D_{i-1}}  одним или двумя левыми циклическими сдвигами согласно таблице 6.

Таблица 6.

i

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

Ключ {\displaystyle k_{i}} , i=1,…16 состоит из 48 бит, выбранных из битов вектора {\displaystyle C_{i}D_{i}}  (56 бит) согласно таблице 7. Первый и второй биты {\displaystyle k_{i}}  есть биты 14, 17 вектора {\displaystyle C_{i}D_{i}}

Таблица 7.

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

Конечная перестановка[править | править код]

Конечная перестановка {\displaystyle \mathrm {IP} ^{-1}}  действует на {\displaystyle T_{16}^{-1}}  (где {\displaystyle T_{16}^{-1}=R_{16}+L_{16}} ) и является обратной к первоначальной перестановке. Конечная перестановка определяется таблицей 8.

Таблица 8. Обратная перестановка{\displaystyle \mathrm {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

Схема расшифрования[править | править код]

При расшифровании данных все действия выполняются в обратном порядке. В 16 циклах расшифрования, в отличие от шифрования c помощью прямого преобразования сетью Фейстеля, здесь используется обратное преобразование сетью Фейстеля.

{\displaystyle R_{i-1}=L_{i}}
{\displaystyle L_{i-1}=R_{i}\oplus f(L_{i},k_{i})}

Схема расшифрования указана на Рис.6.
Ключ {\displaystyle k_{i}} , i=16,…,1, функция f, перестановка IP и {\displaystyle IP^{-1}}  такие же, как и в процессе шифрования. Алгоритм генерации ключей зависит только от ключа пользователя, поэтому при расшифровании они идентичны.

Режимы использования DES[править | править код]

Основная статья: Режим шифрования

DES может использоваться в четырёх режимах.

  1. Режим электронной кодовой книги (ECB — Electronic Codebook): обычное использование DES как блочного шифра. Шифруемый текст разбивается на блоки, при этом каждый блок шифруется отдельно, не взаимодействуя с другими блоками (см. Рис.7).



Рис.7 Режим электронной кодовой книги — ECB

  1. Режим сцепления блоков шифротекста (СВС — Cipher Block Chaining) (см. Рис.8). Каждый очередной блок {\displaystyle M_{i}}  i>=1, перед зашифровыванием складывается по модулю 2 с предыдущим блоком зашифрованного текста {\displaystyle C_{i-1}} . Вектор {\displaystyle C_{0}}  — начальный вектор, он меняется ежедневно и хранится в секрете.



Рис.8 Режим сцепления блоков — СВС

  1. Режим обратной связи по шифротексту (Cipher Feedback) (см. Рис.9). В режиме CFB вырабатывается блочная «гамма» {\displaystyle Z_{0},Z_{1},...} {\displaystyle Z_{i}=DES_{k}(C_{i-1})}  {\displaystyle C_{i}=M_{i}\oplus Z_{i}} . Начальный вектор {\displaystyle C_{0}}  является синхропосылкой и предназначен для того, чтобы разные наборы данных шифровались по-разному с использованием одного и того же секретного ключа. Синхропосылка посылается получателю в открытом виде вместе с зашифрованным файлом. Алгоритм DES, в отличие от предыдущих режимов, используется только как шифрование (в обоих случаях).



Рис.9 Режим обратной связи по шифротексту — CFB

  1. Режим обратной связи по выходу (OFB — Output Feedback) (см. Рис.10). В режиме OFB вырабатывается блочная «гамма» {\displaystyle Z_{0},Z_{1},...}  {\displaystyle Z_{i}=DES_{k}(Z_{i-1})C_{i}=M_{i}\oplus Z_{i}} , i>=1. Режим также использует DES только как шифрование (в обоих случаях).



Рис.10 Режим обратной связи по выходу — OFB

Достоинства и недостатки режимов:

  • В режимах ECB и OFB искажение при передаче одного 64-битового блока шифротекста {\displaystyle C_{i}}  приводит к искажению после расшифрования только соответствующего открытого блока {\displaystyle M_{i}} , поэтому такие режимы используется для передачи по каналам связи с большим числом искажений.

14.

Основы криптографии


[+]

Реклама

Записаться



Вам нравится?  Нравится 90 студентам

 | Поделиться | 

 Поддержать курс

 | Скачать электронную книгу

Лекция 6: 
1   2   3   4   5   6


написать администратору сайта