No hay debilidad conocida para ningún exponente público corto o largo para RSA, siempre que el exponente público sea "correcto" (es decir, relativamente primo a p-1 para todos los primos p que dividen el módulo).
Si usa un pequeño exponente y no usa ningún relleno para el cifrado y encripta exactamente el mismo mensaje con varios públicos distintos claves, entonces su mensaje está en riesgo: si e = 3 , y usted cifra el mensaje m con las claves públicas n 1 , n2 y n3 , entonces tienes c i = m 3 mod ni para i = 1 a 3 . Mediante el Teorema del Resto Chino , puede reconstruir m3 mod n1n2n3 , que resulta ser m 3 (sin modulo) porque
n1n2n3 es un número entero mayor. Una extracción de raíz cúbica (no modular) es suficiente para extraer m .
La debilidad, aquí, es no el pequeño exponente; más bien, es el uso de un relleno inadecuado (es decir, sin relleno) para el cifrado. El relleno es muy importante para la seguridad de RSA, ya sea encriptación o firma; si no utiliza un relleno adecuado (como los descritos en PKCS # 1 ), entonces tiene muchas debilidades, y la que se describe en el párrafo anterior no es la más grande, con diferencia. Sin embargo, cada vez que alguien se refiere a una debilidad relacionada con el tamaño del exponente, se refiere más o menos directamente a esta ocurrencia. Eso es un poco de tradición antigua e incorrecta, que a veces se invierte en una prohibición contra los exponentes de big (ya que es un mito, el mito inverso también es un mito y no es más, y no menos, - fundamentado); Creo que esto es lo que observas aquí.
Sin embargo, se pueden encontrar algunas razones por las que se debe evitar un gran exponente público:
-
Los pequeños exponentes públicos promueven la eficiencia (para operaciones de clave pública).
-
Hay problemas de seguridad al tener un pequeño exponente privado ; se ha descrito un ataque de recuperación de clave cuando la longitud del exponente privado no es más del 29% de la longitud del exponente público. Cuando quiere forzar que el exponente privado sea corto (por ejemplo, para acelerar las operaciones de clave privada), más o menos tiene que usar un gran exponente público (tan grande como el módulo); exigir que el exponente público sea corto puede verse como una especie de contramedida indirecta.
-
Algunas implementaciones de RSA ampliamente implementadas ahogan a los grandes exponentes públicos de RSA. P.ej. el código RSA en Windows (CryptoAPI, utilizado por Internet Explorer para HTTPS) insiste en codificar el exponente público dentro de una sola palabra de 32 bits; no puede procesar una clave pública con un exponente público más grande.
Sin embargo, "los riesgos pueden ser grandes" parece que la justificación genérica ("este es un problema de seguridad" es la forma habitual de decir "no lo implementamos, pero no queremos admitir ningún tipo de pereza").