Professional Documents
Culture Documents
НАДЕЮСЬ ЭТО КУРСАЧ
НАДЕЮСЬ ЭТО КУРСАЧ
КУРСОВА РОБОТА
з дисципліни
“Прикладна криптологія”
Виконав:
студент БІ-443Б
Варіант № 3
Бусько Андрій Петрович
Перевірив:
Доцент кафедри КСЗІ Ільєнко А.В.
Київ 2023
ЗМІСТ
ВСТУП
Конфіденційність
Цілісність
Автентичність
ШИФРУВАННЯ ДАНИХ
Види шифрування
1. Симетричне шифрування:
Один ключ використовується для як шифрування, так і розшифрування.
В даній роботі обрано TripleDES (Triple Data Encryption Standard), який
використовує три ключі для забезпечення вищого рівня безпеки.
2. Асиметричне шифрування:
Використовує пару ключів: публічний та приватний.
Публічний ключ використовується для шифрування, а приватний — для
розшифрування.
TripleDES
Довжина ключа TripleDES складається з 112 біт, що забезпечує достатню стійкість для
багатьох застосувань. Розмір блоку використовується 64 біта, який є стандартом для DES.
Процес шифрування:
1. Генерація ключа:
Ключ для TripleDES генерується випадковим чином або отримується від
користувача.
3. Шифрування тексту:
Текст розбивається на блоки.
Кожен блок комбінується з попереднім зашифрованим блоком (у випадку CBC).
Застосовується алгоритм TripleDES для кожного блоку.
Процес розшифрування:
1. Отримання ключа:
Ключ для розшифрування повинен бути тим самим, як і для шифрування.
2. Розшифрування блоків:
Застосовується алгоритм TripleDES для кожного блоку.
Модуль шифрування:
Інтерфейс користувача:
Для збереження зашифрованих даних система може використовувати захищене сховище або
зберігати їх у визначених файлах з застосуванням вибраного формату.
Користувач може обрати режим роботи для шифрування, наприклад, режим CBC, який
забезпечує надійність та стійкість до атак.
Взаємодія компонентів:
Взаємодія між компонентами здійснюється через визначені інтерфейси та протоколи. Модулі
обмінюються необхідними даними та керуючими сигналами для виконання операцій
шифрування та підпису. Ця архітектура забезпечує модульність та гнучкість системи,
дозволяючи легко вносити зміни та розширювати функціонал для відповіді на конкретні
вимоги користувача.
ВИБІР КРИПТОГРАФІЧНИХ АЛГОРИТМІВ
1. Безпека:
TripleDES є розширенням стандарту DES, що дозволяє використовувати три
ключі замість одного.
Ключові біти використовуються в різних частинах алгоритму, забезпечуючи
вищий рівень безпеки.
2. Ефективність:
Хоча TripleDES є безпечним, він менш ефективний порівняно з більш сучасними
алгоритмами.
Для невеликих обсягів даних або обмеженого ресурсу це може бути прийнятно.
3. Відповідність вимогам:
Застосовується для симетричного шифрування, яке підходить для захисту
конфіденційності даних.
1. Безпека:
RSA базується на складних математичних проблемах, таких як факторизація
великих простих чисел.
Забезпечує надійний захист від криптоаналізу.
2. Ефективність:
RSA може бути ефективним для використання з великими обсягами даних, але
завдання підпису вимагає обчислень.
3. Відповідність вимогам:
Використовується для асиметричного шифрування та створення електронно-
цифрових підписів для забезпечення автентичності та цілісності даних.
Хеш-функції: SHA-256
1. Безпека:
SHA-256 є однією з найбільш стійких хеш-функцій на сьогоднішній день.
Забезпечує великий розмір вихідного хешу, що робить його стійким до колізій.
2. Ефективність:
Хеш-функції ефективно використовуються для перевірки цілісності даних та
створення електронно-цифрових підписів.
3. Відповідність вимогам:
Застосовується для генерації хешів даних, що дозволяє перевірити цілісність та
автентичність інформації.
1. Шифрування даних:
TripleDES обрано для симетричного шифрування через його безпеку та
можливість використання трьох ключів для підвищення стійкості.
2. Електронно-цифровий підпис:
RSA обрано для асиметричного шифрування, оскільки він дозволяє створювати
цифрові підписи та перевіряти їх за допомогою відкритого ключа.
3. Хешування даних:
SHA-256 використовується для генерації хешів, що гарантує стійкість до колізій та
забезпечує надійну перевірку цілісності.
ПРОГРАМА
Для виконання поставленої задачі мені було необхідно підключити бібліотеку cryptography.
Бібліотека `cryptography` в мові програмування Python є потужним інструментарієм для
роботи з криптографією та забезпечення безпеки даних. Вона надає реалізації різноманітних
алгоритмів криптографії, ключових обмінів, геш-функцій та інших криптографічних
примітивів.
Щоб підключити дану бібліотеку нам необхідно написати в термінал команду pip install
cryptography.
Тепер, щоб перевірити, чи все правильно встановлено я ввів команду pip list, вона дозволяэ
переглянути список встановлених бібліотек.
Далі я детально продемонструю, що робить дана програма. Сам код програми буде
знаходитися в Додатку А.
2. Тепер користувач має обрати що саме він бажає зробити, зашифрувати повідомлення
чи дешифрувати, в залежності від натиснутої кнопки зміниться результат.
Обираємо «Е» для того щоб зашифрувати повідомлення.
3. Далі користувач має самостійно ввести повідомлення, яке він бажає зашифрувати.
Я обрав слова з пісні Wham! – Last Christmas, так як скоро новий рік.
4. В наступному кроці ми маємо надати назву файлу, куди буде збережено наше
зашифроване повідомлення.
Якщо ввести неправильний пароль, то програма нічого не виконає, тому при написанні
паролю треба бути уважним.
7. Тепер нам слід ввести назву файлу, який ми бажаємо дешифрувати, в нашому випадку
назва файлу busko_test.
Якщо вказати назву файлу, якого не існує, то програма нічого не виконає.
ВИСНОВОК
if choice.upper() == 'E':
plaintext = input("Введіть текст для шифрування: ")
ciphertext = encrypt_text(key, plaintext)
output_file = input("Введіть назву вихідного файлу: ")
with open(output_file, 'wb') as file:
file.write(ciphertext)
print("Шифрування завершене.")
elif choice.upper() == 'D':
input_file = input("Введіть назву вхідного файлу: ")
with open(input_file, 'rb') as file:
ciphertext = file.read()
decrypted_text = decrypt_text(key, ciphertext)
print("Дешифрований текст:", decrypted_text)
if __name__ == "__main__":
main()