martes, 1 de diciembre de 2015

Ejercicio de Cipher Block Chaining

A continuación se presenta un ejercicio del CBC (Cipher Block Chaining). En este caso, tomando
como dato a cifrar uno en hexadecimal, que luego es convertido a binario y ya sobre el cuál se trabaja.

Para poder llevar a cabo el cifrado, el dato en binario se divide en bloques de 8 bits, a los cuales se les denomina "p", después se prosigue llevando a cabo el cifrado de cada uno de los bloques comenzando por p1, donde primero se le realiza un XOR con el vector de inicialización (IV) para después hacer un FES con las claves de AND1, OR2 y NOT, con lo que se obtiene C1, posteriormente se cifra el siguiente bloque, pero en este caso haciendo XOR con la C anterior y después aplicando un FES con las mismas operaciones clave y obteniendo así la siguiente C.

Todo ese proceso se repite ocho veces hasta obtener las 8 Cs.

Ahora para el descifrado, se parte de la primer C, se le aplica un FES inverso para descifrarla y al resultado se le hace un XOR con el vector de inicialización, que por resultado debe dar el bloque que se cifró, es decir las Ps, para las siguientes Cs, se aplica el mismo proceso, sólo que haciendo el XOR con la C anterior. Y finalmente para comprobar esto, cada descifrado tiene que dar exactamente lo mismo que cada una de las P.

Con esto queda realizado el CBC de manera exitosa.