stringtranslate.com

El ataque de Wiener

El ataque de Wiener , llamado así en honor al criptólogo Michael J. Wiener, es un tipo de ataque criptográfico contra RSA . El ataque utiliza el método de fracción continua para exponer la clave privada d cuando d es pequeña.

Antecedentes sobre RSA

Los personajes de ficción Alice y Bob son personas que quieren comunicarse de forma segura. Más específicamente, Alice quiere enviarle un mensaje a Bob que solo Bob pueda 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 los mensajes dirigidos a Bob. El exponente de descifrado d satisface ed ≡ 1 (mod λ ( N )) , donde λ ( N ) denota la función de Carmichael , aunque a veces se usa φ ( N ), la función totiente de Euler (nota: este es el orden del multiplicativo grupo ( Z ‍ / ‍ N Z ) × , que no es necesariamente un grupo cíclico). El exponente de cifrado e y λ ( N ) también deben ser primos relativos para que exista un inverso modular . La factorización de N y la clave privada d se mantienen en secreto, de modo que sólo Bob puede descifrar el mensaje. Denotamos el par de claves privadas como ( d , N ) . El cifrado del mensaje M viene dado por CM e (mod N ) y el descifrado del texto cifrado C viene dado por C d ≡ ( M e ) dM edM (mod N ) (usando el pequeño teorema de Fermat ) .

Usando 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 utilizar un valor pequeño de d , en lugar de un número aleatorio grande para mejorar el rendimiento del 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 es válido para valores pequeños de d . Wiener ha demostrado que el atacante puede encontrar d eficientemente cuando d <1/3N 1/4 . [2]

El artículo de Wiener también presenta 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 algo grande de k . Cuando e ′ es lo suficientemente grande, es decir, e ′ > N 3/2 , entonces el ataque de Wiener no se puede aplicar independientemente de cuán pequeño sea d .

Usando 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í no lo es, entonces un descifrado rápido de C se puede hacer 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 [3] .

Cómo funciona el ataque

Tenga en cuenta que

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

Dado que ed ≡ 1 (mod λ ( N ) , existe un número entero K tal que

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

.

Dividido por dpq :

, dónde .

Entonces,mi/pqes un poco más pequeño quek/dgy el primero se compone íntegramente de información pública . Sin embargo, aún se requiere un método para verificar [ se necesita aclaración ] y adivinar.

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

teorema de wiener

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

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

Ejemplo

Supongamos que las claves públicas son N , e = ⟨90581, 17993⟩ . El ataque debe determinar d . Usando el teorema de Wiener y fracciones continuas para aproximar d , primero tratamos de encontrar la expansión en fracciones continuas demi/norte. Tenga en cuenta que este algoritmo encuentra fracciones en sus términos más bajos. Lo sabemos

Según la expansión continua de las fracciones demi/norte, todos convergentesk/dson:

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

Ahora, si resolvemos la ecuación

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

.

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

.

Prueba del teorema de Wiener

La prueba se basa en aproximaciones que utilizan fracciones continuas. [2] [4]

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

.

Sea G = mcd( p − 1, q − 1) ; tenga en cuenta que si se usa φ ( N ) en lugar de λ ( N ), entonces la prueba se puede reemplazar con G = 1 y φ ( N ) reemplazada por λ ( N ).

Luego multiplicando por1/GRAMO,

Por eso,k/Dioses una aproximación demi/φ ( norte ). Aunque el atacante no conoce φ ( N ), puede utilizar N para aproximarlo. De hecho, dado que φ ( N ) = Npq + 1 y p + q − 1 < 3 N , tenemos:

Usando N en lugar de φ ( N ) obtenemos:

Ahora, ( N ) = ed − 1 < ed , entonces ( N ) < ed . Dado que e < λ ( N ) , entonces ( N ) < ed < λ ( N ) d , entonces obtenemos:

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

(1)

Desde d <1/3N 1/4 , 2 d < 3 d , luego 2 d < 3 d < N 1/4 , obtenemos:

, entonces (2)

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

Si | x-a/b| <1/2 b 2, entoncesa/bes convergente de x , por lo tantok/Diosaparece entre los convergentes demi/norte. Por lo tanto, el algoritmo eventualmente encontrarák/Dios. [ Se necesita más explicación ]

Referencias

  1. ^ ab L. Render, Elaine (2007). El ataque de Wiener a los exponentes secretos breves. [ enlace muerto ]
  2. ^ a b C Boneh, Dan (1999). Veinte años de ataques al Criptosistema RSA. Avisos de la Sociedad Estadounidense de Matemáticas (AMS) 46 (2).
  3. ^ Cui, Xiao-lei (2005). Ataques al criptosistema RSA.
  4. ^ Salah, Imad Khaled; Darwish, Abdullah; Oqeili, Saleh (2006). "Ataques matemáticos al criptosistema RSA" (PDF) . Revista de Ciencias de la Computación . 2 (8): 665–671. doi :10.3844/jcssp.2006.665.671.

Otras lecturas