You are on page 1of 9

МІНІСТЕРСТВО ОСТВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ АВІАЦІЙНИЙ УНІВЕРСИТЕТ

ФАКУЛЬТЕТ КІБЕРБЕЗПЕКИ ТА ПРОГРАМНОЇ ІНЖЕНЕРІЇ

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

ЗВІТ
з лабораторної роботи № 5
тема: «ЕЛЕКТРОННИЙ ЦИФРОВИЙ ПІДПИС. СХЕМА RSA»

з дисципліни «Прикладна криптологія»

Підготував:
студент СЗ-481
Рибак Михайло Миколайович

«17» листопада 2023 р.

Київ 2023
Мета: отримати навички у створенні програмної реалізації електронно-
цифрового підпису на базі схеми RSA.

Основні завдання:

1. Розробити об’єктно-орієнтованою мовою програмування консольний


або віконний додаток, що реалізує процедуру формування та верифікації
електронно-цифрового підпису на базі схеми RSA з можливістю відновлення та
без інформаційного повідомлення. Програма повинна запитувати ім’я вхідного
і вихідного файлів, тип шифру та вхідні параметри для проведення
криптографічних перетворень. Програма також повинна надавати можливість
вибору хеш-функції для її подальшого використання для формування
електронно-цифрового підпису. В якості вхідних параметрів виступають: e –
відкритий ключ, d – закритий ключ та n – добуток двох взаємнопростих чисел p
та q .

2. Провести оцінку швидкодії та складності реалізації процедури


формування електронно-цифрового підпису на базі алгоритму RSA для розміру
ключа 512,1024,2048 біт відповідно.

3. Представити блок структурну схему своєї програмної реалізації.

4. Зробити висновки на підставі проведених теоретичних та практичних


досліджень. У висновках слід зазначити, які навички та знання отримано під
час виконання завдань.

Хід роботи

2
3
Звісно, нижче наведено детальне пояснення до кожної частини коду:

4
Пояснення до коду:

1. Включення бібліотек:

Тут ми включаємо необхідні бібліотеки для роботи зі вводом-виводом,


математичними операціями та рядками.

2. Функція обчислення GCD (найбільший спільний дільник):

Ця функція використовує рекурсивний підхід для знаходження


найбільшого спільного дільника двох чисел за допомогою алгоритму Евкліда.

3. Функція обчислення ейлерової функції (φ):

Ця функція обчислює значення ейлерової функції для вказаних простих


чисел `p` та `q`. Ейлерова функція використовується в алгоритмі RSA.

5
4. Функція обчислення оберненого за модулем числа:

Ця функція знаходить обернене за модулем число для заданого `a` та `m` за


допомогою перебору.

5. Функція для підняття числа до ступеня за модулем:

Ця функція використовує алгоритм бінарного піднесення до ступеня


для ефективного обчислення чисел за модулем.

6
6. Функція для генерації RSA ключів:

Ця функція генерує відкритий ключ `e`, закритий ключ `d` та модуль `n` для
алгоритму RSA.

7. Функції для формування електронно-цифрового підпису та його


верифікації:

Функція `sign` формує електронно-цифровий підпис повідомлення, а функція


`verify` перевіряє правильність цього підпису.

8. Основна функція:

Основна функція викликає інші функції для виконання всієї логіки програми,

7
включаючи генерацію ключів, формування підпису, верифікацію та вивід
результатів.

Висновок: на основі проведеної лабораторної роботи я отримав навички


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

Запитання для самоперевірки

1. Поясність призначення електронно-цифового підпису.

Електронно-цифровий підпис (ЕЦП) використовується для забезпечення


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

2. Проведіть класифікацію основних схем формування та верифікації


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

Класифікація схем ЕЦП:

a) За використаною криптосистемою:
 RSA (Rivest–Shamir–Adleman)
 DSA (Digital Signature Algorithm)
 ECDSA (Elliptic Curve Digital Signature Algorithm)
b) За типом ключа:
 З відкритим ключем (публічний ключ відомий всім)
 З закритим ключем (приватний ключ відомий тільки власнику)
c) За використовуваним хеш-алгоритмом:
 MD5, SHA-1, SHA-256 і т.д.
d) За наявністю інформаційного повідомлення:
 Схеми з відновленням інформаційного повідомлення
 Схеми без інформаційного повідомлення

3. Що таке електронно-цифовий підпис?

Електронно-цифровий підпис - це криптографічно заснований метод, який


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

4. Поясніть основні етапи проведення процедури формування та верифікації


електронно-цифового підпису для схеми з відновленням інформаційного
повідомлення?

Основні етапи формування та верифікації ЕЦП з відновленням інформаційного


повідомлення:

8
Формування ЕЦП:

1) Вибір простих чисел p та q.


2) Обчислення модуля n = p * q та ейлерової функції φ(n).
3) Вибір відкритого ключа e такого, що 1 < e < φ(n) та gcd(e, φ(n)) = 1.
4) Обчислення закритого ключа d як оберненого за модулем до e відносно φ(n).
5) Обчислення ЕЦП: signature = message^d mod n.

Верифікація ЕЦП:

1) Отримання відкритого ключа (e, n).


2) Обчислення decrypted_signature = signature^e mod n.
3) Порівняння decrypted_signature з оригінальним повідомленням.

5. Поясніть принципові різницю міє схемами з відновленням та без


інформаційного повідомлення для схем формування та верифікації
електронно-цифового підпису.

Різниця між схемами з відновленням та без інформаційного повідомлення:

 Схеми без інформаційного повідомлення:

o В цих схемах ЕЦП формується безпосередньо на основі повідомлення.


o Підписувач не може відновити оригінальне повідомлення з ЕЦП.
o Застосовується, коли важливо забезпечити лише автентичність та
цілісність.
 Схеми з відновленням інформаційного повідомлення:

o Підписувач може відновити оригінальне повідомлення з ЕЦП.


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

You might also like