Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Олексюк_2.doc
Скачиваний:
34
Добавлен:
16.05.2015
Размер:
3.57 Mб
Скачать

Міністерство освіти і науки України

Вінницький національний технічний університет

Інститут інформаційних технологій та комп’ютерної інженерії

Кафедра захисту інформації

Cпеціалізовані засоби для реалізації протоколу двОсторонньої автентифікації з використанням випадкових чисел та односпрямованої хеш-функції sha

Пояснювальна записка

до курсового проекту з дисципліни

”Криптографія та криптоаналіз”

за спеціальністю

6.170101 – “ Безпека інформаційних і комунікаційних систем ”

08-20.Кгка.010.14.116пз

Керівник курсового проекту

асистент каф. ЗІ _______ Черняхович К.В.

Розробив студент гр. 1БС-08

_____________ Олексюк А.О.

Курсову роботу захищено

з оцінкою ______________________

____________ __________ 2010 р.

(Підпис керівника) (Дата)

__________________ _______________________

(Підпис асистента)

Вінниця 2010

АНОТАЦІЯ

УДК 681.3

Олексюк А.О. “Спеціалізовані засоби для реалізації протоколу двосторонньої автентифікації з використанням випадкових чисел та хеш функції SHA”. Курсовий проект – Вінниця: ВНТУ, 2010 – 46с.

На українській мові. Рисунків - 13, таблиць - 1, бібліографій - 5.

В даному курсовому проекті розроблено структуру спеціалізованого засобу з використанням випадкових чисел і хеш функції SHAта наведено алгоритм його роботи. Проведено аналіз криптопротоколу з використанням BAN-логіки та визначені технічні характеристики спеціалізованого засобу. Розроблено структурну та функціональну схему спеціалізованого засобу. Програма розроблена для моделювання роботи спеціалізованого засобу для

протоколу двосторонньої автентифікації.

ЗМIСТ

1.2 Аналіз сучасного стану питання та обґрунтування теми 7

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

3.2 Алгоритм хеш-функції SHA 10

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

3) АНАЛІЗ КРИПТОПРОТОКОЛУ 16

Постулати і правила BAN-логіки 16

Аналіз криптопротоколу з використанням BAN-логіки 16

4) РОЗРОБКА СТРУКТУРИ СПЕЦІАЛІЗОВАНОГО ЗАСОБУ 18

5) ПРОГРАМНА РЕАЛІЗАЦІЯ ЗАДАЧІ КУРСОВОГО ПРОЕКТУ 23

5 РОЗРОБКА РЕКОМЕНДАЦІЙ ПО РОБОТІ З ПРОГРАМОЮ 30

5.1 Інструкція з технічного обслуговування 30

5.2 Інструкція адміністратора 30

5.3 Інструкція програміста 31

5.4 Інструкція оператора 31

ВИСНОВКИ 33

ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ 34

Документація загальна 35

Розроблена по новому 35

R. А4 35

Додаток Б 6

Лістинг програми Authentication_SHA.exe 6

ВСТУП

Сьогодні, в звязку з широким використання комп'ютерних мереж для обміну інформацією, особлива увага приділяється захисту інформації,що передається та обробляється в компютерних системах і мережах.

Серед основних засобів захисту особливе місце займає використання криптографічних методів, які поділяються на такі напрями:

- криптографія, що займається пошуком і дослідженням математичних методів перетворення інформації;

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

Основні напрямки використання криптографічних методів - передача конфіденційної інформації з каналів зв'язку, встановлення автентичності переданих повідомлень, зберігання інформації на носіях у зашифрованому вигляді.

Особливу роль для методів аутентифікації відіграють хеш-функції. Тому, сьогодні дуже актуальним є питання вивчення, дослідження та вдосконалення існуючих методів аутентифікації.

Хеш функція — функція, що перетворює вхідні дані будь-якого (як правило, великого) розміру в дані фіксованого розміру.

Криптографічна хеш-функція повинна забезпечувати:

  • стійкість до колізій (два різні набори даних повинні мати різні результати перетворення);

  • необоротність (неможливість обчислити вхідні дані за результатом перетворення).

Хеш-функція SHA видає 160-бітове хеш-значення. Головною особливістю є введення розширювального перетворення і додавання виходу попереднього кроку в наступний з метою отримання більш швидкого лавинного ефекту.

Відомості про успішні криптографічні злами SHA відсутні. Так як ця однопрямлена хеш-функція видає 160-хеш-значення, вона стійкіша до зламу грубою силою (включаючи злам методом дня народження), ніж 128-бітові хеш-функції.

1 РОЗРОБКА КРИПТОПРОТОКОЛУ

    1. Аналіз сучасного стану питання та обґрунтування теми

Криптографія – наука про математичні методи забезпечення конфіденційності (неможливості прочитати інформації стороннім) і автентичності (цілісності, підтвердження та неможливості відмови від авторства) інформації. Криптологію прийнято підрозділяти на криптографію та криптоаналіз. Якщо криптограф займається питанням захисту інформації за допомогою криптографічних методів, то криптоаналітик, навпаки, намагається подолати цей захист [1].

Початково криптографія вивчала методи шифрування інформації - оберненого перетворення відкритого (вихідного) тексту на основі секретного алгоритму або ключа в шифрований текст (шифротекст) .

Традиційна криптографія формує розділ симетричних криптосистем, в яких шифрування та розшифрування здійснюється за допомогою одного і того ж ключа. Окрім цього розділу сучасна криптографія включає в себе асиметричні криптосистеми, системи електронно-цифрового підпису, хеш-функції, управління ключами, отримання засекреченої інформації, квантову криптографію[2].

Асиметричні системи розроблені таким чином, що ключі дешифрування не може бути розрахований по ключу шифрування. Особливість цих систем полягає в тому, що ключ шифрування може бути відкритим будь-хто може використовувати ключ для шифрування, але розшифрувати повідомлення можна лише за допомогою ключа дешифрування. В таких системах ключ шифрування називається відкритим ключем, а ключ дешифрування – закритим[3].

До асиметричних алгоритмів належать асиметричні DSA,RSAтаElGamal(Ель-Гамаль). Серед симетричних алгоритмів виділяють найбільш відомі : DES, AES, ГОСТ 28147-89, Camellia, Twofish, Blowfish, IDEA, RC4 [4].

Протоколи автентифікації базуються саме на основі вище наведених криптосистем. Існують такі протоколи автентифікації:

    • протоколи із симетричними алгоритмами шифрування;

    • протоколи засновані на використанні односпрямованих ключових функцій;

    • протоколи автентифікації з використанням додаткових пристроїв;

    • протоколи автентифікації з використанням асиметричних алгоритмів шифрування;

    • протоколи автентифікації засновані на основі цифрового підпису.

  1. Поняття хеш-функції

Хеш-функція – функція яка перетворює початкову послідовність бітів в послідовність бітів фіксованої довжини. Криптографічні хеш-функції використовуються за звичай для генерації дайджесту повідомлення при створенні цифрового підпису. Хеш-функції відображають повідомлення в хеш – значення фіксованого розміру, таким чином, що вся множина можливих повідомлень розподіляється рівномірно по множині хеш – значень.

При цьому криптографічна функція виконує це таким чином, що практично неможливо підкорегувати документ до заданого значення хеш – значення. Криптографічні хеш – функції зазвичай генерують значення довжиною 128 біт і більше. Це число значно більше кількості повідомлень які існують в світі. Щоб хеш – функцію використовувати для створення ЦП вона повинна бути безпечною. Хеш – функція називається безпечною якщо відповідає наступним вимогам:

  1. функція є односторонньою. Іншими словами, функція створює контрольну суму з інформації з відсутністю можливості відновлення інформації по контрольній сумі;

  2. забезпечує велику складність сконструювати два фрагмента інформації з однаковою контрольною сумою при виконанні функції.

Найбільш відомими криптографічними хеш-функціями є SHA і MD5.

Криптоаналіз хеш – функції направлений на дослідження уразливості до різних видів атаки. Основними з них є:

  1. знаходження колізій – ситуація, коли двом різним повідомленням відповідає одне хеш – значення;

  2. знаходження прообразу вихідного повідомлення по його хеш – значенню.

Від стійкості хеш – функції перед знаходженням колізій залежить безпека цифрового підпису. Для знаходження колізії потрібно виконати операцій, якщо користуватися парадоксом “Днів народження ” [5].

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

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

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

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

, – ідентифікатор сторін А та В;

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

–хеш-функція SHA;

, – значення хеш-функції для сторін А та В відповідно;

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

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

A←B:

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

А→В:

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

A←B:

Суб’єкт А порівнює з власнознайденим та впевнюється в тому, щообмінюється даними з суб’єктом В.

    1. Алгоритм хеш-функції SHA

Алгоритм отримує на вході повідомлення максимальної довжини біт і на виході створює дайджест повідомлення довжиною160 біт(рис. 1.1).

  1. Логіка виконання SHA

Алгоритм складається з наступних кроків [5]:

Перший крок.Додавання бракуючих бітів.

Повідомлення додається так, щоб його довжина була кратна 448 по модулю 512. Додавання здійснюється завжди, навіть якщо повідомлення вже має потрібну довжину. Таким чином, число бітів, що додаються, знаходиться в діапазоні від 1 до 512. Додавання складається з одиниці, за якою слідує необхідна кількість нулів.

Другий крок. Додавання довжини. До повідомлення додається блок з 64 бітів. Цей блок трактується як беззнакове 64-бітове ціле і містить довжину вхідного повідомлення до додавання.

Результатом перших двох кроків є повідомлення, довжина якого кратна 512 бітам. Розширене повідомлення може бути представлене як послідовність 512-бітових блоків , . . ., , так що загальна довжина розширеного повідомлення є L помножена на 512 біт. Таким чином, результат кратний шістнадцяти 32-бітовим словам.

Третій крок. Ініціалізація SHA буфер.

Використовується 160-бітовий буфер для зберігання проміжних і остаточних результатів хэш-функції. Буфер може бути представлений як п'ять 32-бітових регістрів A, B, C, D і E. Ці регістри ініціалізувалися наступними шістнадцятиричними числами:

  1. A = 67452301;

  2. B = EFCDAB89;

  3. C = 98BADCFE;

  4. D = 10325476;

  5. E = C3D2E1F0.

Четвертий крок. Обробка повідомлення в 512-бітових блоках.

Основою алгоритму є модуль, що складається з 80 циклічних обробок, позначений як . Всі80 циклічних обробок мають однакову структуру (рис. 1.2).

  1. Обробка чергового 512-бітового блоку

Кожен цикл отримує на вході поточний 512-бітовий оброблюваний блок і 160-бітове значення буфера ABCDE, і змінює вміст цього буфера. У кожному циклі використовується додаткова константа , яка приймає лише чотири різних значения:

  1. 0 ≤ t ≤ 19 = 5A827999 (ціла частина числа [× ]);

  2. 20 ≤ t ≤ 39 = 6ED9EBA1 (ціла частина числа [× ]);

  3. 40 ≤ t ≤ 59 = 8F1BBCDC (ціла частина числа [× ]);

  4. 60 ≤ t ≤ 79 = CA62C1D6 (ціла частина числа [× ]).

Для здобуття вихід 80-го циклу складається з значенням . Складання по модулю виконується незалежно для кожного з п'яти слів в буфері з кожним з відповідних слів в . Кожен цикл можна представити у вигляді (рис 1.3):

  1. Логіка виконання окремого циклу

A, B, C, D, E ( (A) + (B, C, D) + E + + ), A, (B), C, D

де:

  1. A, B, C, D, E - п'ять слів з буфера;

  2. t - номер циклу, 0 ≤ t ≤ 79;

  3. - елементарна логічна функція;

  4. - циклічне ліве зрушення 32-бітового аргументу на Sбітів;

  5. - 32-бітове слово, отримане з поточного вхідного 512-бітового блоку;

  6. - додаткова константа;

  7. + - складання по модулю .

Кожна елементарна функція отримує на вході три 32-бітових слова і створює на виході одне 32-бітове слово. Елементарна функція виконує набір побітних логічних операцій, тобто n-ий біт виходу є функцією від n-их бітів трьох входів (таблиця 1.1).

Таблиця 1.1 – Таблиця функцій

Номер цикла

(B, C, D)

(0 ≤ t ≤ 19)

(B ^ C) (B ^ D)

(20 ≤ t ≤ 39)

(40 ≤ t ≤ 59)

(B ^ C) (B ^ D) (C ^ D)

(60 ≤ t ≤ 79)

Насправді використовуються лише три різні функції. Для 0 ≤ t ≤ 19 функція є умовною: if B then C else D. Для 20 ≤ t ≤ 39 і 60 ≤ t ≤ 79 функція створює біт парності. Для 40 ≤ t ≤ 59 функція є достеменною, якщо два або три аргументи достеменні. 32-бітові слова виходять з чергового 512-бітового блоку повідомлення наступним чином (рис 1.4).

  1. Набуття вхідних значень кожного циклу з чергового блоку

Перші 16 значень беруться безпосередньо з 16 слів поточного блоку. Значення, що залишилися, визначаються наступним чином [4]:

В перших 16 циклах вхід складається з 32-бітового слова даного блоку. Для тих, що залишилися 64 циклів вхід складається з XOR декількох слів з блоку повідомлення.

П’ятий крок. Вихід.

Після обробки всіх 512-бітових блоків виходом L-ї стадії є 160-бітовий дайджест повідомлення.

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

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

A←B:

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

A→B:=, (,,)

Суб’єкт В отримавши знаходить (,,) та (,,). Якщо , яке відправив суб’єкт А збігається з (,,), значення якого знайшов суб’єкт В – це означає, що суб’єкт В впевнений в тому, що обмінюється з суб’єктом А. Далі суб’єкт В відправляє суб’єкту А повідомлення .

A←B:= (,,)

Суб’єкт А отримавши знаходить власне значення (,,) та порівнює з , яке прислав суб’єкт В, аналогічно, якщо значення однакові – суб’єкт А впевнений, що обмінюється з суб’єктом В.

Отже, таким чином було розроблено детальний алгоритм реалізації криптопротоколу. Тепер потрібно проаналізувати криптопротокол за допомогою постулатів і правил Ban-логіки.

Рисунок 1.5 – Схема функціонування криптопротоколу

  1. АНАЛІЗ КРИПТОПРОТОКОЛУ

    1. Постулати і правила BAN-логіки

BAN-логіка використовується для аналізу властивостей “знання” і “довіри” роботи криптопротоколу в цілому, або його окремих етапів.

Постулати, що застосовуються в BAN-логіці:

  1. P believes X– Р вірить у те, що Х – істинно;

  2. P sees X– хто-небудь послав Р повідомлення, що містить Х і Р може прочитати і повторити Х (можливо після розшифрування);

  3. P said X– Р коли-набудь посилав повідомлення, що містить Х і при цьому Р довіряв Х, в момент його передавання;

  4. P control X– Р має права на Х;

  5. #X– Х не було використано в попередніх кроках протоколу;

  6. –P i Q розділяють між собою ключ К і відповідно P i Q довіряють один одному;

  7. –Р має відкритий ключ К, що відповідає секретному ключу К-1, який ніколи не буде розкритий іншими учасниками криптопротоколу;

  8. –секретна формула Х відома тільки P i Q і вони можуть використовувати її для ідентифікації один одного;

  9. {X}K from P – формула Х зашифрована на ключі К, що належить Р.

Правила BAN-логіки:

  1. –Р вірить, що Q і Р розділяють між собою секретний ключ К, і Р бачить повідомлення Х, зашифроване на ключі К, тому Р вірить, що Q послав Х.

  2. –Р вірить, що Q має право на Х і Р вірить Q, щоQвірить Х , тому Р довіряє Х.

  3. –Р вірить у те, що Х до цього не використовувалося і що Q послав Х, тому Р може думати, що Qдовіряє Х.

    1. Аналіз криптопротоколу з використанням BAN-логіки

Виконаємо аналіз двосторонньої автентифікації з використанням випадкових чисел та хеш - функції SHA.

Представимо протокол в ідеалізованій формі з використанням постулатів і правил BAN-логіки (див. пункт 2.1).

Отже маємо: .

Введемо початкове значення: .

Складемо ідеалізовану форму

- стороні надіслано повідомлення, що містить випадкове число В.

–Сторона А вірить у те, що В довіряє числу, і також довіряє числу.

–стороні надіслано повідомлення, що містить і В може перевірити його, знайшовши хеш-значення Х, У, А.

Залишається застосувати логічні постулати до початкових значень і послідовності тверджень для виявлення довіри частинам протоколу.

.

За результатами аналізу можна зробити висновок, що протокол є стійким та дозволяє виявити несанкціоноване втручання сторонньої особи.

  1. РОЗРОБКА СТРУКТУРИ СПЕЦІАЛІЗОВАНОГО ЗАСОБУ

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

  1. Розробка операційного автомату спеціалізованого засобу

Складовою частиною спеціалізованого засобу, що реалізує криптопротокол, є операційний автомат. Математично операційний автомат описується таким набором множин:

OA={DI,DO,S,Y,X},

де:

DI– множина вхідних даних;

DO– множина вихідних даних;

S – множина проміжних даних;

Y– множина виконуваних операцій;

X – множина логічних умов.

Визначимо для протоколу автентифікації множини, що входять до складу операційного автомату для сторін А і В згідно криптопротоколу:

DI={rA, rB, IA, IB};

DO={R, rA, rB, IA, IB,};

S={rA, rB, IA, IB, h(m)};

Y={fg, fh},

де:

R – результат автентифікації;

rA, rB – випадкові числа відповідно сторін А і В;

IA, IB – ідентифікатори сторін А і В;

h(m) – хеш-значення;

fg – функція генерації випадкових чисел;

fh– функція хешування;

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

Для побудови структурної схеми спеціалізованого засобу скористаємося канонічним методом синтезу. Згідно з цим методом кожному математичному елементу наведених множин поставлено у відповідність структурний елемент. Схема спеціалізованого засобу наведена нижче (рис.1.5).

  1. Структурна схема спеціалізованого засобу для реалізації криптопротоколу

На вхід поступають через відкритий канал такі дані: ідентифікатори сторін IA, IB, що записуються в регістри Рг3, Рг4, а також константиA,B,C,D,Eнадходять на блок пам’яті.

Сторона B генерує випадкове число rBта передає стороні А, значення заноситься в регістр Рг2. Сторона А генерує випадкове число rА, яке заноситься в регістр Рг1. На вхід блоку хеш-функції подаються випадкові числа rA, rB, за допомогою блоку керування на комутатор К1 подається керуючий сигнал iden за допомогою якого з регістра Рг4 надходить на блок хеш-функції ідентифікатор сторони В IB,на блок памяті надходить керуючий сигналadrза допомогою якого на блок хеш-функції подаються константиA,B,C,D,E. Сторона А відправляє стороні B ідентифікатор сторони В IB, випадкове число rA. Отримані значення записуються у регістри Рг4, Рг1.

Сторона В на вхід блоку хеш-функції подаює випадкові числа rA, rB, за допомогою блоку керування на комутатор К1 подається керуючий сигнал iden на виході комутатора ідентифікатор сторони A IA, який надходить на блок хеш-функції, на блок памяті надходить керуючий сигналadrза допомогою якого на блок хеш-функції подаються константиA,B,C,D,E. Отримані значення записуються у регістр Рг3.

Якщо сторона А і В пройшли автрентифікацію – автентифікація пройдена, зв’язок встановлено.

На вхід блоку хеш-функції (рис. 1.6) надходять значення 32-бітних констант A, B, C, D, E, які заностяться в регістри Рг1, Рг2, Рг3, Рг4, Рг5. Значення константи А надходить на блок циклічного зсуву на п’ять розрядів. За допомогою блоку циклічного зсуву відбувається зсув константи B на 30 розрядів. Константи B, C, D подаються на вхід елементарної функції ft. Вихід функції, а також константа E надходять на блок додавання за модулем 232 . Вихідне значення, а також константа А подається на блок додавання за модулем 232 разом з Wt – 32 бітним словом отриманим з 512 бітного повідомлення, яке надходить з блоку оперативної пам’яті, адреса повідомлення визначається за допомогою керуючого сигналу adr, що надходить з блоку керування. Вихідне значення подається на на блок додавання за модулем 232 разом з ключем К. Вихідне значення подається на блок додавання за модулем 232. Вихідні значення за допомогою шини подаються вхід схеми. Дії повторюються на протязі вісімдесяти кроків. Вихідні дані останнього кроку – п’ять 32-бітних слів є 160 бітовим хеш-значенням.

  1. Функціональна схема блоку хеш-функції SHA

  1. Розробка функціональної схеми спеціалізованого засобу

Функціональна схема 08-20.КГКА.010.14.116ПЗ. Сторона А формує хеш-значення: з постійного запам’ятовуючого присторою (ПЗП) за допомогою комутаторівна вхід блоку хеш-функції надходять значення 32-бітних констант A, B, C, D, E, які заностяться в регістри Рг1, Рг2, Рг3, Рг4, Рг5. Значення константи А надходить на блок циклічного зсуву на п’ять розрядів. За допомогою блоку циклічного зсуву відбувається зсув константи B на 30 розрядів. Константи B, C, D подаються на вхід елементарної функції ft. Вихід функції, а також константа E надходять на блок додавання за модулем 232. Вихідне значення, а також константа А подається на блок додавання за модулем 232 разом з Wt – 32 бітним словом отриманим з 512 бітного повідомлення, яке надходить з блоку оперативної пам’яті, адреса повідомлення визначається за допомогою керуючого сигналу adr, що надходить з блоку керування. Вихідне значення подається на на блок додавання за модулем 232 . Вихідне значення подається на блок додавання за модулем 232. Вихідні значення за допомогою шини подаються на вхід схеми. Дії повторюються на протязі вісімдесяти кроків. Вихідні дані останнього кроку – п’ять 32-бітних слів є 160 бітовим хеш-значенням.

3. 4 Визначення технічних характеристик спеціалізованого засобу

Для розробленого засобу визначимо такі технічні характеристики:

  • час реалізації криптопротоколу;

  • складність апаратури для обчислень;

  • ємність пам’яті.

Час реалізації криптопротоколу будемо визначати в таких умовних одиницях:

  • час додавання за модулем 232tдод;

  • час зсуву на один двійковий розряд ­– tзс;

  • час виконання однієї логічної операції – tлог.

  • час множення за модулем – tмнож.

  • час піднесення до степеня за модулем – tпс.

  • час знаходження оберненого –tоб.

Час реалізації криптопротоколу (t) – це час, який потрібен для генерації цифрового підпису та перевірки цифрового підпису, створення хеш-значення та генерації ключової інформації. Процес автентифікації можна розділити на дві частини: знаходження хеш-значення (час –th), генерація випадкових чисел (час –tk).Отже, маємо:

th =15 tзс+4tдод , tk =2tлог.

tзаг= 15 tзс+4 tдод+ 2tлог;

Розрахуємо складність апаратури для обчислень. Отже, для засобу потрібно шість 32-розрядних регістри, два 64-розрядних регістри, та два мультиплексора, оперативна пам'ять для зберігання 320 розрядів. Тому складність апаратури розрядів регістра.

  1. ПРОГРАМНА РЕАЛІЗАЦІЯ ЗАДАЧІ КУРСОВОГО ПРОЕКТУ

В попередньому розділі було розроблено структурну та функціональну схему спеціалізованого засобу для реалізації криптопротоколу на основі хеш-функціїSHA та випадкових чисел. Тепер необхідно розробити програму, для моделювання протоколудвосторонньоїавтентифікації з використанням випадкових чисел та хеш-функціїSHA.

  1. Обґрунтування вибору програмних засобів

Реалізація поставленої задачі, а саме розробка програми моделювання протоколу двосторонньої автентифікації та цифрового підпису даних, а також ускладнення статичного дослідження, буде проводитися за допомогою мови програмування Delphi.

Мова Delphi ­– об’єктно-орієнтована мова програмування, що надає можливість повторного використання коду і таким чином економити час на розробку, програми написані по принципах об’єктно орієнтованого програмування добре структуровані, що дозволяє добре розуміти, які функції виконують окремі підпрограми, такі програми легко модифікувати. Використання об’єктна орієнтованого програмування дозволяє створювати класи – абстрактні типи даних, які визначаються розробником.

Оскільки дуже важливу роль відіграють розмір, швидкість виконання, можливість використання API-функцій, наявність дружнього графічного інтерфейсу буде доцільно обрати саме цю мову програмування для реалізації поставленої задачі.

Delphi– це програмне середовище є тим зручним інструментом, який оснащений різноманітними допоміжними засобами для створення зручних і зрозумілих програмних додатків для операційної системи сімейства Windows і для побудови зрозумілого графічного інтерфейсу програм, тому його буде використано при розробці програми.

Найважливішою характеристикою даного середовища – широкі можливості застосування логічних функцій, підтримка роботи з різними типами даних, різноманітність інструментів для створення дружнього графічного інтерфейсу.

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

Блок схема загального функціонування програми для моделювання протоколу двосторонньої автентифікації за допомогою випадкових чисел та хеш-функції SHA (рис. 1.7).

Рисунок 1.7 – Загальна блок-схема функціонування програми

  1. Загальна блок-схема функціонування програми (продовження)

    1. Програмна реалізація основних функцій програми

Для реалізації протоколу двосторонньої автентифікації з використанням випадкових чисел та хеш-функції SHAстворено такі функції:

              1. Генератор випадкових чисел для сторін А та В має такий програмний код:

procedure TForm1.FormCreate(Sender: TObject);

begin

Randomize;

end;

procedure TForm1.BtnGenAClick(Sender: TObject);

begin

NumA:= Random(10000)+1;

Memo1.Lines.Add('Число сторони A =' + IntToStr(NumA));

end;

              1. Функція для реалізації алгоритму хешування SHAмає такий програмний код:

function MyGetHash(text: string): string;

var

digest: Pointer;

dwSize: Cardinal;

begin

dwSize:= Length(text);

digest:= GetHash(@text[1], dwSize, ALG_SHA);

if digest <> nil then

try

Result:= BinToHexStr(digest, dwSize);

finally

FreeMem(digest);

end;

end;

              1. Процедура отримання хеш-значення повідомлення:

procedure TForm1.BtnGetHashB1Click(Sender: TObject);

begin

strB := Id_B.Text + IntToStr(NumA) + IntToStr(NumB);

Memo1.Lines.Add('Значення хешу hb =' + MyGetHash(strB));

end;

              1. Повний код програми наведений у додатку Б.

    1. Тестування та робота програми

Розроблена програма має дружній графічний інтерфейс (рис. 1.8), а також меню для отримання додаткової інформації (рис. 1.9).

  1. Вигляд основного вікна програми

  1. Вигляд меню програми

Тестування програми проводиться наступним чином: спочатку потрібно ввести ідентифікатори суб’єктів А та B. Потім генеруємо випадкове число для суб’єкта А натисненням на кнопку “Генерація”, аналогічно для суб’єкта B. Далі натискаємо на кнопку “Відправити” і цією дією передаємо згенероване випадкове число суб’єктом B суб’єкту А. Тепер знаходимо h(IB, RA, RB) за допомогою кнопки “Знаходимо хеш B” та відсилаємо суб’єкту B за допомогою “Відправити”. Натискаємо“Оновити” для того, щоб оновити поля та знаходимо суб’єктом А h(IА, RA, RB) за допомогою кнопки “Знайти хеш А”. Далі знаходимо те саме значення хеш-функції тільки суб’єктом B. Знаходимо суб’єктомBh(IB, RA, RB) натиснувши “Знайти хеш B” та відправляємо суб’єкту А кнопкою “Відправити”. Після автентифікації отримуємо вікно (рис 1.10).

Текстові поля та кнопки які спрацювали будуть заблоковані для того, щоб не можна було внести в них зміни.

  1. Вікно з інформацією про успішну автентифікацію сторін

У разі виникнення будь-яких перешкод для здійснення звязку програма видасть інформацію про помилку.

  1. Вигляд вікна з інформацією про помилку при аутентифікації

За допомогою пункту меню“Допомога” можна отримати інформацію про завдання курсового проекту (рис. 1.12), інформацію про розробника (рис. 1.14) та дізнатись детальніше як працює програма (рис. 1.13).

  1. Діалогове вікно “Завдання курсового проекту”

  1. Діалогове вікно “Як працює програма”

Рисунок 1.13 – Вигляд діалогового вікна «Інформація про автора»

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]