28527

Принципы построения алгоритма шифрования ГОСТ 28147-89

Доклад

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

ГОСТ 28147 разработан в 1989 году является блочным алгоритмом шифрования длина блока равна 64 битам длина ключа равна 256 битам количество раундов равно 32. ГОСТ 28147 использует восемь различных Sboxes каждый из которых имеет 4битовый вход и 4битовый выход. Iый раунд ГОСТ 28147 Генерация ключей проста.

Русский

2013-08-20

32.78 KB

17 чел.

22 Принципы построения алгоритма шифрования  ГОСТ 28147-89

Алгоритм ГОСТ 28147 является отечественным стандартом для алгоритмов симметричного шифрования. ГОСТ 28147 разработан в 1989 году, является блочным алгоритмом шифрования, длина блока равна 64 битам, длина ключа равна 256 битам, количество раундов равно 32. Алгоритм представляет собой классическую сеть Фейштеля.

Li = Ri
R
i = Li f (Ri-1, Ki)

Функция f проста. Сначала правая половина и i-ый подключ складываются по модулю 232. Затем результат разбивается на восемь 4-битовых значений, каждое из которых подается на вход S-box. ГОСТ 28147 использует восемь различных S-boxes, каждый из которых имеет 4-битовый вход и 4-битовый выход. Выходы всех S-boxes объединяются в 32-битное слово, которое затем циклически сдвигается на 11 битов влево. Наконец, с помощью XOR результат объединяется с левой половиной, в результате чего получается новая правая половина.


Рис. 7. I-ый раунд ГОСТ 28147

Генерация ключей проста. 256-битный ключ разбивается на восемь 32-битных подключей. Алгоритм имеет 32 раунда, поэтому каждый подключ используется в четырех раундах по следующей схеме:

Раунд

1

2

3

4

5

6

7

8

Подключ

1

2

3

4

5

6

7

8

Раунд

9

10

11

12

13

14

15

16

Подключ

1

2

3

4

5

6

7

8

Раунд

17

18

19

20

21

22

23

24

Подключ

1

2

3

4

5

6

7

8

Раунд

25

26

27

28

29

30

31

32

Подключ

8

7

6

5

4

3

2

1

Считается, что стойкость алгоритма ГОСТ 28147 во многом определяется структурой S-boxes. Долгое время структура S-boxes в открытой печати не публиковалась. В настоящее время известны S-boxes, которые используются в приложениях Центрального Банка РФ и считаются достаточно сильными. Напомню, что входом и выходом S-box являются 4-битные числа, поэтому каждый S-box может быть представлен в виде строки цифр от 0 до 15, расположенных в некотором порядке. Тогда порядковый номер цифры будет являться входным значением S-box, а сама цифра - выходным значением S-box.

1-ый S-box

4

10

9

2

13

8

0

14

 

6

11

1

12

7

15

5

3

2-ой S-box

14

11

4

12

6

13

15

10

 

2

3

8

1

0

7

5

9

3-ий S-box

5

8

1

13

10

3

4

2

 

14

15

12

7

6

0

9

11

4-ый S-box

7

13

10

1

0

8

9

15

 

14

4

6

12

11

2

5

3

5-ый S-box

6

12

7

1

5

15

13

8

 

4

10

9

14

0

3

11

2

6-ой S-box

4

11

10

0

7

2

1

13

 

3

6

8

5

9

12

15

14

7-ой S-box

13

11

4

1

3

15

5

9

 

0

10

14

7

6

8

2

12

8-ой S-box

1

15

13

0

5

7

10

4

 

9

2

3

14

6

11

8

12

Основные различия между DES и ГОСТ 28147 следующие:

  1.  DES использует гораздо более сложную процедуру создания подключей, чем ГОСТ 28147. В ГОСТ эта процедура очень проста.
  2.  В DES применяется 56-битный ключ, а в ГОСТ 28147 - 256-битный. При выборе сильных S-boxes ГОСТ 28147 считается очень стойким.
  3.  У S-boxes DES 6-битовые входы и 4-битовые выходы, а у S-boxes ГОСТ 28147 4-битовые входы и выходы. В обоих алгоритмах используется по восемь S-boxes, но размер S-box ГОСТ 28147 существенно меньше размера S-box DES.
  4.  В DES применяются нерегулярные перестановки Р, в ГОСТ 28147 используется 11-битный циклический сдвиг влево. Перестановка DES увеличивает лавинный эффект. В ГОСТ 28147 изменение одного входного бита влияет на один S-box одного раунда, который затем влияет на два S-boxes следующего раунда, три S-boxes следующего и т.д. В ГОСТ 28147 требуется 8 раундов прежде, чем изменение одного входного бита повлияет на каждый бит результата; DES для этого нужно только 5 раундов.
  5.  В DES 16 раундов, в ГОСТ 28147 - 32 раунда, что делает его более стойким к дифференциальному и линейному криптоанализу.


 

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

5754. Конвейер ленточный крутонаклонлонный (угол наклона 600) 5.64 MB
  Высокопроизводительная работа современного предприятия невозможна без правильно организованных и надежно работающих средств промышленного транспорта. Например, на машиностроительном заводе получают и распределяют по цехам сотни тонн металла...
5757. Построение осесимметричного меридиального потенциального потока 246 KB
  Исходные данные к курсовой работе Большой радиус канала R= 0,35 м Малый радиус канала r=0,045 м Высота канала на входе b0=0,3 м Угол наклона конической части за малым радиусом ...
5758. Глобальные проблемы мировой цивилизации 123.5 KB
  Введение Глобальные проблемы нашей эпохи - закономерное следствие всей современной глобальной ситуации, сложившейся на земном шаре в последней трети XX века. Для правильного понимания происхождения, сущности и возможности их решения необходимо ...
5759. Техническое перевооружение и модернизация средств производства 2.46 MB
  Введение Интенсификация производства в машиностроении неразрывно связана с техническим перевооружением и модернизацией средств производства на базе применения новейших достижений науки и техники. Техническое перевооружение, подг...
5760. Программирование под Windows с использованием MFC 815.5 KB
  Программирование под Windows с использованием MFC Документ и его представления Документы. Класс CDocument Сериализация Представления Класс CView Класс CCtrlView Класс CEditView Класс CScrollView...
5761. Основа архитектуры документ\представление 721.5 KB
  Основа архитектуры документ/представление Создание различных типов документов Шаблоны однодокументных приложений Шаблоны многодокументных приложений Место объекта-приложения в архитектуре документ/представление Роль...
5762. Основы программирования под Windows с использованием MFC 208 KB
  Программирование под Windows с использованием MFC MFC - это базовый набор (библиотека) классов, написанных на языке С++ и предназначенных для упрощения и ускорения процесса программирования под Windows. Перед изучением библиотеки MFC и ее испол...