Этот вопрос проверяет понимание базовых методов шифрования данных.
Симметричное шифрование: Используется один ключ для шифрования и дешифрования. Это быстро, но требует безопасной передачи ключа.
Асимметричное шифрование: Использует пару ключей (открытый и закрытый). Это безопаснее, но медленнее.
1. Симметричное шифрование:
Один и тот же ключ используется для шифрования и дешифрования.
Преимущества: высокая скорость работы.
Недостатки: требуется безопасно передать ключ.
Пример: алгоритмы AES, DES.
from cryptography.fernet import Fernet
key = Fernet.generate_key()
cipher = Fernet(key)
encrypted = cipher.encrypt(b"Confidential Data")
decrypted = cipher.decrypt(encrypted)2. Асимметричное шифрование:
Используются два ключа: открытый (для шифрования) и закрытый (для дешифрования).
Преимущества: безопасная передача данных.
Недостатки: низкая скорость.
Пример: RSA.
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives.asymmetric import padding
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
public_key = private_key.public_key()
encrypted = public_key.encrypt(b"Confidential Data", padding.OAEP(
padding.MGF1(algorithm=hashes.SHA256()), hashes.SHA256(), None))Вывод: Симметричное шифрование подходит для больших объёмов данных, а асимметричное — для безопасной передачи ключей.