¿Cómo funciona un ataque de texto cifrado elegido en el libro de texto RSA?

4

Soy muy nuevo en criptografía y estoy confundido con algo. Aquí está la pregunta sobre la tarea con la que estoy teniendo problemas:

  

Escriba un programa para atacar el Esquema de cifrado RSA de libros de texto , para descifrar el archivo cifrado key_enc.txt que contiene la clave secreta AES de 128 bits junto con el vector de inicialización (IV) para la pregunta 2.

     

Debes explicar y mostrar cómo se realiza el ataque.

     

Los parámetros RSA son los siguientes:

     

N: 92001629535369949668182190680140710002429961412439471184834723194899969898404162 82428855806975402440064473888135838545187330646754494062187654035542047167435016 34608863342073173012508616123265965429721791336874605919036975439595316606713189 21259313523852555003517715050369476348174980850810194157624985747443

     

e: 65537

Mis preguntas son:

  • ¿es posible usar la fórmula en el enlace para encontrar la respuesta con un valor tan grande?
  • dentro del enlace, se da el valor de texto simple pero la tarea no proporcionó un texto simple. ¿Necesito adivinarlo?
pregunta Shinji Kagawa 11.08.2014 - 18:42
fuente

3 respuestas

1

Ya que tienes tu n y e, debes obtener d y tu paciente. que es ϕ(n) .

Aquí está el ejemplo:

Usando: e(d) mod ϕ(n) ≡ 1 , puedes usar un algoritmo euclidiano para resolver esta ecuación para obtener d.

¿Cómo obtener la n? Por lo general, tomas tus dos números primos grandes. por ejemplo, (p = 7 y q = 11) Su n en este caso será p*q-(7*11 = 77) .

¿Cómo obtener ϕ(n)-totient ? Por lo general, usted toma (p-1)*(q-1) = ϕ(n) . Eso es (7-1)*(11-1) = 60 , por lo que su totient es 60: ϕ(n) = 60 .

Su e debe ser < n y no debe compartir factores comunes con ϕ(n) , luego e = 17

Luego, e(d) mod ϕ(n) ≡ 1 ----------- > e=17, d=? , ϕ(n) = 60

sustituya 17(d) mod 60 ≡ 1 < ---- en este caso, está buscando d, que es 53, porque 17*53 mod 60 le dará el resto 1 que satisface esta ecuación --- > e(d) mod ϕ(n) ≡ 1

Para descifrar su texto cifrado, use esto:
m=c^e mod n
donde:
m = texto plano
c = texto cifrado
e = clave de cifrado
n = producto de dos números primos grandes.

    
respondido por el Siduduzo Godfrey Manqele 06.09.2015 - 20:55
fuente
0
  • n es el producto de dos primos grandes, por lo que, por definición, n siempre es un número grande.
  • La pregunta quiere que escriba un programa que descifre el cipehertext, que por definición significa que el programa debe devolver el texto simple.
respondido por el Graham Hill 12.08.2014 - 12:06
fuente
0

Intentaría un ataque en el medio.

Dada una clave pública (N,e) y el texto cifrado c y sabiendo que es un RSA de libro de texto en una clave de 128 bits, puede recuperar el mensaje original (la clave secreta) una buena fracción del tiempo en el tiempo O (2 68 ).

Básicamente, asume que el mensaje de texto sin formato se puede descomponer en dos valores que son menores que 2 68 , es decir ( m = a*b ), donde a < b < 2 68 . Tenga en cuenta que sabemos que desde m < 2 128 si es factorizable, el factor más pequeño es menor que 2 64 .

Nota c = m^e (mod N) o c = a^e b^e (mod N) o c / a^e = b^e (mod N) para los valores correctos de a y b .

Construya dos tablas: la primera consiste en c/a^e mod N para todos los valores posibles de a (de 1 a 2 64 ), la segunda consiste en todos los b^e mod N para todos los valores posibles de b (de 1 a 2 68 ).

Ahora ordene sus dos listas y vea si hay algún par a, b tal que a^e = C/b^e mod N . Si hay una coincidencia, debe tomar los valores correspondientes de a y b y el mensaje original (la clave AES de 128 bits cifrada) será su producto m = a*b .

    
respondido por el dr jimbob 19.05.2016 - 06:13
fuente

Lea otras preguntas en las etiquetas