- •Курсова робота
- •Календарний план
- •І. Опис предметної галузі
- •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 Висновок
- •Висновки
- •Література
- •Додаток а
- •Додаток б
- •Умови запуску програми
- •Робота з програмою
Перетворення SubBytes
Перетворення SubBytes полягає в заміні кожного байта {xy} форми (де x і y позначають шістнадцяткові цифри) на інший відповідно до таблиці 2.3.
Таблиця 2.3 – Таблиця підстановок
Наприклад, байт {fe} заміниться на {bb}.
Перетворення ShiftRows
Перетворення ShiftRows полягає в циклічному зсуві вліво рядків форми. Перетворення схематично представлено на рисунку 2.1. Перший рядок залишається незмінним. У другій відбувається здвиг на 1 байт, тобто перший байт переноситься в кінець. У третій – здвиг на 2 байта, у четвертій – на 3.
Рисунок 2.1 – Перетворення ShiftRows
Перетворення MixColumns
Перетворення MixColumns полягає в множенні квадратної матриці 4-го порядку на кожен стовпчик форми:
Множення здійснюється в полі Галуа GF (28).
Над кожним стовпцем операція проводиться окремо, як показано на риcунку 2.2.
Рисунок 2.2 – Перетворення MixColumns
Перетворення AddRoundKey
В перетворенні AddRoundKey 32-бітові слова раундового ключа додаються до стовпців форми за допомогою побітової операції XOR:
Тут wi- це стовпці ключа.
Над кожним стовпцем операція проводиться окремо, як показано на рисунку 2.3.
Рисунок 2.3 – Перетворення AddRoundKey
Процедура розширення ключа ExpandKey
В алгоритмі AES генеруються раундові ключі на основі ключа шифрування з допомогою процедури ExpandKey. Процедура ExpandKey створює Nb * (Nr + 1) слів: алгоритму потрібно початковий ключ розміром Nb, плюс кожен з Nr раундів вимагає ключ з Nb слів. Нижче наведено псевдокод процедури ExpandKey:
// Процедура вираховує ключі раундів
// key — ключ
// out — результат
// Nk — кількість слів в ключі
ExpandKey(byte key[4*Nk], word out[Nb*(Nr+1)], int Nk)
begin
i = 0
while (i < Nk)
out[i] = word(key[4*i], key[4*i+1], key[4*i+2], key[4*i+3])
i = i + 1
end while
i = Nk
while (i < Nb * (Nr+1))
word temp = out[i-1]
if (i mod Nk = 0)
temp = SubWord(RotWord(temp)) xor Rcon(i/Nk)
else if ((Nk > 6) and (i mod Nk == 4))
temp = SubWord(temp)
end if
out[i] = out[i-Nk] xor temp
i = i + 1
end while
end
Тут використані наступні функції:
SubWordздійснює заміну кожного байта в слові відповідно до таблиці підстановки, представленої в таблиці 2.3.
RotWordздійснює циклічний зсув байтів у слові вліво, як показано на рисунку 2.4.
Рисунок 2.4 – Процедура RotWord
Rcon (i) формує слово [02i-1, 00, 00, 00].
Дешифрування
При дешифруванні всі перетворення проводяться в зворотному порядку. Використовуються такі зворотні перетворення замість відповідних шифрувальних:
InvSubBytes - Підстановка байтів за допомогою зворотної таблиці підстановки.
InvShiftRows - Циклічний зсув рядків у формі на різні величини.
InvMixColumns - Змішування даних усередині кожного стовпця форми.
Процедури ExpandKeyіAddRoundKeyзалишаються незмінними. Ключі раунду використовуються в зворотному порядку.
Перетворення InvShiftRows
Це перетворення протилежне перетворенню ShiftRows. Перший рядок форми залишається незмінною. Другий рядок циклічно зсувається вправо на 1 байт. Третя – на 2, четверта – на 3.
Схематично перетворення показано на рисунку 2.5.
Рисунок 2.5 – Процедура InvShiftRows
Перетворення InvSubBytes
Це перетворення протилежне перетворенню SubBytes. Підстановка байтів відбувається аналогічно за допомогою зворотної таблиці підстановок, представленої в таблиці 2.4.
Таблиця 2.4 – Зворотна таблиця підстановок
Перетворення InvMixColumns
Це перетворення протилежне перетворенню MixColumns. InvMixColumns перетворює в формі кожен стовпець окремо. Перетворення відбувається за такою формулою:
Тут множення також проводиться в полі Галуа GF (28).
2.4 Висновок
Розглядаючи даний розділ, серед методів захисту інформації, яка зберігається на комп’ютері у вигляді файлів з важливою текстовою інформацією, найдоцільніше використовувати криптологію, а саме її розділи криптографію та криптоаналіз. Цілі цих напрямів прямо протилежні. Дослідженням проблеми захисту інформації шляхом пошуку і дослідженням математичних методів для перетворення інформації займається кpиптографія (kryptos - таємний, logos - наука). Як розшифрувати інформацію, не знаючи ключа, вивчає криптоаналіз. В даній курсовій роботі використовується перший підхід, так як розробляється криптографічний алгоритм.
В результаті дослідження різних алгоритмів шифрування, та розгляду їх програмних реалізацій було вибрано алгоритм AES, тому що він широко поширений серед програм, які шифрують конфіденційну інформацію. Він також використовується,як державний стандартний алгоритм кодування в США. В результаті перегляду програмних засобів, в яких реалізований алгоритм, було детально описано структуру цього алгоритму.