- •Курсова робота
- •Календарний план
- •І. Опис предметної галузі
- •1.1 Огляд існуючих технологій
- •Усілякі засоби захисту конфіденційної інформації на комп'ютерах і в мережі за допомогою шифрування
- •Засоби аутентифікації
- •Антивірусний захист
- •Міжмережеве екранування
- •Захист програм від неліцензійного використання
- •Побудова аналогових і цифрових систем відеоспостереження
- •Організація обліку робочого часу та контролю місцезнаходження співробітників
- •1.2 Моделі і структури даних які використовуються в даній галузі
- •1.2.1 Моделі розмежованого доступу
- •1.2.2 Дискреційне управління доступом
- •1.2.3 Мандатне управління доступом
- •Класична мандатна модель Белла-ЛаПадули
- •Модель Біба
- •Модель безпеки військової системи передачі даних
- •Модель Кларка-Вілсона
- •Модель "Китайська стіна"
- •Модель Гогена-Мезігера
- •Сазерлендська модель захисту
- •Модель елементарного захисту
- •Модель гарантовано захищеної системи обробки інформації
- •Суб'єктно-об'єктна модель
- •1.3 Опис проблем захисту інформації
- •1.4 Висновок
- •Іі. Криптографічні Методи захисту інформації
- •2.1 Огляд сучасних методів захисту
- •Криптографія та кpиптоаналіз
- •Вимоги до криптосистем
- •2.2 Огляд існуючих програмних технологій
- •Порівняння можливостей шифрування архіваторів WinRar та WinZip
- •2.3 Опис прототипу Введення
- •Термінологія
- •Шифрування
- •Перетворення SubBytes
- •Дешифрування
- •III. Розробка власного програмного засобу, рішення
- •3.1 Опис власного методу розв’язання задач Визначення і допоміжні процедури
- •Допоміжні процедури
- •Шифрування
- •SubBytes()
- •ShiftRows()
- •MixColumns()
- •AddRoundKey()
- •Алгоритм обробки ключа
- •Алгоритм розширення ключа
- •Розшифрування
- •3.3.2 Структура програмних модулів
- •3.3.3 Опис програмних кодів
- •3.4 Висновок
- •Висновки
- •Література
- •Додаток а
- •Додаток б
- •Умови запуску програми
- •Робота з програмою
2.3 Опис прототипу Введення
AES є алгоритм шифрування 128-бітних блоків даних ключами по 128, 192 і 256 біт. AES є спрощеною версією алгоритму Rijndael.
Оригінальний алгоритм Rijndael відрізняється тим, що підтримує більш широкий набір довжини блоків.
Термінологія
Далі у викладі алгоритму будуть використовуватися такі терміни.
Байт– послідовність з 8 бітів. У контексті даного алгоритму байт розглядається як елемент поля Галуа. Операції над байтами виробляються як над елементами поля Галуа GF (28) (кінцевого поля), тобто байту {b7b6b5b4b3b2b1b0} відповідає многочленв полі GF (28).
Слово(word) – послідовність з 4 байтів.
Блок– послідовність з 16 байтів, над якою оперує алгоритм. Блок служить вхідним і вихідним даними алгоритму. Байти в блоці нумеруються з нуля.
Ключ- послідовність з 16, 24 або 32 байтів, використовувана як ключ шифрування. Байти в ключі нумеруються з нуля. Ключ, поряд з блоком, є вхідними даними алгоритму.
Форма(state) – двовимірний масив байтів, що складається з чотирьох рядків. байти в формі розташовуються в порядку, зображеному в таблиці 2.1. В алгоритмі AES форма використовується для представлення блоку.
Таблиця 2.1 – Порядок байтів у формі.
0 |
4 |
8 |
12 |
... |
1 |
5 |
9 |
13 |
... |
2 |
6 |
10 |
14 |
... |
3 |
7 |
11 |
15 |
... |
Раунд - ітерація циклу перетворень над формою. Залежно від довжини ключа раундів може бути від 10 до 14, як показано в таблиці 2.
Ключ раунду(round key) – ключ, який застосовується в раунді. Обчислюється для кожного раунду.
Таблиця підстановок(S-box) – таблиця, що задає біективне відображення байта в байт. Таблиця підстановки представлена в таблиці 3.
Зворотна таблицяпідстановок – таблиця, що задає відображення, зворотне задане таблицею підстановки. Зворотна таблиця підстановки представлена в таблиці 4.
Nb – кількість слів (word) в блоці.
Nk – кількість слів у ключі. Nk може приймати значення 4, 6, 8.
Nr – кількість раундів. Параметр Nr залежить від значень Nk. Відповідні значення даних параметрів наведені в таблиці 2.2.
Таблиця 2.2 – Залежність Nr від Nk
-
Nk
Nr
4
10
6
12
8
14
Шифрування
Для шифрування в алгоритмі AES застосовуються такі процедури перетворення даних:
ExpandKey - Обчислення раундових ключів для всіх раундів.
SubBytes - Підстановка байтів за допомогою таблиці підстановки.
ShiftRows - Циклічний зсув рядків у формі на різні величини.
MixColumns - Змішування даних усередині кожного стовпця форми.
AddRoundKey - Додавання ключа раунду з формою.
Порядок виконання процедур 2 і 3 можна поміняти місцями в силу визначення цих операцій.
Процедури 4 і 5 теж можна виконувати в різному порядку, але при цьому змінюється кількість їх викликів, оскільки MixColumns (AddRoundKey (A, B)) = AddRoundKey (MixColumns (A), MixColumns (B)).
Далі перетворення та їх застосування при шифруванні розглянуті детальніше.