- •Курсова робота
- •Календарний план
- •І. Опис предметної галузі
- •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 Висновок
- •Висновки
- •Література
- •Додаток а
- •Додаток б
- •Умови запуску програми
- •Робота з програмою
Допоміжні процедури
AddRoundKey ()трансформація при шифруванні і зворотному шифруванні, при якій RoundKey XOR'иться з State. Довжина RoundKey дорівнює розміру State (ті, якщо Nb = 4, то довжина RoundKey дорівнює 128 біт або 16 байт).
InvMixColumns ()трансформація при розшифруванні, яка є зворотною по відношенню до MixColumns ().
InvShiftRows ()трансформація при розшифруванні, яка є зворотною по відношенню до ShiftRows ().
InvSubBytes ()трансформація при розшифруванні, яка є зворотною по відношенню до SubBytes ().
MixColumns ()трансформація при шифруванні, яка бере всі стовпці State і змішує їх дані (незалежно один від одного), щоб отримати нові стовпці.
RotWord ()функція, що використовується в процедурі Key Expansion, яка бере 4-х байтне слово і проводить над ним циклічну перестановку.
ShiftRows ()трансформації при шифруванні, які обробляють State, циклічно зміщуючи останні три рядки State на різні величини.
SubBytes ()трансформації при шифруванні, які обробляють State, використовуючи нелінійну таблицю заміщення байтів (S-box), застосовуючи її незалежно до кожного байту State.
SubWord ()функція, яка використовується в процедурі Key Expansion, яка бере на вході чотирибайтне слово і застосовуючи S-box до кожного з чотирьох байтів видає вихідне слово.
Шифрування
AES є стандартом, заснованим на алгоритмі Rijndael. Для AES довжина input (блоку вхідних даних) і State (стану) постійна і дорівнює 128 біт, а довжина шифроключа K складає 128, 192, або 256 біт. При цьому, вихідний алгоритм Rijndael допускає довжину ключа і розмір блоку від 128 до 256 біт з кроком в 32 біта. Для позначення вибраних довжин input, State і Cipher Key в байтах використовується нотація Nb = 4 для input і State, Nk = 4, 6, 8 для Cipher Key відповідно для різних довжин ключів.
На початку шифрування input копіюється в масив State за правилом s [r, c] = in [r + 4c], для і. Після цього до State застосовується процедура AddRoundKey () і потім State проходить через процедуру трансформації (раунд) 10, 12, або 14 разів (в залежності від довжини ключа), при цьому треба врахувати, що останній раунд дещо відрізняється від попередніх. У підсумку, після завершення останнього раунду трансформації, State копіюється в output за правилом out [r + 4c] = s [r, c], дляі.
Окремі трансформації SubBytes (), ShiftRows (), MixColumns (), і AddRoundKey () - обробляють State. Масив w [] - містить key schedule.
Рисунок 3.1 – Псевдокод для Cipher
SubBytes()
У процедурі SubBytes, кожен байт в State замінюється відповідним елементом у фіксованій 8-бітній таблиці пошуку S; bij = S (aij).
Рисунок 3.2 – Схема SubBytes()
Процедура SubBytes () обробляє кожен байт стану, незалежно виробляючи нелінійну заміну байтів використовуючи таблицю замін (S-box). Така операція забезпечує нелінійність алгоритму шифрування. Побудова S-box складається з двох кроків. По-перше, проводиться взяття зворотного числа в полі Галуа. По-друге, до кожного байту b, з яких складається S-box, застосовується наступна операція:
де, і де bi є i-ий біт b, а ci - i-ий біт константи c = 6316 = 9910 = 011000112. Таким чином, забезпечується захист від атак, заснованих на простих алгебраїчних властивостях.
Рисунок 3.3 – 8-бітна таблиця пошуку S