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


 

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

20497. Структурна природна мова 31 KB
  В наукових дослідженнях все більш вагоме місце посідають розробки що орієнтовані на опрацювання природномовної ПМ інформації бо остання визначається як узагальнена схема подання довільної інформації. Проте з іншого боку також відомо наскільки складною постає проблема обробки мовної інформації і прогрес у цій сфері однозначно пов'язується з рівнем формалізації опису природної мови. Здобувачем запропоновано формальну модель мови що визначає її системну організацію і яка закладається в основу сучасних технологій орієнтованих на...
20498. Таблиці та дерева рішень 38.5 KB
  Метод дерева рішень це один з методів автоматичного аналізу величезних масивів даних. Область використання методу дерева рішень можна об'єднати в три класи: опис даних: застосування дерева рішень дозволяє зберігати інформацію про вибірку даних в компактній і зручній для обробки формі що містить в собі точні описи об'єктів; класифікація: застосування дерева рішень дозволяє справитися із завданнями класифікації тобто відношення об'єктів до одного з описаних класів; регресія: якщо змінна має недостовірні значення то застосування дерева...
20499. Теорія реляційних баз даних. Основні терміни і означення. Нормалізація відношень 31 KB
  Реляційна база даних база даних основана на реляційній моделі даних. Інакше кажучи реляційна база даних це база даних яка сприймається користувачем як набір нормалізованих відношень різного ступеню. Метою нормалізації є усунення недоліків структури БД які призводять до шкідливої надмірності в даних яка в свою чергу потенційно призводить до різних аномалій і порушень цілісності даних.
20500. Трикутні матриці (верхня та нижня) і їх розклад на добуток двох трикутних 37 KB
  Трику́тна ма́триця матриця в якій всі елементи нижче або вище за головну діагональ рівні нулю. Верхньотрикутна матриця квадратна матриця в якій всі елементи нижче за головну діагональ дорівнюють нулю. Нижньотрикутна матриця квадратна матриця в якій всі елементи вище за головну діагональ дорівнюють нулю. Унітрикутна матриця верхня або нижня трикутна матриця в якій всі елементи на головній діагоналі дорівнюють одиниці.
20501. Форми, типи форм, обчислення в формах 33 KB
  Робота з формами може відбуватися в трьох режимах: у режимі Форми в режимі Таблиці в режимі констриктор. типи форм В Access можна створити форми наступних видів: форма в стовпець або повноекранна форма; стрічкова форма; таблична форма; форма головна підпорядкована; зведена таблиця; формадіаграма. Форма в стовпець є сукупністю певним чином розташованих полів введення з відповідними їм мітками і елементами управління.
20502. Маніпулювання даними, операції над схемою бази даних за допомогою мови SQL 27.5 KB
  Маніпулювання даними операції над схемою бази даних за допомогою мови SQL Для маніпулювання данними виділяють такі групи команд SQL:Команди мови визначення даних DDL Data Definition Language. DDL Data Definition Language мова визначення даних це підмножина SQL що використовується для визначення та модифікації різних структур даних.До даної групи відносяться команди призначені для створення зміни та видалення різних об'єктів бази даних. Команди CREATE створення ALTER модифікація і DROP видалення мають...
20503. Матриця суміжності та матриця інцидентності 28 KB
  Матриця суміжності графа G зі скінченною кількістю вершин n пронумерованих числами від 1 до n це квадратна матриця A розміру n в якій значення елементу aij рівне числу ребер з iї вершини графа в jу вершину. Матриця суміжності простого графа що не містить петель і кратних ребер є бінарною матрицею і містить нулі на головній діагоналі. Матриця суміжності неорієнтованого графа симетрична а значить володіє дійсними власними значеннями і ортогональним базисом з власних векторів.
20504. Метод ітерації (метод послідовних наближень) 88 KB
   Суть методу полягає у заміні початкового рівняння 4.18 еквівалентним йому рівнянням 4.19 Постановка задачі Нехай задано рівняння де неперервна нелінійна функція. Потрібно визначити корінь цього рівняння який знаходиться на відрізку з заданою похибкою .
20505. Метод послідовних наближень (метод ітерацій) для розв’язку системи лінійних рівнянь 91 KB
  11 пошуку розвязку системи с заданою похибкою відповідно теоремі про збіжність.11 виконується то ітераційний процес пошуку розвязку системи с заданою похибкою збігається і метод послідовних наближень можна використовувати.13 що легко розвязується для знаходження вектора розвязку першого наближення тому що в правої частині містить всі визначені елементи.