Применение стандарта криптосистем DES для шифрования информации | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №8 (19) август 2010 г.

Статья просмотрена: 2061 раз

Библиографическое описание:

Артюхов, Ю. В. Применение стандарта криптосистем DES для шифрования информации / Ю. В. Артюхов. — Текст : непосредственный // Молодой ученый. — 2010. — № 8 (19). — Т. 1. — С. 146-150. — URL: https://moluch.ru/archive/19/1928/ (дата обращения: 16.11.2024).

Стандарт криптосистем DES (Data Encryption Standard) был разработан фирмой IBM и утвержден правительством США в конце 70-х годов как общепринятый стандарт шифрования. DES предназначен для работы с 64-битовыми блоками данных, который преобразуется к зашифрованному блоку (64-бит) за 16-шагов. Каждый из этих 16 ключей получается из 56 битного главного ключа, рис.1.

Перед тем как над исходным блоком начнут выполняться его 16 циклов шифрования, проводится его первичное преобразование, а после шифрования производится преобразование, обратное первичному. Результатом является зашифрованный блок [1, 3].

 

Рисунок 1. Общая схема алгоритма DES

         

  

Рисунок 2. Cхема раунда шифрования алгоритма DES

 

Каждый цикл шифрования   использует блок  64-битных исходных данных полученных из предыдущего цикла шифрования , как показано на рис. 1,б. Каждые 64 бита разбиваются на левый  32 –битный сегмент  и правый . Во время следующего цикла сегменты меняются местами. Основную роль в алгоритме DES играет искажающая функция . Данная функция принимает в качестве исходных данных 32-битный блок  и 48-битный ключ , а затем генерирует 32-битный блок, предназначенный для использования в операции XOR (“или”) с блоком . В результате вышеизложенной последовательности действий на каждом шаге цикла порождается . Искажающая функция сначала добирает   до 48 бит, а потом проводит над ним операцию XOR с применением ключа . В результате мы имеем восемь частей по шесть бит. На следующем шаге каждая часть проходит через один из восьми S-блоков (блоков подстановки), где преобразуется  в набор из 4 битов. Иными словами S-блолки представляют собой нелинейные компоненты алгоритма DES, которые обеспечивают основную криптостойкость шифра. Каждый S-блок представляет собой поисковую таблицу из четырех строк и шестнадцати столбцов. Шесть входящих в S-блок битов определяют, какую строку и какой столбец необходимо использовать для замены. Первый и шестой бит задают номер строки, а остальные — номер столбца. Выход S-блока — значение соответствующей ячейки таблицы. Следующим этапом работы искажающей функции  является обработка P-блоком групп из восьми 4-битовых элементов. Данные последовательности битов компонуются в 32-битовую строку и перемешиваются, формируя тем самым выход функции  .

Стандарт шифрования DES предусматриваем различные режимы работы с информацией [2].

Режим ECBэлектронная кодовая книга (Electronic Code Book). Этот режим прост в обращении, но слабо защищен от возможных атак с удалениями и вставками. Ошибка, допущенная в одном из битов шифротекста, влияет на целый блок в расшифрованном тексте.

Данные , которые необходимо зашифровать, делятся на блоки по  бит:

.                                                           (1)

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

                                                        (2).

Режим CBC (Cilper Block Chaining) предназначен для минимизации потерь в результате атаки с использованием удаленных вставок. Здесь ошибочный бит шифротекста при расшифровании не только превращает в ошибочный блок, в котором содержится, но и портит один бит в следующем блоке открытого текста, что можно легко определить и интерпретировать как сигнал о предпринятой атаке. В данном режиме  информация разбивается на блоки и дополняется последний как и в режиме ECB (1). Шифрование ведётся согласно формулам

.                          (3)

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

Режим OFB называемый обратной связью по выходу (Output Feedback) применяется для использования  блочного шифра в качестве поточного. Для этого необходимо выбрать переменную , где , которая обозначает число битов на выходе генератора потока ключей при каждой итерации. Далее выполняем операцию, описанную формулой (1). В данном случае каждый блок данных состоит из  битов. Зашифрование происходит следующим образом:

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

Режим CFB  (Cipher Feed Back) обратная связь по шифротексту. Он имеет много общего с режимом OFB. Блочный шифр в нем преобразуется в поточный. В режиме CFB  поток ключей возникает в результате еще одного шифрования блоков криптограммы

                                (4)

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

Как уже не раз отмечалось, в первом приближении DES — это шифр Фейстеля с 16 раундами (рис. 1), за исключением того, что как перед, так и после основных итераций алгоритма Фейстеля осуществляются некоторые перестановки. Обратите внимание (рис. 1) на то, как два блока меняются местами перед последней перестановкой алгоритма. Эта замена никак не влияет на стойкость шифра, и пользователи часто задавались вопросом: зачем вообще это делать Один из членов творческого коллектива, разработавшего DES утверждал, что она облегчает микросхемную реализацию процедуры шифрования. Шифр DES преобразует открытый текст следующим образом.

  • производит начальную перестановку (IP);
  • расщепляет блок на левую и правую половины;
  • осуществляет 16 раундов с одним и тем же набором операций;
  • соединяет половины блока;
  • производит конечную перестановку.

Конечная перестановка обратная начальной. Это позволяет использовать одно и то же программное обеспечение и оборудование для двух сторон процесса: шифрования и расшифрования. Разворачивачивание ключа дает 16 подключен по 48 битов каждый, выделяя их из 56-битного основного ключа.

Работа функции . Каждый цикл алгоритма DES состоит из 6 шагов, опишем их:

  • Перестановка с расширением. Правая половина из 32 битов растягивается до 48 битов и перемешивается. Это помогает рассеиванию связи между входными битами и выходными. Перестановка с расширением (отличная от начальной) выбирается так, чтобы один входной бит воздействовал на две замены через S-блоки, о которых речь пойдет ниже. Это помогает распространять зависимости и создает лавинный эффект (малое различие между двумя наборами входных данных превращается в большое на выходе);
  • Сложение с подключом. К строке из 48 битов, полученной после перестановки с расширением, и подключу (его длина тоже 48 битов) применяется операция исключающего ИЛИ, т. е. каждая пара соответствующих битов складывается по модулю 2. Заметим, что подключ используется только в этом месте алгоритма;
  • Расщепление, Результат предыдущего шага расщепляется на 6 частей по 8 битов в каждом;
  • S-блок. Каждый 6-битовый кусок передается в один из восьми S-блоков (блоков подстановки), где он превращается в набор из 4 битов. S-блоки — нелинейные компоненты алгоритма DES и именно они дают основной вклад в криптостойкость шифра. Каждый S-блок представляет собой поисковую таблицу из четырех строк и шестнадцати столбцов. Шесть входящих в S-блок битов определяют, какую строку и какой столбец необходимо использовать для замены. Первый и шестой бит задают номер строки, а остальные — номер столбца. Выход S-блока — значение соответствующей ячейки таблицы.
  • Р-блок. На этот момент у нас есть восемь групп 4-битовых элементов, которые комбинируются здесь в 32-битовую строку и перемешиваются, формируя выход функции F.

Графически функция алгоритма DES схематически изображена на рисунке 3.

Рисунок 3.  Структура функции F алгоритма DES

Начальная перестановка, IP. Начальная перестановка алгоритма DES определяется таблицей 1. Эту и все другие таблицы, изображающие перестановки, следует читать слева направо и сверху вниз. Так, число 58, расположенное в первой строке и первом столбце таблицы, означает, что IP перемещает пятьдесят восьмой бит входных данных на первое место. Аналогично, согласно этой таблице, второй бит перемещается в позицию 50, и т. д.

 

Таблица 1.

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

 

Перестановка с расширением Е. Перестановка Е также представляется таблицей (таб. 3). Каждая строка в ней соответствует битам, входящим в соответствующий S-блок на следующем шаге. Обратите внимание, как биты, нумерующие строку одного S-блока (первый и последний бит каждой строки), влияют на выбор столбца другого S-блока.

Таблица 2.

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

54

5

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

 

 

Таблица 3.

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

 

Перестановка в Р-блоке, Р. Эта перестановка превращает 8 групп 4-битовых элементов на выходе из S-блоков, в 32-битовую строку, соединяя и перемешивая их, как показано в табл. 4. S-блок. содержимое восьми S-блоков алгоритма представлено в табл. 5. Напомним, что каждый из них представляет собой таблицу из 4 строк и 16 столбцов.

Таблица 4.

 

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

 

Далее происходит разворачивание ключа с 56-битовым ключом, который представлен строкой из 64 знаков, которая включает в себя контрольные биты, следящие за четкостью. Каждый восьмой бит этой строки (стоящий на позициях 8, 16, …, 64) отвечает за то, чтобы каждый байт ключа состоял из нечетного числа битов.

 

Таблица 5. Состояния S-блоков

S-блок 1

14

4

13

1

2

15

11

8

3

10

6

12

5

9

0

7

0

15

7

4

14

2

13

1

10

6

12

11

9

5

3

8

4

1

14

8

13

6

2

11

15

12

9

7

3

10

5

0

15

12

8

2

4

9

1

7

5

11

3

14

10

0

6

13

 

S-блок 2

15

1

8

14

6

11

3

4

9

7

2

13

12

0

5

10

3

13

4

7

15

2

8

14

12

0

1

10

6

9

11

5

0

14

7

11

10

4

13

1

5

8

12

6

9

3

2

15

13

8

10

1

3

15

4

2

11

6

7

12

0

5

14

9

 

S-блок 3

10

0

9

14

6

3

15

5

1

13

12

7

11

4

2

8

13

7

0

9

3

4

6

10

2

8

5

14

12

11

15

1

13

6

4

9

8

15

3

0

11

1

2

12

5

10

14

7

1

10

13

0

6

9

8

7

4

15

14

3

11

5

2

12

 

S-блок 4

7

13

14

3

0

6

9

10

1

2

8

5

11

12

4

15

13

8

11

5

6

15

0

3

4

7

2

12

1

10

14

9

10

6

9

0

12

11

7

13

15

1

3

14

5

2

8

4

3

15

0

6

10

1

13

8

9

4

5

11

12

7

2

14

 

S-блок 5

2

12

4

1

7

10

11

6

8

5

3

15

13

0

14

9

14

11

2

12

4

7

13

1

5

0

15

10

3

9

8

6

4

2

1

11

10

13

7

8

15

9

12

5

6

3

0

14

11

8

12

7

1

14

2

13

6

15

0

9

10

4

5

3

 

S-блок 6

12

1

10

15

9

2

6

8

0

13

3

4

14

7

5

11

10

15

4

2

7

12

9

5

6

1

13

14

0

11

3

8

9

14

15

5

2

8

12

3

7

0

4

10

1

13

11

6

4

3

2

12

9

5

15

10

11

14

1

7

6

0

8

13

сS-блок 7

4

11

2

14

15

0

8

13

3

12

9

7

5

10

6

1

13

0

11

7

4

9

1

10

14

3

5

12

2

15

8

6

1

4

11

13

12

3

7

14

10

15

6

8

0

5

9

2

6

11

13

8

1

4

10

7

9

5

0

15

14

2

3

12

 

S-блок 8

13

2

8

4

6

15

11

1

10

9

3

14

5

0

12

7

1

15

13

8

10

3

7

4

12

5

6

11

0

14

9

2

7

11

4

1

9

12

14

2

0

6

10

13

15

3

5

8

2

1

14

7

4

10

8

13

15

12

9

0

3

5

6

11

 

Для разворачивания ключа необходимо перемешать биты (согласно перестановке в таблице 6). Перестановка имеет 64 входа и 56 выходов.

 

Таблица 6. Перестановка PC-1

 

57

49

41

33

25

17

9

1

58

50

42

34

26

18

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

14

6

61

53

45

37

29

21

13

5

28

20

12

4

 

Результат этой перестановки, называемой в литературе PC-1,делится на две половины (по 28 битов  каждой). Левая часть обозначается через, а правая — через . Теперь для каждого раунда с номером  вычисляется

,

где обозначает циклический сдвиг строки бит влево на  позиций. Для раундов  применим , а для остальных – . Затем  соединяются вместе и подаются на вход перестановке PC-2, выходом которой и будет 48-битовый подключ -го раунда.

Таблица 7. Перестановка PC-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

Соответственно можно сделать следующий вывод относительно основных достоинств шифра DES:

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

Литература

  1. Таненбаум Э., М ванн Стеен. Распределенные системы СПб: Питер, 2003 – 877 с.
  2. Смарт Н. Криптография М: Техносфера, 2003 – 528 с.
  3. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. – 816 с.
Основные термины (генерируются автоматически): DES, бит, перестановка, CFB, OFB, XOR, блок, таблица, искажающая функция, режим.


Задать вопрос