Block Cipher Modes
1. What happens? Can you recognize a pattern? Explain and take
some screenshots.
Figura 1: Imágenes de Apple y Windows encriptadas con el
algoritmo ECB y llave 0
Como se puede ver en las imágenes, el cifrado muestra claramente el
patrón de la imagen que entra al algoritmo. En general, esto sucede
debido a que el modo ECB toma los bloques y los encripta de forma
individual cada uno. Esto causa que, para patrones similares, la
encriptación sea la misma. En este caso, al haber áreas de la imagen
que tienen color blanco, estas se cifrarán de igual manera, dando como
resultado el contorno del elemento que se está cifrando.
2. What happens if you change the key under ECB mode? Take some
screenshots.
Figura 2. Imagen [Link] cifrada con el algoritmo ECB haciendo uso de
la llave 13 A4 B1 21 15 4a 20 20
Figura 3. Imagen [Link] cifrada con el algoritmo ECB haciendo uso de
la llave 12 A2 AB B4 46 F5 67 BB
Figura 4. Imagen [Link] cifrada con el algoritmo ECB haciendo uso de
la llave 64 BB 32 b7 a7 d5 e3 c6
Como se ve, en este caso las imágenes siguen presentando patrones
claros de la manzana cuando se encripta bajo el modo ECB, esto a
pesar de que se cambien las claves y vectores de inicialización del
algoritmo. La razón por la que ocurre esto es la misma que se explicó
previamente, pues los bloques iguales, se encriptan de la misma
forma.
3. What happens if you change the initialization vector under ECB
mode?
En general, no se espera que haya ningún cambio respecto al original,
puesto que el ECB no hace uso de un vector de inicialización para su
funcionamiento
Figura 4. Imagen [Link] cifrada con el algoritmo ECB haciendo uso de
la llave 64 BB 32 b7 a7 d5 e3 c6. A la derecha vemos la imagen encriptada con IV
0, y a la izquierda con IV 53 b5 a7 4a 12 87 c5 d3
Figura 5. Imagen [Link] cifrada con el algoritmo ECB haciendo uso de
la llave 12 A2 AB B4 46 F5 67 BB. A la derecha vemos la imagen encriptada con IV
0, y a la izquierda con IV 53 b5 a7 4a 12 87 c5 d3
4. What happens with those modes? Do you still recognize a pattern?
Why? Take screenshots.
Figura 6. Imagen [Link] cifrada con diferentes algoritmos, haciendo uso de la
llave 12 A2 AB B4 46 F5 67 BB y vector de inicialización 53 b5 a7 4a 12 87 c5 d3.
En este caso, la imagen superior izquierda corresponde a ECB, la superior derecha
a CBC, la inferior izquierda a PCBC y la inferior derecha a CBF
Como se ve, los algoritmos nuevos que están siendo probados son
mejores que el ECB, pues a priori, el resultado obtenido parece ser
diferente del ruido aleatorio. En este caso, a pesar de que el
ciframiento sigue siendo por bloques, cada bloque tiene como
entrada el texto cifrado previamente, por lo que dos bloques que
tienen los mismos bits ya no serán cifrados iguales. A continuación,
se explica el uso de los algoritmos.
CBC: Este algoritmo recibe como entrada la llave, un vector de
inicialización y la imagen. En primer lugar, se divide la imagen en los
bloques que serán cifrados. En la primera iteración, se toma el IV, y
se realiza un XOR con el bloque 1, el cual será cifrado. A
continuación, este texto cifrado hará XOR con el siguiente bloque de
información, esto se repite hasta que se termine la imagen.
Figura 7. Funcionamiento del CBC. Imagen tomada de
[Link]
_(ECB)
PCBC: Propagating Cipher Block Chaining funciona de forma similar al
anterior. El primer bloque en encriptarse, hará un XOR con el IV, para
cifrarse posteriormente. En la iteración i, se toma el texto plano y
encriptado i-1 y se realiza un XOR al mismo. El resultado de esta
operación se combina con XOR al texto plano i, y el resultado será en
que se implemente
Figura 8. Funcionamiento del PCBC. Imagen tomada de
[Link]
_(ECB)
CFB: En este caso, el algoritmo funciona de manera similar al CBC. En
la primera iteración, se cifra el vector de inicialización con el
algoritmo seleccionado. A continuación, el resultado hace un XOR con
el texto plano, y este dará como resultado el bloque cifrado. Por su
lado, para el bloque i, se cifra nuevamente el cifrado i-1, al cual
haremos XOR con el bloque i, dando como resultado el texto i cifrado.
Figura 9. Funcionamiento del CFB. Imagen tomada de
[Link]
_(ECB)
5. What happens if you change the key under CBC, PCBC or CFB
modes? Take some screenshots.
Figura 10. Dos imagenes encriptadas bajo el algoritmo CBC pero haciendo uso de
diferentes llaves. A la izquierda está encriptado con b4 ac 56 78 3d f8 12 a8 y la
derecha está b4 ac 56 78 3d f8 12 a8
Figura 11. Dos imagenes encriptadas bajo el algoritmo PCBC pero haciendo uso de
diferentes llaves. A la izquierda está encriptado con b4 ac 56 78 3d f8 12 a8 y la
derecha está b4 ac 56 78 3d f8 12 a8
Figura 12. Dos imagenes encriptadas bajo el algoritmo CFB pero haciendo uso de
diferentes llaves. A la izquierda está encriptado con b4 ac 56 78 3d f8 12 a8 y la
derecha está b4 ac 56 78 3d f8 12 a8
En este caso, las imágenes cifradas con dos llaves diferentes siguen
siendo, a priori, indistinguibles al ruido aleatorio. A pesar de que no es
posible verse en los screenshots, utilizar al cambiar de llave, había un
cambio en el patrón resultante de la imagen.
6. What happens if you change the initialization vector under CBC,
PCBC or CFB modes? Take some screenshots.
Figura 17. Dos imagenes encriptadas bajo el algoritmo CBC, mismas llaves pero
haciendo uso de diferentes IV. A la izquierda, el IV corresponde a con 53 b5 a7 4a 12
87 c5 d3 y la derecha está 67 ba ad 24 bb 72 df a5
Figura 18. Dos imagenes encriptadas bajo el algoritmo PCBC, mismas llaves pero
haciendo uso de diferentes IV. A la izquierda, el IV corresponde a con 53 b5 a7 4a 12
87 c5 d3 y la derecha está 67 ba ad 24 bb 72 df a5
Figura 18. Dos imagenes encriptadas bajo el algoritmo CFB, mismas llaves pero
haciendo uso de diferentes IV. A la izquierda, el IV corresponde a con 53 b5 a7 4a 12
87 c5 d3 y la derecha está 67 ba ad 24 bb 72 df a5
En este caso, al cambiar el vector de inicialización, volvemos a obtener
un resultado indistinguible al ruido aleatorio. Por lo tanto las diferencias
no se perciben a simple vista. Aún así, al hacer el ciframiento con ambos
IV, había un cambio perceptible en el resultado final, aunque estos no se
vean claramente en las imágenes
7. What happens with OFB mode? Do you recognize a pattern? Why?
Take screenshots.
Figura 19. Esta figura muestra la operación del OFB al ejecutarlo con la llave 0 y IV 0.
En este caso, al ejecutar el algoritmo con el vector en ceros, se ve
claramente un patrón de la manzana. Esto se debe al funcionamiento de
OCB. Este es muy similar a CBC, a continuación, se muestra una imagen
del mismo.
Figura 20. Funcionamiento del OFB. Imagen tomada de
[Link]
_(ECB)
En este caso, lo que ocurre es que como el vector que encripta el
bloque I depende únicamente del ciframiento de la clave de
inicialización, esto hace que, después de cierta cantidad de bloques,
se repita un ciclo de vectores de inicialización, por lo que empieza a
ocurrir un patrón.
8. What happens when changing the initialization vector under OFB
mode? Did you find a vector that seriously distorted the image?
Take some screenshots.
Figura 21. En esta figura se muestra la imagen cifrada con diferentes vectores
Como se ve, en todas hay un patrón claro de ciframiento. En este caso, se usó
La llave 0
En este caso, lo que ocurre es que la imagen, al estar cifrada con
diferentes vectores de inicialización, obtenemos un resultado
bastante similar. Esto, se da debido a que la encriptación de la
imagen depende sobretodo de la llave que se usa. Esto es, entre más
aleatoria sea la llave, más probable es que no se entienda el
resultado final.
9. What happens when changing the key under OFB mode? Did you
find a key that seriously distorted the image? Take some
screenshots.
Figura 24. En esta imagen, se cifra el logo de Apple haciendo uso de OFB pero con
diferentes llaves. La imagen de la derecha se encripta con la llave
00 00 00 00 00 00 00 00. Por su lado, la imagen de la izquierda se encripta con
la llave 01 ab f5 78 46 09 12 ae. Como se puede ver, al estar encriptada con la
segunda llave, ya no hay ningún patrón apreciable a simple vista.
Como se ve, al probar con una llave diferente, la figura quedó encriptada
en lo que, a priori, parece ser una distribución aleatoria, por lo que fue
posible encontrar una llave que nos entregue un resultado totalmente
distorsionado.
10. Why are de ECB, CBC, PCBC, CFB and OFB modes important
in block-encrypting?
Estos algoritmos son importantes en la encriptación puesto que
algoritmos como DES o AES permiten encriptar un número limitado de
bits. Por lo tanto, el desarrollo de
11. Why are you advised to avoid using ECB mode in block
encrypting?
El modo de encriptación ECB permite al atacante extraer información de
los datos cifrados, puesto que es posible encontrar patrones en ciertos
bloques cifrados. En general, en el cifrado por bloques sabemos que, si
el bloque encriptado i es igual al j, es porque la información es la misma,
por lo que. Por ejemplo, si en una empresa hay n personas con un
mismo nombre, y encuentro n veces un mismo patrón, habré
encontrado las zonas donde se encuentran almacenadas las variables de
estas n personas. Por lo tanto, el uso de este algoritmo se recomienda
si:
- El mensaje es aleatorio con distribución uniforme.
- El mensaje es corto, y por lo tanto no hay tantos bloques de
información.
12. Take into account that the application keeps the 54 byte-header
plain, while encrypting only the bitmap. What would happen if we
encrypted the whole image including the header?
En caso de que el header del bitmap también fuera encriptado, el
programa no podría leer la imagen resultante. En este encabezado
nosotros esperamos encontrar información de la imagen. Por lo tanto, si
se encripta, este encabezado se reemplaza por información aleatoria (si
el algoritmo funciona correctamente). Por lo que el programa no
entendería el formato de la imagen.
13. Would this laboratory work if we tried to encrypt images with
compression formats, such as JPEG or GIF? Do you know some
other image formats that could be used for a similar experiment?
Which ones? Which information may be encrypted? Which
information should remain plain?
JPEG: Este formato no serviría para este laboratorio, esto pues el
funcionamiento de JPEG es diferente al de un bitimap. En este caso, lo
que hace JPEG es, mediante una serie de transformaciones
matemáticas, volver una imagen algo que se puede comprimir mediante
el algoritmo de Huffman, por lo que, al encriptar esta nueva imagen, no
se haría sobre un RBG, si no sobre este nuevo formato. A pesar de que
los algoritmos tendrían los mismos problemas, estos ya no serían tan
fáciles de percibir.
GIF: Este es otro formato que sirve para comprimir imágenes u
animaciones. A pesar de ser similar a un bitmap, el uso de este no es
por bloques, si no que la idea es que se lea en un stream de
información. En este caso, el algoritmo usado consiste en una
eliminación de la información redundante de información. Es decir, si
tengo 10 bits seguidos con el mismo color, puedo eliminar esta
redundancia. En vista de que no se almacena información completa de
la imagen, podemos llegar a la conclusión de que ocurre lo mismo con el
JPEG.
14. How do you explain that, in the example above question 1, round
borders appear squared when encrypting? See the example below.
En este caso, estamos viendo el tamaño de los bloques. En este caso,
sabemos que todos los bloques de 64 bits que sean totalmente blancos
van a ser encriptados de la misma forma. Aún así, cuando el algoritmo
encuentra el primer bloque en una línea que contiene un color diferente
al blanco, lo encripta de forma diferente a como lo hace uno de 54 bits.
Lo que ocurre se ilustra en la siguiente imagen.
Como se ve, en la imagen no encriptada tenemos un bloque de 64 bits
en color totalmente blanco, seguido del primer bloque que contiene el
borde de la manzana. Por lo tanto, lo que va a ocurrir es que el primer
bloque será encriptado de la misma manera, y el segundo bloque será
encriptado de forma diferente, por lo que se notará este cambio.
15. What would happen to squared borders in question 14 if DES were
a 24 bit-block cipher instead of a 64- bit one? What if it were 48-bit
or 72-bit?
En caso de seleccionar un tamaño más pequeño de DES, es de
esperarse que las esquinas sean más pequeñas y el efecto se note
menos, lo mismo con uno de 48 bits. Por el contrario, si se usa un DES
de 72 bits, es de esperar que se noten más las esquinas cuadradas.
16. Get yourself a bit away from the screen. How do you explain that,
in CBC, PCBC and CFB modes, the encrypted image is rather gray-
like?
Yo diría que la razón por la que se da este fenómeno es debido a que
cada color de la paleta es igual de probable. Por lo tanto, al ver muchos
colores juntos, da la impresión que estos se combinan para dar una
percepción grisácea del resultado final. Por lo tanto, más que una razón
del algoritmo, sería una ilusión óptica.
Bibliografía.
1. [Link]
2. [Link]