Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсова робота.doc
Скачиваний:
183
Добавлен:
23.02.2016
Размер:
1.68 Mб
Скачать

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 застосовуються такі процедури перетворення даних:

  1. ExpandKey - Обчислення раундових ключів для всіх раундів.

  2. SubBytes - Підстановка байтів за допомогою таблиці підстановки.

  3. ShiftRows - Циклічний зсув рядків у формі на різні величини.

  4. MixColumns - Змішування даних усередині кожного стовпця форми.

  5. AddRoundKey - Додавання ключа раунду з формою.

Порядок виконання процедур 2 і 3 можна поміняти місцями в силу визначення цих операцій.

Процедури 4 і 5 теж можна виконувати в різному порядку, але при цьому змінюється кількість їх викликів, оскільки MixColumns (AddRoundKey (A, B)) = AddRoundKey (MixColumns (A), MixColumns (B)).

Далі перетворення та їх застосування при шифруванні розглянуті детальніше.