Junior — Middle
What principles guide the asymmetric encryption algorithm?
sobes.tech AI
Answer from AI
Asymmetric encryption is based on the use of a pair of keys: a public (open) key and a private (secret) key. The main principles:
- Public key is used for encrypting data and can be freely distributed.
- Private key is kept secret and used for decrypting.
- Data encrypted with the public key can only be decrypted by the owner of the private key.
- Similarly, for digital signatures, data is signed with the private key and verified with the public key.
This ensures secure data transmission without the need for prior exchange of a secret key.
Example in Python using the cryptography library:
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import hashes
# Key generation
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
public_key = private_key.public_key()
# Encryption
message = b'Hello, world!'
ciphertext = public_key.encrypt(
message,
padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None)
)
# Decryption
plaintext = private_key.decrypt(
ciphertext,
padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None)
)
print(plaintext) # b'Hello, world!'