close

Вход

Забыли?

вход по аккаунту

?

Отчёт AES (полный)

код для вставкиСкачать
Программная реализация криптографического алгоритма AES
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
ВСТУП
До початку сімдесятих років двадцятого століття комп'ютери отримали
масове поширення і проблема захисту даних, що зберігаються і
обробляються на них, стала усвідомлюватися все більшим числом фахівців.
Багато великих корпорацій і державних служб, у закритих відомчих центрах,
які перебувають під егідою спецслужб, проводили власні дослідження в
даній області.
Напрямок розробки системи стандартів по захисту даних, що
зберігаються і обробляються на ЕОМ, від несанкціонованого доступу було
визнано однією з найбільш пріоритетних областей. Одним з найбільш
відомих дослідницьких центрів такого роду в ті часи була наукова
лабораторія фірми IBM, в якій зародився стандарт шифрування DES (Data
Encryption Standard). Незабаром алгоритм був висунутий на загальне
обговорення і офіційно вступив в дію 15 січня 1977 р.
До недавнього часу DES використовувався в США, за невеликим
винятком, практично скрізь: у урядовому зв'язку, електронних банківських
переказах, цивільних супутникових комунікаціях і паролях комп'ютерних
систем. DES ознаменував настання нової епохи в криптографії. До його
появи майже нічого, що має відношення до криптографії, не входило в сферу
громадського інтересу і аналізу. DES змінив такий стан речей.
DES критикують за цілий ряд недоліків, в тому числі за дуже маленьку
довжину ключа — всього 56 розрядів. Незважаючи на всі нарікання і
твердження про його вразливості, до недавнього часу DES витримував усі
нападки. У той час вибрана довжина ключа була достатньою і злом
алгоритму «грубою силою», тобто перебором по всьому ключовому
простору, був за гранню економічної доцільності, так як вимагав би
надзвичайно високих витрат.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
Дослідники відзначили, що існуючої довжини ключа буде цілком
достатньо на 10-15 років, і в цьому вони не помилилися. Про всяк випадок
було вирішено переглядати стандарт кожні п'ять років.
Такі перегляди були виконані в 1983, 1988 і 1993 роках, тоді стандарт
був залишений без змін. Проте незабаром слабкість шифру стала очевидною,
і для збільшення стійкості фахівці рекомендували при його використанні
виконувати шифрування два або три рази з різними ключами. У 1998 році,
коли всім стало остаточно ясно, що стандарт шифрування повинен бути
замінений, Національний інститут стандартів і технологій (NIST)
опублікував запит, в якому описувався передбачуваний «Вдосконалений
стандарт шифрування» (Advanced Encryption Standard - AES), який повинен
прийти на зміну DES.
Спеціалістам з стандартизації належало, інтенсивно співпрацюючи з
представниками галузі та фахівцями з криптографії, розробити наступне
покоління алгоритмів шифрування приватним ключем. При шифруванні
приватним ключем застосовується один секретний ключ як для шифрування,
так і для дешифрування. Алгоритм передбачає виконання кількох ітерацій,
або раундів. У кожному раунді використовується підключ, отриманий з
базового ключа. Перетворення зі звичайного тексту в зашифрований і назад
виконується в кілька раундів і передбачає застосування підключа. Вибір або
генерація підключений називається графіком, плануванням або розширенням
ключа. Зазвичай при шифрування і дешифрування застосовується один і той
же алгоритм, але з різними графіками ключа.
Прийнятий у 2001 році, як стандарт шифрування XXI століття AES
ознаменував нову еру в питаннях захисту даних.
Мета роботи — аналіз структури, принципів функціонування та
програмна реалізація криптографічного алгоритму AES.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
1 ЗАГАЛЬН
I
ПОЛОЖЕННЯ
1.1 Критерії та вимоги AES
Для того щоб алгоритм AES став гідною заміною DES, його
архітектура повинна задовольняти декільком критеріям: пропонувати високу
ступінь захисту, мати просту структуру і високу продукти
вність.
Очевидно, що найвищим пріоритетом для алгоритму AES є захист. Вже
на рівні внутрішньої архітектури він повинен мати надійність, достатню для
того, щоб протистояти майбутнім спробам його злому.
Разом з тим структура алгоритму, на противагу традиційним поглядам,
повинна бути настільки простою, щоб гарантувати ефективну процедуру
шифрування.
Наступним у списку вимог, що пред'являються до AES, стоїть висока
продуктивність. Хороша продуктивність алгоритму припускає високу
швидкість роботи при шифрування і дешифрування, а також при реалізації
графіка ключа.
Щоб бути затвердженим у якості стандарту, алгоритм повинен:
–
реалізувати шифрування приватним ключем;
–
представляти собою блочний шифр;
–
працювати з 128-розрядними блоками даних і ключами трьох розмірів
(128, 192 і 256 розрядів).
Додатково кандидатам рекомендувалося:
–
використовувати операції, легко реалізуються як апаратно, так і
програмно;
–
орієнтуватися на 32-розрядні процесори;
–
не ускладнювати без необхідності структуру шифру.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
У серпні 1999 року NIST оголосив п'ять фіналістів, короткі відомості
про яких наводяться в Таблиці 1.1, які отримали право на участь у другому
етапі обговорень
.
Таблиця 1.1. Переможці першого етапу конкурсу.
Алго
ритм
Висунут
Основна перевага
Основний
недолік
Швидкодія
(asm, 200 МГц)
MARS
Корпорацією IBM
Високий рівень
захисту
Складна
реалізація
8 Мбайт/с
RC6
Компанією RSA
Security
Дуже простий
Недостатній
рівень захисту
12 Мбайт/с
Rijndael
Джоан Дімен і
Вінсентом
Ріджменом
Проста архітектура,
гарні загальні
характеристики
Незадовільний
графік
7 Мбайт/с
Serpent
Россом Андерсоном,
Елі Біхам і Ларсом
Кнудсеном
Високий рівень
захисту
Складна
архітектура,
невисока
продуктивність
2 Мбайт/с
Twofish
Брюсом
Шнайером
та
іншими
співробітниками
компанії
Counterpane
Internet Security
Прийнятна
продуктивність і
рівень захисту
Складна
архітектура
11 Мбайт/с
Об'єктивно порівняти достоїнства алгоритмів шифрування досить
складно. Претенденти на роль AES мають багато спільного, але є і важливі
відмінності, хоча і не існує прийнятного методу, який дозволяє надійно
оцінити, які з цих відмінностей впливають на безпеку зашифрованих даних.
При остаточному тестуванні враховувалися наступні дев'ять
характеристик: дві стосувалися захисту (загальний рівень захисту і
захищеність реалізації), одна характеризувала гнучкість, а інші були пов'язані
з ефективністю реалізації.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
1.2 Результати тестування
Алгоритм MARS виявився відкинутий з-за середньої оцінки по
продуктивності і виключно високої складності. У той час як інші алгоритми у
всіх раундах використовують одну і ту ж функцію, в MARS застосовуються
чотири різні функції. У ньому використані множення, змінне чергування і
великі таблиці даних. У цілому продуктивність його програмної реалізації
знаходиться на середньому рівні, хоча результати значно варіюються в
залежності від застосованих процесорів та компіляторів.
RC
6 — це простий алгоритм з адекватним запасом міцності. Як і в
MARS, в RC6 використовуються множення і змінне чергування, в силу чого
RC6 важко захистити від атак на реалізацію. RC6 працює досить швидко.
Однак, йому потрібно багато оперативної пам'яті, у силу чого він не дуже
добре підходить для середовищ з ресурсними обмеженнями. RC6 не став
переможцем з-за низької продуктивності при апаратної реалізації.
Завдяки своїй простий, надійної архітектурі Serpent повторює деякі
характеристики DES і, в цілому, спирається на добре відомі операції.
Результати тестування показали, що алгоритм має високий запас міцності. На
жаль, програмні реалізації Serpent виявилися найповільнішими серед
фіналістів.
Twofish використовує кардинально новий підхід, за якого половина
ключа використовується для зміни роботи самого алгоритму шифрування, і в
цьому алгоритмі в якості власного ключа шифрування застосовується інша
половина вихідного ключа. Однак, через складність Twofish проаналізувати
його детально у відведені для цього строки виявилося дуже складно. NIST не
вибрав Twofish через його порівняно низької продуктивності та складності
алгоритму.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
Rijndael
— швидкий і компактний алгоритм з простою математичної
структурою, завдяки чому він виявився простим для аналізу при оцінці рівня
захисту. Якщо в Rijndael є приховані проблеми, то рано чи пізно їх хто-
небудь виявить. Атаки на версію з скороченим числом раундів показали, що
Rijndael не має такого запасу міцності, як інші кандидати, а збільшення числа
раундів сповільнює його роботу.
Крім того, Rijndael продемонстрував хорошу стійкість до атак на
реалізацію, при яких хакер намагається декодувати зашифроване
повідомлення, аналізуючи зовнішні прояви алгоритму, в тому числі рівень
енергоспоживання і час виконання. У NIST були перевірені вразливість всіх
кандидатів до таких атак і їх здатність протистояти їм, зазвичай за рахунок
спеціального кодування, для вирівнювання рівня енергоспоживання. Rijndael
можна легко захистити від таких атак, оскільки він спирається в основному
на булеві операції.
Загальна продуктивність програмних реалізацій Rijndael виявилася
найкращою. Він чудово пройшов всі тести зі смарт-картами і в апаратних
реалізаціях. Алгоритму в значній мірі властивий внутрішній паралелізм, що
дозволяє без праці забезпечити ефективне використання процесорних
ресурсів. Збільшення довжини ключа трохи сповільнює його роботу,
оскільки при обробці ключів більшої довжини алгоритм передбачає
виконання додаткових раундів шифрування.
NIST зупинив свій вибір на Rijndael, оскільки той поєднує в собі
простоту і високу продуктивність. Хоча Rijndael володіє меншим запасом
міцності, ніж інші фіналісти, це не несе в собі ніякого практичного ризику.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
2
СТРУКТУРА ШИФРУ
2.1 Формат блоків даних і число раундів
Rijndael
—
це симетричний блоковий шифр, що оперує блоками даних
розміром 128 б
i
т і довжиною ключа 128, 192 або 256 біт — назва стандарту
відповідно "AES-128", "AES-192", і "AES-256".
Введемо наступні позначення
:
Nb
- число 32-бітних слів, що містяться у вхідному блоці
, Nb
= 4 ;
Nk
- число 32-бітних слів, що містяться в ключі шифрування
, Nk
= 4,6,8;
Nr
- кількість раундів шифрування, як функція від Nb
і Nk
, Nr
= 10,12,14.
Вхідні (input), проміжні (state) і вихідні (output) результати
перетворень, які виконуються в рамках алгоритму, називаються станами
(State). Стан можна представити у вигляді матриці 4 х Nb
, елементами якої є
чотири рядки по Nb
байт в порядку
S
00
, S
10
, S
20
, S
30
, S
01
, S
11
, S
21
, S
31
, і т.д.
Рис.2.1. Архітектура «Квадрат»
На старті процесів шифрування і дешифрування масив вхідних даних
in
0
,
in
1
,...
,
in
15
перетворюється в масив State
за правилом s
[
r
,
c
] = in
[
r
+ 4
c
], де
0 < r
< 4 и 0 < c
< Nb
. Наприкінці дії алгоритму виконується зворотне
перетворення out
[
r
+ 4
c
] = s
[
r
, c
], где 0 < r
< 4 и 0 < c
< Nb
— вихідні дані
виходять з байтів стану у тому ж порядку.
Чотири байти в кожному стовпці стану представляють собою 32-бітне
слово, якщо r
— номер рядка в стан
i
, то одночасно він є індексом кожного
байта в цьому слові.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
Отже, стан можна представити як одномірний масив 32-бітових слів
w
0
,...,
w
Nb
, де номер стовпця стану c
є індекс у цьому масиві. Тоді стан можна
представити так
:
Ключ шифрування також як і масив State
представляється у вигляді
прямокутного масиву з чотирма рядками. Кількість стовпців цього масиву
дорівнює Nk
.
Для алгоритму AES число раундів Nr
визначається на старті в
залежності від значення Nk
(таблиця 2.1).
Таблиця 2.1. Залежність значення Nr
від Nk
.
2.2 Функція зашифрування
Введемо наступні позначення
:
–
SubBytes
()
: заміна байтів — побайтова нелінійна підстановка в State-
блоках (S-Box) з використанням фіксованого таблиці замін розмірністю
8x256
;
–
ShiftRows
()
: зсув рядків — циклічний зсув рядків масиву State на різну
кількість байт
;
–
MixColumns
()
: перемішування стовпців — множення стовпців стану,
що розглядаються як многочлени над
GF
(2
8
);
–
AddRoundKey
()
: складання з раундовим ключем — порозрядному XOR
вмісту State з поточним
.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
Рис. 2.2. Операція зашифрування на псевдокоді
Після заповнення масиву State елементами вхідних даних до нього
застосовується перетворення AddRoundKey()
, далі, в залежності від величини
Nk
, масив State
піддається трансформації раундової 10, 12 або 14 разів,
причому фінальний раунд є кілька укороченим — в ньому відсутня
перетворення MixColumns()
. Вихідними даними описаної послідовності
операцій є шіфротекст — результат дії функції зашифрування AES.
2.3 Функції розшифрування
Введемо наступні позначення:
–
InvSubBytes
(): зворотня SubBytes()
заміна байтів — побайтова нелінійна
підстановка в State-блоках з використанням фіксованого таблиці замін
розмірністю 8x256;
–
InvShiftRows
()
: зворотний зсув рядків ShiftRows()
— циклічний зсув
рядків масиву State на різну кількість байт;
–
InvMixColumns
()
: відновлення значень стовпців — множення стовпців
стану, що розглядаються як многочлени над
GF
(2
8
).
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
У специфікації алгоритму AES пропонуються два види реалізацій
функції розшифрування, що відрізняються один від одного послідовністю
програми перетворень зворотних перетворень функції зашифрування і
послідовністю планування ключів.
2.3.1 Функція зворотнього розшифрування
Якщо замість SubBytes
(
)
, ShiftRows
(
)
, MixColumns
(
)
и AddRoundKey
(
)
у
зворотній послідовності виконати інверсні їм перетворення, можна
побудувати функцію зворотного розшифрування. При цьому порядок
використання раундовий ключів є зворотним по відношенню до того, який
використовується при зашифрування.
Рис. 2.3. Операція зворотнього розшифрування на псевдокоді
2.3.2 Функція прямого розшифрування
Алгоритм зворотного розшифрування, описаний вище має порядок
застосування операцій зворотний порядку операцій в алгоритмі прямого
зашифрування, але використовує ті ж параметри розгорнутого ключа.
Змінивши певним чином послідовність планування ключа можна побудувати
ще один алгоритм — алгоритм прямого розшифрування.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
Рис. 2.4. Операція прямого розшифрування на псевдокоді
Це дозволяють зробити дв
i
наступн
i
властивості: –
Порядок застосування функцій SubBytes
(
)
и ShiftRows
(
)
не грає ролі. Те
ж саме вірно і для операцій InvSubBytes
(
)
и InvShiftRows
(
)
. Це відбувається
тому, що функції SubBytes
(
)
и InvSubBytes
(
)
працюють з байтами, а операції
ShiftRows
(
)
и InvShiftRows
(
)
зрушують цілі байти, не зачіпаючи їх значень.
–
Операція MixColumns
(
)
є лінійною щодо вхідних даних, що означає
InvMixColumns
(
State
XOR
RoundKey
) == InvMixColumns
(
State
) XOR
InvMixColumns
(
RoundKey
)
Ці властивості функцій алгоритму шифрування дозволяють змінити
порядок застосування функцій InvSubBytes
(
)
и InvShiftRows
(
)
. Функції
AddRounKey
(
)
и InvMixColumns
(
)
також можуть бути застосовані у
зворотному порядку, але за умови, що стовпці (32-бітові слова) розгорнутого
ключа попередньо пропущені через функцію InvMixColumns
(
)
.
Таким чином можна реалізувати більш ефективний спосіб
розшифрування з тим же порядком програми функцій, що і в алгоритмі
зашифрування.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
2.4 Алгоритм вироблення ключів
Введемо наступні позначення
:
Rcon
[] — масив 32-бітових раундових констант
;
RotWord
() — операція циклічної перестановки вхідного 4-байтного
слова в вихідну за наступним правилом [
a
0
, a
1
, a
2
, a
3
] -> [
a
1
, a
2
, a
3
, a
0
];
SubWord
() — операція заміни в 4-байтним слові за допомогою S-Box
кожного байта
;
⊕
— операція виключального АБО (
XOR
).
Рис. 2.5. Операція розширення ключа на псевдокоді
Раундов
i
ключі виходять з ключа шифрування за допомогою алгоритму
вироблення ключів. Він містить два компоненти: розширення ключа (Key
Expansion) та вибір раундового ключа (Round Key Selection). Основні засади
алгоритму виглядають наступним чином:
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
–
з
агальне число бітів раундових ключів дорівнює довжині блоку,
помноженої на кількість раундів, плюс 1;
–
ключ шифрування розширюється в розширений ключ (
Expanded
Key
);
–
раундові ключі беруться з розширеного ключа наступним чином:
перший ключ містить перші Nb
слів, другий — наступні Nb
слів і т. д.
2.4.1 Розширення (планування) ключа
Розширений ключ являє собою лінійний масив w[i], що складається з
4(
Nr
+
1) 4-байтових слів
, i
= 0,4(
Nr
+
1) .
Рис. 2.6. Процедура розширення та вибірки раундового ключа
Перші Nk
слів містять ключ шифрування. Кожне наступне слово w[i]
виходить за допомогою XOR
попереднього слова w
[
i
-1] і слова на Nk
позицій
раніше w
[
i
- Nk
]: w
[
i
] = w
[
i
-1] ⊕
w
[
i
- Nk
].
Для слів, позиція яких кратна Nk
, перед XOR
застосовується
перетворення до w
[
i
-1], а потім ще додається раундовий константа Rcon
[
i
].
Перетворення реалізується за допомогою двох додаткових функцій:
RotWord
(
)
и SubWord
(
)
.
Значення Rcon
[
j
] дорівнює 2
j
-1
. Значення w
[
i
] в цьому випадку
визначається виразом w
[
i
] = SubWord
(
RotWord
(
w
[
i
-1])) ⊕
Rcon
[
i
/ Nk
] ⊕
w
[
i
- Nk
].
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
2.4.2 Вибір раундового ключа
i-тий раундовий ключ вибирається з слів масиву розширеного ключа в
проміжку від
W
[
Nb
∙ i
] до W
[
Nb
∙(
i
+
1)].
Для функції зашифрування розширений ключ генерується алгоритмом.
Для функції зворотного розшифрування використовується цей же ключ, але в
зворотній послідовності, починаючи з останнього раундового підключа
зашифрування.
Для функції прямого розшифрування використовується дещо
модифікований алгоритм планування ключа. При формуванні розгорнутого
ключа в процедуру планування необхідно додати в кінці додаткове
перетворення, причому розширений ключ використовується при прямому
розшифрування в тій же послідовності, що і при зашифрування.
Рис. 2.7. Додаткове перетворення розширеного ключа
2.5 Раундове перетворення
Раундове перетворення складається з послідовного застосування до
масиву State
ряду трансформацій:
–
заміна байт SubBytes()
;
–
зсув рядків ShiftRows()
;
–
перемішування стовпців MixColumns()
;
–
додавання раундового ключа AddRoundKey()
.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
2.5.1 Заміна байт
У функціях зашифрування та розшифрування виробляються наступні
перетворення заміни байтів:
Рис. 2.8. Перетворення стану за допомогою S-Box
Використання попередньо обчисленої таблиці заміни S-Box зводить
операцію SubBytes
()
до найпростішої вибірці байти з масиву λ
(
f
) = Sbox
[
f
]
.
Логіка роботи S-Box при перетворенні байту{
xy
} відображена на Рис. 2.9:
Рис. 2.9. Таблиця S-Box заміни байт
У функціях розшифрування застосовується операція зворотня
SubBytes
() —
InvSubBytes
()
,яка реалізується так само просто, як і попередня
за допомогою інверсної таблиці S
-
Box
: λ
(
f
) = InvSbox
[ f
]. Її логіка роботи при
перетворенні байту {
xy
} відображена на Рис. 2.10:
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
Рис. 2.10. Таблиця S-Box зворотньої заміни байт
2.5.2 З
сув рядків
У перетворенні зсуву рядків останні 3 рядки стану циклічно зсуваються
вліво на різне число байтів. Значення зрушень залежать від довжини блоку
Nb
. У стандарті AES, де визначено єдиний розмір блоку, рівний 128 бітам,
рядок 1 зсувається на 1 байт, рядок 2 - на 2 байти, і рядок 3 - на 3 байти. Операція зсуву вмісту стану може бути представлена наступним
виразом — S
’
r
,
c
= S
r
,(
c
+
shift
(
r
,
Nb
))
modNb
для 0 < r
< 4 и 0 < c
< Nb
, де значення shift
(
r
,
Nb
) залежить від номера рядка r
.
Рис. 2.11. Вплив перетворення ShiftRows()
на стан
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
У перетворенні зворотн
ього зсуву рядків InvShiftRows останні 3 рядки
стану циклічно зсуваються вправо на різне число байтів. Рядок 1 зсувається
на 1 байт, рядок 2 - на 2 байти, і рядок 3 - на 3 байти. Операція зсуву вмісту стану може бути представлена наступним
виразом
S
’
r
,(
c
+
shift
(
r
,
Nb
))
modNb
= S
r
,
c
для 0 < r
< 4 и 0 < c
< Nb
, де значення shift
(
r
,
Nb
) залежить від номера рядка r
.
Рис. 2.11. Перетворення зворотнього зсуву рядків
2.5.3 Перемішування стовпців
У перетворенні перемішування стовпців стовпці стану розглядаються
як многочлени над GF
(2
8
) та множаться по модулю x
4
+ 1 на много
член c
(
x
),
що виглядає, як: c
(
x
) = {03} x
3
+ {01}
x
2
+ {01} x
+ {02}.
Це перетворення може бути представлене у матричному вигляді
наступним чином:
де с
— номер стовпця масиву State
.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
У результаті такого множення байти стовпця s
0,
c
, s
1,
c
, s
2,
c
, s
3,
c
замінюються відповідно на байти:
Застосування цієї операції до всіх чотирьох стовпц
i
в стану
позначається, як MixColumns
(
State
).
У зворотному перетворенні стовпці стану розглядаються як
многочлени над GF
(2
8
), але, звичайно, піддаються зворотному перетворенню,
тобто множаться по модулю x
4
+ 1 на многочлен d
(
x
), що виглядає наступним
чином: d
(
x
) = {0
b
} x
3
+ {0
d
} x
2
+ {09}
x
+ {0
e
}.
Це може бути представлене у матричному вигляді наступним чином:
де с
— номер стовпця масиву State
.
У результаті виходять наступні байти:
Рис. 2.12. Застосування перетворень MixColumns()
до стовпця стану
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
2.5.4 Додавання раундового ключа
У даній операції раундовий ключ додається до стану за допомогою
порозрядного XOR. Довжина ключа (в 32-розрядних словах) дорівнює
довжині блоку Nb
.
Перетворення, що містить додавання раундового ключа до стану
представляється виразом [
s
’
0
,
c
,
s
’
1
,
c
,
s
’
2
,
c
,
s
’
3
,
c
] = [
s
0
,
c
,
s
1
,
c
,
s
2
,
c
,
s
3
,
c
] ⊕
[
w
r
(
Nb
+
c
)
], где
0 < c
< Nb
и 0 < r
< Nr
.
Рис. 2.13. Дія AddRoundKey()
на стовпці стану
2.6 Основні особливості AES
У висновку можна сформулювати основні особливості AES
:
–
нова архітектура «Квадрат», що забезпечує швидке розсіювання і
перемішування інформації, при цьому за один раунд перетворенню
піддається весь вхідний блок;
–
байт-орієнтована структура, зручна для реалізації на 8-розрядних
мікроконтролерах;
–
вс
i
раундов
i
перетворення операції в кінцевих полях, що допускають
ефективну апаратну і програмну реалізацію на різних платформах.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
3
РОЗРОБКА ПРОГРАМИ
3
.1 Аналіз та проектування системи
Розроблена в рамках курсової роботи програма спроектована, як
багатофункціональна система візуалізації, аналізу і, власне, реалізації
шифрування даних з використанням криптографічного алгоритму AES
.
Основними компонентами системи є:
–
підсистема шифрування за стандартом AES, що м
i
стить модулі для
реалізації зашифрування і розшифровки з підтримкою режиму електронної
кодової книги (
Electronic
codebook
, ECB)
;
–
підсистема візуалізації, яка розкриває суть алгоритму і принципів
перетворень, реалізованих у ньому, за допомогою демонстрації процесу
шифрування та відповідного графічного матеріалу
.
Система володіє всіма необхідними засобами для виконання операцій
блокового перетворення 128, 192, 256-бітних ключів та блоків даних
незалежно один від одного, і, відповідно, 10, 12 і 14-раундових перетворень.
Обмеження на розмір шіфруемих даних залежать тільки від кількості
адресованої віртуальної пам'яті доступної системі.
Основними інформаційними блоками в роботі програми є стани
відкритого та шифрованого тексту. На основі уведеного користувачем ключа
система виконує планування підключей і генерує ключові послідовності для
зашифрування і розшифрування.
Всі результати, сформовані в ході роботи програми, можливо зберегти
у файл на постійному або знімному носії.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
3
.2 Вибір засобів розробки
Реалізацію даної системи вирішено виконувати засобами об'єктно-
орієнтованого програмування —
парадiгми, яка заснована на уявi програми у
виглядi сукупностi о
б’єктiв, кожний з яких є реалiзацiєю визначеного типу,
яка використовує механiзм пересилки повiдомлень та класи, що органiзованi
у iєрархiю успадкування. Інструментом для створення програми вибрана мова програмування
Java. Програми на Java транслюються в байтовий код, що виконується
віртуальною машиною — програмою, яка обробляє байтовий код і передає
інструкції обладнанню як інтерпретатор, але з тією відмінністю, що байтовий
код, на відміну від тексту, обробляється значно швидше.
Перевага подібного способу виконання програм полягає в повній
незалежності байтового коду від операційної системи і обладнання, що
дозволяє виконувати Java-програми на будь-якому пристрої, для якого існує
відповідна віртуальна машина.
Іншою важливою особливістю технології Java є гнучка система безпеки
завдяки тому, що виконання програми повністю контролюється віртуальною
машиною. Будь-які операції, які перевищують встановлені повноваження
програми (наприклад, спроба несанкціонованого доступу до даних або
з'єднання з іншим комп
’
ютером) викликають негайне переривання.
Реалізована обробка винятків, що перешкоджає виникненню помилок і
інформує користувача про їх виникнення.
Описи локальних змінних і атрибутів наведені у вигляді коментарів до
коду програми.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
3
.3 Режим шифрування
У процесі шифрування використовується режим електронної кодової
книги (
E
СВ), також вiдомий, як метод простої замiни. У загальному випадку
його рекомендують як самий простий і швидкий режим роботи блочного
шифру.
У цьому режимі кожен блок відкритого тексту замінюється блоком
шифротексту. Так як один і той же блок відкритого тексту замінюється
одним і тим же блоком шифротексту, теоретично можливо створити кодову
книгу блоків відкритого тексту та відповідних шифротекст
i
в. Але якщо
розмір блоку становить n біт, кодова книга буде складатися з 2
n
записів.
Режим E
СВ — найпростіший режим шифрування. Всі блоки відкритого
тексту шифруються незалежно один від одного. Це важливо для шифрованих
файлів з довільним доступом, наприклад, файлів баз даних. Якщо база даних
зашифрована в режимі E
СВ, будь-який запис може бути додан, вилучен,
зашифрован або розшифрован незалежно від будь-якого іншого запису (за
умови, що кожен запис складається з цілого числа блоків шифрування). Крім
того, обробка може бути паралельною: якщо використовуються декілька
шифрувальних процесорів, вони можуть шифрувати або розшифровувати
різні блоки незалежно один від одного.
До недоліків режиму ECB
можна віднести таку обставину, що якщо у
криптоаналітика є відкритий текст і шіфротекст декількох повідомлень, він
може, не знаючи ключа, почати складати шифрувальну книгу. У більшості
реальних ситуацій фрагменти повідомлень мають тенденцію повторюватися.
У різних повідомленнях можуть бути однакові бітові послідовності, У
повідомленнях, які, подібно електронній пошті, створюються комп'ютером,
можуть бути періодично повторювані структури. Повідомлення можуть бути
високо надлишковими або містити довгі рядки нулів або пробілів.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
До переваг режиму ECB
можна віднести можливість шифрування
декількох повідомлень одним ключем без зниження надійності. По суті,
кожен, блок можна розглядати як окреме повідомлення, зашифроване тим же
самим ключем. При розшифрування помилки в символах шіфротекста ведуть
до некоректного розшифрування відповідного блоку відкритого тексту, проте
не зачіпають решту відкритого тексту. Але якщо біт шіфротекста випадково
втрачено або доданий, весь наступний шіфротекст буде дешифрований
некоректно, якщо тільки для вирівнювання кордонів блоків не
використовується яке-небудь вирівнювання по межах блоку.
Більшість повідомлень не діляться точно на n-бітові блоки
шифрування, а наприкінці зазвичай виявляється укорочений блок. Проте
режим E
СВ вимагає використовувати суворо n-бітові блоки. Для вирішення
цієї проблеми використовують додаток (padding). Щоб створити повний
блок, останній блок доповнюють деяким стандартним шаблоном: нулями,
одиницями, або нулями та одиницями, що чергуються.
3.4 Засоби візуалізації і протоколювання
Серед функцій системи варто також відзначити:
–
наявність інструментарію візуалізації алгоритму AES, яка розкриває
суть алгоритму і принципів перетворень, реалізованих у ньому, за допомогою
демонстрації процесу шифрування та відповідного графічного матеріалу;
–
наявність журналу раундових перетворень, який містить докладний
звіт про трансформацію даних кожного шифруемого і дешифруемого блоку
на всіх етапах раундових перетворень.
Нижче наводяться листинг операції зашифрування для еталонного
вар
i
анту, що запропонован в описі шифру його авторами:
–
пов
i
домлення: 00112233445566778899
aabbccddeeff
–
ключ (128 б
i
т): 000102030405060708090
a
0
b
0
c
0
d
0
e
0
f
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
enc
[1].
start
: 00102030405060708090
a
0
b
0
c
0
d
0
e
0
f
0
enc
[1].
b
_
sub
: 63
cab
7040953
d
051
cd
60
e
0
e
7
ba70e18c
enc[1].s_row: 6353e08c0960e104cd70b751bacad0e7
enc[1].m_col: 5f72641557f5bc92f7be3b291db9f91a
enc[1].k_sch: d6aa74fdd2af72fadaa678f1d6ab76fe
enc[2].start: 89d810e8855ace682d1843d8cb128fe4
enc[2].b_sub: a761ca9b97be8b45d8ad1a611fc97369
enc[2].s_row: a7be1a6997ad739bd8c9ca451f618b61
enc[2].m_col: ff87968431d86a51645151fa773ad009
enc[2].k_sch: b692cf0b643dbdf1be9bc5006830b3fe
enc[3].start: 4915598f55e5d7a0daca94fa1f0a63f7
enc[3].b_sub: 3b59cb73fcd90ee05774222dc067fb68
enc[3].s_row: 3bd92268fc74fb735767cbe0c0590e2d
enc[3].m_col: 4c9c1e66f771f0762c3f868e534df256
enc[3].k_sch: b6ff744ed2c2c9bf6c590cbf0469bf41
enc[4].start: fa636a2825b339c940668a3157244d17
enc[4].b_sub: 2dfb02343f6d12dd09337ec75b36e3f0
enc[4].s_row: 2d6d7ef03f33e334093602dd5bfb12c7
enc[4].m_col: 6385b79ffc538df997be478e7547d691
enc[4].k_sch: 47f7f7bc95353e03f96c32bcfd058dfd
enc[5].start: 247240236966b3fa6ed2753288425b6c
enc[5].b_sub: 36400926f9336d2d9fb59d23c42c3950
enc[5].s_row: 36339d50f9b539269f2c092dc4406d23
enc[5].m_col: f4bcd45432e554d075f1d6c51dd03b3c
enc[5].k_sch: 3caaa3e8a99f9deb50f3af57adf622aa
enc[6].start: c81677bc9b7ac93b25027992b0261996
enc[6].b_sub: e847f56514dadde23f77b64fe7f7d490
enc[6].s_row: e8dab6901477d4653ff7f5e2e747dd4f
enc[6].m_col: 9816ee7400f87f556b2c049c8e5ad036
enc[6].k_sch: 5e390f7df7a69296a7553dc10aa31f6b
enc[7].start: c62fe109f75eedc3cc79395d84f9cf5d
enc[7].b_sub: b415f8016858552e4bb6124c5f998a4c
enc[7].s_row: b458124c68b68a014b99f82e5f15554c
enc[7].m_col: c57e1c159a9bd286f05f4be098c63439
enc[7].k_sch: 14f9701ae35fe28c440adf4d4ea9c026
enc[8].start: d1876c0f79c4300ab45594add66ff41f
enc[8].b_sub: 3e175076b61c04678dfc2295f6a8bfc0
enc[8].s_row: 3e1c22c0b6fcbf768da85067f6170495
enc[8].m_col: baa03de7a1f9b56ed5512cba5f414d23
enc[8].k_sch: 47438735a41c65b9e016baf4aebf7ad2
enc[9].start: fde3bad205e5d0d73547964ef1fe37f1
enc[9].b_sub: 5411f4b56bd9700e96a0902fa1bb9aa1
enc[9].s_row: 54d990a16ba09ab596bbf40ea111702f
enc[9].m_col: e9f74eec023020f61bf2ccf2353c21c7
enc[9].k_sch: 549932d1f08557681093ed9cbe2c974e
enc[10].start: bd6e7c3df2b5779e0b61216e8b10b689
enc[10].b_sub: 7a9f102789d5f50b2beffd9f3dca4ea7
enc[10].s_row: 7ad5fda789ef4e272bca100b3d9ff59f
enc[10].k_sch: 13111d7fe3944a17f307a78b4d2b30c5
enc[10].final: 69c4e0d86a7b0430d8cdb78070b4c55a
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
Умовн
i
позначення:
–
.start: блок на початок раунду;
–
.
b
_
sub
: блок після операції SubBytes;
–
.s_row: блок після операції ShiftRows;
–
.m_col: блок після операції MixColumns;
–
.k_sch: значення раундового ключа;
–
.final: результат шифрування.
Рядок
журналу
enc[3].start: 4915598f55e5d7a0daca94fa1f0a63f7
позначає
, що
в
операції
зашифрування
(«enc») на
початку
(«.start») раунду
номер
3 вміст
блоку
шіфруемих
даних
вигляда
є
саме
таким
чином
.
3.5 Інструкція користувача
Для початку роботи необхідно провести первинну підготовку даних,
яка містить: завантаження з файлу або ручного введення початкових даних
(відкритого тексту, ключа і шіфротекста) і вибір таких установок, як розмір
блоку даних і довжина ключа, залежно від поставленого завдання.
Введення відкритого тексту та ключа можливо як в текстовому вигляд
i
,
так i
у формат
i
ш
i
стнадцятиричного коду.
Залежно від подальшого вибору користувачевi програми можливі
наступні операції:
–
зашифрування та розшифрування
;
–
ведення докладного журналу раундових перетворень;
–
спостереження за проміжними результатами раундових перетворень
.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
3
.6 Інтерфейс програми
Рис. 3
.1 Головне вiкно програми
Рис. 3
.2 Результати раундових перетворень Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
ВИСНОВКИ
У рамках курсової роботи була створена програмна реалізація
криптографічного алгоритму AES, яка включає в себе засоби повноцінної
реалізації алгоритмів зашифрування та розшифрування за стандартом AES з
використанням режиму ECB, а також засоби візуалізації і протоколювання
раундових перетворень шифру з можливостями подальшого детального
ознайомлення з проміжними результатами.
Був сформульований перелік основних організаційних і практичних
завдань, що вимагають рішення в процесі досягнення цілей курсової роботи:
програмна реалізація алгоритму шифру AES і режимів його застосування;
проектування інтерфейсу користувача; розробка сценаріїв застосування
системи.
Застосування об'єктно-орієнтованого програмування надало великий
набiр концепцiй та iдей, дозволяючих осмислити задачу, яка стоїть при
розробцi комп’ютерної програми, а потiм ще знайти шлях до iї рiшення
бiльш зрозумiлим, а отже i бiльш ефективним способом.
Система розроблялася на мові Java
із залученням бібліотеки класів
Swing
, фінальна збірка була проведена в середовищі розробки Netbeans
IDE
.
Розроблена система може бути використана для практичного
вирішення завдань шифрування даних, а також застосована як навчальний
матеріал в курсах захисту i
нформац
i
ї
, що вивчають стандарт AES.
Серед можливих напрямк
i
в продовження розробки можна розглядати
розширення функціональності системи в частині засобів аналізу алгоритму,
що включають контроль і керування математичним апаратом раундових
перетворень, та його кріптостійкост
i
.
Iзм
Лист
№ документа
Пiдпис
Дата
Лист
ІС КР 0804 АН064 016 ПЗ
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
27
272
7
- 27
-U
ser
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
A
U
T
H
O
R
Us
er
ст
р. 27
16.
06.
20
10
Us
er
ст
р. 27
16.
06.
20
10
Сл
уж
еб
но
е
ст
р. 27
16.
06.
20
10
27
27
1
111
272
828
282
828
ПЕРЕЛ
I
К ПОСИЛАНЬ
1. Зенин О.С., Иванов М.А. Стандарт криптографической защиты – AES.
Конечные поля. М.: КУДИЦ-ОБРАЗ, 2002. 176 с. 2. Киви Берд. Конкурс на новый криптостандарт AES. – Системы
безопасности связи и телекоммуникаций, 1999, № 27-28. 3. Столингс, В. Криптография и защита сетей: принципы и практика. М.:
Издательский дом «Вильямс», 2001. 672 с. 4. Шнайер, Б. Прикладная криптография. Протоколы, алгоритмы, исходные
тексты на языке C. М.: Издательство ТРИУМФ, 2002. 816 с.
5.
ДСТУ 3008–95. Документація. Звіти у сфері науки і техніки. Структура і
правила оформлення.
6.
ГОСТ 19.701–90 ЕСПД. Схемы алгоритмов, программ, данных и систем.
Обозначения условные и правила выполнения
.
Автор
Chupa
Chupa14   документов Отправить письмо
Документ
Категория
Информационные технологии
Просмотров
530
Размер файла
1 020 Кб
Теги
криптография, шифрование, AES
1/--страниц
Пожаловаться на содержимое документа