6214 Голенков В.А. Лаб.3 Вар.5 #276
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
В ходе лабораторной работы была разработана гибридная криптосистема, объединяющая преимущества симметричного и асимметричного шифрования. Основная задача — обеспечить безопасную передачу данных с использованием двух типов криптографических алгоритмов
Асимметричное шифрование (RSA)
Используется для защиты симметричного ключа.
Генерируется пара ключей: открытый
public_key.pemи закрытыйprivate_key.pem.Симметричный ключ шифруется открытым ключом и сохраняется в файл
encrypted_key.txt.Симметричное шифрование (CAST5)
Применяется для шифрования содержимого файла.
Текст из
plainrtext.txtшифруется и сохраняется вciphertext.txt, а результат расшифровки выводится вdecrypted_text_file.Особенности реализации:
Для работы с ключами и шифрами используется библиотека cryptography.
Основная часть файлов
.pyнаходятся в папках, соответствующих режиму работы программы:task_1содержит файлы.pyдля генерации и сериализации ключей.task_2содержит файлы.pyдля шифрования текста.task_3содержит файлы.pyдля расшифровывания текста.Также есть
.pyсо вспомогательными функциями:tools.py- работа с файлами (чтение\запись\проверка существования).modes_manager.py- содержит вызовы функций в соответствии с режимом работы.Пример запуска:
python program.py --mode mode_1 --key_length 128 --settings settings.jsonБольше о аргументах запуска можно узнать, если ввести:
python main.py --help