Данная программа была реализована на Anaconda 3 на языке программирования Python 3 в среде разработки Jupyter Notebook. Для работы программы требуются библиотеки: asn1, pycryptodome. Остальные зависимости присутствуют в Anaconda 3. Чтобы установить недостающие библиотеки, нужно выполнить следующие команды в командной строке Anaconda 3:
$ pip install asn1
$ pip install pycryptodome
В качестве вспомогательного симметричного алгоритма шифрвоания для RSA используется AES-256 CBC: шифрование файлов при помощи RSA нецелесообразно, поэтому RSA шифрует только ключ симметричного AES-256 CBC. ВНИМАНИЕ: синхропосылка CBC в данной работе состоит из 0. Это небезопасно и должно быть изменено на генерацию случайной синхропосылки, если данная программа будет использована не для демонстрационных целей.
Для вычисления подписи используется алгоритм SHA-256.
Зашифрованные файлы и файлы с подписью имеют формат ASN.1, работа с которым реализована при помощи библиотеки asn1, как ни странно. Прочитать эти файлы можно при помощи утилиты dumpasn1, доступной на сайте CryptoPro по ссылке: https://www.cryptopro.ru/downloads.