¿Elige sus propios exponentes en RSA?

3

En otra publicación interesante , uno de los desarrolladores / investigadores de seguridad detrás de < a href="http://nosuchlabs.com"> Phuctor sugiere que el uso de diferentes exponentes con claves RSA "[aumentará] los costos de atacar su configuración astronómicamente".

Aunque el autor afirma que "no se dice ni se implica aquí que exista algún tipo de vulnerabilidad teórica relacionada con el uso de 65537 como exponente para RSA", esta sugerencia me hace pensar.

Tengo algunas preguntas interrelacionadas:

  1. ¿Es posible generar claves RSA (PGP | SSH | SSL) que utilizan un exponente diferente?
  2. ¿Un exponente diferente y más grande aumenta el esfuerzo de trabajo requerido para un atacante? ¿Aumenta el esfuerzo de trabajo requerido para usos legítimos?
  3. Si genero claves con un exponente diferente, ¿pierdo compatibilidad con ciertos sistemas? es decir: si un sistema admite 2048bit RSA, ¿es probable que también admita 2048bit RSA con un exponente diferente?

El uso de un exponente diferente me parece interesante, pero las personas a menudo se han visto comprometidas cuando hicieron una elección que no entendieron completamente: incluso cuando creen que están agregando seguridad, pueden, de hecho, disminuirla.

    
pregunta Naftuli Kay 21.05.2015 - 19:23
fuente

1 respuesta

3

RSA en sí mismo, como especificado en PKCS # 1 , no impone ningún valor específico para el exponente público e . Ese valor e debe ser relativamente primo tanto para p-1 como para q-1 (donde p y q son los dos factores que constituyen el módulo RSA), pero no hay otra restricción. El exponente e ni siquiera es primo. Debe ser un entero impar, porque p-1 y q-1 son pares (ya que p y q son grandes números primos, por lo tanto impar). El uso de 65537 es sólo una tradición generalizada. También existe la idea de que este valor específico es de alguna manera "más seguro" que otros (en particular, utilizando e = 3), pero eso es un mito . El exponente público más eficiente es e = 3, aunque esto solo afecta a las operaciones de clave pública, que son extremadamente raramente el cuello de botella en cualquier sistema dado.

De hecho, no hay relación alguna entre ese exponente y el costo de ataque. Los métodos de ataque "prácticos" para RSA intentan factorizar el módulo y ignoran completamente el valor del exponente público. La página a la que se vincula parece que desea usar un exponente distinto de 65537 por la única razón de que otras personas (a quienes no les gusta al autor de la página) recomiendan usar 65537. Este es un ejemplo fascinante de humanos. La psicología en el trabajo, pero científicamente no tiene ningún valor.

No es más difícil generar una clave RSA con un exponente público arbitrario, y la mayoría de las bibliotecas RSA lo admiten (las herramientas de línea de comandos pueden ser más limitadas). En cuanto a la interoperabilidad, debe tener en cuenta que algunas implementaciones de RSA generalizadas, en particular la de Windows (y, por lo tanto, utilizadas para SSL y para la validación de certificados) requieren que el exponente público se ajuste a 32 bits, no para seguridad mejorada o reducida. Lo que sea, pero simplemente porque hizo la vida un poco más fácil para el desarrollador original, que podría dedicar un campo pequeño de ancho fijo para la codificación de exponentes públicos. Si desea mantener su interoperabilidad, debe elegir su exponente público en el rango de 3 a 4294967295.

    
respondido por el Tom Leek 21.05.2015 - 19:49
fuente

Lea otras preguntas en las etiquetas