Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прикла д_КР.doc
Скачиваний:
12
Добавлен:
25.11.2018
Размер:
1.58 Mб
Скачать
  1. Розробка криптопротоколу

    1. Узагальнений опис криптопротоколу

Розглянемо протокол односторонньої автентифікації з мітками часу та боковим шифром RC6.

Для представлення протоколу введемо наступні позначення:

А, В – суб’єкти, що встановлюють зв’язок;

, – мітки часу сторін А та В відповідно;

– функція шифрування.

Для роботи протоколу необхідне виконання умови, згідно до яких ідентифікатори сторін А і В відомі обом учасникам криптопротоколу.

Ініціатором встановлення зв’язку будемо вважати суб’єкта А. Процес автентифікації починається з формування стороною А своєї мітки часу .

Суб’єкт А виконує зашифрування мітки часу і ідентифікатора сторони В блоковим шифром та надсилає стороні В наступне повідомлення:

A→B (, IВ).

Суб’єкт В розшифровує отримане повідомлення та порівнює отримані значення мітки часу сторони А і власної мітки часу та власного ідентифікатора з його реальним значенням. На підставі цього порівняння суб’єкт може зробити висновки щодо результатів проведення автентифікації.

Отже процес автентифікації потребує двох кроків, а саме зашифрування та розшифрування даних.

    1. Алгоритм блокового шифрування rc6

Алгоритм симетричного блокового шифрування RC6 - це параметризований алгоритм, побудований згідно з модифікованою схемою Фей стеля [2]. Коректно його позначають як RC6 – //, де - довжина півблока в бітах; - кількість раундів; - довжина ключа шифрування в байтах. Розглянемо варіант алгоритму для . В описі алгоритму використані такі позначення:

+ – додавання за модулем ;

– віднімання за модулем ;

– побітове додавання за модулем та ;

– множення за модулем ;

– циклічний зсув ліворуч – бітового на кількість бітів, задану молодшими бітами .

      1. Алгоритм формування підключів

Якщо довжина -байтового ключа шифрування не ділиться на без остачі, то ключ шифрування доповнюють нулями так, щоб ця умова виконувалася. Ключ шифрування записують у масив 32-бітових слів . Для раундів формують -бітових підключів, які записують у масив . Також використовують дві константи: та .

На вхід подається -байтовий ключ, записаний у масиві 32-бітових слів , з кількість раундів .

На виході отримуємо масив із 32-бітових раундових підключів . Алгоритм формування підключів складається з наступних кроків:

  1. ;

  2. для ;

  3. ;

  4. для

  1. ;

  1. вихід.

В алгоритмі RC6 використовують попередньо обчислені раундові підключі й один блок відкритого тексту, який записують у чотири 32-бітові регістри А, В, С, D. Блок шифротексту записують на те саме місце.

      1. Алгоритм зашифрування даних

На вхід подається відкритий тест у чотирьох 32-бітових регістрах А, В, С, D, кількість раундів , масив із 32-бітових підключів .

На виході отримуємо шифротекст у чотирьох 32-бітових регістрах А, В, С, D. Алгоритм зашифрування даних складається з наступних кроків (рис. 1):

  1. ;

  2. ;

  3. для

  1. ;

  1. ;

  2. ;

  3. вихід.

Рисунок 1 – Алгоритм зашифрування даних RC6

    1. Розробка детального алгоритму реалізації криптопротоколу

Розглянемо детально реалізацію протоколу односторонньої автентифікації з використанням мітки часу і блокового шифру RC6. Для цього необхідно мати на увазі, що при отриманні одним суб’єктом зашифрованого повідомлення, він має виконати операцію розшифрування повідомлення та після цього виконати необхідні перевірки.

Суб’єкт A формує власну мітку часу . Суб’єкт A, використовуючи власну мітку часу, а також ідентифікатор сторони B створює відкрите повідомлення M. Після цього, використовуючи алгоритм блокового шифрування RC6 та спільний секретний ключ k він зашифровує повідомлення M та отримує закрите повідомлення C, яке він відсилає суб’єкту B:

A М=(tА, B);

C=(М);

A→B C.

Суб’єкт В після отримання цього повідомлення виконує операцію розшифрування, використовуючи для цього той самий спільний секретний ключ k. Після розшифрування суб’єкт В отримує два 64-бітних числа, одне з яких має бути його власним ідентифікатором, а інше – міткою часу сторони А.

B М=(, IВ)= (C).

Отримавши ці дані суб’єкт В розраховує різницю між своєю міткою часу і міткою часу сторони А.

B .

Якщо не більше часу для зашифрування, передачі та розшифрування, то суб’єкт В формує позитивний результат виконання процесу автентифікації. У протилежному випадку автентифікація вважається завершеною помилково.

Отже при реалізації криптопротоколу потрібно виконати одне зашифрування та одне розшифрування даних.