logo search
Сборная ответов к госэкзаменам

Описание гост

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

Для шифрования текст сначала разбивается на левую половину L и правую половину R. На этапе i используется подключ Ki. На этапе i алгоритма ГОСТ выполняется следующее:

Li = Ri-1

Ri = Li-1  f(Ri-1, Ki)

Этап ГОСТ показан на Рис. 14-1. Функция f проста. Сначала правая половина и i-ый подключ складываются по модулю 232. Результат разбивается на восемь 4-битовых кусочков, каждый из которых поступает на вход своего S-блока. ГОСТ использует восемь различных S-блоков, первые 4 бита попадают в первый S-блок, вторые 4 бита - во второй S-блок, и т.д. Каждый S-блок представляет собой перестановку чисел от 0 до 15. Например, S‑блок может выглядеть как:

7, 10, 2, 4, 15, 9, 0, 3, 6, 12, 5, 13, 1, 8, 11

Рис. 14.1. Этап ГОСТ.

В этом случае, если на входе S-блока 0, то на выходе 7. Если на входе 1, на выходе 10, и т.д. Все восемь S‑блоков различны, они фактически являются дополнительным ключевым материалом. S-блоки должны храниться в секрете.

Выходы всех восьми S-блоков объединяются в 32-битовое слово, затем все слово циклически сдвигается влево на 11 битов. Наконец результат объединяется с помощью XOR с левой половиной, и получается новая правая половина, а правая половина становится новой левой половиной. Выполните это 32 раза, и все в порядке.

Генерация подключей проста. 256-битовый ключ разбивается на восемь 32-битовых блоков: k1, k2, . . .k8. На каждом этапе используется свой подключ, как показано в таблице. Расшифрирование выполняется так же, как и шифрование, но инвертируется порядок подключей ki.

Стандарт ГОСТ не определяет способ генерации S-блоков, говорится только, что блоки должны быть предоставлены каким-то образом. Производитель создает перестановки S-блока самостоятельно с помощью генератора случайных чисел.

Использование подключей на различных этапах ГОСТ

Этап:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Подключ:

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

Этап:

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

Подключ:

1

2

3

4

5

6

7

8

8

7

6

5

4

3

2

1