0Pricing
Cryptology Academy · Lección

RSA de libro de texto y por qué es inseguro

Demuestre la maleabilidad, los ataques con exponentes pequeños y las vulnerabilidades de e=3.

RSA de libro de texto y por qué es inseguro es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Bienvenida

El RSA de libro de texto (exponenciación modular directa) presenta varias vulnerabilidades críticas. En esta lección analizaremos cada ataque y entenderemos por qué el padding no es opcional.

Ataque de determinismo

El RSA de libro de texto es determinista: Enc(M) siempre produce el mismo C. Un atacante puede cifrar mensajes candidatos y compararlos con el texto cifrado objetivo. Esto rompe la confidencialidad cuando el espacio de mensajes es pequeño.

Maleabilidad

RSA es maleable multiplicativamente: Enc(M1) × Enc(M2) = Enc(M1×M2) mod n. Un atacante puede multiplicar un texto cifrado por Enc(2) = 2^e, haciendo que el texto plano se duplique, sin conocer la clave.

Ataque de mensaje pequeño (e=3)

Si e=3 y M < n^(1/3): C = M^3 mod n = M^3 (sin reducción modular). Calcular la raíz cúbica de C proporciona M directamente. Utilice siempre RSA con padding y asegúrese de que M sea suficientemente grande.

Ataque de Coppersmith

Coppersmith demostró que, si e=3 y el atacante conoce una gran parte de M (por ejemplo, M = YYYY-MM-DD...[unknown portion]), la factorización polinómica puede recuperar los bits desconocidos. Los textos planos cortos con padding son vulnerables.

Ataque de difusión de Håstad

Si el mismo M se envía a 3 destinatarios, cada uno con e=3, mediante CRT, C1,C2,C3 determinan M^3 mod (n1×n2×n3). Calcular directamente la raíz cúbica proporciona M. Nunca cifre el mismo texto plano con e=3 para varios destinatarios.

Ataque de mensajes relacionados de Franklin-Reiter

Si dos mensajes M1 y M2 están relacionados linealmente (M2 = aM1+b) y ambos se cifran con la misma clave, esta relación puede aprovecharse para recuperar M1 y M2. El padding con bytes aleatorios evita este ataque.

Ataque del módulo común

Si dos servidores comparten n, pero utilizan e1 y e2 distintos con GCD(e1,e2)=1, y ambos cifran el mismo M, M puede recuperarse mediante el algoritmo de Euclides extendido. Nunca comparta módulos entre entidades.

Ataque de temporización al descifrado RSA

El tiempo de descifrado RSA depende de los bits de la clave privada (el algoritmo de elevar al cuadrado y multiplicar varía según el bit). El ataque de temporización de Kocher de 1996 midió los tiempos de descifrado para recuperar claves privadas. La solución es el blinding.

Defensa mediante RSA blinding

Antes del descifrado: C' = C × r^e mod n (se multiplica por el factor de blinding aleatorio r^e). Se calcula M' = C'^d mod n. M = M' × r^(-1) mod n. Ahora el tiempo depende de r, no de M: el atacante solo observa mediciones con ruido.

La solución fundamental: padding aleatorio

Todos los ataques contra el RSA de libro de texto tienen una solución común: padding aleatorio. PKCS#1 v1.5 añadió aleatoriedad. OAEP añadió seguridad demostrable. Con un padding adecuado, ninguno de los ataques anteriores funciona.

Comprobación rápida

¿Qué propiedad del RSA de libro de texto permite a un atacante comprobar si un texto cifrado contiene un mensaje específico?

Recapitulación

El RSA de libro de texto es peligrosamente inseguro. A continuación, estudiaremos el padding PKCS#1 v1.5: su diseño y uso, y el ataque de Bleichenbacher que lo vulneró.

Preguntas frecuentes

¿La lección «RSA de libro de texto y por qué es inseguro» es gratis?

Sí — el texto completo de «RSA de libro de texto y por qué es inseguro» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «RSA de libro de texto y por qué es inseguro»?

Demuestre la maleabilidad, los ataques con exponentes pequeños y las vulnerabilidades de e=3. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «RSA de libro de texto y por qué es inseguro»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. RSA de libro de texto y por qué es inseguro
  2. Padding PKCS#1 v1.5 y Bleichenbacher
  3. OAEP: padding óptimo para cifrado asimétrico
  4. RSA-PSS para firmas digitales
← Volver a Cryptology Academy