тному перетворенню v (g) = ^ -1 (g) = d-gmod (Y4 + l), де d = (Х3 + Х2 + Х, Х3 + l, X3 + X2 + l, X3 + X + 1), т.е множаться по модулю х4 + 1 на многочлен d (x), що виглядає таким чином: d (x) = {Ob} x3 + {0d} x2 + {09} х + {0E}.
Це може бути представлено у матричному вигляді наступним чином:
В
Додавання раундового ключа AddRoundKey ()
У даній операції раундовий ключ додається до стану допомогою порозрядного XOR. Довжина ключа (в 32-розрядних словах) дорівнює довжині блоку Nb.
Малюнок 1.14 ілюструє дію даної операції на стан. Це перетворення позначається як AddRoundKey (State, RoundKey). br/>В
Основні особливості AES
У висновку сформулюємо основні особливості AES:
нова архітектура В«КвадратВ», що забезпечує швидке розсіювання і перемішування вання інформації, при цьому за один раунд перетворенню піддається весь вхідний блок;
байт-орієнтована структура, зручна для реалізація на 8-розрядних мікро контролерах;
• всі раундові перетворення суть операції в кінцевих полях, що допускають ефективну апаратну і програмну реалізацію на різних платформах
2. Алгоритм шифрування MARS
Коропорація IBM, яка створила DES, представила алгоритм MARS, що володіє як хорошою криптостійкість так і високою швидкістю шифрування.
Процес шифрування складається з трьох стадій: прямого і зворотного перемішування, які обертають шифрування і складаються з 8 раундів, і 16 раундового шифрування. Зворотне перемішування виробляють для більш швидкого досягнення лавинного ефекту і порушення симетричності при перемішуванні. Стадії прямого і зворотного перемішування інвертовані відносно один одного.
Перед прямим перемішуванням відбувається вхідний забеліваніе (додавання до вхідного блоку ключів). Далі протягом 8 раундів проводиться перемішування без використання ключа. На стадії перемішування використовуються операції бітового зсуву, що виключає "АБО", додавання і Sbox'и. br/>В
Рис. 2.1 Схема алгоритму MARS
Безпосереднє шифрування являє собою мережу Фейстеля з 4 гілками. Від першої гілки обчислюється функція F. На вхід функції F подається 32 бітове слово, функція видає на вихід три 32 бітних слова. Отримані слова складаються з трьома залишилися гілками, далі виконується перестановка гілок. Структура функції представлена ​​на рис. 2.2
В
Рис 2.2 Структура функції шифрування і розшифрування алгоритму MARS
B перших восьми раундах проводиться пряме шифрування, в наступних восьми раундах зворотне. Пряме і зворотне шифрування відрізняються порядком функцій, виконуваних над виходами функції F.
В
MARS підтримує змінну довжину ключа від 128 до 448 бітів, використовуючи процедуру розширення вхідного ключа до 40 32-бітових слів, які використовуються при шифруванні і дешифрування.
Одним з недоліків алгоритму є складність його криптоаналізу через використання подвійного перемішування. Алгоритм показав хорошу швидкість шифрування. Швидкість шифрування на Intel-Pentium 200 МГц досягала 65 Мбіт/с, швидкість виконання блоку прямого і зворотного шифрування досягала 100 Мбіт/с.
3. Алгоритм шифрування RC4
Алгоритм RC4 складається з трьох частин:
Створення ключа (іноді називають - розширення ключа).
Алгоритм шифрування.
Алгоритм розшифровки.
Створення ключа
Ключ у RC4 являє собою послідовність байтів довільної довжини, по якій будується початковий стан шифру S - перестановка всіх 256 байтів. Алгоритм отримання початкового стану зображений на рис.3.1.
В
Рис 3.1 Алгоритм отримання початкового стану шифру RC4
Спочатку S заповнюється послідовними значеннями від 0 ... 255. Потім кожен черговий елемент S обмінюється місцями з елементом, номер якого визначається елементом ключа K, самим елементом і сумою номерів елементів, з якими відбувався про мен на попередніх ітераціях.
Значення лічильників i і з самого початку рівні 0. Суцільні стрілки означають передачу значень між елементами схеми (присвоювання), двосторонні стрілки - обмін значеннями, пунктирні стрілки - індексацію в масиві.
Алгоритм шифрування.
Алгоритм схематично зображено на рис. 3.2. br/>В
Рис 3.2 Алгоритм шифрування RC4
Черговий елемент псевдослучайной перестановки S всіх байтів обмінюється з іншим, номер якого дорівнює сумі елементів, вибрнних на попередніх кроках. В якості чергового байта видається значення третього елемента S, номер якого дорівнює сумі перших двох. Значення лічильника x спочатку дорівнює 0, але воно збільшується на 1 вже перед першою вибіркою S (x). Значення y спочатку дорівнює 0. Але потім вираховується як елемент ключа за номером x + попереднє значення y і вся сума за mod 256.
Деякі корисні властивості алгоритму RC4.
Перетворення чергового стану генератора (S, x, y) оборотн...