Back to questions
Junior — Middle
59
Какими принципами руководствуется алгоритм асимметричного шифрования?
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'Hello, world!'
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) # b'Hello, world!'