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


 

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

59742. Сценарій уроку Масляна 38.5 KB
  Тиждень перед Великоднім постом називається Масляна. Щодня жінки, молодь і діти гуляли, пригощались варениками з сиром. Набиралися сил перед довгим постом. Молодь збиралась на вечорниці і гуляла до ранку (досвітки).
59743. Сценарій уроку: Де коза ходить, там жито родить 41 KB
  В цей вечір ватаги дівчат і дітей ходять по хатах і щедрують. Сценарій бажано доповнити книжковою виставкою Щедрий вечір добрий вечір. Щедрий вечір Розкажіть онуку...
59744. Сценарій уроку Золота осінь 44 KB
  Осінь завжди красива барвиста. Осінь ведуча одягнена у однокольорове плаття на якому нашите листя клена. На сцені 5 дітей: 1й: Непомітно зявилася осінь Заходить Осінь вклоняється тим хто в залі Все коротшає день щодоби Глянь берізки уже злотокосі І в дубів багряніють чуби.
59745. Прийди, прийди, весно, прийди, прийди, красна 45.5 KB
  До залу заходить Весна дівчина у квітчастому вбранні на голові віночок з квітів. ВЕСНА: Добрий день мої любі друзі Я Весна я Весна. ВЕСНА: Яка ж бо ти люта сестро Лютуй не лютуй а час твій пройшов. ВЕСНА: Так сестро це було та все пройшло.
59746. Сценарій уроку: Святий Спас прийшов до нас 46 KB
  У серпні Спас крім 19-го святкується ще двічі 14-го та 29-го. Правда назва його Спас мені не зрозуміла. Що воно означає ВЕДУЧА: На Русі свято відоме під назвою Спаса від слова спаситель рятівник яким православна церква іменує Ісуса Христа.
59747. Сценарій уроку: Несу кутю на покутю… 41.5 KB
  Дійові особи: Батько; мати; Оленка старша дочка 1012 р. БАТЬКО: Піду кину сіна вівцям коням та корові. БАТЬКО: Заходячи в хату. БАТЬКО: Обовязково зайду а потім піду кликати Мороза вечеряти з нами.
59748. Сценарій уроку Вечорниці 44.5 KB
  На передньому плані появляється Галя яка поспішає на вечорниці. Галя йде потім зупиняється: Он хтось стоїть чи не Степан Голохвастов уздрівши її: А на ловця і звір біжить ціпціп куріпочко Галя хоче його обійти а Голохвастов заступа їй дорогу Голохвастов...
59749. Сценарій уроку: Різдвяний вертеп 38.5 KB
  ДІТИ: Христос рождається ГОСПОДАР: Славімо його ЗВІЗДАР: Щедрий вечір добрий вечір Мир українській світлій хаті ЗВОНАР: дзвонить виступає вперед хору Добрий вечір тому Хто в цьому дому Старому молодому І Богу святому. Всі проходять до хати і співають: Добрий вечір тобі пане господарю радуйся...
59750. Сценарій уроку Жнива на Україні 40.5 KB
  Жнива складаються з зажинок жнив і обжинок. Тому жнива завжди були святою справою. Жнива починались за тиждень до Петра 12 липня або після нього і обовязково в легкі жіночі дні: середу пятницю суботу.