69886

СТАНДАРТ ШИФРОВАНИЯ ДАННЫХ DES

Лабораторная работа

Информатика, кибернетика и программирование

DES шифрует открытый текст разбитый на блоки по 64 бита на выходе также блоки по 64 бита с помощью ключа длиной 56 битов из которого на основе перестановок и сдвигов по специальному фиксированному алгоритму производятся раундовые ключи.

Русский

2014-10-12

600.5 KB

6 чел.

PAGE   \* MERGEFORMAT 2

Лабораторная работа № 8

Тема: СТАНДАРТ ШИФРОВАНИЯ ДАННЫХ DES

Цель работы – изучить структуру алгоритма шифрования DES, на практике осуществить формирование подключей, зашифрование и расшифрование блока данных алгоритмом DES с укороченным количеством циклов.

Краткие теоретические сведения.

Федеральный стандарт шифрования данных  принят в США в ноябре 1976 года. В стандарт входит описание «блочного шифра типа Файстеля», а также различных режимов его работы, как составной части нескольких процедур криптографического преобразования данных. Обычно под аббревиатурой  понимается именнно «блочный шифр», который в стандарте соответствует процедуре шифрования в режиме  (Elecnronic Codebook Mode). Название вызвано тем, что любой «блочный шифр» является шифром простой замены и в этом отношении подобен кодовой таблице.

DES шифрует открытый текст, разбитый на блоки по 64 бита (на выходе также блоки по 64 бита) с помощью ключа длиной 56 битов, из которого на основе перестановок и сдвигов по специальному фиксированному алгоритму производятся раундовые ключи. Мощность множества открытых ключей DES равняется (), но реальная криптостойкость оценивается несколько меньшей величиной.

В основе алгоритма DES лежит сеть Фейстеля, чья цикловая (раундовая) функция  обрабатывает 32-разрядные слова (половину блока) и использует в качестве параметра 48-разрядный подключ.

Преобразование блока открытого текста в блок шифртекста продолжается два этапа.

Этап 1. Построение раундовых ключей, в процессе которого выбирается исходный ключ  из случайных 56 битов. 56 битов – это 8 7-битовых ASCII символов, т. е. пароль не может быть больше чем 8 букв. Если использовать лишь буквы и цифры, то количество возможных вариантов ключа будет гораздо меньше максимально возможных .

Восемь битов в позициях 8, 16, 32, 64 добавляются в ключ так, чтобы каждый байт содержал нечётное число единиц. С помощью этой операции можно обнаружить ошибки во время обмена и хранения ключей. 56 битов ключа разбиваются на два блока по 28 битов  и  и подвергаются перестановке по таблице:

Таб.1. Преобразование  (Permuted Choice 1) – перестановка ключа.

57

49

41

33

25

17

9

632

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

Каждые последующие блоки и  ключа, , получают из предыдущих блоков и в результате циклического сдвига:

Таб.2. Соответствие сдвигов номерам циклов .

№ цикла

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

Сдвиг вправо (Р)

0

1

2

2

2

2

2

2

1

2

2

2

2

2

2

1

Раундовый ключ , , получается из битов блока и  выбором некоторых их 48-ми координат по таблице:

Таб.3. Преобразование  (Permuted Choice 2) – сжимающая перестановка

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

Таким образом, на первом этапе из одного ключа размером 56 битов строится ключевая таблица из 16-ти ключей , , длина каждого из которых 48 битов.

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

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

Этап 2. Блок  открытого текста после начальной перестановки по таблице

Таб.4 Преобразование  (initial permutation)– начальная перестановка

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

разбивается на два полублока левый  и правый  длиной по 32 бита. Эти блоки рассматриваются как 32-мерные двоичные векторы. После этого выполняется 16 раундов идентичных операций (функция ), в которых исходные данные комбинируются с ключом. Аргументами функции  являются блоки  по 32 бита и раундовые ключи  по 48 битов.

В каждом раунде сначала 32-битовый блок расширяется до блока  длиной 48 битов по таблице:

Таб.5. Преобразование  – расширяющая перестановка.

32

1

2

3

4

5

4

5

6

7

8

9

8

9

10

11

12

13

12

13

14

15

16

17

16

17

18

19

20

21

20

21

22

23

24

25

24

25

26

27

28

29

28

29

30

31

32

1

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

Блок  покоординатно складывается по модулю 2 с 48 битами раундового ключа  и делится на 8 последовательных 6-битовых векторов :

.

Далее каждый из векторов , , трансформируется в 4-битовый вектор  с помощью так называемого -бокса (-box) – таблицы из четырёх строк и 16 столбцов. Каждый вектор , , попадает в свой бокс ,.

Таб.6. Таблицы -боксов для .

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

14

4

13

1

2

15

11

8

3

10

6

12

5

9

0

7

1

0

15

7

4

14

2

13

1

10

6

12

11

9

5

3

8

2

4

1

14

8

13

6

2

11

15

12

9

7

3

10

5

0

3

15

12

8

2

4

9

1

7

5

11

3

14

10

0

6

13

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

15

1

8

14

6

11

3

4

9

7

2

13

12

0

5

10

1

3

13

4

7

15

2

8

14

12

0

1

10

6

9

11

5

2

0

14

7

11

10

4

13

1

5

8

12

6

9

3

2

15

3

13

8

10

1

3

15

4

2

11

6

7

12

0

5

14

9

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

10

0

9

14

6

3

15

5

1

13

12

7

11

4

2

8

1

13

7

0

9

3

4

6

10

2

8

5

14

12

11

15

1

2

13

6

4

9

8

15

3

0

11

1

2

12

5

10

14

7

3

1

10

13

0

6

9

8

7

4

15

14

3

11

5

2

12

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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

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

Это – главный этап алгоритма, потому что -боксы нелинейны и более чем другие операции придают системе  криптостойкости. Принципы построения -боксов:

  •  каждая строка -бокса – некоторая перестановка множества ;
  •  -боксы не должны быть линейными или аффинными преобразованиями исходных данных;
  •  изменение одного бита исходных данных в -боксе должно вызывать изменения по крайней мере двух битов на выходе из бокса;
  •  если на вход -бокса сначала подан вектор , а затем вектор , то векторы  и  должны отличаться хотя бы двумя битами.

Механизм действия S-боксов. Преобразование, с помощью которого 48-разрядный блок преобразуется в 32-разрядный состоит в выборке восьми тетрад из 8 таблиц (-боксов) размером 4 на 16. Из каждого -бокса выбирается одна тетрада. Для этого 48-разрядный блок делится последовательно на 8 комбинаций по 6 битов каждая. Первая комбинация (слева) является входом в первый -бокс, вторая – во второй и т.д. При этом, первый и последний биты комбинации задают номер строки, а остальные 4 бита – номер столбца -бокса, на пересечении которых расположена соответствующая тетрада.

Таким образом, результатом действия -боксов являются 8 4-битовых векторов , которые снова объединяются в единый 32-битовый блок. Координаты этого 32-битового блока подвергаются  перестановке в -боксе по таблице:

Таб.7. Преобразование .

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

Все описаны действию и образуют шифровальную функцию DES .

Вектор, полученный с помощью функции DES, покоординатно складывается по модулю 2 с вектором левого блока .

Таким образом -й раунд (-я итерация) алгоритма DES выглядит так:

;

,

где  и  – блоки данных, полученные в -м та ()-м раундах соответственно,  – 48 битовый ключ -го раунда, .

После 16-го раунда DES правый и левый блоки уже не меняются местами, а объединяются в блок  и подвергаются финальной перестановке, которая является обратной к начальной, по таблице:

Таб.8 Преобразование  – финальная перестановка

40

08

48

16

56

24

64

32

39

07

47

15

55

23

63

31

38

06

46

14

54

22

62

30

37

05

45

13

53

21

61

29

36

04

44

12

52

20

60

28

35

03

43

11

51

19

59

27

34

02

42

10

50

18

58

26

33

01

41

09

49

17

57

25

Финальная перестановка завершает алгоритм.

Общая схема алгоритма изображена на рис. 2.

Рис.2. Блок-схема работы алгоритма .

Криптограмму, полученную с помощью шифра , дешифруют теми же раундовыми ключами , но в обратном порядке: . Алгоритм генерации ключей также должен быть обратным – сдвиг вправо, количество битов сдвига определяется справа налево.

Другие режимы использования алгоритма шифрования DES.

Режим сцепления блоков шифртекста (CBC, Ciрher Block Chaining Mode). Суть этого режима состоит в том, что сообщение разбивается на блоки по 64 бит, и их последовательность зашифровывается. Перед зашифрованием (в режиме ECB), блок открытого текста поразрядно складывается с предыдущим блоком шифртекста. Для зашифрования первого блока шифртекста требуется уникальный для сообщения блок (вектор инициализации, IV). Последний не является секретным. Данный режим не позволяет накапливаться ошибкам при передаче, поскольку ошибка при передаче приведет к потере только двух блоков исходного текста. Существуют также режим шифрования с обратной связью (CFB, Cipher Feedback) и режим шифрования с внешней обратной связью (OFB, Output Feedback). Рассмотрение этих режимов выходит за рамки данной лабораторной работы.

Порядок выполнения работы.

  1.  Изучить краткие теоретические сведения о стандарте шифрования DES.
  2.  Получить последовательность всех шестнадцати подключей, выбрав ключ шифрования.

Варианты ключа шифрования:

1

12345670

11

05764132

21

37601452

2

23456701

12

57641320

22

76014523

3

34567012

13

76413205

23

60145237

4

45670123

14

64132057

24

01452376

5

56701234

15

41320576

25

13207654

6

67012345

16

02315467

26

32076541

7

70123456

17

14523760

27

20765413

8

03214765

18

45237601

28

07654132

9

13205764

19

52376014

29

76541320

10

32057641

20

23760145

30

65413207

  1.  Выбрать входной блок информации – 64 бита и зашифровать его вручную, используя один (первый) цикл алгоритма DES.
  2.  Убедиться в правильности зашифрования с помощью расшифрования.
  3.  Составить отчет, приобщив полученные результаты.

Требования к отчету.

В отчете должны быть приведены:

  1.  выбранный ключ;
  2.  последовательность подключей на всех шестнадцати циклах;
  3.  открытый блок сообщения;
  4.  зашифрованный блок сообщения;
  5.  промежуточные результаты, возникшие в процессе зашифрования;


 

А также другие работы, которые могут Вас заинтересовать

11088. Аварии с выбросом (угрозой выброса) аварийно химических опасных веществ (АХОВ) 84.16 KB
  Аварии с выбросом угрозой выброса аварийно химических опасных веществ АХОВ Предприятия в городе использующие опасные химические вещества: металлургический завод машиностроительный завод коммунальное хозяйство кондитерская фабрика пивной зав
11089. Аварии с выбросом (угрозой выброса) радиоактивных веществ 183.84 KB
  Аварии с выбросом угрозой выброса радиоактивных веществ Внимание Радиация не имеет запаха цвета вкуса. Радиационноопасный объект РОО объект на котором хранят перерабатывают используют или транспортируют радиоактивные вещества при аварии на котором или его р...
11090. Аварии с выбросом (угрозой выброса) биологических опасных веществ. Гидродинамические аварии. Аварии на коммунальных системах жизнеобеспечения 109.62 KB
  Аварии с выбросом угрозой выброса биологических опасных веществ. Гидродинамические аварии. Аварии на коммунальных системах жизнеобеспечения. Аварии с выбросом биологических опасных веществ Предприятия использующие в производственных процессах различные веществ
11091. Чрезвычайные ситуации экологического характера 192.24 KB
  Чрезвычайные ситуации экологического характера Нарушение экологического равновесия Экология это наука о взаимоотношениях живых организмов между собой и с окружающей средой. Все элементы живой и неживой природы влияют на состояние и жизнедеятельность друг друг...
11092. Чрезвычайные ситуации военного характера, источники их возникновения 41.26 KB
  Чрезвычайные ситуации военного характера источники их возникновения Особенности ЧС военного времени Нам представляется что ЧС военного характера военные столкновения это особая группа конфликтных и экологических ЧС возникших на определенной территории вызван...
11093. Действия населения при авариях катастрофах и стихийных бедствиях 26.35 KB
  Действия населения при авариях катастрофах и стихийных бедствиях. Введение. Стихийные действия сил природы пока еще не в полной мере подвластные человеку наносят экономике государства и населению огромный ущерб. Стихийные бедствия это такие явления природы кото
11094. Средства защиты органов дыхания (противогазы, респираторы). Защитные сооружения, их классификация 48.51 KB
  Средства защиты органов дыхания противогазы респираторы. Защитные сооружения их классификация Средства Индивидуальной Защиты Органов Дыхания СИЗОД К СИЗОД относят противогазы респираторы изолирующие дыхательные аппараты комплект дополнительного патрона...
11095. Военная доктрина РФ. Организационная структура ВС РФ, рода войск и их предназначения 19.3 KB
  Военная доктрина РФ. Организационная структура ВС РФ рода войск и их предназначения. Военная доктрина Российской Федерации Утверждение военной доктрины Российской Федерации находится в компетенции Верховного Главнокомандующего Вооружёнными Силами Российской Фе...
11096. Организация воинского учета призывников, прохождение воинской службы по призыву и по контракту. Альтернативная служба 47.46 KB
  Организация воинского учета призывников прохождение воинской службы по призыву и по контракту. Альтернативная служба Воинский учет Воинский учет это составная часть воинской обязанности граждан. Воинскому учету подлежат все граждане мужского пола достигшие пр