Saltar al contenido
uencoder

Cómo a Usar RSA Cifrado

Cifrar and decrypt data using RSA public-key cryptography, including key generation and padding.

问题

You necesitar a cifrar datos con un público clave así que ese solo el holder de el privado clave puede descifrar it.

Requisitos previos

  • Understanding of public-key cryptography
  • Knowledge of key sizes and padding

Pasos

  1. 1. Generate or obtain a key pair

    Generate an RSA key pair of at least 2048 bits; 3072 or 4096 bits are recommended for long-term security. The public key can be shared freely; the private key must be kept secret. Alternatively, obtain the recipient's public key.

    entrada
    key size: 4096
    输出
    public key + private key
  2. 2. Encrypt with OAEP padding

    Use OAEP (Optimal Asymmetric Encryption Padding) with a hash like SHA-256. Never use PKCS#1 v1.5 padding for encryption, as it is vulnerable to padding oracle attacks. RSA can only encrypt data smaller than the key size minus padding overhead.

    entrada
    small message + public key
    输出
    ciphertext
  3. 3. Decrypt with the private key

    The private key holder decrypts the ciphertext using OAEP with the same hash. For large data, encrypt a symmetric key with RSA and encrypt the data with AES (hybrid encryption). This is how TLS and PGP work.

    entrada
    ciphertext + private key
    输出
    original message

Resultado esperado

Datos encrypted con un público clave ese solo el corresponding privado clave puede descifrar.

Errores comunes

Message is too long for RSA
RSA can only encrypt data up to key_size - padding_overhead bytes. Use hybrid encryption: encrypt an AES key with RSA and the data with AES.
Using PKCS#1 v1.5 padding
PKCS#1 v1.5 is vulnerable to Bleichenbacher's padding oracle attack. Always use OAEP.

Solución de problemas指引

  • If decryption fails, verify the padding scheme and hash match on both sides.
  • For large files, use hybrid encryption rather than chunking with RSA directly.

Límites de seguridad

  • RSA key sizes below 2048 bits are considered insecure. Use 3072+ bits for new applications.
  • All operations are local. Private keys never leave your machine.

Herramientas relacionadas

参考链接