Начните работу с кибербезопасностью и шифрованием с помощью кода

Что такое ПГП

Pretty Good Privacy, более известная как PGP, является широко используемой программой шифрования. PGP используется для создания цифровых подписей, шифрования и расшифровки больших объемов данных, а также для повышения безопасности сообщений электронной почты.

Шифрование PGP использует последовательную комбинацию хеширования, сжатия данных, криптографии с симметричным ключом и, наконец, криптографии с открытым ключом. На каждом шаге используется один из нескольких поддерживаемых алгоритмов. Каждый открытый ключ привязан к имени пользователя или адресу электронной почты.

К счастью, многие протоколы шифрования PGP доступны для разработчиков через библиотеку Python с открытым исходным кодом — pgpy. Обнаружение этой библиотеки привело меня к еще одной субботней спирали исследования открытого исходного кода и созданию еще одного небольшого апплета — инструмента шифрования командной строки с использованием PGP.

Ниже я проведу вас через основные этапы создания базового апплета в терминальном инструменте шифрования PGP. Требуется базовое понимание файловых потоков и программирования.

Создание апплета командной строки

Для начала мы закодируем пять основных функций, играющих критическую роль в создании нашего программного обеспечения, которое будет обеспечивать следующие функции: получение и установка ключа, чтение и запись ключа в определенный файл и генерация ключа для начала.

Поскольку получение, установка, чтение и запись являются базовыми функциями, они будут включены в суть ниже без пояснений. Функция genKey немного интереснее. Хотя это «шаблон» pgpy, его стоит изучить.

Строка 42 в приведенном ниже описании генерирует пару открытых и закрытых ключей размером 4096 с использованием протокола RSA, а последующая команда в строке 45 привязывает их к вымышленному электронному письму — в данном случае Эйбу Линкольну — как требуется во введении.

Строка 50 позволяет нам указать весь спектр вариантов использования (шифрование электронной почты, шифрование диска и т. д.) и предопределенные хэши, шифры и алгоритмы сжатия, используемые для шифрования документов. Никакие опции или флаги не были удалены в следующем случае:

Наш следующий шаг включает в себя объединение команд шифрования pgpy с вызовами файлового потока Python. Нужны четыре функции: pgp_encrypt для шифрования текста; pgp_decrypt для расшифровки (очевидно); encrypt_file и decrypt_file. Функции, связанные с шифрованием и дешифрованием файлов, будут просто использовать комбинацию команд шифрования и функциональности файлового потока. Это видно ниже:

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

Заключение

Хотя это исследование PGP не было очень глубоким, оно представляет собой интересную отправную точку для начинающих программистов и тех, кто интересуется кибербезопасностью и шифрованием.

Изучение программного обеспечения с открытым исходным кодом и его использование для создания интересных небольших проектов — отличный способ улучшить свое понимание предмета. Я настоятельно рекомендую тем, кто интересуется криптографией или кибербезопасностью, следовать тому же принципу и пробовать подобные проекты для себя.