33657

БЛОЧНОЕ КОДИРОВАНИЕ (АЛГОРИТМ ГОСТ)

Доклад

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

БЛОЧНОЕ КОДИРОВАНИЕ АЛГОРИТМ ГОСТ В нашей стране установлен единый алгоритм криптографического представления данных для систем обработки информации в сетях ЭВМ отдельных вычислительных комплексов и ЭВМ который определяется ГОСТ 2814789. Этот алгоритм криптографического преобразования данных представляет собой 64битовый блочный алгоритм с 256битовым ключом предназначен для аппаратной и программной реализации удовлетворяет криптографическим требованиям и не накладывает ограничений на степень секретности защищаемой информации. В любом...

Русский

2013-09-06

252.5 KB

11 чел.

22. БЛОЧНОЕ КОДИРОВАНИЕ (АЛГОРИТМ ГОСТ)

В нашей стране установлен единый алгоритм криптографического представления данных для систем обработки информации в сетях ЭВМ, отдельных вычислительных комплексов и ЭВМ, который определяется ГОСТ 28147-89.

Этот алгоритм криптографического преобразования данных представляет собой 64-битовый блочный алгоритм с 256-битовым ключом, предназначен для аппаратной и программной реализации, удовлетворяет криптографическим требованиям и не накладывает ограничений на степень секретности защищаемой информации.

Алгоритм предусматривает четыре режима работы:

- простая замена;

- гаммирование;

- гаммирование с обратной связью;

- выработка имитовставки.

В любом случае для шифрования данных используется 256-битовый ключ K, который представляется в виде восьми 32-битовых подключей Ki:

K = K7K6K5K4K3K2K1K0.

Расшифрование выполняется по тому же ключу, что и шифрование, но этот процесс является инверсией процесса шифрования данных.

Режим простой замены

Первый и самый простой режим - замена. Данные, подлежащие шифрованию, разбивают на 64-битовые блоки. Процедура шифрования блока открытых данных T0 включает 32 цикла (j=1...32).

Блок T0 разделяется на две последовательности по 32 бита: В(0)A(0), где В(0) - левые или старшие биты, A(0) - правые или младшие биты.

Эти последовательности вводят в накопители N1 и N2 перед началом первого цикла шифрования.

Функция f называется функцией шифрования. Ее аргументом является сумма по модулю 232 числа A(i), полученного на предыдущем шаге итерации, и числа X(j) ключа (размерность каждого из этих чисел равна 32 знакам).

Функция шифрования включает две операции над полученной 32-разрядной суммой. Первая операция называется подстановкой К. Блок подстановки К состоит из 8 узлов замены К(1) ... К(8) с памятью 64 бит каждый. Поступающий на блок подстановки 32-разрядный вектор разбивается на 8 последовательно идущих 4-х разрядных векторов, каждый из которых преобразуется в 4-х разрядный вектор соответствующим узлом замены, представляющим собой таблицу из 16 целых чисел в диапазоне 0...15.

Входной вектор определяет адрес строки в таблице, число из которой является выходным вектором. Затем 4-х разрядные выходные векторы последовательно объединяются в 32-разрядный вектор. Таблицы блока подстановки К содержит ключевые элементы, общие для сети ЭВМ и редко изменяемые.

Вторая операция - циклический сдвиг влево 32-разрядного вектора, полученного в результате подстановки К. 64-разрядный блок зашифрованных данных Тш представляется в виде Тш=A(32)B(32).

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

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

Режим гаммирования

Открытые данные, разбитые на 64-разрядные блоки Т(i) (i=1, 2,..., m, где m определяется обьемом шифруемых данных), зашифровываются в режиме гаммирования путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бит, то есть Гш=(Г(1),Г(2),...,Г(i),...,Г(m)).

Число двоичных разрядов в блоке Т(m) может быть меньше 64, при этом неиспользованная для шифрования часть гаммы шифра из блока Г(m) отбрасывается.

Расшифрование данных возможно только при наличии синхропосылки, которая не является секретным элементом шифра и может храниться в памяти ЭВМ или передаваться по каналам связи вместе с зашированными данными.

Режим гаммирования с обратной связью

Режим гаммирования с обратной связью очень похож на режим гаммирования. Как в и режиме гаммирования открытые данные, разбитые на 64-разрядные блоки Т(i) (i=1, 2,..., m , где m определяется обьемом шифруемых данных), зашифровываются путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бит:

Гш=(Г(1),Г(2),...,Г(i),...,Г(m)).

Число двоичных разрядов в блоке Т(m) может быть меньше 64, при этом неиспользованная для шифрования часть гаммы шифра из блока Г(m) отбрасывается.

Bыработки имитовставки

Процесс выработки имитовстаки единообразен для любого из режимов шифрования данных.

Имитовставка - это блок из р бит (имитовставка Ир), который вырабатывается либо перед шифрованием всего сообщения, либо параллельно с шифрованием по блокам. Первые блоки открытых данных, которые участвуют в выработке имитовставки, могут содержать служебную информацию (например, адресную часть, время, синхропосылку) и не зашифровываться. Значение параметра р (число двоичных разрядов в имитовставке) определяется криптографическими требованиями с учетом того, что вероятность навязывания ложных помех равна 1/2^р.

Для получения имитовставки открытые данные представляются в виде 64-разрядных блоков Т(i) (i=1, 2,..., m , где m определяется объемом шифруемых данных). Первый блок открытых данных Т(1) подвергается преобразованию, соответствующему первым 16 циклам алгоритма зашифрования в режиме простой замены. Причем в качестве ключа для выработки имитовставки используется ключ, по которому шифруются данные.

Полученное после 16 циклов работы 64-разрядное число суммируется по модулю 2 со вторым блоком открытых данных Т(2). Результат суммирования снова подвергается преобразованию, соответствующему первым 16 циклам алгоритма зашифрования в режиме простой замены. Полученное 64-разрядное число суммируется по модулю 2 с третьим блоком открытых данных Т(3) и т.д. Последний блок Т(m) при необходимости дополненный до полного 64-разрядного блока нулями, суммируется по модулю 2 с результатом работы на шаге m-1, после чего зашифровывается в режиме простой замены по первым 16 циклам работы алгоритма. Из полученного 64-разрядного числа выбирается отрезок Ир длиной р бит.

Имитовставка Ир передается по каналу связи или в память ЭВМ после зашифрованных данных. Поступившие зашифрованные данные расшифровываются, и из полученных блоков открытых данных T(i) вырабатывается имитовставка Ир', которая затем сравнивается с имитовставкой Ир, полученной из канала связи или из памяти ЭВМ. В случае несовпадения имитовставок все расшифрованные данные считают ложными.

Краткая теория.

Российская Федерация имеет свой стандарт шифрования. Этот стандарт закреплен ГОСТом №28147-89, принятом, как явствует из его обозначения, еще в 1989 году в СССР. Алгоритм ГОСТ может работать в нескольких режимах:

  •  режим простой замены;
  •  режим гаммирования;
  •  режим гаммирования с обратной связью;
  •  режим выработки имитовставки.

В данной реализации алгоритм ГОСТ работает в режиме простой замены. Весь алгоритм опирается на два базовых цикла:

  •  цикл зашифрования (CRYPT);
  •  цикл расшифрования (DECRYPT);

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

Таким образом, чтобы разобраться в ГОСТе, надо понять следующее:

а) что такое основной шаг криптопреобразования;

б) как из основных шагов складываются базовые циклы;

в) как из базовых циклов складываются практические алгоритмы.

Прежде чем перейти к изучению этих вопросов, следует поговорить о ключевой информации, используемой алгоритмами ГОСТа. В соответствии с принципом Кирхгофа, которому удовлетворяют все современные известные широкой общественности шифры, именно ее секретность обеспечивает секретность зашифрованного сообщения. В ГОСТе ключевая информация состоит из двух структур данных. Помимо собственно ключа, необходимого для всех шифров, она содержит еще и таблицу замен. Ниже приведены основные характеристики ключевых структур ГОСТа [3, c.378]:

  1.  Ключ является массивом из восьми 32-битовых элементов кода, далее в настоящей работе он обозначается символом К: К= {Ki}, 0<i<7. Таким образом, размер ключа составляет 32.8 = 256 бит или 32 байта.
  2.  Таблица замен может быть представлена в виде матрицы размера 8x16, содержащей 4-битовые элементы, которые можно представить в виде целых чисел от 0 до 15. Строки таблицы замен называются узлами замен, они должны содержать различные значения, то есть каждый узел замен должен содержать 16 различных чисел от 0 до 15 в произвольном порядке. Таким образом, общий объем таблицы замен равен: 8 узлов х 16 элементов/узел х 4 бита/элемент = 512 бит или 64 байта.

Таблица 5.1

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

S-блок 1:

4

10

9

2

13

8

0

14

6

11

1

12

7

15

5

3

S-блок 2:

14

11

4

12

6

13

15

10

2

3

8

1

0

7

5

9

S-блок З:

5

8

1

13

10

3

4

2

14

15

12

7

6

0

9

11

S-блок 4:

7

13

10

1

0

8

9

15

14

4

6

12

11

2

5

3

S-блок 5:

6

12

7

1

5

15

13

8

4

10

9

14

0

3

11

2

S-блок 6:

4

11

10

0

7

2

1

13

3

6

8

5

9

12

15

14

S-блок 7:

13

11

4

1

3

15

5

9

0

10

14

7

6

8

2

12

S-блок 8:

1

15

13

0

5

7

10

4

9

2

3

14

6

11

8

12

Основной шаг криптопреобразования по своей сути является оператором, определяющим преобразование 64-битового блока данных. Дополнительным параметром этого оператора является 32-битовый блок, в качестве которого используется какой-либо элемент ключа. Схема алгоритма основного шага приведена на рис. 5.6.

Блок-схема основного шага алгоритма ГОСТ 28147-89.

                  

Рис. 5.6

Ниже даны пояснения к рис.5.6 :

  •  N64 – преобразуемый 64-битовый блок данных, в ходе выполнения шага его младшая R и старшая L части обрабатываются как отдельные 32-битовые целые числа без знака.
  •  X=Кi (где 1<i<32 – номер цикла) – 32-битовый элемент ключа;

Полученные после шестого шага значения старшей (L) и младшей (R) частей преобразуемого блока, каждая из которых размером в 32 бита , сливаются в единое целое и возвращаются как 54-битовый результат выполнения алгоритма основного шага криптопреобразования.

На основном шаге криптопреобразования используются достаточно простые математические преобразования, требующие однако минимум 32 разрядного процессора. Для зашифровки одного блока данных цикл на Рис. 5.4. повторяют 32 раза. Таким образом 256 бит ключа делят на восемь 32 битных подключей (К0…К7), которые используются в соответствии с таблицей 5.2. Такой режим работы называется режимом простой замены. Процесс расшифрования аналогичен процессу зашифрования, только ключи используются в обратной последовательности. Поэтому данный алгоритм и является симметричным.

Таблица 5.2

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

Раунд

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


 

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

47133. Транснациональные корпорации 62.66 KB
  Так стороны Конвенции о транснациональных корпорациях признают под понятием транснациональная корпорация юридическое лицо совокупность юридических лиц: имеющее в собственности хозяйственном ведении или оперативном управлении обособленное имущество на территориях двух и более сторон; образованное юридическими лицами двух и более сторон; зарегистрированное в качестве корпорации в соответствии с Конвенцией.С развитием и совершенствованием правового регулирования деликтных отношений такое единообразие в подходе было дополнено...
47134. ФОРМЫ И ФУНКЦИИ ПОДРАЖАНИЯ В ДЕТСТВЕ (По Обуховой) 63.5 KB
  Ими было установлено что подражание или имитация такая форма поведения которая находится в непрерывном изменении и вносит важный вклад в формирование интеллекта личности ребенка помогает ему в освоении норм социальной жизни. Связь подражания ребенка определенного возраста со специфической социальной ситуацией его развития; установили функции отдельных видов подражания; выявили его родство с ориентировочноисследовательской деятельностью. Опираясь на идеи Эльконина и его концепцию периодизации психического развития и Гальперина и его...
47136. Понятие и виды экологических правонарушений 64.24 KB
  Экологическое правонарушение –это противоправное, виновное деяние (действие или бездействие), совершаемое праводееспособным субъектом, причиняющее экологический вред или несущее угрозу причинения либо нарушающее права и законные интересы субъектов экологического права.
47138. Cтруктура и закономерности развития экономических отношений. Производительные силы: средства производства и рабочая сила. Место и роль человека в экономике 64.68 KB
  Производительные силы: средства производства и рабочая сила. Экономические отношения объективно складывающиеся отношения между людьми по поводу производства присвоения обмена и потребления благ в особенности продуктов труда. Если экономические отношения охватывают весь комплекс отношений в ходе хозяйственной деятельности людей то производственные лишь социальноэкономическое звено отношений в системе общественного производства. Их можно классифицировать по ряду оснований: в зависимости от фазы воспроизводства выделяются отношения...