Articulo de referencia

El ataque del herrero

El ataque de Coppersmith describe una clase de ataques criptográficos contra el criptosistema de clave pública RSA basados ​​en el método de Coppersmith . Algunas aplicaciones p...

El ataque de Coppersmith describe una clase de ataques criptográficos contra el criptosistema de clave pública RSA basados ​​en el método de Coppersmith . Algunas aplicaciones particulares del método de Coppersmith para atacar RSA incluyen casos en los que el exponente público e es pequeño o cuando se dispone de información parcial sobre un factor primo de la clave secreta.

Conceptos básicos de RSA

La clave pública en el sistema RSA es una tupla de números enteros.(norte,mi){\displaystyle (N,e)}donde N es el producto de dos números primos p y q . La clave secreta viene dada por un número entero d que satisfacemid1(mod(pag1)(q1)){\displaystyle ed\equiv 1{\pmod {(p-1)(q-1)}}}; equivalentemente, la clave secreta puede ser dada pordpagd(modpag1){\displaystyle d_{p}\equiv d{\pmod {p-1}}}ydqd(modq1){\displaystyle d_{q}\equiv d{\pmod {q-1}}}Si se utiliza el teorema chino del resto para mejorar la velocidad de descifrado, consulte CRT-RSA . El cifrado de un mensaje M produce el texto cifrado.doMETROmi(modnorte){\displaystyle C\equiv M^{e}{\pmod {N}}}, que se puede descifrar usandod{\displaystyle d}mediante computacióndodMETRO(modnorte){\displaystyle C^{d}\equiv M{\pmod {N}}}.

ataque de exponente público bajo

Para reducir el tiempo de cifrado o verificación de firma, es útil utilizar un exponente público pequeño (mi{\displaystyle e}). [ 1 ] En la práctica, las opciones comunes parami{\displaystyle e}son 3, 17 y 65537(216+1){\displaystyle (2^{16}+1)}. Estos valores para e son primos de Fermat , a veces denominadosF0,F2{\displaystyle F_{0},F_{2}}yF4{\displaystyle F_{4}}respectivamente(Fincógnita=22incógnita+1){\displaystyle (F_{x}=2^{2^{x}}+1)}Se eligen porque hacen que la operación de exponenciación modular sea más rápida. Además, habiendo elegido talesmi{\displaystyle e}, es más sencillo comprobar simcd(mi,pag1)=1{\displaystyle \gcd(e,p-1)=1}ymcd(mi,q1)=1{\displaystyle \gcd(e,q-1)=1}mientras se generan y prueban los números primos en el paso  1 de la generación de claves . Valores depag{\displaystyle p}oq{\displaystyle q}que no superen esta prueba pueden ser rechazados en ese mismo momento. (Mejor aún: si e es primo y mayor que 2, entonces la pruebapagmodmi1{\displaystyle p{\bmod {e}}\neq 1}puede reemplazar la prueba más costosamcd(pag1,mi)=1{\displaystyle \gcd(p-1,e)=1}.)

Si el exponente público es pequeño y el texto planometro{\displaystyle m}es muy corto, entonces la función RSA puede ser fácil de invertir, lo que hace posibles ciertos ataques. Los esquemas de relleno aseguran que los mensajes tengan longitudes completas, pero además elegir el exponente públicomi=216+1{\displaystyle e=2^{16}+1}Se recomienda. Cuando se utiliza este valor, la verificación de firma requiere 17 multiplicaciones, en comparación con aproximadamente 25 cuando se utiliza un valor aleatorio.mi{\displaystyle e}de tamaño similar se utiliza. A diferencia del exponente privado bajo (ver el ataque de Wiener ), los ataques que se aplican cuando un pequeñomi{\displaystyle e}Los métodos utilizados están lejos de ser una ruptura total , que permitiría recuperar la clave secreta d . Los ataques más poderosos contra RSA de exponente público bajo se basan en el siguiente teorema, que se debe a Don Coppersmith .

El ataque televisivo de Håstad

Se presenta la forma más simple del ataque de Håstad para facilitar la comprensión. [ 2 ] El caso general utiliza el método del herrero de cobre.

Supongamos que un remitente envía el mismo mensaje.METRO{\displaystyle M}en forma encriptada a varias personasPAG1;PAG2;;PAGk{\displaystyle P_{1};P_{2};\dots ;P_{k}}, cada uno utilizando el mismo pequeño exponente públicomi{\displaystyle e}, decirmi=3{\displaystyle e=3}y diferentes módulosnortei,mi{\displaystyle \left\langle N_{i},e\right\rangle }Un argumento simple muestra que tan pronto comok3{\displaystyle k\geq 3}Los textos cifrados son conocidos, el mensajeMETRO{\displaystyle M}ya no es seguro: Supongamos que Eva interceptado1,do2{\displaystyle C_{1},C_{2}}, ydo3{\displaystyle C_{3}}, dóndedoiMETRO3(modnortei){\displaystyle C_{i}\equiv M^{3}{\pmod {N_{i}}}}Podemos suponermcd(nortei,nortej)=1{\displaystyle \gcd(N_{i},N_{j})=1}a pesar dei,j{\displaystyle i,j}(de lo contrario, es posible calcular un factor de uno de los números)nortei{\displaystyle N_{i}}mediante computaciónmcd(nortei,nortej){\displaystyle \gcd(N_{i},N_{j})}.) Mediante el teorema chino del resto , puede calculardoZnorte1norte2norte3{\displaystyle C\in \mathbb {Z} _{N_{1}N_{2}N_{3}}^{*}}de tal manera quedodoi(modnortei){\displaystyle C\equiv C_{i}{\pmod {N_{i}}}}. EntoncesdoMETRO3(modnorte1norte2norte3){\displaystyle C\equiv M^{3}{\pmod {N_{1}N_{2}N_{3}}}}; sin embargo, dado queMETRO<nortei{\displaystyle M<N_{i}}a pesar dei{\displaystyle i}, tenemosMETRO3<norte1norte2norte3{\displaystyle M^{3}<N_{1}N_{2}N_{3}}. De este mododo=METRO3{\displaystyle C=M^{3}}se mantiene sobre los enteros, y Eve puede calcular la raíz cúbica dedo{\displaystyle C}para obtenerMETRO{\displaystyle M}.

Para valores mayores demi{\displaystyle e}, se necesitan más textos cifrados, en particular,mi{\displaystyle e}Los textos cifrados son suficientes.

Generalizaciones

Håstad también demostró que aplicar un relleno lineal aMETRO{\displaystyle M}El cifrado previo no protege contra este ataque. Supongamos que el atacante descubre quedoi=Fi(METRO)mi{\displaystyle C_{i}=f_{i}(M)^{e}}para1ik{\displaystyle 1\leq i\leq k}y alguna función linealFi{\displaystyle f_{i}}, es decir, Bob aplica una almohadilla al mensajeMETRO{\displaystyle M}antes de cifrarlo para que los destinatarios reciban mensajes ligeramente diferentes. Por ejemplo, siMETRO{\displaystyle M}esmetro{\displaystyle m}bits de longitud, Bob podría cifrarMETROi=i2metro+METRO{\displaystyle M_{i}=i2^{m}+M}y envía esto ali{\displaystyle i}-el destinatario.

Si participa un grupo suficientemente grande de personas, el atacante puede recuperar el texto plano.METROi{\displaystyle M_{i}}de todo el texto cifrado con métodos similares. En términos más generales, Håstad demostró que un sistema de ecuaciones univariadas módulo compuestos relativamente primos , como aplicar cualquier polinomio fijogramoi(METRO)0(modnortei){\displaystyle g_{i}(M)\equiv 0{\pmod {N_{i}}}}podría resolverse si se proporcionan suficientes ecuaciones . Este ataque sugiere que se debería utilizar relleno aleatorio en el cifrado RSA .

Franklin y Reiter identificaron un ataque contra RSA cuando se cifran varios mensajes relacionados: si dos mensajes difieren solo por una diferencia fija conocida entre los dos mensajes y están cifrados con RSA bajo el mismo módulo RSAnorte{\displaystyle N}, entonces es posible recuperar ambos. El ataque fue descrito originalmente con exponente públicomi=3{\displaystyle e=3}, pero funciona de manera más general (con un costo creciente a medida que aumenta)mi{\displaystyle e}crece).

Dejarnorte;mii{\displaystyle \left\langle N;e_{i}\right\rangle }sea ​​la clave pública de Alice. Supongamos queMETRO1;METRO2Znorte{\displaystyle M_{1};M_{2}\in \mathbb {Z} _{N}}son dos mensajes distintos que satisfacenMETRO1F(METRO2)(modnorte){\displaystyle M_{1}\equiv f(M_{2}){\pmod {N}}}para algún polinomio conocido públicamenteFZnorte[incógnita]{\displaystyle f\in \mathbb {Z} _{N}[x]}. Para enviarMETRO1{\displaystyle M_{1}}yMETRO2{\displaystyle M_{2}}Para Alice, Bob puede, ingenuamente, cifrar los mensajes y transmitir los textos cifrados resultantes.do1;do2{\displaystyle C_{1};C_{2}}Eve puede recuperarse fácilmenteMETRO1;METRO2{\displaystyle M_{1};M_{2}}, dadodo1;do2{\displaystyle C_{1};C_{2}}, utilizando el siguiente teorema: Seagramo1(incógnita)=F(incógnita)mido1Znorte[incógnita]{\displaystyle g_{1}(x)=f(x)^{e}-C_{1}\in \mathbb {Z} _{N}[x]}ygramo2(incógnita)=incógnitamido2Znorte[incógnita]{\displaystyle g_{2}(x)=x^{e}-C_{2}\in \mathbb {Z} _{N}[x]}. Entonces(incógnitaMETRO2){\displaystyle (x-M_{2})}es un factor de ambosgramo1(incógnita){\displaystyle g_{1}(x)}ygramo2(incógnita){\displaystyle g_{2}(x)}En la mayoría de los casos, calcular el máximo común divisor del polinomio revela el mensaje directamente:

mcd(gramo1(incógnita),gramo2(incógnita))=incógnitaMETRO2(modnorte){\displaystyle \gcd(g_{1}(x),g_{2}(x))=x-M_{2}{\pmod {N}}}

Una vezMETRO2{\displaystyle M_{2}}se encuentra,METRO1{\displaystyle M_{1}}se recupera mediante computaciónF(METRO2)(modnorte){\displaystyle f(M_{2}){\pmod {N}}}.

El ataque de Coppersmith con almohadillas cortas

Al igual que los ataques de Håstad y Franklin-Reiter, este ataque explota una debilidad de RSA con exponente público.mi=3{\displaystyle e=3}Coppersmith demostró que si el relleno aleatorio sugerido por Håstad se utiliza incorrectamente, el cifrado RSA no es seguro.

Supongamos que Bob envía un mensaje.METRO{\displaystyle M}a Alice usando un pequeño relleno aleatorio antes de cifrarlo . Una atacante, Eve, intercepta el texto cifrado e impide que llegue a su destino. Bob decide reenviarlo.METRO{\displaystyle M}a Alice porque Alice no respondió a su mensaje. Él rellena aleatoriamenteMETRO{\displaystyle M}Eve vuelve a intentarlo y transmite el texto cifrado resultante. Ahora tiene dos textos cifrados que corresponden a dos cifrados del mismo mensaje utilizando dos claves aleatorias diferentes.

Aunque Eve no sabe qué bloc de notas aleatorio se está utilizando, aún puede recuperar el mensaje.METRO{\displaystyle M}mediante el uso del siguiente teorema, si el relleno aleatorio es demasiado corto.

Véase también

Referencias

  1. Boneh, Dan (1999). "Veinte años de ataques al criptosistema RSA" . Notices of the American Mathematical Society . 46 (2): 203– 213.
  2. Glenn Durfee, Criptoanálisis de RSA utilizando métodos algebraicos y reticulares .