
- •Індивідуальне завдання
- •Анотація
- •Розробка криптопротоколу
- •Узагальнений опис криптопротоколу
- •Алгоритм блокового шифрування rc6
- •Алгоритм формування підключів
- •Алгоритм зашифрування даних
- •Розробка детального алгоритму реалізації криптопротоколу
- •Аналіз криптопротоколу
- •Постулати і правила ban-логіки
- •Аналіз криптопротоколу з використанням ban-логіки
- •РoЗробка структури спеціалізованого процесора
- •Визначення набору функцій, що реалізує спеціалізований процесор
- •Розробка структурної схеми спеціалізованого процесора
- •Визначення технічних характеристик спеціалізованого процесора
- •Розробка програми
- •Розробка структури програми
- •Результати тестування програми
- •Висновки
- •Список використаних джерел
- •Функція зашифрування
- •Функція розшифрування
- •Функція зняття мітки часу
-
Розробка криптопротоколу
-
Узагальнений опис криптопротоколу
-
Розглянемо протокол односторонньої автентифікації з мітками часу та боковим шифром RC6.
Для представлення протоколу введемо наступні позначення:
А, В – суб’єкти, що встановлюють зв’язок;
,
– мітки часу сторін А та В відповідно;
– функція шифрування.
Для роботи протоколу необхідне виконання умови, згідно до яких ідентифікатори сторін А і В відомі обом учасникам криптопротоколу.
Ініціатором
встановлення зв’язку будемо вважати
суб’єкта А. Процес автентифікації
починається з формування стороною А
своєї мітки часу
.
Суб’єкт А виконує
зашифрування мітки часу
і ідентифікатора сторони В блоковим
шифром та надсилає стороні В наступне
повідомлення:
A→B
(
,
IВ).
Суб’єкт В розшифровує
отримане повідомлення та порівнює
отримані значення мітки часу сторони
А
і власної мітки часу
та власного ідентифікатора з його
реальним значенням. На підставі цього
порівняння суб’єкт може зробити висновки
щодо результатів проведення автентифікації.
Отже процес автентифікації потребує двох кроків, а саме зашифрування та розшифрування даних.
-
Алгоритм блокового шифрування rc6
Алгоритм симетричного
блокового шифрування RC6
- це параметризований алгоритм,
побудований згідно з модифікованою
схемою Фей стеля [2].
Коректно його позначають як RC6
–
/
/
,
де
- довжина півблока в бітах;
- кількість раундів;
- довжина ключа шифрування в байтах.
Розглянемо варіант алгоритму для
. В описі алгоритму використані такі
позначення:
+
– додавання за модулем
;
–
– віднімання за
модулем
;
– побітове
додавання за модулем
та
;
– множення за
модулем
;
– циклічний зсув
ліворуч – бітового
на кількість бітів, задану
молодшими бітами
.
-
Алгоритм формування підключів
Якщо довжина
-байтового
ключа шифрування не ділиться на
без остачі, то ключ шифрування доповнюють
нулями так, щоб ця умова виконувалася.
Ключ шифрування записують у масив
32-бітових слів
.
Для
раундів формують
-бітових
підключів, які записують у масив
.
Також використовують дві константи:
та
.
На вхід подається
-байтовий
ключ, записаний у масиві 32-бітових слів
,
з кількість раундів
.
На виході отримуємо
масив із 32-бітових раундових підключів
.
Алгоритм формування підключів складається
з наступних кроків:
-
;
-
для
;
-
;
-
для
-
-
-
-
;
-
вихід.
В алгоритмі RC6 використовують попередньо обчислені раундові підключі й один блок відкритого тексту, який записують у чотири 32-бітові регістри А, В, С, D. Блок шифротексту записують на те саме місце.
-
Алгоритм зашифрування даних
На вхід подається
відкритий тест у чотирьох 32-бітових
регістрах А, В, С, D, кількість
раундів
,
масив із 32-бітових підключів
.
На виході отримуємо шифротекст у чотирьох 32-бітових регістрах А, В, С, D. Алгоритм зашифрування даних складається з наступних кроків (рис. 1):
-
;
-
;
-
для
-
-
-
-
-
;
-
;
-
;
-
вихід.
Рисунок
1 – Алгоритм зашифрування даних RC6
-
Розробка детального алгоритму реалізації криптопротоколу
Розглянемо детально реалізацію протоколу односторонньої автентифікації з використанням мітки часу і блокового шифру RC6. Для цього необхідно мати на увазі, що при отриманні одним суб’єктом зашифрованого повідомлення, він має виконати операцію розшифрування повідомлення та після цього виконати необхідні перевірки.
Суб’єкт A
формує власну мітку часу
.
Суб’єкт A, використовуючи
власну мітку часу, а також ідентифікатор
сторони B створює відкрите
повідомлення M. Після
цього, використовуючи алгоритм блокового
шифрування RC6 та спільний
секретний ключ k він зашифровує
повідомлення M та отримує
закрите повідомлення C,
яке він відсилає суб’єкту B:
A М=(tА, B);
C=(М);
A→B C.
Суб’єкт В після отримання цього повідомлення виконує операцію розшифрування, використовуючи для цього той самий спільний секретний ключ k. Після розшифрування суб’єкт В отримує два 64-бітних числа, одне з яких має бути його власним ідентифікатором, а інше – міткою часу сторони А.
B М=(,
IВ)=
(C).
Отримавши ці дані суб’єкт В розраховує різницю між своєю міткою часу і міткою часу сторони А.
B .
Якщо
не
більше часу для зашифрування, передачі
та розшифрування, то суб’єкт В формує
позитивний результат виконання процесу
автентифікації. У протилежному випадку
автентифікація вважається завершеною
помилково.
Отже при реалізації криптопротоколу потрібно виконати одне зашифрування та одне розшифрування даних.