CLCript Entrega 01 DES y AES Rellenos y Modos de Cifra
CLCript Entrega 01 DES y AES Rellenos y Modos de Cifra
CLCript Entrega 01 DES y AES Rellenos y Modos de Cifra
Objetivos:
1. Comprobar el cifrado en mod ECB y CBC.
2. Cifrado y descifrado de textos y archivos.
3. Observar la deficiencia del cifrado ECB que muestra en el criptograma las repeticiones de
bloques del archivo en claro, editando los archivos con un editor hexadecimal.
4. Observar dos tipos de relleno, zero padding usado en el algoritmo DES y PKCS7 usado en el
algoritmo AES.
Comprueba tu trabajo:
Proyecto CLCript © jra - Entrega nº 1 - DES y AES: cifra, rellenos y modos de cifra Página 1
Figura 2. Entrada de la clave en Hexadecimal.
Figura 3. Cifrado del mensaje M1. Criptograma en Resultados Teclado, combo Cifrar.
Proyecto CLCript © jra - Entrega nº 1 - DES y AES: cifra, rellenos y modos de cifra Página 2
Ejercicio 2)
4.1. Cifra ahora el texto M2 con la clave K y repite los pasos del ejercicio 1
M2 = Aquí ya no habrá relleno
K = 0x FF90B1C2D054D89A
4.2. ¿Por qué en este caso ya no hay relleno?
4.3. Saca conclusiones de lo visto en estos dos ejercicios
Comprueba tu trabajo:
Figura 5. Cifrado del mensaje M2. Criptograma en Resultados Teclado, combo Cifrar.
Figura 6. Descifrado del criptograma en Resultados Teclado, combo Descifrar, sin relleno.
Ejercicio 3)
3.1. Con safeDES es recomendable introducir el criptograma en hexadecimal, ya que el
programa a propósito no guarda valores ASCII no imprimibles del criptograma, aunque
lógicamente sí conserve esos bytes en el formato hexadecimal. Esto se hizo con la
Proyecto CLCript © jra - Entrega nº 1 - DES y AES: cifra, rellenos y modos de cifra Página 3
intención de que los alumnos se acostumbrasen a trabajar en hexadecimal, muy común
en criptografía.
3.2. Comprueba que si cifras el siguiente texto en claro M3 (punto incluido), con la clave K y
luego descifras el criptograma introduciendo éste como ASCII, no vas a poder descifrar
correctamente todo el criptograma.
M3 = Una función hash no es un algoritmo de cifrado.
K = 0x ABCDEF0123456789
3.3. Dependiendo de la clave utilizada, algunas veces sí podemos descifrar parte del
criptograma porque en el criptograma aparecen valores ASCII imprimibles. Repite este
ejercicio cifrando M3 con K = 0x ABCDEF987654ABCD.
3.4. Observa que puedes descifrar correctamente sólo algunos los bloques.
Comprueba tu trabajo:
Proyecto CLCript © jra - Entrega nº 1 - DES y AES: cifra, rellenos y modos de cifra Página 4
Figura 9. Cifrado del texto M3.
Figura 10. Descifrado incorrecto al haber introducido como entrada el criptograma en ASCII.
Proyecto CLCript © jra - Entrega nº 1 - DES y AES: cifra, rellenos y modos de cifra Página 5
Figura 11. Cifrado de M3 con la clave K = 0x ABCDEF0123456789.
Observación:
En el descifrado de texto, safeDES lo hace por líneas, lo cual no es del todo correcto ya que el
texto descifrado tendrá estos dos caracteres ASCII añadidos 0D 0A y que significan 0D = CR =
Retorno de carro y 0A = LF = Salto de línea, en cada línea de texto de la caja de entrada.
• Comprueba estos códigos en el archivo pdf de Tablas y códigos, indicado al comienzo
de esta práctica.
• Cifra con la clave K = 0x FF90B1C2D054D89A el texto M4.
• M4 = Una función hash es un algoritmo que transforma un conjunto arbitrario de
elementos de datos, como puede ser un fichero de texto, en un único valor de longitud
fija.
Proyecto CLCript © jra - Entrega nº 1 - DES y AES: cifra, rellenos y modos de cifra Página 6
• Luego descifra el criptograma y observa esos dos caracteres 0D 0A que marcan el fin
de línea, justo después de los espacios en blanco (20) de las palabras un de la primera
línea y ser en la segunda línea.
Comprueba tu trabajo:
Ejercicio 4)
Proyecto CLCript © jra - Entrega nº 1 - DES y AES: cifra, rellenos y modos de cifra Página 7
4.1. Con safeDES y la clave K = 0x 78AF902E8CA1F03D descifra el archivo cifrado.cif que
podrás descargar aquí http://www.criptored.upm.es/descarga/cifrado.cif o también
desde el proyecto CLCript http://www.criptored.upm.es/software/sw_m001s.htm.
4.2. Elige cifrado.dcf como nombre de archivo de destino.
4.3. Observa que en Resultado Ficheros se aprecian muchas cadenas de 0 repetidas, incluso
una gran cantidad al final del archivo. ¿Por qué? Si no sabes la respuesta, busca en
Internet algún editor en hexadecimal e.g. https://hexed.it/ y edita (Open file) el archivo
cifrado.dcf. Abierto el archivo, recorre el código y observa que hay texto legible, incluso
repetido, así como muchos bytes iguales, que es propio de un formato de archivo.
4.4. Cambia la extensión del archivo descifrado de cifrado.dcf a cifrado.exe y observa que se
ha recuperado la calculadora de Windows 95.
4.5. Comprueba un bug de esta calculadora, resolviendo 1015 mod 61. Debe ser 50 y la
calc.exe entregaba 100, un valor erróneo y, más aún, fuera del cuerpo n = 61.
4.6. Cifra el archivo calc.exe con K = 0x 78AF902E8CA1F03D. Observa que las cadenas de 8
bytes en 0 al final del archivo en claro en el criptograma son 6205A78E5078C972.
4.7. ¿Cómo explicas que esto es algo muy negativo del modo de cifra ECB?
Comprueba tu trabajo:
Figura 16. Primeros bloques del descifrado del archivo cifrado.cif desde Resultado Ficheros.
Figura 17. Últimos bloques del descifrado del archivo cifrado.cif desde Resultado Ficheros.
Proyecto CLCript © jra - Entrega nº 1 - DES y AES: cifra, rellenos y modos de cifra Página 8
Figura 18. Archivo cifrado.dcf editado online con HexEd.it (comienzo del archivo).
Figura 19. Archivo cifrado.dcf editado online con HexEd.it (casi al final del archivo).
Figura 20. Bug en calculadora Windows 95 indicando que 1015 mod 61 = 100.
Proyecto CLCript © jra - Entrega nº 1 - DES y AES: cifra, rellenos y modos de cifra Página 9
Figura 21. Cadenas de 8 bytes en 0 del archivo en claro se cifran como 0x 6205A78E5078C972.
Comprueba tu trabajo:
Proyecto CLCript © jra - Entrega nº 1 - DES y AES: cifra, rellenos y modos de cifra Página 10
Figura 23. Relleno en AES de tamaño 0F.
Ejercicio 6)
6.1. Con las mismas claves K e IV, cifra de forma Directa M2 (se ha quitado la “s” en bits) de
forma que el texto en claro tiene 48 caracteres = 384 bits, exactamente 3 bloques:
M2 = La cifra con AES usa bloques de texto de 128 bit
K = 0x 11223344556677889900AABBCCDDEEFF
IV = 0x FFFF1111BBBB2222CCCC3333DDDD0000
6.2. Observa el relleno que se indica ahora en el texto en claro.
6.3. ¿Por qué, a pesar de que la cifra es en modo CBC, excepto el último bloque del
criptograma, los demás bloques son iguales en C1 y C2?
6.4. ¿Cuántos bloques se han cifrado en M1 y cuántos bloques han cifrado en M2?
6.5. ¿Por qué si M1 y M2 tienen diferentes tamaños, en C1 y C2 se observa en el código Base
64 dos signos =?
Comprueba tu trabajo:
Proyecto CLCript © jra - Entrega nº 1 - DES y AES: cifra, rellenos y modos de cifra Página 11
Matriz de estado: 0x 10101010101010101010101010101010
Clave k0: 0x 11223344556677889900AABBCCDDEEFF
7.4. Según lo que has observado, ¿el relleno también se cifra?
Comprueba tu trabajo:
Puedes utilizar esta documentación, otros libros, material multimedia y software de prácticas
generados en Criptored, todos de libre distribución en Internet, para poder demostrar que
entiendes y sabes cómo trabaja la criptografía, logrando la nueva certificación técnica
profesional CriptoCert Certified Crypto Analyst, reconocida por el Centro Criptológico Nacional
CCN de España, disponible desde el mes de abril de 2019.
Encontrarás más información sobre esta certificación y correo de contacto en el sitio web:
https://www.criptocert.com
Proyecto CLCript © jra - Entrega nº 1 - DES y AES: cifra, rellenos y modos de cifra Página 12