Криптография с открытым ключом: Учебное пособие

7 lug 2023 1 min di lettura
Криптография с открытым ключом: Учебное пособие
Indice dei contenuti

Введение

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

Шаг 1: Установка необходимых библиотек

Во-первых, вам нужно установить библиотеку «криптографии» Python. Вы можете сделать это с помощью менеджера пакетов pip:

pip install cryptography

Шаг 2: Создание пары ключей

Первым шагом в процессе шифрования является генерация пары ключей (открытого и закрытого).

from cryptography.hazmat.primitives.asymmetric import rsa
 from cryptography.hazmat.primitives import serialization

 private_key = rsa.generate_private_key(
 public_exponent=65537,
 key_size=2048,
 )

 public_key = private_key.public_key()

Шаг 3: Сериализация открытого ключа

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

public_pem = public_key.public_bytes(
 encoding=serialization.Encoding.PEM,
 format=serialization.PublicFormat.SubjectPublicKeyInfo,
 )

Шаг 4: Шифрование сообщения

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

from cryptography.hazmat.primitives import hashes
 from cryptography.hazmat.primitives.asymmetric import padding

 message = b"A secret message"
 encrypted = public_key.encrypt(
 message,
 padding.OAEP(
 mgf=padding.MGF1(algorithm=hashes.SHA256()),
 algorithm=hashes.SHA256(),
 label=None
 )
 )

Шаг 5: Расшифровка сообщения

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

original_message = private_key.decrypt(
 encrypted,
 padding.OAEP(
 mgf=padding.MGF1(algorithm=hashes.SHA256()),
 algorithm=hashes.SHA256(),
 label=None
 )
 )

 print(original_message)

Заключение

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

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.