🍋
Menu
Security

RSA

RSA (Rivest-Shamir-Adleman)

Un algoritmo de cifrado asimétrico ampliamente utilizado, basado en la dificultad matemática de factorizar números primos grandes, que permite el intercambio seguro de claves, firmas digitales y comunicación cifrada sin compartir una clave secreta.

Detalle técnico

RSA genera un par de claves: una clave pública (n, e) para cifrado y una clave privada (n, d) para descifrado, donde n es el producto de dos primos grandes. El cifrado calcula c = m^e mod n, y el descifrado calcula m = c^d mod n. Los tamaños de clave de 2.048 bits son la recomendación mínima actual; 4.096 bits proporcionan un mayor margen de seguridad. RSA es más lento que los algoritmos simétricos, por lo que en la práctica cifra una clave de sesión AES aleatoria en lugar de datos masivos (cifrado híbrido). RSA-OAEP (Optimal Asymmetric Encryption Padding) previene ataques de texto cifrado elegido. RSA-PSS es el esquema de firma recomendado.

Ejemplo

```javascript
// AES-256-GCM encryption (Web Crypto API)
const key = await crypto.subtle.generateKey(
  { name: 'AES-GCM', length: 256 }, true, ['encrypt', 'decrypt']
);
const iv = crypto.getRandomValues(new Uint8Array(12));
const ciphertext = await crypto.subtle.encrypt(
  { name: 'AES-GCM', iv },
  key,
  new TextEncoder().encode('secret message')
);
```

Herramientas relacionadas

Términos relacionados