Back to questions
Junior — Middle
63
Можете объяснить, что подразумевается под понятием асимметричного шифрования и как оно работает?
Answer from AI
sobes.tech AI
Асимметричное шифрование — это метод криптографии, использующий пару ключей: публичный (открытый) и приватный (закрытый). Публичный ключ можно свободно распространять, а приватный хранится в секрете.
Принцип работы:
- Отправитель шифрует сообщение с помощью публичного ключа получателя.
- Получатель расшифровывает сообщение своим приватным ключом.
Это обеспечивает безопасность передачи данных, так как без приватного ключа расшифровать сообщение невозможно.
Пример на Python с использованием библиотеки cryptography:
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import hashes
# Генерация ключей
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
public_key = private_key.public_key()
message = b"Секретное сообщение"
# Шифрование
ciphertext = public_key.encrypt(
message,
padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None)
)
# Расшифровка
plaintext = private_key.decrypt(
ciphertext,
padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None)
)
print(plaintext.decode()) # Выведет: Секретное сообщение