stringtranslate.com

El ataque de Wiener

El ataque de Wiener , llamado así por el criptólogo Michael J. Wiener, es un tipo de ataque criptográfico contra RSA . El ataque utiliza la representación de fracciones continuas para exponer la clave privada d cuando d es pequeño.

Antecedentes sobre RSA

Los personajes ficticios Alice y Bob son personas que quieren comunicarse de forma segura. Más específicamente, Alice quiere enviar un mensaje a Bob que solo Bob puede leer. Primero Bob elige dos primos secretos p y q . Luego calcula el módulo RSA N = pq . Este módulo RSA se hace público junto con el exponente de cifrado e . N y e forman el par de claves públicas ( e , N ) . Al hacer pública esta información, cualquiera puede cifrar mensajes a Bob. El exponente de descifrado d satisface ed ≡ 1 (mod λ ( N )) , donde λ ( N ) denota la función de Carmichael , aunque a veces se utiliza φ ( N ), la función totient de Euler (nota: este es el orden del grupo multiplicativo ( Z ‍ / ‍ N Z ) × , que no es necesariamente un grupo cíclico). El exponente de cifrado e y λ ( N ) también deben ser primos entre sí para que haya una inversa modular . La factorización de N y la clave privada d se mantienen en secreto, de modo que solo Bob puede descifrar el mensaje. Denotamos el par de claves privadas como ( d , N ) . El cifrado del mensaje M está dado por CM e (mod N ) y el descifrado del texto cifrado C está dado por C d ≡ ( M e ) dM edM (mod N ) (utilizando el pequeño teorema de Fermat ).

Utilizando el algoritmo euclidiano , se puede recuperar eficientemente la clave secreta d si se conoce la factorización de N. Al tener la clave secreta d , se puede factorizar eficientemente el módulo de N. [1]

Pequeña clave privada

En el criptosistema RSA , Bob podría tender a usar un valor pequeño de d , en lugar de un número aleatorio grande para mejorar el rendimiento de descifrado RSA . Sin embargo, el ataque de Wiener muestra que elegir un valor pequeño para d dará como resultado un sistema inseguro en el que un atacante puede recuperar toda la información secreta, es decir, romper el sistema RSA . Esta ruptura se basa en el teorema de Wiener, que se cumple para valores pequeños de d . Wiener ha demostrado que el atacante puede encontrar d de manera eficiente cuando d < 1/3N 1/4 . [2]

El artículo de Wiener también presentó algunas contramedidas contra su ataque que permiten un descifrado rápido. A continuación se describen dos técnicas.

Elección de una clave pública grande : reemplace e por e ′, donde e ′ = e + kλ ( N ) para algún valor grande de k . Cuando e ′ es suficientemente grande, es decir, e ′ > N 3/2 , entonces el ataque de Wiener no se puede aplicar independientemente de lo pequeño que sea d .

Utilizando el teorema del resto chino : supongamos que uno elige d tal que tanto d pd (mod ( p − 1)) como d qd (mod ( q − 1)) son pequeños pero d en sí mismo no lo es, entonces se puede realizar un descifrado rápido de C de la siguiente manera:

  1. Primero calcule M pC d p (mod p ) y M qC d q (mod q .
  2. Utilice el teorema del resto chino para calcular el valor único de 0 ≤ M < N que satisface MM p (mod p ) y MM q (mod q . El resultado de M satisface MC d (mod N ) según sea necesario. El punto es que el ataque de Wiener no se aplica aquí porque el valor de d mod λ ( N ) puede ser grande. [ cita requerida ]

Cómo funciona el ataque

Tenga en cuenta que

donde G = mcd( p − 1, q − 1) .

Como ed ≡ 1 (mod λ ( N )) , existe un entero K tal que

Definiendo k = K/mcd( K , G ) y g = GRAMO/mcd( K , G ) , y sustituyendo en lo anterior se obtiene:

.

Dividido por dpq :

, dónde .

Entonces, mi/pq es un poco más pequeño que a/escaño , y el primero se compone enteramente de información pública. Sin embargo, todavía se requiere un método de verificación [ aclaración necesaria ] y de conjeturas.

Mediante el uso de manipulaciones algebraicas y de identidades simples , se puede comprobar la precisión de una suposición . [1]

Teorema de Wiener

Sea N = pq con q < p < 2 q . Sea d < 1/3Número 1/4 .

Dado N , e con ed ≡ 1 (mod λ ( N )) , el atacante puede recuperar eficientemente d . [2] [ verificación fallida ]

Ejemplo

Supongamos que las claves públicas son N , e = ⟨90581, 17993⟩ . El ataque debería determinar d . Al usar el teorema de Wiener y fracciones continuas para aproximar d , primero tratamos de encontrar la expansión en fracciones continuas de mi/norte . Nótese que este algoritmo encuentra fracciones en sus términos más bajos. Sabemos que

De acuerdo con la expansión de fracciones continuas de mi/norte , todos convergentes a/dson :

Podemos verificar que el primer convergente no produce una factorización de N . Sin embargo, el convergente 1/5 rendimientos

Ahora, si resolvemos la ecuación

entonces encontramos las raíces que son x = 379; 239 . Por lo tanto hemos encontrado la factorización

.

Nótese que, para el módulo N = 90581 , el teorema de Wiener funcionará si

.

Demostración del teorema de Wiener

La prueba se basa en aproximaciones utilizando fracciones continuas. [2]

Como ed = 1 (mod λ ( N )) , existe un k tal que ed ( N ) = 1 . Por lo tanto

.

Sea G = mcd( p − 1, q − 1) ; note que si se utiliza φ ( N ) en lugar de λ ( N ), entonces la prueba se puede reemplazar con G = 1 y φ ( N ) reemplazado con λ ( N ).

Luego multiplicando por1/GRAMO ,

Por lo tanto ,a/Dios es una aproximación de mi/φ ( N ) . Aunque el atacante no conoce φ ( N ), puede usar N para aproximarlo. De hecho, dado que φ ( N ) = Npq + 1 y p + q − 1 < 3 N , tenemos:

Utilizando N en lugar de φ ( N ) obtenemos:

Ahora, ( N ) = ed − 1 < ed , por lo que ( N ) < ed . Como e < λ ( N ) , por lo que ( N ) < ed < λ ( N ) d , obtenemos:

Dado que k < d y d < 1/3N 1/4 . De ahí obtenemos:

(1)

Dado que d < 1/3N 1/4 , 2 d < 3 d , entonces 2 d < 3 d < N 1/4 , obtenemos:

, entonces (2)

De (1) y (2), podemos concluir que

Si | xa/b | <1/2b2 , entoncesa/b es un convergente de x , por lo tantoa/Dios aparece entre los convergentes de mi/norte . Por lo tanto, el algoritmo eventualmente encontrará a/Dios . [ se necesita más explicación ]

Referencias

  1. ^ ab L. Render, Elaine (2007). El ataque de Wiener a los exponentes secretos cortos. [ enlace roto ‍ ]
  2. ^ abc Boneh, Dan (1999). Veinte años de ataques al criptosistema RSA. Avisos de la American Mathematical Society (AMS) 46 (2).

Lectura adicional