69885

СТАНДАРТ КРИПТОГРАФІЧНОГО ПЕРЕТВОРЕННЯ ДАНИХ

Лабораторная работа

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

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

Украинкский

2014-10-12

312 KB

1 чел.

PAGE  4

Лабораторна робота № 7

Тема: СТАНДАРТ КРИПТОГРАФІЧНОГО ПЕРЕТВОРЕННЯ ДАНИХ

ГОСТ 28147-89

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

Загальні відомості.

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

ГОСТ 28147-89 – блоковий шифр, який шифрує відкритий текст, розбитий на блоки по 64 біта (на виході також блоки по 64 біта) за 32 цикли перетворень (раундів) за допомогою ключа завдовжки 256 бітів. Потужність множини відкритих ключів ГОСТ дорівнює .

Алгоритм шифрування ГОСТ 28147-89 побудований з використанням сітки Фейстеля.

Алгоритм криптографічного перетворення, встановлений ГОСТ 28147-89, передбачає наступні режими роботи :

1) режим простої заміни;

2) режим гамування;

3) режим гамування із зворотним зв'язком.

Крім того, передбачений додатковий

4) режим вироблення імітовставки.

Усі вони ґрунтуються на трьох базових циклах, що позначаються "32-З", "32-Р" і "16-З". Базові цикли, за суттю, є багатократним повторенням процедури, яка називається основним кроком криптоперетворення. В їх позначенні число (32 або 16) вказує на число повторень основного кроку, буква (З або Р) вказує на різновид порядку використання елементів ключа.

Існують два типи ключів: довготривалий  і сеансовий  розміром 512 і 256 бітів відповідно. Таблиця заміни є матрицею 8х16 з 4-бітових елементів. Кожен рядок таблиці  містить різні значення і є перестановкою множини . Ключ  реалізує потетрадну заміну 32-розрядних підблоків в 32-х розрядні. У стандарті довготривалий ключ  називається блоком підстановки, а подключи  - вузлами замін.

Сеансовий ключ  складається з восьми 32-розрядних підключів , кожен з яких у відповідний момент використовується для підсумовування з деяким блоком за модулем 2.

Основний крок криптоперетворення приймає на вході два параметри: 64-бітовий блок даних і 32-бітовий елемент ключа, а також використовує усю таблицю замін.

64-бітовий блок даних спочатку розбивається на ліву і праву половини  і . В -му циклі алгоритм ГОСТ 28147-89 виглядає так:

;

.

Функція  обчислюється так:

32-бітовий вхідний підблок  і 32-бітовий елемент ключа  додаються за модулем . Результат розбивається на 8 4-бітових послідовностей (тетрад), кожна з яких поступає на вхід свого вузла  , таблиці замін. Вузол  є таблицею заміни для -ої (ліворуч) тетради, тобто складається з 16 тетрад. Кожна тетрада замінюється на значення елементу таблиці замін з рядка з номером, рівним номеру 4-бітового блоку, і стовпця з номером, рівним значенню 4-бітового блоку (рахунок з 0). Фактично, вузли таблиці заміни є додатковим ключовим матеріалом, але частіше вони є параметром схеми, загальним для певної групи користувачів. У тексті стандарту вказується, що заповнення вузлів заміни проводиться в установленому порядку, тобто розробником алгоритму.

Сеансовий ключ  складається з конкатенації восьми 32-х розрядних підключів , кожен з яких у відповідний момент додається з деяким підблоком за модулем (операція +).

Виходи усіх восьми вузлів заміни об'єднуються в 32-бітове слово, потім усе слово циклічно зсувається вліво на 11 бітів у бік старших розрядів. Далі воно порозрядно додається за модулем 2 з другою частиною вхідного 64-бітового блоку. Потім набуте значення ставиться на місце другої частини 64-бітового блоку, а друга частина – на місце першої. Отриманий блок повертається як результат.

Основний крок криптоперетворення алгоритму ГОСТ 28147-89 показаний на мал. 1:

Рис.1. Основний крок криптоперетворення алгоритму ГОСТ 28147-89

Зашифрування блоку відкритого тексту алгоритмом ГОСТ 28147-89 виробляється за 32 цикли. На кожному циклі відбувається перетворення вхідної комбінації у вихідну. Шифртекстом є результат роботи (вихід) тридцять другого циклу, підданий дуже простому додатковому перетворенню.

Режими роботи ГОСТ 28147-89:

Режим простої заміни приймає на вхід дані, розмір яких кратний 64-м бітам. Результатом шифрування є вхідний текст, перетворений блоками по 64 біти у разі зашифрования циклом "32-З", а у разі расшифрования – циклом "32-Р".

На кожному циклі відбувається перетворення вхідної комбінації у вихідну. Шифртекстом є результат роботи (вихід) тридцять другого циклу, підданий дуже простому додатковому перетворенню.

Процес зашифрування в режимі простої заміни, який позначимо через , можна представити у вигляді послідовності 34 блоків , де  і .

Тут  – результат роботи циклу номер 0,  – результат роботи циклу номер 1 і так далі,  – результат роботи циклу номер 31. Додаткове перетворення міняє порядок дотримання блоків: .

На циклі з номером  використовується підключ . Послідовність вибору підключів, від початкового і до останнього циклу, при зашифруванні наступна:

.

При розшифруванні використовується зворотний порядок дотримання підключів.

Режим гамування приймає на вхід дані будь-якого розміру, а також додатковий параметрсинхропосилку. Синхропосилка – несекретний псевдовипадковий 64-бітовий блок. Синхропосилка виробляється на кожне повідомлення і розміщується в криптограмі перед шифрованим текстом. В ході роботи синхропосилка перетворюється в циклі "32-З", результат ділиться на дві частини. Перша частина додається за модулем  з постійним значенням 1010101016. Якщо друга частина дорівнює , то її значення не змінюється, інакше вона додається за модулем  з постійним значенням 1010104016. Отримане об'єднанням обох перетворених частин значення, яке називається гаммою шифру, поступає в цикл "32-З", його результат порозрядно додається за модулем 2 із 64-розрядним блоком вхідних даних. Якщо останній менше 64-х розрядів, то зайві розряди отриманого значення відкидаються. Отримане значення подається на вихід. Якщо ще є вхідні дані, то дія повторюється: складений з 32-розрядних частин блок перетворюється по частинах і так далі.

Режим гамування із зворотним зв'язком також приймає на вхід дані будь-якого розміру і синхропосилку. Блок вхідних даних порозрядно додається за модулем 2 з результатом перетворення в циклі "32-З" синхропосилки. Отримпне значення подається на вихід. Значення синхропосилки замінюється у разі зашифрування вихідним блоком, а у разі розшифрування – вхідним, тобто зашифрованим. Якщо останній блок вхідних даних менше 64 розрядів, то зайві розряди гамми (виходу циклу "32-З") відкидаються. Якщо ще є вхідні дані, то дія повторюється: з результату зашифрування заміненого значення утворюється гамма шифру і так далі

У режимі гаммування із зворотним зв'язком , ,  – комбінація відкритого тексту.

Режим вироблення імітовставки приймає на вхід дані, розмір яких складає не менше двох повних 64-розрядних блоків, а повертає 64-розрядний блок даних, який називається імітовставкою. Тимчасове 64-бітове значення встановлюється в 0, далі, поки є вхідні дані, воно порозрядно додається за модулем 2 з результатом виконання циклу "16-З", на вхід якого подається блок вхідних даних. Після закінчення вхідних даних тимчасове значення повертається як результат.

Порядок виконання роботи.

  1.  Вивчите загальні відомості про Стандарт криптографічного перетворення ГОСТ 28147-89.
  2.  Для представлених нижче блоку підстановки  і сеансового ключа , зашифрувати блок 

а) в режимі простої заміни алгоритму ГОСТ 28147-89 з кількістю циклів .

б) в режимі гаммування з використанням синхропосилки .

0

A

1

E

7

0

B

9

A

1

1

E

7

0

B

9

A

A

2

E

7

0

B

9

A

A

1

3

7

0

B

9

A

A

1

E

4

0

B

9

A

A

1

E

7

5

B

9

A

A

1

E

7

0

6

9

A

A

1

E

7

0

B

7

A

A

1

E

7

0

B

9

8

A

1

E

7

0

B

9

A

9

1

E

7

0

B

9

A

A

10

E

7

0

B

9

A

A

1

11

7

0

B

9

A

A

1

E

12

0

B

9

A

A

1

E

7

13

B

9

A

A

1

E

7

0

14

9

A

A

1

E

7

0

B

15

A

A

1

E

7

0

B

9

1

10000001

80000001

80000002

80000004

80000008

80000010

80000020

80000040

2

80000080

80000800

80008000

800000008

80080000

80800000

80000000

00000080

B

1

0000000010000002

2

0000000120000000

3

0000001000010000

4

0000010010000000

5

0000100000000008

6

0001000020000000

7

0010000040000000

8

0100000000000008

9

1000000000010000

10

0000000800010000

11

0000008080000000

12

0000080000000008

13

0000800000010000

14

0008000000010000

15

0080000000010000

16

0800000010000000

17

8000000100000000

18

0000000100080000

19

0000000040000001

0000000210000000

20

0000004000010000

21

0000010020000000

22

0000100000000002

23

0004000020000000

24

0040000010000000

25

0100000000000004

1

FFFFFFFF00000000

2

FFFFFFF010000000

3

FFFFFF0F20000000

4

FFFFF0FF30000000

5

FFFF0FFF40000000

6

FFF0FFFF50000000

7

FF0FFFFF60000000

8

F0FFFFFF70000000

9

00FFFFFFF80000000

10

FFFFFF0090000000

11

FFFFF00FA0000000

12

FFFF00FFB0000000

13

FFF00FFFC0000000

14

FF00FFFFD0000000

15

F00FFFFFE0000000

16

0000FFFFFFF0000000

17

ЕЕЕЕЕЕЕЕ00000000

18

ЕЕЕЕЕЕЕ010000000

19

ЕЕЕЕЕЕ0Е20000000

20

ЕЕЕЕЕ0ЕЕ30000000

21

ЕЕЕЕ0ЕЕЕ40000000

22

ЕЕЕ0ЕЕЕЕ50000000

23

ЕЕ0ЕЕЕЕЕ60000000

24

Е0ЕЕЕЕЕЕ70000000

25

00ЕЕЕЕЕЕЕ80000000

Примітка. Дані задані в шістнадцятьковій системі числення.

  1.  Складіть звіт, приєднавши отримані результати.

Вимоги до звіту.

У звіті мають бути приведені:

криптографічна схема алгоритму ГОСТ для режиму простої заміни;

сеансовий ключ;

відкритий блок повідомлення;

зашифрований блок повідомлення (у двійковому представленні);

проміжні результати процесу зашуфровання (у двійковому представленні).


 

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

10017. Основы редактирования документов в MS Word 180.5 KB
  Основы редактирования документов в MS Word Цель: Освоить правила редактирования текста: выделение перенос копирование удаление фрагментов текста. Рекомендации к выполнению Редактирование внесение изменений в набранный текст. Чаще всего приходится стирать ошибо