Sobes.tech
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!'