Pensemos en esto:
Ek = cifra "E" con clave "k"
M # = bloque de mensaje de texto simple "M" número "#"
C # = Bloque de texto cifrado "C" número "#"
El modo CBC es:
Cx = Ek (Mx XOR Cx-1), o en inglés: para obtener el texto cifrado para el número de bloque actual, realice el cifrado codificado del valor obtenido tomando el bloque de mensaje de texto simple del mismo número, y Xor'ing que contra el bloque de texto cifrado numerado anterior. Esa es la definición de CBC.
Entonces, si tiene una serie de bloques codificados CBC, y se da cuenta de que C2 y C5 son el mismo texto cifrado (es decir, C2 = C5), ya sabe:
C2 = Ek (M2 XOR C1)
C5 = Ek (M5 XOR C4)
Y como C2 = C5, eso significa:
Ek (M2 XOR C1) = Ek (M5 XOR C4)
Por el poder de las matemáticas, eso significa más importante que TAMBIÉN sabes:
AHA !:
(M2 XOR M5) = (C1 XOR C4)
Como ha estado observando los textos cifrados, no solo sabe que C2 es igual a C5, sino que también ha capturado C1 y C4 en sus observaciones.
Entonces calculas (C1 XOR C4) y tienes un valor, lo que significa que tienes un número real y no una variable en el lado derecho de la ecuación marcada "AHA !!".
Ese valor es igual a (M2 XOR M5), como se indicó anteriormente.
Por lo tanto, bajo tu hipótesis, donde tu profesor dice que TAMBIÉN conoces M2 de texto plano, puedes conectarlo en el lado izquierdo y resolverlo.
Sabes que tu M2 XOR'd conocido contra tu M5 aún desconocido es igual al valor conocido que calculaste al tomar el XOR de C1 y C4.
Volver a lo básico. La magia de XOR es esta:
Si A XOR B = C, entonces B XOR C = A, y A XOR C = B
Así es como funcionan las matrices de discos RAID con tres discos, por cierto.
Resultado: los textos cifrados duplicados en CBC combinados con un texto claro conocido correspondiente a uno de los bloques le permiten calcular el texto simple del otro bloque de texto cifrado correspondiente.