RSA, public/private key và hybrid encryption

Public key có thể phân phối; private key phải bí mật. RSA encryption dùng public key để encrypt và private key để decrypt, nhưng chỉ cho message ngắn và phải dùng padding hiện đại như OAEP.

Hybrid encryption

Tạo random data-encryption key (DEK), mã hóa dữ liệu bằng AEAD, rồi wrap DEK bằng RSA-OAEP hoặc KMS. Cách này nhanh hơn và hỗ trợ envelope encryption.

Cipher rsa = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding"); rsa.init(Cipher.ENCRYPT_MODE, publicKey); byte[] wrappedKey = rsa.doFinal(aesKey.getEncoded());

Nguồn

← FernetSignatures →