close

Вход

Забыли?

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

?

Отчёт AES (краткий)

код для вставкиСкачать
Программная реализация криптографического алгоритма AES
АНОТОВАНИЙ ЗВІТ
В роботі обґрунтована важливість і актуальність теми роботи,
викладені мета і завдання розробки. Сформульовані основні положення і
практичні результати, що досягнуті в роботі. Подані основні визначення та
методи шифрування, пор
i
вняно з i
ншими алгоритмами, що п
ретендували на
роль стандарту AES
.
В цій роботі розглянуто симетричний алгоритм блочного шифрування
під назвою Rjindael
, який був прийнятий в якості американского стандарту
шифрування за результатами проведеного конкурсу
. Rjindael
–
це швидкий і
компактний алгоритм з простою математичної структурою, завдяки чому він
є простим для аналізу при оцінці рівня захисту. Введемо наступні позначення
:
Nb
- число 32-бітних слів, що містяться у вхідному блоці
, Nb
= 4 ;
Nk
- число 32-бітних слів, що містяться в ключі шифрування
, Nk
= 4,6,8;
Nr
- кількість раундів шифрування, як функція від Nb
і Nk
, Nr
= 10,12,14.
Шифр оперує блоками даних розміром 128 б
i
т і довжиною ключа 128,
192 або 256 біт. Вхідні, проміжні і вихідні результати перетворень, які
виконуються в рамках алгоритму, називаються станами (
s
tate). Стан можна
представити у вигляді матриці 4 х Nb
, елементами якої є чотири рядки по Nb
байт в порядку
S
00
, S
10
, S
20
, S
30
, S
01
, S
11
, S
21
, S
31
, і т.д.
Ключ шифрування також як і масив State
представляється у вигляді
прямокутного масиву з чотирма рядками.
Рисунок 1 Архітектура «Квадрат»
Загальна ідея алгоритму
— перетворення вих
i
дного пов
i
домлення у
шифротекст за допомогою послідовного застосування до масиву State
ряду
трансформацій
:
-
SubBytes
(
заміна байтів) — побайтова нелінійна підстановка в s
tate
-блоках
з використанням фіксовано
ї
таблиці замін (
S
-
Box
) розмірністю 8x256
;
-
ShiftRows
(
зсув рядків) — циклічний зсув рядків масиву State вліво на
різну кількість байт
;
-
MixColumns
(
перемішування стовпців) — множення стовпців стану, що
розглядаються як многочлени над
GF
(2
8
);
-
AddRoundKey
(
складання з раундовим ключем) — порозрядне XOR
вмісту
s
tate
з поточним
.
Опис алгоритму:
а) на старті процесів шифрування і дешифрування масив вхідних даних
in
0
,
in
1
,...
,
in
15
перетворюється в масив State
за правилом s
[
r,c] = in[r + 4c], де
0 < r < 4 и
0 < c < Nb
. Наприкінці
дії
алгоритму
виконується
зворотне
перетворення
out[r + 4c] = s[r, c], где
0 < r < 4 и
0 < c < Nb — вихідні
дані
виходять
з
байтів
стану
у
тому
ж
порядку
.
б
) після
заповнення
масиву
State елементами
вхідних
даних
до
нього
застосовується
перетворення
AddRoundKey()
, далі
, в
залежності
від
величини
Nk
, масив
State
піддається
раундової
трансформації
10, 12 або
14 разів
,
причому
фінальний
раунд
є
кілька
укороченим
— в
ньому
відсутня
перетворення
MixColumns()
.
Вихідними даними описаної послідовності операцій є шіфротекст —
результат дії функції зашифрування AES. У специфікації алгоритму AES пропонуються два види реалізацій
функції розшифрування, що відрізняються один від одного послідовністю
програми перетворень зворотних перетворень функції зашифрування і
послідовністю планування ключів.
Якщо замість SubBytes
(
)
, ShiftRows
(
)
, MixColumns
(
)
и AddRoundKey
(
)
у
зворотній послідовності виконати інверсні їм перетворення, можна
побудувати функцію зворотного розшифрування. При цьому порядок
використання раундових ключів є зворотним по відношенню до того, який
використовується при зашифрування.
Змінивши певним чином послідовність планування ключа можна
побудувати ще один алгоритм — алгоритм прямого розшифрування. Таким
чином можна реалізувати більш ефективний спосіб розшифрування з тим же
порядком програми функцій, що і в алгоритмі зашифрування.
Раундов
i
ключі виходять з ключа шифрування за допомогою алгоритму
вироблення ключів. Він містить два компоненти: розширення ключа (Key
Expansion) та вибір раундового ключа (Round Key Selection).
У процесі шифрування використовується режим електронної кодової
книги (
E
СВ), також вiдомий, як метод простої замiни. У загальному випадку
його рекомендують як самий простий і швидкий режим роботи блочного
шифру.
У цьому режимі кожен блок відкритого тексту замінюється блоком
шифротексту. Так як один і той же блок відкритого тексту замінюється
одним і тим же блоком шифротексту, теоретично можливо створити кодову
книгу блоків відкритого тексту та відповідних шифротекст
i
в.
Можна сформулювати основні особливості алгоритму AES
:
–
нова архітектура «Квадрат», що забезпечує швидке розсіювання і
перемішування інформації, при цьому за один раунд перетворенню
піддається весь вхідний блок;
–
байт-орієнтована структура, зручна для реалізації на 8-розрядних
мікроконтролерах;
–
вс
i
раундов
i
перетворення операції в кінцевих полях, що допускають
ефективну апаратну і програмну реалізацію на різних платформах.
Реалізацію даної системи вирішено виконувати засобами об'єктно-
орієнтованого програмування.
Інструментом для створення програми була
обрана мова програмування Java. Програми на Java транслюються в байтовий
код, що виконується віртуальною машиною — програмою, яка обробляє
байтовий код і передає інструкції обладнанню як інтерпретатор, але з тією
відмінністю, що байтовий код, на відміну від тексту, обробляється значно
швидше.
Перевага подібного способу виконання програм полягає в повній
незалежності байтового коду від операційної системи і обладнання, що
дозволяє виконувати Java-програми на будь-якому пристрої, для якого існує
відповідна віртуальна машина.
Основними компонентами системи є:
–
підсистема шифрування за стандартом AES, що м
i
стить модулі для
реалізації зашифрування і розшифровки з підтримкою режиму електронної
кодової книги (
Electronic
codebook
, ECB)
;
–
підсистема візуалізації, яка розкриває суть алгоритму і принципів
перетворень, реалізованих у ньому, за допомогою демонстрації процесу
шифрування та відповідного графічного матеріалу
.
Система володіє всіма необхідними засобами для виконання операцій
блокового перетворення 128, 192, 256-бітних ключів та блоків даних
незалежно один від одного, і, відповідно, 10, 12 і 14-раундових перетворень.
Обмеження на розмір шіфруемих даних залежать тільки від кількості
адресованої віртуальної пам'яті доступної системі.
Основними інформаційними блоками в роботі програми є стани
відкритого та шифрованого тексту. На основі уведеного користувачем ключа
система виконує планування підключей і генерує ключові послідовності для
зашифрування і розшифрування.
Серед функцій системи варто відзначити:
–
наявність інструментарію візуалізації алгоритму AES, яка розкриває
суть алгоритму і принципів перетворень, реалізованих у ньому, за допомогою
демонстрації процесу шифрування та відповідного графічного матеріалу;
–
наявність журналу раундових перетворень, який містить докладний
звіт про трансформацію даних кожного шифруемого і дешифруемого блоку
на всіх етапах раундових перетворень.
Для початку роботи необхідно провести первинну підготовку даних,
яка містить: завантаження з файлу або ручного введення початкових даних
(відкритого тексту, ключа і шіфротекста) і вибір таких установок, як розмір
блоку даних і довжина ключа, залежно від поставленого завдання.
Всі результати, сформовані в ході роботи програми, можливо зберегти
у файл на постійному або знімному носії.
Реалізована обробка винятків, що перешкоджає виникненню помилок і
інформує користувача про їх виникнення.
Описи локальних змінних і атрибутів наведені у вигляді коментарів до
коду програми.
Залежно від подальшого вибору користувачевi програми можливі
наступні операції:
–
зашифрування та розшифрування
;
–
ведення докладного журналу раундових перетворень;
–
спостереження за проміжними результатами раундових перетворень.
Рисунок 2 Головне вiкно програми
Рисунок 3 Результати раундових перетворень ВИСНОВКИ
У рамках роботи була створена система, яка включає в себе засоби
повноцінної реалізації алгоритмів зашифрування та розшифрування за
стандартом AES
з використанням режиму ECB
, а також засоби візуалізації і
протоколювання раундових перетворень шифру з можливостями подальшого
детального ознайомлення з проміжними результатами.
Був сформульований перелік основних організаційних і практичних
завдань, що вимагають рішення в процесі досягнення мети даної роботи:
програмна реалізація алгоритму шифру AES
і режимів його використання;
проектування інтерфейсу користувача; розробка сценаріїв вживання системи.
Застосування об'єктно-орієнтованого програмування надало великий
набiр концепцiй та iдей, дозволяючих осмислити задачу, яка стоїть при
розробцi комп’ютерної програми, а потiм ще знайти шлях до iї рiшення
бiльш зрозумiлим, а отже i бiльш ефективним способом.
В роботі були використані елементи курсів:
а
) захист інформації
(теоретичн
i
основи криптографії
);
б
) вища математика (числові розрахунки);
в
) об'єктно-орієнтоване програмування (розробка програми мовою Java);
г
) технологія програмування і розробки програмних продуктів (методологія
та розробка алгоритму й програмної реалізації проекту).
Розроблена система може бути використана для практичного
вирішення завдань шифрування даних, а також застосована як навчальний
матеріал в курсах захисту i
нформац
i
ї
, що вивчають стандарт AES.
Серед можливих напрямк
i
в продовження розробки можна розглядати
розширення функціональності системи в частині засобів аналізу алгоритму,
що включають контроль і керування математичним апаратом раундових
перетворень, та його кріптостійкост
i
.
ПЕРЕЛ
I
К ПОСИЛАНЬ
1. Зенин О.С., Иванов М.А. Стандарт криптографической защиты – AES.
Конечные поля. М.: КУДИЦ-ОБРАЗ, 2002. 176 с. 2. Киви Берд. Конкурс на новый криптостандарт AES. – Системы
безопасности связи и телекоммуникаций, 1999, № 27-28. 3. Столингс, В. Криптография и защита сетей: принципы и практика. М.:
Издательский дом «Вильямс», 2001. 672 с. 4. Шнайер, Б. Прикладная криптография. Протоколы, алгоритмы, исходные
тексты на языке C. М.: Издательство ТРИУМФ, 2002. 816 с.
Автор
Chupa
Chupa14   документов Отправить письмо
Документ
Категория
Информационные технологии
Просмотров
535
Размер файла
210 Кб
Теги
криптография, шифрование, AES
1/--страниц
Пожаловаться на содержимое документа