Дослідження електронного цифрового підпису (ЕЦП) RSA
Автор: Robbior • Октябрь 4, 2023 • Лабораторная работа • 412 Слов (2 Страниц) • 117 Просмотры
ХАРКІВСЬКИЙ
Кафедра кібербезпеки
та інформаційних технологій
Звіт
о виконанні лабораторної роботи №9
з навчальної дисципліни
«Теоретичні основи криптографії»
Тема: Дослідження електронного цифрового підпису (ЕЦП) RSA
Виконав:
Факультет: IT
Спеціальність:
Група:
Харків
2021р.
Завдання: розробити програму формування електронного цифрового підпису (ЕЦП) RSA.
Хід роботи
Для розробки програми формування ЕЦП RSA на мові Python, спочатку потрібно встановити бібліотеку «cryptography». Встановлюємо її, виконуючи у терміналі наступну команду: «pip install cryptography».
Тепер розробляємо програму формування електронного цифрового підпису (ЕЦП) RSA.
1. Імпортуємо необхідні модулі та функції з бібліотеки `cryptography` (рис. 1).
[pic 1]
Рис. 1
2. Наступна функція `generate_rsa_key_pair` генерує пару RSA ключів (приватний та публічний). Вона використовує функцію `rsa.generate_private_key()` для створення приватного ключа з заданим показником (public_exponent) та розміром ключа (key_size). Потім вона отримує відповідний публічний ключ, викликаючи метод `public_key()` для приватного ключа (рис. 2):
[pic 2]
Рис. 2
3. Функція `sign_data(private_key, data)` створює ЕЦП для вхідних даних `data` за допомогою приватного ключа `private_key`. Вона використовує метод `sign()` приватного ключа, застосовуючи схему заповнення PSS і хеш-функцію SHA256 для створення цифрового підпису (рис. 3):
[pic 3]
Рис. 3
4. Функція `verify_signature(public_key, data, signature)` перевіряє ЕЦП `signature` для вхідних даних `data`, використовуючи публічний ключ `public_key`. Вона використовує метод `verify()` публічного ключа, також застосовуючи схему заповнення PSS і хеш-функцію SHA256. Функція повертає `True`, якщо підпис є вірним, і `False` в іншому випадку (рис. 4):
...