UC-IIC3253 / 2021

Repositorio del curso Criptografı́a y Seguridad Computacional - IIC3253
21 stars 3 forks source link

[Tarea 2] Algún hint para la P1.2? #52

Closed Okhan97 closed 2 years ago

Okhan97 commented 3 years ago

Hola,

Estoy muy atascado en esta pregunta, he investigado pero no logro llegar al 2**30 del enunciado, ¿este numero es en si un hint o no es relevante para la demostración? Independiente de lo anterior, ¿se nos podría dar alguna pista para esta pregunta?

mugartec commented 3 years ago

Hola @Okhan97,

El 230 es el objetivo de la demostración, no es realmente un hint. En este sentido un (no muy útil) hint es comentarles que si puedo dividir la llave en 2 mitades que se pueden verificar independientemente, hay exactamente 228 valores posibles para cada mitad. Entonces para ambas mitades obtengo 2 * 228 = 229 que está cerca de 230 :smiley:.

Ahora un hint más profundo: De acuerdo al enunciado podemos suponer que tenemos textos planos y sus respectivas versiones cifradas. Partamos con un par (m, c:=Enc(k, m)). Obviando la permutación inicial y la permutación final de DES (que no cambian prácticamente nada), lo que conocemos es m = L0 || R0 y c = L3 || R3. Inspeccionando la red podemos notar que R1 = L0 XOR f1(R0), pero al mismo tiempo R1 = R3 XOR f3(L3). Teniendo esto, si me dan una llave k0 yo puedo verificar si dicha llave podría ser la llave correcta, porque puedo calcular el lado derecho de ambas ecuaciones y ver si obtengo el mismo resultado. Ahora el hint es que, como la llave se puede dividir en dos mitades independientes que afectan exactamente los mismos bits del output de todas las fi, yo podría verificar si la primera mitad de la llave podría ser la primera mitad de la llave correcta.

Hay ciertos pasos que deben hacer con cuidado para llegar efectivamente al 230, pero si llegan a algo cercano y el ataque está bien descrito también se va a considerar como una respuesta válida (con algún descuento de puntaje por supuesto).

Espero que sirva. Saludos!