Шифрование с помощью PyCryptodome Python

Шифрование PyCryptodome Python

Одним из основных средств обеспечения безопасности является криптография. В предыдущей статье я рассказывал про шифрование с помощью Cryptography Python. Сегодня рассмотрим применение библиотеки PyCryptodome Python.

Еще по теме: Обфускация Python используя Pyarmor

Шифрование с помощью PyCryptodome Python

Криптографическая библиотека PyCryptodome (https://pypi.org/project/pycryptodome) поддерживает функции блочного шифрования, поточного шифрования и вычисления хешей. Эта библиотека написан в основном на языке Python, но также, для производительности, содержит элементы на C .

Возможности PyCryptodome Python:

  • Основные поддерживаемые блочные шифры (HASH, AES, DES, DES3, IDEA и RC5).
  • Режимы аутентифицированного шифрования (GCM, CCM, EAX, SIV и OCB).
  • Криптография на эллиптических кривых.
  • Генерация ключей Rivest-Shamir-Adleman (RSA) и DSA.
  • Улучшенные и более компактные API, включая атрибуты nonce и вектор инициализации (IV) для рандомизации генерации данных.

Nonce — термин, используемый в криптографии, который обозначает произвольное число, используемое только один раз в криптографической операции. Чтобы обеспечить однократное использование, nonce включает метку времени, что означает его действительность только в течение определенного времени.

Для использования библиотеки PyCryptodome с Python 3 выполните команду:

Или установитe с помощью PIP:

Для импорта конкретного типа шифра, можно использовать пакет Crypto.Cipher:

Пакет Crypto.Cipher содержит алгоритмы для защиты конфиденциальности данных и поддерживает следующие три типа алгоритмов шифрования:

  • Симметричные шифры — Все стороны используют один и тот же ключ для шифрования и расшифровки данных. Симметричные шифры обычно очень быстры и могут обрабатывать большие объемы данных.
  • Асимметричные шифры — Отправители и получатели используют разные ключи. Отправители шифруют с использованием публичных (несекретных) ключей, в то время как получатели расшифровывают с использованием приватных (секретных) ключей. Асимметричные шифры обычно очень медленные и могут обрабатывать только небольшие объемы данных.
  • Гибридные шифры — Вышеперечисленные два типа шифрования могут быть объединены так, чтобы наследовать преимущества обоих. Асимметричное шифрование используется для защиты симметричного ключа с ограниченным сроком службы, и симметричное шифрование (под этим ключом) шифрует фактическое сообщение.

Для инициализации шифра, можем использовать конструктор new:

В этом методе обязательным параметром является только ключ, и нам нужно учесть, требует ли метод шифрования определенного размера. Возможные режимы: MODE_ECB, MODE_CBC, MODE_CFB, MODE_PGP, MODE_OFB, MODE_CTR и MODE_OPENPGP. Более подробную информацию о режимах можно найти в документации.

Если используется режим MODE_CBC или MODE_CFB, третий параметр (Вектор IV) должен быть инициализирован, что позволяет шифру установить начальное значение. Некоторые шифры могут иметь дополнительные параметры, например AES может задать размер блока и ключа с помощью параметров block_size и key_size.

Библиотека также поддерживает хеш-функции с использованием Crypto.Hash. Вы можете импортировать конкретный тип хеша с помощью следующей инструкции, где hash_type — это значение, которое может быть одной из поддерживаемых хэш-функций: MD5, SHA-1 и SHA-256:

Для получения контрольной суммы файла, можно использовать хэш-функцию MD5.

В данном коде мы используем хеш MD5 для получения контрольной суммы файла. Метод update() устанавливает данные, необходимые для вычисления хэша, а метод hexdigest() генерирует сам хеш. Видно, как хеширование вычисляется блоками или фрагментами информации; мы используем чанки, что делает эту технику более эффективной с точки зрения использования памяти.

Вывод скрипта:

PyCryptodome Python

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

ПОЛЕЗНЫЕ ССЫЛКИ:

Ban32

Хакер-самоучка, который может взломать тостер и настроить его на отправку вам утреннего приветствия в коде Морзе.

Добавить комментарий