Бакалаврська дипломна робота Шифр на основі перестановок байтів
.pdfВінницький національний технічний університет Факультет інформаційних технологій та комп’ютерної інженерії
Кафедра захисту інформації
Пояснювальна записка
до бакалаврської дипломної роботи
на тему: «Шифр на основі перестановок байтів»
08-20.БДР.012.00.000 ПЗ
Виконав: студент 4 курсу, групи 1БС-16б
Спеціальність 125 Кібербезпека ОПП Безпека інформаційних і комунікаційних систем
____________________ Салига Є. С.
Керівник: д. т. н., проф., зав. каф. ЗІ
____________________ Лужецький В. А.
Рецензент: к. т. н., проф. каф. МБІС
_____________________ Азарова А. О.
Вінниця - 2020 року
Вінницький національний технічний університет Факультет інформаційних технологій та комп’ютерної інженерії
Кафедра Захисту інформації Освітньо-кваліфікаційний рівень бакалавр Спеціальність 125 – Кібербезпека
ЗАТВЕРДЖУЮ Зав. кафедри ЗІ, д.т.н., проф.
__________В. А. Лужецький
______ __________2020 року
ЗАВДАННЯ
НА БАКАЛАВРСЬКУ ДИПЛОМНУ РОБОТУ СТУДЕНТУ
Сализі Євгенію Сергійовичу
1.Тема роботи: «Шифр на основі перестановок байтів», керівник роботи: Лужецький Володимир Андрійович, д. т. н., проф., зав. каф. ЗІ, затверджені наказом ВНТУ № 75 від 06.03.2020 року
2.Строк подання студентом роботи ___________ 2020 р.
3.Вихідні дані до роботи:
-Алгоритм шифрування на основі перестановок у межах всього файлу;
-Підстановки на основі накладання гами;
-Розрядність ключа – 76 біт;
-Обсяг вхідних даних не перевищує 232 байт.
4.Зміст розрахунково-пояснювальної: Вступ. Аналіз літературних джерел. Розробка алгоритму шифрування на основі перестановок байтів. Розробка програмного засобу. Висновки. Перелік використаних джерел. Додатки.
5.Перелік графічного матеріалу.
Відомі шифри на основі SP-мережі (плакат, А4). Алгоритм роботи шифру на основі
перестановок байтів (плакат, А4). Структура схема роботи програмного засобу
(плакат, А4). Результати тестування програмного засобу (плакат, А4). 6. Консультанти розділів роботи
|
Прізвище, ініціали та посада |
Підпис, дата |
||
Розділ |
|
|
||
завдання |
завдання |
|||
консультанта |
||||
|
видав |
прийняв |
||
|
|
|||
|
|
|
|
|
1 |
Лужецький В. А., д. т. н., проф., зав. каф. ЗІ |
|
|
|
|
|
|
|
|
2 |
Лужецький В. А., д. т. н., проф., зав. каф. ЗІ |
|
|
|
|
|
|
|
|
3 |
Лужецький В. А., д. т. н., проф., зав. каф. ЗІ |
|
|
|
|
|
|
|
|
4 |
Лужецький В. А., д. т. н., проф., зав. каф. ЗІ |
|
|
|
|
|
|
|
7. Дата видачі завдання 6 березня 2020 року
КАЛЕНДАРНИЙ ПЛАН
№ |
|
Назва етапів |
|
|
Строк виконання етапів |
Примітка |
||
з/п |
|
Бакалаврської роботи |
|
|
роботи |
|||
|
|
|
|
|||||
|
|
|
|
|
|
|
||
1 |
Аналіз завдання. Вступ |
|
|
09.03.2020 – 14.03.2020 |
|
|||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
||
2 |
Розробка технічного завдання |
|
|
16.03.2020 |
– 21.03.2020 |
|
||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
||
3 |
Аналіз літературних |
джерел за |
напрямком |
|
|
|
||
|
бакалаврської дипломної роботи |
|
|
23.03.2020 |
– 31.03.2020 |
|
||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
||
4 |
Розробка структури |
шифру |
на основі |
01.04.2020 |
– 12.04.2020 |
|
||
|
перестановок байтів |
|
|
|
|
|||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|||
5 |
Розробка алгоритму, |
програмна реалізація та |
|
|
|
|||
|
тестування шифру |
|
|
|
13.04.2020 |
– 12.05.2020 |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
||||
6 |
Аналіз результатів тестування, висновки |
12.05.2020 |
– 21.05.2020 |
|
||||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|||
7 |
Оформлення пояснювальної записки |
|
21.05.2020 |
– 27.05.2020 |
|
|||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
||
8 |
Попередній захист БДР |
|
|
27.05.2020 |
– 28.05.2020 |
|
||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
9 |
Виправлення |
зауважень, |
|
підготовка |
29.06.2020 |
– 11.06.2020 |
|
|
|
ілюстративного матеріалу |
|
|
|
||||
|
|
|
|
|
|
|||
|
|
|
|
|
||||
10 |
Представлення БДР до захисту, рецензування |
12.06.2020 |
– 15.06.2020 |
|
||||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
11 |
Захист БДР |
|
|
|
|
16.06.2019 – 19.06.2019 |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Студент __________ Є. С. Салига Керівник роботи ________ В. А. Лужецький
АНОТАЦІЯ
Бакалаврська дипломна робота присвячена програмній реалізації алгоритму шифрування на основі перестановок байтів. Проведено огляд блокового шифрування на основі SP-мережі та проаналізовано його використання в криптографії. Розроблено алгоритм шифрування на основі перестановок байтів та реалізовано його програмну інтерпретацію. Проведено тестування створеного програмного засобу та виконано порівняльну характеристику на швидкість шифрування.
ABSTRACT
The bachelor's thesis is devoted to the software implementation of the encryption method based on byte permutations. A review of block encryption based on the SPnetwork was performed and its use in cryptography is analyzed. The encoding algorithm based on the byte permutations is developed and its program interpretation is realized. The created software was tested and a comparative characteristic for encryption speed was performed.
|
|
5 |
ВСТУП.......................................................................................................................... |
6 |
|
1 АНАЛІЗ ЛІТЕРАТУРНИХ ДЖЕРЕЛ....................................................................... |
8 |
|
1.1 |
Огляд блокового шифрування ............................................................................... |
8 |
1.2 |
Аналіз SP-мережі.................................................................................................... |
9 |
1.3 |
Аналіз відомих шифрів на основі SP-мережі...................................................... |
10 |
1.3.1 ARIA................................................................................................................... |
10 |
|
1.3.2 SAFER+ .............................................................................................................. |
12 |
|
1.3.3 Anubis ................................................................................................................. |
14 |
|
2 РОЗРОБКА АЛГОРИТМУ ШИФРУВАННЯ ........................................................ |
17 |
|
2.1 |
Загальний опис алгоритму ................................................................................... |
17 |
2.2 |
Генерування псевдовипадкової послідовності чисел......................................... |
20 |
2.3 |
Опис процесу зашифрування............................................................................... |
23 |
2.4 |
Опис процесу розшифрування............................................................................. |
27 |
2.5 |
Регістр зсуву з лінійним зворотнім зв’язком ...................................................... |
31 |
2.6 |
Оцінка швидкості роботи алгоритму .................................................................. |
34 |
3 РОЗРОБКА ПРОГРАМНОГО ЗАСОБУ ................................................................ |
36 |
|
3.1 |
Обґрунтування вибору програмного середовища .............................................. |
36 |
3.2 |
Вимоги до програмного засобу ........................................................................... |
37 |
3.3 |
Реалізація інтерфейсу програмного засобу......................................................... |
39 |
3.4 |
Тестування програмного засобу .......................................................................... |
41 |
ВИСНОВКИ ............................................................................................................... |
43 |
|
ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ ................................................................... |
44 |
|
ДОДАТКИ .................................................................................................................. |
46 |
|
Додаток А. Технічне завдання................................................................................... |
47 |
|
Додаток Б. Текст програми........................................................................................ |
50 |
6
ВСТУП
Проаналізувавши сучасний стан захисту інформації в інформаційно-
комунікаційних системах (ІКС) стає зрозуміло, що одним з найголовніших критеріїв інформації є конфіденційність. Оскільки більшість каналів зв’язку не можуть гарантувати цілковитої безпеки, необхідно впроваджувати додаткові заходи захисту інформації для забезпечення конфіденційності персональних даних користувачів.
Одним з основних методів захисту інформації під час її передавання є шифрування на основі криптографічних алгоритмів. Головна задача полягає в зашифруванні великої кількості даних, за як найменший проміжок часу при достатньому рівні захисту від зламу алгоритму, який для цього використовується.
У своїй роботі [1] К. Шеннон показав, що будь-який шифр можна представити у вигляді комбінації двох основних операцій: підстановки та перестановки. У потокових шифрах використовується лише операція підстановки шляхом накладання гами на відкрите повідомлення. Послідовне ж виконання обох цих операцій є характерною ознакою блокових шифрів, при чому, сучасні блокові шифри, побудовані на основі мереж Фейстеля, SP-мереж і перетворень типу
«квадрат» передбачають здійснення перестановки частин окремого блоку або перестановки блоків в межах невеликої групи [2]. Оскільки кількість можливих варіантів перестановок, що впливає на стійкість шифру, залежить від кількості елементів, що підлягають перестановці, то можна зробити висновок, що в сучасних блокових шифрах неповною мірою використовуються можливості операції перестановки.
Крім того, сучасні блокові шифри передбачають виконання від 8 до 32 і
більше раундів перетворень, щоб забезпечити залежність кожного біта зашифрованого блоку даних від усіх бітів відкритого блоку даних. Це певною мірою обмежує швидкість шифрування [2]. З огляду на це, було вирішено реалізувати шифр, в якому перестановки будуть здійснюватись в межах усього файлу, а підстановки – реалізовуватись шляхом накладання гами.
7
Метою даної роботи є підвищення швидкості шифрування інформації. Для
реалізації поставленої мети необхідно розв’язати такі задачі:
-провести огляд блокового шифрування на основі SP-мережі;
-проаналізувати використання SP-мереж у криптографії;
-розробити алгоритм шифрування;
-розробити структурну схему алгоритму шифрування;
-розробити програмний засіб для пришвидшеного шифрування;
-провести тестування роботи програмного засобу.
8
1 АНАЛІЗ ЛІТЕРАТУРНИХ ДЖЕРЕЛ
1.1 Огляд блокового шифрування
Блоковий шифр – різновид симетричного шифру, який оперує групами біт фіксованої довжини – блоками, характерний розмір яких змінюється в межах 64-
256 біт [3]. Якщо вхідний текст (або його залишок) менше розміру блоку, перед шифруванням його доповнюють. Блоковий шифр є важливою компонентою багатьох криптографічних протоколів і широко використовується для захисту даних, що передаються по мережі.
На відміну від шифроблокнота, де довжина ключа дорівнює довжині повідомлення, блоковий шифр здатний зашифрувати одним ключем одне або кілька повідомлень сумарною довжиною більше, ніж довжина ключа. До переваг блокових шифрів відносять схожість процедур зашифрування і розшифрування,
які, як правило, відрізняються лише порядком дій, що спрощує створення пристроїв шифрування [4].
Блоковий шифр складається з двох парних алгоритмів: зашифрування та розшифрування [5]. Обидва алгоритми можна представити у вигляді функцій.
Функція шифрування E приймає на вхід блок даних M розміром n біт і ключ K
розміром k біт і на виході отримується блок шифротекста C розміром n біт:
( ): ( , ): {0,1} × {0,1} → {0,1}
Для будь-якого ключа K, EK є бієктивною функцією (перестановкою) на великій кількості n-бітових блоків. Функція розшифрування D приймає на вхід шифротекст C, ключ K і на виході отримується M:
( ): ( , ): {0,1} × {0,1} → {0,1}
Дана функція є оберненою до функції зашифрування:
= −1
Для зашифрування і розшифрування необхідний один і той же ключ, що є ознакою симетричності блокових шифрів.
Більшість блочних шифрів є ітеративними. Це означає, що даний шифр перетворює блоки відкритого тексту постійної довжини в блоки шифротексту тієї
9
ж довжини за допомогою циклічно повторюваних оборотних функцій, відомих як раундові функції [6]. Зазвичай раундові функції використовують різні ключі,
отримані з початкового ключа:
= ( − 1),
де Ci - значення блоку після i-го раунду, C0 = M - відкритий текст, Ki - ключ, який використовується в i-му раунді і отриманий з початкового ключа K.
1.2 Аналіз SP-мережі
SP-мережа (англ. Substitution-permutation network, SPN) – один із типів ітеративних блокових шифрів. Шифр на основі SP-мережі отримує на вході блок відкритого тексту і ключ, і здійснює декілька раундів, які складаються зі стадій підстановки і перестановки, що чергуються між собою [7]. Такі стадії називаються
S- та P-блоками відповідно.
S-блок замінює один блок вхідних бітів на інший блок вихідних. Ця заміна має бути однозначною для гарантування оборотності. Зокрема довжина даних на вході може збігатись із довжиною даних на виході, що не завжди має місце для S-
блоків, які також можуть змінювати довжину, наприклад DES. Призначення S-
блоку полягає в нелінійному перетворенні, що перешкоджає проведенню лінійного криптоаналізу. Одним з властивостей S-блоку є лавинний ефект, тобто зміна одного біта на вході призводить до зміни всіх біт на виході [8].
P-блок – перестановка всіх біт: блок отримує на вхід вихід S-блоку, змінює місцями всі біти і подає результат S-блоку наступного раунду. Важливою властивістю P-блоку є можливість розподілити вихід одного S-блоку між входами якомога більшої кількості S-блоків.
На рисунку 1.1 відображена схема одного раунду SP-мережі.
10
64-bit t
64-bit sub-key
64-bit intermediate
Loop for R rounds
8 bits |
8 bits |
8 bits |
8 bits |
8 bits |
8 bits |
8 bits |
8 bits |
Si |
Si |
Si |
Si |
Si |
Si |
Si |
Si |
8 bits |
8 bits |
8 bits |
8 bits |
8 bits |
8 bits |
8 bits |
8 bits |
64-bit intermediate
64-bit output
Рисунок 1.1 – Схема раунду SP-мережі
Один S- або P-блок не має особливої криптостійкості: S-блок можна розглядати як підстановочний шифр, а P-блок – як перестановочний. Однак, добре продумана SP-мережа з кількома почерговими раундами S- і P-блоків буде задовольняти властивостям плутанини і поширення Шеннона.
1.3 Аналіз відомих шифрів на основі SP-мережі
1.3.1 ARIA
ARIA – алгоритм блокового симетричного шифрування з розміром блоку 128
біт та довжиною ключа до 256 біт. Кількість раундів – 12, 14 або 16, в залежності від довжини ключа. ARIA використовує дві таблиці підстановки розміром 8×8 біт і їх інверсії в якості альтернативних раундів, один з них є S-блоком з шифру
Rijndael. Алгоритм використовує інволюції, тобто одна і та ж процедура може бути використана як для зашифрування, так і розшифрування.
Один раунд алгоритму складається з 3 етапів [9]: