Está en la página 1de 83

Instituto Politécnico Nacional

Centro de Innovación y Desarrollo


Tecnológico en Cómputo

Cifrado de Imágenes utilizando


Advanced Encryption Standard (AES)
con Permutación Variable

Tesis que para obtener el grado de


Maestría en Tecnología de Cómputo

Presenta:
Ernesto Godínez Rodríguez

Directores de tesis:
Dr. Víctor Manuel Silva García
Dr. Rolando Flores Carapia

Septiembre de 2015
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

ii Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

iii Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

iv Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

v Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

vi Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

Resúmen
En este trabajo se presentan los fundamentos, diseño, construcción y prueba del sistema
de cifrado de imágenes con la metodología AES (Advanced Encryption Standard) y la
función de permutación Variable SEIAES PV.

El estándar AES forma parte de los algoritmos más destacados en el mundo para cifrar la
información, de ahí que se muestra el desarrollo e implementación del software que fue
realizado totalmente apegado a la norma oficial establecida por la Secretaría de
Comercio de los E.E.U.U. y dado a conocer en la Publicación Federal de Estándares de
Procesamiento de Información (FIPS 197, por sus siglas en inglés), del Instituto Nacional
de Estándares y Tecnología (National Institute Standards and Technology –NIST-), para el
cifrado de imágenes Bit Map (BMP), este formato fue seleccionado por no presentar
pérdidas de datos al momento del cifrado, debido a que ciertas dependencias no permiten
que halla variación, ni en un bit, en las imágenes recuperadas, aunque el desarrollo puede
ser implementado para cualquier formato de datos, no solo de imágenes.

Con el fin de fortalecer el estándar AES, se agregaron funciones de Permutación Variable,


que tienen su base teórica en el Teorema JV, implementadas con éxito en sus
antecesores, DES y triple DES (Data Encryption Standard), por investigadores del Instituto
Politécnico Nacional, lo que hace de este desarrollo una innovación propia a un estándar
internacional.

Se presenta la demostración de cada función del estándar AES y Permutación Variable y


su funcionamiento integral, obteniendo resultados con pruebas a 31 imágenes que
incluyen velocidad de cifrado y descifrado, Entropía y Coeficiente de Correlación muy
satisfactorios. Se expone la secrecía con la prueba de variación mínima en un bit de la
llave, dando resultados suficientes para considerarlo como seguro. Al final del trabajo se
menciona un amplio panorama aplicable al presente desarrollo con programación
paralela para hacerlo más competitivo en dispositivos móviles, dispositivos embebidos o
cualquier otro sistema que transmita o procese imágenes, voz y video.

vii Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

Abstract
This paper presents the fundamentals, design, construction and testing of the
image cypher System with the methodology AES (Advanced Encryption Standard)
and the Variable Permutation function SEIAES PV.

The AES standard is part of the most important algorithms in the world for
information encryption. This study shows the development and implementation of
software that was made entirely attached to the official standard established by the
Ministry of Commerce USA and appeared in the publication Federal Information
Processing Standards, FIPS-197 (for its acronym), the National Institute of
Standards and Technology (NIST) for encryption Bit Map images (BMP), which
were selected to be a type of image without loss, due to some agencies not
permiting change in recovered images. The development can be implemented for
any data format, not only images.

In order to strengthen the AES standard, the variable permutation function was
added, which has its theoretical basis in Theorem JV, successfully implemented in
their predecessors, DES and triple DES (Data Encryption Standard), by
researchers at the Instituto Politécnico Nacional (National Polytechnic Institute),
what makes this development an innovation itself by international standards.

Is presented the Demonstration of each function of AES with Permutation Variable


and the integral running test results were obtained with 31 images that include
encryption speed and decryption, Correlation Coefficient and Entropy, were very
satisfactory. We expose the test of variation minimal in the key, one bit, giving
sufficient results as to be considered safe. Finally, this work gives the overview
applicable to this development with parallel programing to make it more
competitive in mobile devices, embedded devices or any other system to transmit
or process images, voice and video.

viii Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

Agradecimientos
El miércoles 1º. de enero de 1936 se hace pública, en todos los medios de
comunicación, la existencia del Instituto Politécnico Nacional, desde entonces el
Instituto ha brindado educación de la más alta calidad, con la cual he sido
beneficiado primero en la licenciatura, luego con la especialización y actualmente
en la Maestría, a través del Centro de Innovación y Desarrollo Tecnológico en
Cómputo CIDETEC, por esto expreso mi más alto agradecimiento.

Agradezco a los Directivos de la Secretaría Académica por el apoyo brindado y a


todos mis compañeros por sus manifestaciones de aliento.

Quiero expresar un afectuoso agradecimiento a mis maestros: Miguel Hernández


Bolaños, Edgar Portilla Flores, Itzama López Yañez, Marlon González Ramírez,
Adauto Ortíz Romero, Mario Aldape Pérez, Eduardo Rodríguez Escobar, Jacobo
Sandoval Gutiérrez, por compartir sus conocimientos con su mejor esfuerzo. Al
Maestro Juan Carlos González Robles que inició este horizonte.

A mis Tutores Víctor Manuel Silva García y Rolando Flores Carapia, por
compartirme su gran afecto transformado en conocimiento, por su paciencia y
dedicación, sin ello no hubiera sido posible el presente trabajo.

Agradezco mi familia por haber puesto las bases fundamentales que sin ellas
hubiera sido imposible llegar: a mi madre por conmover mi inteligencia, mis
hermanos especialmente a Cuco por su ejemplo perdurable, Antonio, Mary,
Carmen, Jesús, Nico, Nati, Paco y Lupe, por el apoyo en su momento que siempre
tuve.

A Lupita mi compañera de cien años, por su amor que también produce libros y
fundamento del presente, a mis hijos Marcela y Emiliano por el tiempo que les
pertenecía. Fuentes de mi motivación.

En general agradezco a todas las personas que de alguna u otra forma han tenido
que ver en la realización de este trabajo y que no necesito nombrar porque saben
que les guardo un afectuoso agradecimiento por su ánimo, optimismo y sobre todo
por su amistad.

ix Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

x Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

Contenido
Resumen vii
Abstract viii
Agradecimientos ix
Contenido xi
Índice de figuras xiv
Índice de tablas xvi
Glosario xvii
Planteamiento del problema. xix
Justificación xxii
Objetivos. xxiii
Metas xxiii
Metodología. xxiii
Capítulo I: Introducción. 1

I.1.- Criptografía. 1
I.1.1.- Antecedentes. 1
I.1.2.- Época contemporánea. 3
I.1.3.- Organización actual. 5
I.1.4.- Principios de un sistema de Cifrado y Descifrado. 6
I.1.5.- Sistema simétrico (DES). 8
I.1.6.- Sistema simétrico Advanced Encryption Standard (AES). 9
I.1.7.- Comparación entre AES, 3DES y DES. 9
I.2.- Estado del Arte. 11
I.2.1.- El uso de las imágenes en la actualidad. 11
I.2.2.- Implementaciones Criptográficas de imágenes. 12
I.2.2.1.- Diseño basado en bloques de RAM con modos de operación
de AES con 8 bits. 13
I.2.2.2.- Múltiple Algoritmo de cifrado AES basado en tablas de
búsqueda. 13
I.2.2.3.- Criptoanálisis de un esquema de cifrado de imágenes basado
en un totalmente renovado algoritmo de caos. 13
I.2.2.4.- Algoritmo de encriptación de imágenes en paralelo basado en
el mapa caótico discretizado. 14
Capítulo II: Herramientas y Conceptos. 15
II.1.- Conceptos de imágenes. 15
II.2.- Estructura interna de un archivo digital. 16
II.2.1.- El Pixel. 16
II.2.2.- Estructura del archivo BMP (Bit Map Picture). 17
II.2.3.- Encabezado del archivo y encabezado de la información. 17
II.2.4.- Paleta de colores. 17
II.2.5.- Información de la imagen. 18

xi Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

II.2.6.- Criptografía e imágenes. 18


II.3.-Descripción de AES. 20
II.3.1.- Algoritmo General de Cifrado. 21
II.3.2.- Transformaciones del Cifrado AES. 22
II.3.2.1.- Ronda Inicial.- AddRoundKey. 23
II.3.2.2.- Sustitución de bytes (SubBytes). 23
II.3.2.3.- Corrimiento de bytes en las filas (ShiftRow) 24
II.3.2.4.- Mezclado de datos con cada columna de la matriz State
(MixColumns) 24
II.3.2.5.- Adicionar la llave de la ronda (AddRoundKey) 25
II.3.2.6.- Algoritmo de Cálculo de Subclaves 25
II.3.2.7.- SubWord 26
II.3.2.8.- Rotword 26
II.3.2.9.- Rcon 26
II.4.- Permutaciones Variables. 26
II.4-1.- Permutación JV 27
II.4.2.- Teorema JV 27
Capítulo III: Desarrollo del Sistema de Encriptado con Advanced Encryption
Standard y Permutación Variable SEAESPV. 29
III.1.-Análisis. 29
III.1.1.-Requerimientos 29
III.2.-Diseño. 30
III.3.-Implementación. 31
III.4.-Pruebas 33
III.4.1.-Pruebas en cadenas 33
III.4.1.1-Transformación total 33
III.4.1.2-Cálculo de Subclaves AES 33
III.4.1.3-Cifrado AES a un bloque de 128 bits 33
III.4.1.4-Descifrado AES a un bloque de 128 bits 33
III.4.2.-Pruebas en imágenes. 36
III.4.2.1- Encriptación a Imágenes con bajo nivel de profundidad. 38
III.4.2.2.-Pruebas a imágenes de diferentes áreas de aplicación 40
III.4.2.3.- Pruebas con variación mínima en la llave 43
III.5.- Resultados 44
III.5.1.- Comparativos de tiempo de cifrado y descifrado contra tamaño
de archivos con procesadores Core 2 y Core i3. 44
III.5.2.-Análisis de los Histogramas 45
III.5.3.- La llave elemento fundamental 46
III.5.4.- Medición de la Entropía 48
III.5.5.-Coeficiente de Correlación 49
III.5.5.1-Interpretación del Coeficiente de Correlación 49

xii Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

III.5.5.2.-Implementación en el Cifrado de Imágenes 50


III.5.5.3.- Resultado de la Entropia y Coeficiente de Correlación
aplicado a 31 imágenes 52
54
Capítulo IV: Conclusiones y Trabajo futuro.
IV.1.-Conclusiones. 54
IV.2.-Trabajo Futuro. 55
Anexo 1 56
Anexo 2 57
Referencias 58

xiii Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

Índice de figuras

I.1.- Máquina Enigma…………………………………………………………………... 3


I.2.- Organización actual de la Criptografía………………………………………….. 5
I.3.- Criptografía Simétrica, dos claves iguales……………………………………… 5
I.4.- Criptografía Asimétrica, dos claves diferentes…………………………………. 6
I.5.- Clasificación de acuerdo con el tipo de operación, llave o flujo utilizado…… 7
I.6.- Además de la fotografía o la huella, la imagen del iris y en un futuro otros
rasgos biológicos. 12
II.1.- Digitalizando una imagen (Adaptación Castleman 1979) ……………………. 15
II.2.- Imagen de 1 bit y sus valores de cada pixel …………………………………… 16
II.3.- Composición por bloques de una imagen BMP.……………………………….. 17
II.4.- Los 128 bits de entrada son agrupados en 4 palabras de 8 bits ……………. 20
II.5.- Algoritmo de cifrado y algoritmo de subclaves 20
II.6.- 4 funciones de transformación, AddRoundKey, SubBytes, ShiftRows y
MixColumns 11 rondas 22
II.7.- Se aplica XOR a cada columna del Estado con y la SubClave
correspondiente de la ronda …………………………………………………… 23
II.8.- Sustitución de cada uno de los 16 elementos del estado por el de la tabla
de SubBytes ……………………………….………………………………………. 23
II.9.- La fila 0 permanece sin corrimiento, la 1 se corre 8 bits a la izquierda, la 2
se corre 16 y la 3 se corre 24 bits……………………………….………………. 24
II.10.- MixColumns, es la multiplicación de cada término 02, 03,09,11,13,14 por el
rango 0 –F 24
II.11.- Pseudo código del Algoritmo Cifrador……………….………………………….. 25
II.12.- Pseudo código del Algoritmo para calcular las subclaves utilizadas en cada 25
Ronda……………….………………………………………….……………………
III.1. Estructura de las principales Funciones del encriptado con AES y 30
Permutación Variable……………….………………………………………….….
III.2.- Algoritmo de cifrado AES 30
III.3.- Estructura de las principales Funciones del encriptado con AES y 31
Permutación Variable
III.4. Transformaciones AES de Cifrado a un Bloque de 128 bits 32
III.5. Opción del Sistema Cálculo de las Subclaves AES 32
III.6. Cifrado y Descifrado AES de un bloque de 128 bits 34
III.7. Función SubBytes en imagen de 512 por 512 pixels 36
III.8 Función ShiftRows 37
III.9. Función MixColumns 37
III.10. Imágenes con bajo nivel de profundidad, un bit y 8 bits 38
III.11. 31 imágenes seleccionadas de diferentes ámbitos 39
III.12. Continuación de las 31 imágenes seleccionadas 40
III.13. Cifrado de la imagen cosmovitral.bmp 9,437,238 bytes, 1,536 por 2048
pixeles, tiempo de cifrado 8.066 segundos en procesador Core i3 42
III.14. Descifrado de la imagen cosmovitral.bmp, tiempo de descifrado 9.033
segundos en procesador Core i3 42
III.15. Cifrado con 2b7e151628aed2a6abf7158809cf4f3c y descifrado con
2b7e151628aed2a6abf7158809cf4f3d, variación de un bit 43
III.16. Histograma de la imagen original y la encriptada, la aplicación muestra la

xiv Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

frecuencia de cada pixel en azul y calcula su probabilidad de ocurrencia 45


III.17. Incremento exponencial de llaves posibles a medida que aumenta la.
longitud de la misma, para 128 bits el número es de 3.40E+38 47
III.18. Cálculo de la Entropía para cada color de la imagen 49
III.19. La correlación refleja la no linealidad y la dirección de la relación lineal.
En e) la correlación es indeterminada o cero 50
III.20. Coeficiente de Correlación, cuando el valor es menor que 1 NO hay 52
relación entre los pixeles, en otro caso el valor de 1 nos indica que
si hay una gran similitud entre los pixeles 51

xv Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

Índice de tablas

I.1.- Tabla usada por Blaise de Vigenére 2


I.2.- Mensaje cifrado 3
I.3 Una característica a tomar en cuenta es la longitud de la llave. 9
II.1 Bits necesarios para represntar nColores 17
II.2 Campos por cada byte del archivo BMP 18
II.3. Técnicas para el cifrado de imágenes 19
II.4.- A través de la formula Ci = Pii mod (m-i) se transmite aleatoriedad a la
28
permutación
III.1. Valores resultantes en cada transformación AES y de las llaves 35
III.2. Imágenes de prueba para el cifrado y descifrado con dos procesadores
diferentes 41
III.3. EL valor de 0.9841 es bastante aproximado a 1 y 0.0425 si lo restamos a lo
0.9841 no se ve disminuido (0.9416) de manera nada notable por
que lo podemos considerar 0 51
III.4. 31 Imágenes consideradas para realizar las diferentes pruebas de cifrado y 53
descifrado, también se obtuvo su Entropía, Covarianza, Desviación
Estándar y Coeficiente de Correlación 52

Gráfica III.1. Resultados de tiempo, procesador y tamaño de archivo al aplicarle


44
las funciones de cifrado y descifrado, ver Tabla III.1 para más detalles

xvi Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

Glosario
AES: Estándar Avanzado de Encriptación

Algoritmo: Conjunto de operaciones elementales que deben ser efectuadas para


obtenerse un resultado deseado.

Algoritmo criptográfico: Algoritmo cuyo objetivo será cifrar o descifrar información


generalmente con una función matemática.

Ataque de fuerza bruta: Ataque que requiere la prueba de todos los valores posibles
hasta que el correcto sea encontrado.

Bit: Digito binario, valores posibles 0 y 1.

Bloque: Secuencia de bits de una longitud determinada. Por lo general, secuencias de


mayor longitud son divididas en bloques de tamaño particular para la aplicación de
diferentes procesos.

Byte: Conjunto de 8 bits. Un byte puede representar 256 valores diferentes.

Cifrado: Cifrar o cifrado. Procedimiento por el cual se hace imposible la comprensión de


un documento a cualquier persona que no posea la llave del cifrado.

Cifrado asimétrico: Algoritmo de encriptado o cifrado basado en una función


matemática irreversible. Este algoritmo y su inverso dependen de dos claves diferentes,
denominadas pública y privada, de forma tal que el conocimiento de una clave no
conduce a la otra. Tanto el algorítmo como su inverso, cada uno con su clave
correspondiente, puede ser empleado para cifrar información, descifrándose con el
contrario.

Cifrado simétrico: Algoritmo de cifrado o encriptado basado en una función que es


reversible, de forma tal que tanto el algoritmo como su inverso dependen de un parámetro
igual para ambos llamado clave secreta.

Clave privada: En un sistema criptográfico asimétrico, es la clave criptográfica de un


sujeto solo conocida por el mismo.

Clave pública: En un sistema criptográfico asimétrico, es la clave criptográfica de un


sujeto que se hace de público conocimiento

Clave secreta: Clave criptográfica compartida y sólo conocida por dos entidades.

Criptosistema asimétrico: Aquel basado en técnicas criptográficas, cuya clave pública


se usa para cifrar y cuya clave privada se emplea para descifrar. Es sinónimo de:
Criptosistema de clave pública.

Criptosistema simétrico: Aquel basado en técnicas criptográficas simétricas. Requiere


un proceso de especificación de la clave, previo a la transformación de la información
cifrada en claro. Son términos sinónimos: Criptosistema de clave secreta, Criptosistema
de clave única y Criptosistema convencional.

xvii Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

Criptoanálisis: Métodos de analizar mensajes cifrados con el objetivo de descifrarlos.

Criptografía: Disciplina de criptología que trata de los principios, de los medios y de los
métodos de transformación de la información con el objetivo de enmascarar su
significado.

Criptograma: Mensaje cifrado o codificado.

Criptología: Ciencia de los mensajes secretos. Está compuesta por las disciplinas de
criptografía y de criptonálisis.

Descifrar: Operación inversa de cifrar, o sea, obtener la versión original de un mensaje


cifrado. Al contrario de la desencriptación, aquí se conoce el método decifrado.

Llave: En un sistema de encriptación, corresponde a un nombre, una palabra, una frase,


etc, que permite, mediante el algoritmo de encriptación, cifrar o descifrar un mensaje.

Texto Cifrado: Datos ininteligibles producidos mediante cifrado.

Texto en claro: Datos inteligibles que pueden ser leidos o procesados sin la aplicación de
ningun descifrador.

XOR: Operación lógica de "o exclusivo". Se resume en 0+0=0, 0+1=1, 1+0=1 y 1+1=0.

xviii Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

iii. Planteamiento del problema


Los fraudes y robos de información que hay en el envío y recepción de los datos a través
de la red, a las empresas y usuarios en general cuando realizan diferentes transacciones
con la información, la cual desde que es generada, almacenada, procesada y transmitida,
existen ambientes no seguros que permiten a un agente ajeno para que la pueda
interceptar para modificar, robar, y en general hacer mal uso de la misma.
Se desea realizar el envío de información en general desde un usuario que actualmente
como emisor hacia un usuario que actúa como receptor mediante el uso de un canal
considerado como inseguro. Durante el paso del mensaje o información por el canal
inseguro, se corre el peligro de que exista una tercera persona interceptando y/o
recibiendo la información destinada al receptor que se encuentra en forma legible y
decodificada. Quizás en muchos casos los mensajes o información enviada puede que no
sea un gran secreto, sin embargo, cuando sí se requiere del envío de información
confidencial este proceso inseguro puede ser un gran problema [5].
Considerando que:
 En la actualidad un alto porcentaje de la información se encuentra digitalizada y
sus medios se encuentran conectados a una red.
 Existe información en estos medios de mucho valor llamada información sensible,
ya sea que se puede obtener una ganancia económica, política, social o
estratégica militar.
 La red de Internet carece de esquemas seguros para transmitir la información.
 Existe un creciente número de usuarios, organizaciones e inclusive instituciones
que amenazan con el manejo inadecuado de la información y que asechan la red
sistemáticamente con medios sofisticados de software y hardware.
 Gran parte de esta información utilizan imágenes las cuales contienen información
sensible y que tendría que estar al alcance sólo de sus propietarios o gestores
autorizados y protegidos por leyes del uso de la información y que en manos de
terceros no autorizados pueden tener mal uso [23].
Asimismo por la vulnerabilidad tanto de individuos como instituciones por el robo y mal
uso de su información, cada vez más frecuente en la red de Internet, como lo muestran
los resultados de de la empresa Enjoy Safer Technology (ESET), por citar un ejemplo,
cuya misión es proteger a los usuarios y empresas de América Latina contra todo tipo de
amenazas informáticas a través de tecnología multipremiada y servicios de seguridad.
 La amenaza más relevante es la pérdida de datos, identificada por el 57.62 % de
los entrevistados,
 La vulnerabilidad del software y sistemas fue seleccionada por casi el 40% de los
encuestados ratifican la relevancia de los problemas de seguridad en aplicaciones
dentro del marco general de la seguridad de la información.

xix Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

 El fraude informático tanto externo (37.60%) como interno (37.24%) fue


seleccionado en tercera ubicación.
 El 21,32% indicó al malware como un tema de preocupación.
 Más del 50% de los encuestados indicaron que del presupuesto de IT, menos del
5% es asignado a la seguridad de la información, mientras que sólo el 20% de los
encuestados dijeron que este número ascendía a más del 10% del total.
Y ante la creciente involucramiento de Instituciones gubernamentales como la NSA
(Agencia de Seguridad Nacional de los E.E.U.U.) en casos de espionaje como el
mencionado en la nota periodística aparecida el 23 de noviembre de 2013 en el periódico
La Jornada, cuya redacción afirma que “La NSA infecta 50 mil redes con software
maligno”, y para no quedar en desconocimiento de esta alarmante problemática mundial
se menciona la noticia completa, por citar un ejemplo:
Amsterdam. La Agencia de Seguridad Nacional (NSA) de Estados Unidos infectó a
más de 50 mil redes de computadoras en todo el mundo con software maligno
diseñado para robar información confidencial, según revelan documentos
proporcionados por el ex contratista de esa dependencia Edward Snowden, quien
se encuentra asilado en Rusia, a los que tuvo acceso el diario holandés NRC.
Una presentación de 2012 explica cómo la NSA recoge información de todo el
mundo mediante una “Red Informática Explotación” utilizada en más de 50 mil
localidades para la infiltración secreta de los sistemas informáticos obtenidos
mediante la instalación de malware. Los ataques son realizados por un
departamento especial llamado Tailored Access Operations (TAO) que cuenta con
más de un millar de piratas informáticos.
El diario The Washington Post reportó en agosto pasado que la NSA instaló unos
20 mil “implantes” en 2008 y que realizaba estas operaciones cibernéticas desde
1998, con base en un informe sobre el presupuesto secreto de los servicios de
inteligencia estadounidenses, refirió Cubadebate en su edición digital.
En septiembre de 2013, el proveedor de telecomunicaciones Belgacom descubrió
que durante varios años el servicio de inteligencia británico instalaba software
malicioso en sus redes para recolectar los datos telefónicos y de tráfico de sus
clientes. En ese caso, Gran Bretaña utilizó una página falsa en Linkedin para
atraer a los empleados de la empresa.
La NSA ha realizado estas operaciones además en Brasil y Venezuela. El software
maligno instalado en estos países puede ser controlado de forma remota y
permanecer activo durante años sin ser detectado. Los implantes actúan como
“células durmientes” que se pueden activar con la pulsación de un botón.
La NSA no quiso hacer comentarios acerca de este tema y lo remitió al gobierno
de Estados Unidos. Un vocero de la administración de Barack Obama afirmó que
la divulgación de material secreto es perjudicial para la seguridad nacional, indicó
el canal de noticias Rusia Today en su sitio de Internet.
Un grupo de organizaciones no gubernamentales entre las que se encuentran la
Electronic Frontier Foundation, Access y Aministía Internacional escribieron una

xx Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

carta a los miembros de la Asamblea General de la Organización de Naciones


Unidas (ONU) para “sentar una posición común en contra de las prácticas
indiscriminadas de vigilancia masiva, intercepción y recopilación de datos, tanto en
Estados Unidos como en el extranjero”.
Previamente, Brasil y Alemania presentaron una resolución al respecto que los
países de la alianza Five Eyes (Estados Unidos, Canadá, Australia, Gran Bretaña
y Nueva Zelanda) trataron de debilitar.
Por todo lo anterior se pretende contribuir a un esquema seguro de protección de datos
basado no sólo de software sino en la implementación de estándares probados y con
parámetros medibles de seguridad para proteger la información que se refiere a imágenes
en formato BMP mediante el cifrado y descifrado y adicionando esquemas de seguridad
con algoritmos innovadores.

xxi Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

iv. Justificación
Como resultado de la búsqueda específica sobre la encriptación de imágenes mediante
métodos seguros, se ha observado un vacío de investigación, lo que existe plantea
soluciones a problemáticas muy específicas, por lo que sigue sin haber una metodología
para el cifrado de imágenes, que utilice algún estándar mundial de cifrado que haya sido
sometido a pruebas que para clasificarlo como seguro.
La imagen en la actualidad es un recurso cada vez más utilizado como evidencia de la
realidad y que simplifica la identidad de la misma, debido a esto, las bases de datos
incorporarán más imágenes para describir o identificar la misma. Muchas de estas
imágenes tendrán que ser cifradas con mayor frecuencia, por lo que los tiempos de la
misma deberán reducirse y por lo tanto debemos estar en la búsqueda de nuevos e
innovadores algoritmos que permitan reducir estos tiempos.
Aunque en el presente trabajo tiene un alcance sobre el formato de imágenes BMP, se
propone que el algoritmo se construya sin la dependencia del tipo de imagen, para que
con sólo algunas modificaciones pueda ser utilizado para otros formatos.
También el presente trabajo no sólo pretende el diseño y la implementación segura de un
algoritmo para el cifrado de imágenes, sino aportar en la construcción de una metodología
innovadora utilizando bloques de 128 bits en formato entero buscando tiempos aceptables
de cifrado y descifrado en ciclos más cortos en las transformaciónes de AES.
Otra innovación que justifica el presente trabajo, es la introducción de la permutación
variable al criptograma de AES, utilizando para cada bloque diferentes cadenas formadas
por los decimales del número Pi, haciendolo un esquema de cifrado propio, con el fin de
fortalecer el esquema de criptogrtafía AES.

xxii Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

v. Objetivo(s)
General
Diseñar e implementar un algoritmo para la encriptación de imágenes en formato sin
pérdidas empleando Advanced Encryption Standard (AES) con permutación variable.

Particulares
 Incrementar la complejidad del algoritmo de cifrado AES implementando
permutación variable.
 Diseñar el algoritmo para cifrar imágenes en formato sin pérdidas.
 Implementar el algoritmo para el cifrado de imágenes sin pérdidas en el lenguaje
de Programación Orientado a objetos C++.
 Implementar una medida para el grado de aleatoriedad que tienen la distribución
de los bits para cada uno de los colores básicos.

Metas
 Producir un sistema que permita el cifrado de imágenes BMP utilizando Advanced
Encryption Standard (AES) con una permutación variable.
 Emitir recomendaciones para la elaboración de una metodología en el cifrado de
imágenes en diferentes formatos.
 Elaborar un algoritmo de permutación variable para el cifrado de imágenes para
integrarlo a AES.

vi. Metodología
Investigación y/o asesoría para obtener el conocimiento de las herramientas para el
desarrollo de la tesis como son:
 Investigación en el AES.
 Investigación de la Permutación variable.
 Estructura de los archivos de imágenes BMP y C++.
 Diseño de la permutación a implementar y su acoplamiento con AES.
 Diseño del Sistema que permita cifrar y descifrar una imagen.
 Realización de las pruebas y correcciones a la unidad de cifrado.

xxiii Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

Capítulo I: Introducción

I.1.- Criptografía.

La seguridad en la información es uno de los principales motivos de la Criptografía, que


en la actualidad es considerada una ciencia gracias a su relación con las matemáticas, la
estadística, la teoría de la información, la teoría de los números y la teoría de la
complejidad computacional. Sin embargo, el objetivo de la Criptografía no es sólo
mantener los datos secretos, sino también protegerlos contra modificación y comprobar la
fuente de los mismos.

Una vez que la criptografía mantiene los datos de manera secreta, el criptoanálisis
examina un texto cifrado para obtener la información original sin conocimiento de la clave
secreta, esto es, de forma ilícita rompiendo así los procedimientos de cifrado establecidos
por la Criptografía, por lo que se dice que Criptoanálisis y Criptografía son ciencias
complementarias pero contrarias.

Por otro lado la esteganografía se encarga de esconder en el interior de un mensaje, otro


mensaje secreto, el cual sólo podrá ser entendido por el emisor y el receptor y pasará
inadvertido para todos los demás [25].

I.1.1-Antecedentes.
Aproximadamente en el año 1500 A.C. en la villa egipcia cerca del río Nilo llamada Menet
Khufu, Khnumhotep II, el arquitecto del faraón Amenemhat II, construía algunos
monumentos, los cuales necesitaban ser documentados, cuya información o escrituras
en pastillas de arcilla no debían ser de dominio público.
El escriba de Khnumhotep II tuvo la idea de sustituir algunas palabras o tramos de texto
de estas pastillas. Si el documento fuera robado, el ladrón no encontraría el camino que lo
llevaría al tesoro - moriría de hambre, perdido en las catacumbas de la pirámide.
Entre el año 600 y 500 a.C. las culturas como la Egipcia, China, Hindú y la Mesopotámica
desarrollaron la esteganografia:
* Tatuajes con mensajes en la cabeza de esclavos. Estos tenían que esperar a que el
cabello creciera para ocultar el mensaje y posteriormente en la peluquería se podía
conocer el mensaje.
* Lacras en la madera de placas de cera. Estas lacras eran escondidas con cera nueva.
Para descifrar, bastaba derretir la cera.
* Mensajes dentro del estómago de animales de caza, y también de humanos.

Centro de Innovación y Desarrollo 1


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
Tucídides, historiador y militar ateniense de la antigua Grecia, cuenta sobre las órdenes
entregadas por el príncipe y general espartano Pasanius en el año 475 a.C. a través del
que podría ser el sistema de criptografía militar más antiguo, el scytale o bastión de
Licurgo, como un dispositivo para esconder mensajes. El scytale consiste en un bastión
de madera alrededor del cual se enrolla firmemente una tira de cuero o pergamino, larga y
estrecha. Se escribe el mensaje en el sentido de la largura del bastión, la tira es
desenrollada y contiene el mensaje cifrado, año 384 -322 a.C.

Tabla I.1.- Tabla usada por Blaise de Vigenére

Julio César usó su famosa cifra de sustitución para cifrar mensajes gubernamentales.
Para componer su texto cifrado, César alteró letras desviándolas tres posiciones; La A
hacía D, B se hacía E, etc. Para reforzar el cifrado se sustituían letras latinas por griegas
[26].
Hay muchas referencias en la historia de la criptografía. Para concluir esta parte histórica
no puede quedar sin mención una de especial importancia, la que desarrolló el
diplomático, criptógrafo y químico francés Blaise de Vigenére nacido en 1523 que de
algún modo generalizaba el sistema de Julio César, usando la función lineal de cifrado:
f(x)=x+b mod n
donde x es el mensaje a cifrar y b la clave de cifrado, n es el número de símbolos del
alfabeto en el que nos encontramos. Para efectuar este cifrado se usaba los símbolos de
la Tabla 1.
Las letras de la primera fila corresponden a las letras del mensaje original, las letras de la
primera columna corresponden a las letras de la clave. Se toma cada letra del mensaje
original (i), y se elige la letra correspondiente de la clave en la primera columna (j),
entonces la letra que está en la intersección (ij) es la letra cifrada correspondiente. En
términos de la fórmula queda como:

2 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
f(xi)=xi+bi mod n
Como ejemplo; para cifrar el mensaje "HOLA MUNDO" (los xi), se elige una palabra clave
de la misma longitud que el mensaje original, por ejemplo "ESTA LLAVE" (cada letra
corresponde a un bi ). El mensaje cifrado es el que aparece en la Tabla 2 [2].

H → H+E = L
O → O+S = G
L → L+T = E
A → A+A = A
M → M+L = X
U → U+L = F
N → N+A = N
D → D+V = Y
O → O+E = S

Tabla I.2.- Mensaje cifrado

I.1.2.- Época contemporánea.


En 1923 se construyó la máquina Enigma, por el holandés, A. Koch y el ingeniero alemán
Arthur Scherbius, que fue una máquina diseñada para facilitar las comunicaciones
seguras durante la Segunda Guerra Mundial Figura I.1, era una máquina electromecánica
de cifrado, que generaba abecedarios según la posición de unos rodillos que podrían
tener distintas órdenes y posiciones. Usaba un método simétrico (una sola clave para
transmisor y para el receptor) con un algoritmo que dependía de una clave) que estaba
formada por: los rotores o rodillos que usaba, su orden y la posición de cada anillo, siendo

Figura I.1.- Máquina Enigma

Centro de Innovación y Desarrollo 3


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
esto lo más básico.
La máquina Enigma contaba también con un libro de claves que contenía la clave del día
y hacia un poco más difícil encontrar la clave, pero no era una clave lo suficientemente
segura como para que no se pudiese descubrir [4].
En la segunda guerra mundial, el ejército de Estados Unidos, introdujo en sus tropas en el
regimiento de comunicaciones, a los indios pieles rojas para que establecieran la
comunicación en su lengua, ya que no era conocida por el enemigo, con muy buenos
resultados [21].
En 1940 entra en funcionamiento la primera bomba criptológica inglesa llamada Ultra o
“Bomba Turing” del célebre Alan Turing que conjuntamente con Joan Clarke, matemática
y destacada mujer criptoanalista, participaron de manera importante en descifrar los
códigos de la máquina alemana Enigma [22]. En 1942 el Capitán Joseph Rochefort
descifró el código japonés JN-25 que condujo a la célebre victoria de Midway.
La formalización matemática de la criptografía inició con Claude Shannon (1916-2001),
con su famoso estudio publicado en 1946: “Una teoría matemática de la Comunicación”
que se ocupa del problema de la seguridad de la comunicación y en la cual establece: “En
un cifrado perfecto la longitud de la clave debe ser por lo menos el tamaño del texto a
cifrar”[37].
En la actualidad el uso masivo de las tecnologías de la información y específicamente el
uso de la computadora, marca una nueva etapa en este campo y consecuentemente
también en la criptografía, que se caracteriza por algoritmos formalmente definidos y
publicados como estándares, los cuales integran llaves cada vez más grandes y
algoritmos también más complejos, a continuación podemos ver algunas fechas
importantes en el desarrollo de los mismos:
 1976, invención del algoritmo simétrico DES (Data Encryption Standard). DES es un
método de cifrado por sustitución y permutación, utiliza una llave de 56 bits
permutadas en 16 sub-llaves de 48 bits. Para el descifrado utiliza un algoritmo
idéntico de manera inversa.
 1976, Diffie-Hellman, inventan un esquema de intercambio de claves basada en el
Problema del Logaritmo Discreto, dando como nacimiento a la criptografía de clave
pública.
 1977, Ron Rivest, Adi Shamir y Len Adleman, inventan el sistema RSA, para
intercambio de claves y firma digital basado en el Problema de la Factorización
Entera.
 1985, N. Koblitz y V. Miller introducen las curvas elípticas en la criptografía de clave
pública, el mayor atractivo de esto, es la reducción de la longitud de las claves de
1024 bits a 160.
 1989, N. Koblitz, de manera natural propone el uso de las curvas hiperelípticas en el
uso de la criptografía de clave pública.
 1996, J. Hoffstein, J.Pipher y J.H. Silverman inventan el sistema NTRU basado en
retículas y es inmune por el momento a las computadoras cuánticas.

4 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
 2000, Nace oficialmente el nuevo estándar de encriptación llamado Advanced
Encryption Standard (AES), con el algoritmo Rijndael, desarrollado por dos
investigadores polacos, Joan Daemen y Vincent Rijmen fue seleccionado ganador por
su rapidez y eficiencia así como su fácil implementación en un ancho rango de
plataformas, que sustituye a DES.
 2001, Boneh y Franklin inventan la criptografía bilineal, poniendo en práctica sistemas
de cifrado basados en la identidad, es decir, que la clave pública puede ser cualquier
cadena de caracteres. [3]

I.1.3.- Organización actual.


Con el fin de ofrecer un contexto claro del esquema de seguridad criptográfica

Organización Actual de la
Criptografía

Simétrico Híbrido Asimétrico

AES

Figura I.2.- Organización actual de la Criptografía

actualizado, se presenta la Figura I.2, en donde se incluyen tres grandes grupos


generales de acuerdo al cifrado basado en claves, simétrico, asimétrico e híbrido.
El cifrado simétrico utiliza una sola clave para cifrar y descifrar el mensaje. Esto significa
que la persona que cifra el mensaje debe dar al destinatario la clave Figura I.3.
Para utilizar el cifrado simétrico, el remitente cifra el mensaje y, si el destinatario no tiene
ya una clave, envía el texto cifrado al destinatario por separado. El destinatario utiliza la

Figura I.3.- Criptografía Simétrica, dos claves iguales [19].

clave para descifrar el mensaje. Este método es fácil y rápido de implementar.


La criptografía asimétrica, también llamada criptografía de clave pública o criptografía de
dos claves, es el método criptográfico que usa un par de claves para el envío de
mensajes. Las dos claves pertenecen a la misma persona que ha enviado el mensaje.
Una clave es pública y se puede entregar a cualquier persona, la otra clave es privada y el
propietario debe guardarla de modo que nadie tenga acceso a ella. Además, los métodos

Centro de Innovación y Desarrollo 5


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
criptográficos garantizan que esa pareja de claves sólo se puede generar una vez, de
modo que se puede asumir que no es posible que dos personas hayan obtenido
casualmente la misma pareja de claves ver Figura I.4.
Si el remitente usa la clave pública del destinatario para cifrar el mensaje, una vez cifrado,
sólo la clave privada del destinatario podrá descifrar este mensaje, ya que es el único que
la conoce. Por tanto se logra la confidencialidad del envío del mensaje, nadie salvo el
destinatario puede descifrarlo.

Figura I.4.- Criptografía Asimétrica, dos claves diferentes [19].

El tercer esquema de cifrado es una combinación de los dos anteriores, el esquema


híbrido. La mejor aportación del cifrado híbrido radica en que resuelve en gran medida el
problema de distribución de llaves para esquemas simétricos y el problema de eficiencia
para esquemas asimétricos [39].
AES se encuentra dentro de los criptogramas simétricos La simplicidad del diseño hace
que el algoritmo sea fácil de entender e implementar de manera eficiente. Lo caracteriza
su alta resistencia contra criptoanálisis diferencial y lineal, hasta la fecha AES es el más
importante en criptografía simétrica.

I.1.4.-Principios de un sistema de Cifrado y Descifrado


Un sistema de cifrado es aquel que permite que tanto emisor y receptor cuenten con
determinada información confidencial, que una vez cambiada circula por un medio
inseguro y otro tercero no la pueda conocer.
El emisor proporciona el mensaje original, el cual mediante un algoritmo público de
cifrado, un determinado procedimiento y auxiliado por una clave, dicho mensaje lo
transforma en un mensaje cifrado, que se envía por un canal público. El receptor
transforma el mensaje cifrado en el mensaje original con ayuda de la clave y el algoritmo
de descifrado.
El mensaje puede ser interceptado por un criptoanalista quien buscará desencriptar el
mensaje cifrado y encontrar el mensaje original.
Sistema de Encriptado Seguro, que es aquel que a pesar de que el criptoanalista o intruso
conozca el sistema en que fue encriptado, el mensaje encriptado o aún con equipo de alto
poder de procesamiento no pueda descifrarlo sin la clave o las claves. Conceptos
utilizados a lo largo de todo el documento y necesarios para el desarrollo del presente
trabajo [31].

6 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
En 1883 el filólogo de origen holandés Auguste Kerckhoffs publicó en la Revista de
Ciencias Militares francesa los ensayos que versaban sobre criptografía militar y
supusieron no sólo una revisión del estado del arte de la criptografía sino también nuevos
conceptos para las técnicas francesas en la materia en esa época, de ahí se desprende
que la seguridad de un sistema no puede depender de mantener en secreto su diseño por
su vulnerabilidad y a su alto costo. A continuación se mencionan los principios Auguste
Kerckhoffs que después de más de cien años siguen vigentes [32] El criptograma debe
ser indescriptible.
 El sistema debe ser compuesto por información pública (conocida por todos) como
el algoritmo que se emplea para cifrar y por información privada (sólo emisor y
receptor la conocen) como son las claves usadas para el cifrado y descifrado.
 La clave debe estar disponible al receptor o transmisor y fácil de cambiar.
 El criptograma debe ser enviado por los medios de transmisión habituales.
 El sistema debe ser portátil y empleado sólo por las personas adecuadas.
 El proceso de descifrado debe ser fácil de usar, su complejidad debe ser la
suficiente para mantener la seguridad del sistema.
Por lo anterior, el cifrado y descifrado constituye un elemento central para poder transmitir
de manera segura la información por un medio público inseguro. A continuación se
presentan muy brevemente la clasificación de los sistemas de cifrado de acuerdo a las
operaciones para cifrado, llaves y su procesamiento.
En la Figura I.5 se muestra un resumen de estos tres pares de conceptos, que se refieren
a la tipo de transformación utilizada en el algoritmo, método del algoritmo según la llave y
la forma en que se procesa la información que se va cifrar o descifrar.

Transposición

Simétrico Bloques

Clasificación de
Sistemas de
Cifrado
Asimétrico
Flujo

Sustitución

Figura I.5.- Clasificación de acuerdo con el tipo de operación, llave o flujo utilizado.

Centro de Innovación y Desarrollo 7


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
El tipo de operación utilizada para obtener el criptograma a partir del texto:
Sustitución: Los caracteres que conforman el mensaje original se intercambian por
otros que pueden ser del mismo alfabeto o de uno diferente. La sustitución causa
confusión (término introducido por Shannon), es decir oculta la relación que existe
entre el texto claro y el texto cifrado.
Transposición: Se intercambian de lugar los caracteres que conforman un
mensaje, por lo que el criptograma contiene los mismos caracteres que el mensaje
en claro pero resultan incomprensibles a simple vista ya que están desordenados.
La transposición causa difusión (término introducido por Shannon), es decir elimina
la redundancia (demasiada abundancia de las mismas palabras) del texto en claro,
esparciéndola a lo largo de todo el texto cifrado.
El número de claves utilizadas durante el proceso de cifrado/descifrado.
Sistema Simétrico. Es cuando el receptor y el emisor utilizan una misma clave.
Sistema Asimétrico.- Es cuando el receptor y el emisor utilizan claves diferentes.
La manera en que el texto es procesado.
Cifrado de bloques. Es cuando un conjunto completo de elementos se procesa
produciendo un bloque de salida.
Cifrado de flujo. Es cuando cada elemento es procesado produciendo un elemento
de salida.

I.1.5.- Sistema simétrico (DES).

En criptografía un sistema de block cifrado es un sistema de cifrado de llave simétrica que


trabaja con grupos de bits de longitud fija denominados bloques, por ejemplo un bloque de
128 bits de texto plano como entrada, produce su correspondiente bloque de 128 bits pero
cifrado, la transformación se controla mediante una segunda entrada de bits llamada clave
secreta.

El Estándar de Encriptación de Datos DES por sus siglas en inglés (Data Encryption
Standard) es un método de cifrado conocido como Feistel Substitution Permutation
Network (SPN) y que ha influenciado en este campo de manera muy importante, el cual
fue seleccionado como el estándar en 1977 (aparecido en el FIPS 46, Federal Information
Processesing Standard de los Estados Unidos). DES es un método de cifrado por
sustitución y permutación, utiliza una llave de 56 bits permutadas en 16 sub-llaves de 48
bits. Para el descifrado utiliza un algoritmo idéntico de manera inversa.

En 1998 la Electronic Frontier Fundation construyó un Cracker con menos de $250 mil
dólares que pudo decodificar mensajes en DES en menos de una semana, por esto DES
ha sido tomado con reservas. En respuesta aparece triple DES que extiende el tamaño de
la llave y aplica el algoritmo tres veces sucesivas con tres diferentes llaves. La llave
combinada de esta manera resulta de un tamaño de 168 bits (3 por 56), este método triple
ha dado buenos resultados y está disponible para protocolos en sistemas criptográficos
de internet y es usado en multiples aplicaciones y desarrollos, por lo cual se considera
vigente [8][9].

8 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
I.1.6.- Sistema simétrico Advanced Encryption Standard (AES).
En Septiembre de 1997 el Instituto Nacional de Estándares y Tecnología (NIST por sus
siglas en inglés) emitió una convocatoria para contar con un nuevo estándar de
encriptación que le llamó Advanced Encryption Standard (AES) que reemplazaría al Data
Encryption Standard (DES). En octubre del año 2000, el algoritmo Rijndael, desarrollado
por dos investigadores polacos, Joan Daemen y Vincent Rijmen fue seleccionado ganador
por su rapidez y eficiencia así como su fácil implementación en un ancho rango de
plataformas.
El algoritmo Rijndael destinado a convertirse en el nuevo estándar mezcla el modelo de
Sustitución y Permutación de Red (SPN Substitution-Permutation Network) con
operaciones de campos de Galois en cada ciclo.
AES es seguro pero no es absoluto, cualquier pregunta de encriptación y seguridad debe
plantearse tomando en cuenta de cuánto tiempo y que tan alto es el costo que tome a un
atacante encontrar la llave. Se puede hablar de manera comercial del costo de un millón
de dólares para descifrar llaves de 70 bits. Se puede hablar de cuanta seguridad es
requerida para estimar un costo [10][11].

I.1.7.- Comparación entre AES, 3DES y DES


En este apartado se muestran 9 factores de los tres esquemas criptográficos AES 3DES y
DES, en la Tabla 3 aparecen concentrados.

Factores AES 3DES DES

Longitud de la 128, 192, o 256 bits (k1,k2, y k3) 168 bits, (k1 y k2) 56 bits
llave 112 bits

Tipo de cifrado Cifrado de bloque Cifrado de bloque simétrico Cifrado de bloque simétrico
simétrico

Tamaño de bloque 128,192, o 256 bits 64 bits 64 bits

Año Desarrollado 2000 1978 1977

Resistencia al Fuerte contra diferencial, Vulnerable a diferencial, Ataque Vulnerable al criptoanálisis


Criptoanálisis truncado diferencial, lineal, de fuerza bruta el texto plano diferencial y lineal. Debilidad
interpolación y ataques puede ser analizado usando en las tablas de sustitución.
cuadrados criptoanálisis

Seguridad Considerado seguro Una sola debilidad fue la salida Probado inadecuadamente
de DES

Posibles llaves 2128, 2192, o 2256 2112 o 2168 256

Posibles llaves de 9516, 9524, o 9532 9514 o 9521 957


caracteres

Tiempo requerido Para una llave de 128 bits: Para llave de 112 bits: 800 días. Para llaves de 56 bits: 400
para revisar todas 5X1021 años. días.
las llaves posibles
hasta 50 billones
por segundo **

Tabla I.3 Una característica a tomar en cuenta es la longitud de la llave, [1].

Centro de Innovación y Desarrollo 9


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
DES utiliza una clave de 56 bits. Utiliza un sistema de Feistel 16 ciclos, con una llave
general de 56 bits permutadas en 16 subclaves de 48 bits, una para cada ciclo. En 1992
pudo ser roto con métodos de fuerza bruta, y ahora se considera obsoleto
En el caso de 3DES podemos decir que en los sistemas actuales que lo usan pueden
asegurar un nivel de seguridad aceptable sólo con el uso de la llave máxima.
En este comparativo entre DES, 3DES y AES los nueve factores que se presentan,
longitud de la clave, el tipo de cifrado, tamaño de bloque, desarrollado, resistencia al
criptoanálisis, la seguridad, la clave de posibilidad, posibles teclas de caracteres
imprimibles ACSII, tiempo necesario para marque todas las claves posibles al
50,000,000,000 por segundo, se aprecia que AES es mejor que DES y 3DES [1].

10 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

I.2.- Estado del Arte


Las empresas cotidianamente reciben, envían y manejan diariamente este tipo de
información sensible de usuarios e instituciones que en manos de la delincuencia, hoy
más que en cualquier otra época, resulta de alta peligrosidad. No se puede mantener los
sistemas de información con recursos de protección tradicional, debe convertirse en
requisito indispensable de un sistema, asegurar la información que se transmite y
procesa, los cuales deben contar con esquemas de protección que preserven el nivel de
confidencialidad para evitar un mal uso por terceras personas.

I.2.1.- El uso de las Imágenes en la Actualidad

En la actualidad la criptografía ya no se limita a asegurar la información militar sensible,


su uso se ha extendido a muchos ámbitos del quehacer humano. En pocos años la
política de seguridad es reconocida como una de los principales componentes de
cualquier organización y estándar de la industria sostenible, la confianza, el control de
acceso a los recursos, y las transacciones financieras electrónicas, nos dan elementos de
la realidad que son transformados en imágenes.

Algunos de los datos que se transmiten tienen que ver con la identidad de personas como
la autentificación biométrica, o el reconocimiento de huellas, rostros o firmas digitales,
forman parte ya de las bases de datos que a diario se transmiten por esos canales
abiertos.
Como ejemplos podemos mencionar:
Autentificación biométrica. Las fotos biométricas son cada vez más un estándar dentro
de la comunidad internacional que nos permite reconocer a una persona en cualquier
parte del mundo de manera sencilla.
Las características de las fotos biométricas son muy específicas y se encuentran
realizadas de esta manera para poder tener un estándar a nivel mundial, las
características que tienen son las siguientes:
 El tamaño de la foto debe de ser exactamente de 35 por 45 milímetros
 Los ojos completamente abiertos, además deben concordar con un patrón gris que se
utiliza en este tipo de cámaras y la nariz quedar exactamente al centro.

Centro de Innovación y Desarrollo 11


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
Documento de identidad electrónico (DI-e) también conocido como DNI electrónico o
Cédula de identidad electrónica es un documento emitido en los países europeos por una
autoridad oficial para permitir la identificación de la población de forma personal o virtual.
Tiene el tamaño de una tarjeta de crédito y dispone de un chip que permitirá a las
personas naturales firmar digitalmente documentos electrónicos con la validez legal que
una firma manuscrita. [18].

Figura I.6.- Además de la fotografía o la huella, la imagen del iris y en un futuro otros
rasgos biológicos.

Debido a la creciente demanda del uso de imágenes en los sistemas de información,


recientemente se han registrado variadas implementaciones criptográficas con diferentes
sistemas, en donde AES no es le excepción, a continuación se presenta el resultado de la
investigación realizada en este sentido.
I.2.2.- Implementaciones Criptográficas en imágenes.
Para el presente trabajo se hizo una investigación de las implementaciones que se han
desarrollado recientemente con AES y otros criptosistemas con imágenes, a continuación
se presentan algunos ejemplos de ellas, en donde se puede observar que adicionalmente
al algoritmo AES se combina con diferentes técnicas para dar mayor complejidad al
cifrado.

12 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
I.2.1.1.- Diseño basado en bloques de RAM con modos de operación de AES con 8
bits [27].
La primera implementación de AES con 8 bits fue propuesta en 2006 como una
Aplicación Específica para Procesar Instrucciones (ASIP). Esta apareció como de bajo
perfil, por el incremento de aplicaciones populares inalámbricas y de sistemas embebidos,
basado en el concepto de programa almacenado del software se ejecutan en un
dispositivo programable FPGA. Aquí se presenta una implementación directa en un
FPGA, en donde las variadas áreas del circuito dependen del algoritmo y los métodos de
implementación usado.
Nuestra implementación específica de 8 bits usa tres bloques de RAM (BRAMs) alcanza 8
etapas en la forma de CFB/OFB (Cipher Feedback Block / Output Feedback Block) y 134
etapas en el modo ECB (Electronic Codebook) que son mejores o muy cerca de 122
etapas alcanzados por ASIP. El rendimiento por encima de 31 Mbps son por lo menos 14
veces mayor que 2.18 Mbps alcanzados por ASIP.
I.2.1.2.- Múltiple Algoritmo de cifrado AES basado en tablas de búsqueda [28].
La nueva implementación del algoritmo de encriptación de AES basada en cinco tablas de
búsqueda, que son generadas de S-Box (tabla de sustitución de AES). Las ventajas son
la de reducir el tamaño de código, que por lo tanto mejora la eficiencia, y ayuda a los
nuevos usuarios a comprender mejor el algoritmo AES y la multiplicación GF28 necesaria
para la correcta implementación AES. Este método es aplicado en procesadores con
tamaño de palabra de 32 o más, FPGA y otros. Además se puede implementar en VHDL,
Verilog, VB y otros lenguajes.
I.2.1.3.- Criptoanálisis de un esquema de cifrado de imágenes basado en un
totalmente renovado algoritmo de caos [29].
Desde hace dos décadas los Sistemas Caóticos han sido explotados en general para
construir métodos de encriptación. Recientemente dos nuevos esquemas de encriptación
de imágenes han sido propuestos, donde el proceso de encriptar incluye operaciones de
permutación y XOR para el transformado de pixeles, los cuales son controlados por tres
sistemas caóticos.
Las imágenes y el video demandan mayores esfuerzos en los esquemas de encriptación.
El gran tamaño y la alta redundancia de los vídeos sin comprimir / imágenes hacen
necesario buscar nuevos métodos para hacer frente a esas características con el fin de
facilitar la integración de la encriptación de todo el procedimiento de tratamiento.
La principal virtud de los Sistemas Caóticos (Sensibilidad a las condiciones iniciales,
propiedad de mezclado, alto grado de complejidad en su comportamiento y su simple
descripción analítica) los hacen muy interesantes para utilizarlos en el diseño de
Criptosistemas. La encriptación de imágenes es un área donde el caos ha sido
generalmente utilizado.

Centro de Innovación y Desarrollo 13


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
I.2.1.4.- Algoritmo de encriptación de imágenes en paralelo basado en el mapa
caótico discretizado.
Recientemente, una variedad de algoritmos basados en el concepto de Caos han sido
propuestos para encriptar imágenes. Sin embargo, ninguno de ellos trabaja
eficientemente en ambientes paralelos de computación. Este algoritmo ofrece una
plataforma para la encriptación en paralelo de imágenes, está diseñado usando el mapa
de flujo discreto Kolmogorov y especifica que cumple con todos los requisitos para la
encriptación de imágenes en paralelo, por otro lado es seguro y rápido.
El rápido crecimiento de la transmisión de imágenes digitales a través de las redes de
computadoras especialmente en Internet, que no es un medio seguro, aunque es abierto
y libre, puede dar acceso malicioso de un tercero,.
Principales características del algoritmo.
Aleatoriedad: sistemas caóticos generan a largo plazo, la secuencia caótica al azar-como
de una manera determinista.
Sensibilidad: una pequeña diferencia de los parámetros iniciales de valor o sistema
conduce a un vasto cambio de las secuencias caóticas.
Simplicidad: ecuaciones simples pueden generar secuencias caóticas complejas.
Ergodicidad: una variable de estado caótico pasa por todos los estados de su espacio de
fase, y por lo general esos estados se distribuyen de manera uniforme.
Además de las propiedades anteriores, algunos (2D) mapas caóticos de dos dimensiones
son excelentes alternativas para inherentes permutación de píxeles de la imagen.

14 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

Capítulo II.

Herramientas y Conceptos

II.1. Conceptos de Imágenes


Matemáticamente, la formación de una imagen puede representarse como un proceso de
mapeo del espacio de un objeto en tres dimensiones al espacio de una imagen en dos
dimensiones.
Al escanear una imagen, cada una de las líneas escaneadas se convierten en puntos,
usualmente llamados pixeles. Si la imagen es representada en colores, se utilizará la base
primaria de los colores que son, r(rojo), g(verde) y b(azul).
Para procesar una imagen se debe convertir primero en una forma numérica; esta
conversión numérica es llamada digitalización [33].
El proceso de conversión consiste en dividir la imagen en pequeñas regiones llamadas
elementos de una pintura o pixeles. El esquema de subdivisión más común, es el de la
cuadrícula rectangular que se muestra Figura II.1:

Figura II.1.- Digitalizando una imagen (Adaptación Castleman 1979)

El procesamiento de una imagen digital es la aplicación de operaciones en las


características de los elementos primarios (posición del pixel, modificación de la base
primaria de colores rgb) para obtener un resultado deseado.
Por lo anterior se puede decir que una imagen digital es un arreglo rectangular de dos
dimensiones de valores cuantificados. Una imagen contiene información sobre objetos,
aunque no contiene la información completa, sólo es un resumen de lo que representa.
Una imagen digital se puede considerar como una matriz de puntos llamados pixeles

Centro de Innovación y Desarrollo 15


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
formados por la intersección de los renglones y columnas en que se divide la imagen y los
valores correspondientes de cada punto identifican el nivel de gris en ese punto [42].

Columna
Valores de cada pixel
0 1 1 1 0 Renglón
0 1 0 0 0
0 1 1 0 0
0 1 0 0 0
0 1 1 1 0

Pixel

Figura II.2.- Imagen de 1 bit y sus valores de cada pixel

En la Figura II.2 se aprecia un cuadrado negro con fondo blanco. Cada punto con la
representación digital corresponde al área del espacio del objeto, y un valor digital es
asignado en cada punto de la imagen digital que se relaciona a la intensidad del área del
espacio del objeto. Los bits se utilizan para representar intensidad de cada posición. En la
Figura II.2 la letra E se representa con valores de uno y cero en el fondo blanco.
En este caso se refiere a una imagen de un bit o sea blanco y negro, donde cada punto se
representa con un uno como valor máximo o un cero como valor mínimo, cuando se
refiere a imágenes de grises o de 8 bits, se pueden representar imágenes con una mayor
gama de colores o de grises y habrá 00000000 como valor mínimo y 11111111 como
valor máximo para cada pixel que corresponde al número 256, que corresponde a las
variantes de grises que se pueden representar en la figura o imagen, en las imágenes de
más alta resolución y de color se utilizan 24 bits para cada pixel, 8 bits para cada color
RGB (8 bits por 3 colores es 24, 224= 16,777,216 posibles diferentes colores) y una mayor
concentración de pixeles por área.

II.2.-Estructura interna de un archivo digital.


Un archivo digital en general, es la unidad de datos o información almacenada en algún
medio y en un formato o estándar determinado (BMP, TXT, DOC, JPG, WAV), el cual
define la forma lógica en que está organizada la información dentro de esa unidad,
finalmente sea cual fuere este estándar, la forma física en la que se almacena cualquier
archivo digital en un dispositivo es como se mencionó es de unos y ceros, también
conocido como sistema binario y su unidad es el bit del inglés binary digit.

II.2.1.- El Pixel.
Toca ahora definir al elemento más pequeño de una imagen cuyas características definen
la calidad y el tamaño de una imagen se le conoce como pixel.
Un archivo BMP está conformado por n x m puntos o pixeles con diferentes
características (posición x,y, tonalidad rgb y cantidad por área), el número es

16 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
proporcional a la resolución, color y tamaño de la imagen. Si queremos representar una
imagen con mayor definición, colores reales y de gran tamaño se necesitaría una mayor
densidad de puntos por área o pixeles y una mayor gama de colores.
Bits por pixel nColores
1 2 colores
4 16 colores
8 256 colores
24 Posibilidad de representar hasta
224 = 16.777216 millones de colores
Tabla II.1 Bits necesarios para represntar nColores
Se requieren mayor número de bits para una imagen de color que para una en blanco y
negro, pequeña y cuyo contenido sea muy sencillo. A continuación se presenta la Tabla
II.1 con el número de bits necesarios por pixel y gama de color:

Encabezado del archivo


BITMAPFILEHEADER 14 bytes

Encabezado de la Información
BITMAPINFOHEADER 40 bytes

Paleta
Una tabla de colores RGBQUAD.

La información de la imagen.
Información de la imagen

Figura II.3.- Composición por bloques de una imagen BMP

II.2.2.- Estructura del archivo BMP (Bit Map Picture).


Un archivo BMP tiene dos áreas de encabezados, una paleta de colores y el área de los
datos de la imagen, en la Figura II.3. aparecen los bloques de un archvi BMP.

II.2.3.- Encabezado del archivo y encabezado de la información.


Información que se encuentra al inicio del archivo que define varias características del
archivo de imagen, la Tabla II.2 especifica los campos por cada byte del archivo BMP y
del Byte 54 en adelante se encuentra el contenido de la información del archivo.

II.2.4.- Paleta de colores.


La paleta de colores es otro bloque de información que especifica para imágenes de 8
bits, 256 colores (28) incluidos en la misma paleta, identifica un número para cada color.
Para imágenes de 24 bits, se dispone de 3 bytes para cada pixel, que corresponde a los
valores de los colores primarios Red, Green y Blue( RGB) por lo que se tiene la
posibilidad de que la imagen tenga 224 o 16,777,216 colores.
En este tipo de imágenes las componentes se guardan en orden inverso, 1 byte para el
color azul (B), 1 byte para verde (G) y un tercero para el rojo (R).

Centro de Innovación y Desarrollo 17


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

II.2.5.- Información de la imagen.


El último bloque en el archivo BMP lo conforma la información de la imagen, la cual se
encuentra almacenada en forma inversa a como normalmente estamos acostumbrados a
leer la información (izquierda a derecha y de arriba abajo) en este bloque el primer bit de
información de la imagen se encuentra al final del bloque y en el extremo derecho.
Bytes Descripción
0, 1 Caracteres BM que dicen que es un archivo tipo
BMP
2, 3, 4, 5 Tamaño del archivo BITMAPFILEHEADER
6, 7 Reservado 14 bytes
8, 9 Reservado
10, 11, 12, 13 Inicio de los datos de la imagen
14, 15, 16, 17 Tamaño de la cabecera del bitmap
18, 19, 20, 21 Anchura (píxels)
22, 23, 24, 25 Altura (píxels)
26, 27 Número de planos
28, 29 Tamaño de cada punto
BITMAPINFOHEADER
30, 31, 32, 33 Compresión (0=no comprimido)
40 bytes
34, 35, 36, 37 Tamaño de la imagen
38, 39, 40, 41 Resolución horizontal
42, 43, 44, 45 Resolución vertical
46, 47, 48, 49 Tamaño de la tabla de color
50, 51, 52, 53 Contador de colores importantes
Total 53 bytes o 432 bits
Tabla II.2 Campos por cada byte del archivo BMP

II.2.6.- Criptografía e imágenes


Los esquemas criptográficos visuales son protocolos que codifican un mensaje formado
por una imagen definida por píxeles en vez de codificar un mensaje de texto definido por
letras y números [15].
La imagen digital no es más que una matriz de números. Por ejemplo, la imagen de la
figura es una matriz de tamaño donde los niveles de gris de la imagen varían desde 0
correspondiente al negro hasta 255 correspondiente al blanco. Los números
comprendidos entre 0 y 255 se escriben en binario con 8 bits, por eso esta imagen
necesita 1 byte por píxel [14].
Pero antes del cifrado veamos nuestra materia de transformación y en específico
imágenes BMP (Bit Map).
El presente trabajo estará dedicado al encriptado de imágenes BMP bitmap de WindowsTM
que viene con el sistema operativo. Puede guardar imágenes de 24 bits (16,7 millones de
colores), 8 bits (256 colores) y menos. Puede darse a estos archivos una compresión RLE
(Run-length encoding) sin pérdida de calidad.
Los archivos con extensión .BMP, en los sistemas operativos Windows representan la
sigla BitMaP (o también Bit Mapped Picture), o sea mapa de bits. Los archivos de mapas
de bits se componen de direcciones asociadas a códigos de color, uno para cada cuadro
en una matriz de píxeles tal como se esquematizaría un dibujo de "colorea los cuadros"

18 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
para niños. Normalmente, se caracterizan por ser muy poco eficientes en su uso de
espacio en disco, pero pueden mostrar un buen nivel de calidad. A diferencia de los
gráficos vectoriales, al ser reescalados a un tamaño mayor, pierden calidad. Otra
desventaja de los archivos BMP es que no son utilizables en páginas web debido a su
gran tamaño en relación a su resolución.
Los archivos comienzan (cabecera o header) con las letras 'BM' (0x42 0x4D), que lo
identifica con el programa de visualización o edición. En la cabecera también se indica el
tamaño de la imagen y con cuántos bytes se representa el color de cada píxel [16].
Se han propuesto diversos métodos para el cifrado de imágenes, la mayoría de ellos se
basan en teoría matemática, la transformada de Fourier o la teoría del caos, son temas
que los investigadores han tomado con frecuencia para el diseño de métodos de
encriptado, en el caso del algoritmo de AES su fundamento lo toma de la teoría de Galois,
que parte de que todos los bytes en el algoritmo se interpretan como elementos de campo
finitos.
Para terminar este apartado se muestran algunas de las diferentes técnicas para el
cifrado de imágenes las cuales aparecen en la Tabla II.3 [40][41].

Técnica Método de cifrado

Transformada de Fourier La imagen es colocada como fase de un complejo exponencial, luego


levemente es transformada tres veces y multiplicada en pasos intermedios por
dos máscaras de fase estadísticamente independiente arbitrarias.

Autómatas celulares La imagen original y cifrada están definidas por la misma paleta de colores y
reversibles con memoria. la imagen recuperada es idéntica a la original

Algoritmo para cifrado Las imágenes RGB son convertidas en indexadas que se colocan en una
utilizando transformada matriz y un mapa de colores, se aplican tres transformadas fraccionales de
fraccional de Fourier. Fourier.

Sistemas Caóticos La imagen es cifrada usando el polinomio de chebyshev, la figura es leída


pixel por pixel y la salida es el valor cifrado.

Sistemas Caóticos Transformada de Fourier con caos

Sistemas Caóticos Empleando esteganografía, 1ª. usando sustitución y la 2ª. usando permutación.

Cifrado de Imágenes La imagen digital a cifrar es transformada fraccionalmente con la FWT, luego
utilizando la los coeficientes resultantes de la FWT (Aproximación, Detalles: Horizontal,
Transformada Wavelet Vertical y Diagonal) son multiplicados cada uno por diferentes máscaras de
Fraccional fases aleatorias (estadísticamente independientes) y a estos últimos resultados
se le aplica una Transformada Wavelet Inversa (Inverse Wavelet Transform,
IWT), obteniendo la imagen digital cifrada.

Encriptación de Imágenes La principal característica de este esquema de encriptación es que la imagen


Digitales Vía encriptada es real y tiene el mismo tamaño que la imagen original (en
Transformada Fraccional comparación con otros sistemas de seguridad basados en Transformada
de Fourier Discreta y Fraccional de Fourier), siendo esta imagen encriptada mucho más conveniente
Transformada Jigsaw para su almacenamiento o transmisión por redes de comunicación digital.

Tabla II.3. Técnicas para el cifrado de imágenes

Centro de Innovación y Desarrollo 19


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
II.3.-Descripción de AES.
Internamente, las operaciones del algoritmo AES se realizan en una matriz bidimensional
de bytes llamado Estado como se muestra en la Figura II.4.
Estado. Los 128 bits de entrada son agrupados en 4 palabras de 8 bits (subdivididas en
dígitos de 4 bits para su manejo en hexadecimal) que da un total de 32 bits por fila o

Estado
16 elementos
4 filas x 4 columnas
Fila 0 32 88 31 E0 4 palabras de 8 bits
por 4 filas = 128 bits
43 5A 31 37
3 2
0101 0010
Valores Máximos posibles F6 30 98 07
Binario 1111 1111
Hexadecimal F F
Decimal 255 A8 8D A2 34

Columna 0

Figura II.4.- Los 128 bits de entrada son agrupados en 4 palabras de 8 bits.

columna (denotado por Nb=4 número de columnas de la matriz) para realizar las
operaciones con las 4 funciones.
La llave inicial para cifrado (denotada por K), también está formada por 128 bits y los
cuales igualmente que los 128 bits del Estado de entrada son agrupados en 4 palabras de
8 bits (también subdivididas en dígitos de 4 bits para su manejo en hexadecimal,
denotado por Nk=4).

Figura II.5.- Algoritmo de cifrado y algoritmo de subclaves.

20 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
Subllaves. La llave principal sufrirá una expansión a través del algoritmo Calculo de llaves,
las cuales serán introducidas a través de la operación AddKey en determinadas rondas
del criptoigrama específicas.

De lo anterior el algoritmo AES se compone de 2 procesos Cifrado que recibe de entrada


los datos de Estado y Cálculo de Llaves que recibe de entrada la llave principal Figura
II.5.

La filosofía de diseño del algoritmo Rijndael en el cual se basa AES, sigue tres principios
[34]:

Mantener la simplicidad.- La simplicidad se logra maximizando la simetría en las rondas


de transformación, y utilizando pocos elementos en la misma que pueden ser descritos
fácilmente en términos de la operación de campos finitos GF (Galois Finite fields), esto
hace a todos los elementos necesarios y si alguno se elimina el diseño sería débil.

El desempeño en la ejecución.- Los creadores del algoritmo lograron un alto desempeño


en múltiples plataformas porque pensaban que era la calve para su aceptación, muchos
piensan que un diseño basado en una norma conocida reducirá el desempeño de la
ejecución.

Componentes con alto grado de estudio.- Cada componente de AES ha sido estudiado a
fondo antes de ser integrado al modelo, por ejemplo las sustituciones se basan en la
teoría matemática de campos finitos de Galois y la operación de mezclado está basada en
la teoría de error. El cifrado en AES se lleva a cabo a través de dos algoritmos:

El algoritmo de cálculo de SubClaves proporciona las claves necesarias al algoritmo de


cifrado en las 11 rondas que realiza el algoritmo; para 128 bits de información se
requieren 11 subclaves que se obtienen a partir de una clave original de cifrado.

II.3.1.- Algoritmo General de Cifrado.


Para el cifrado, el algoritmo de AES realiza 4 tipo de transformaciones al Estado aplicadas
11 veces ver Figura II.6 las cuales trabajan con los bloques de 128, 192 o 256 bits de
información, esto va de menor o mayor complejidad del cifrado, pero de igual forma de
menor a mayores recursos necesarios para ejecutarse, en la presente trabajo se utilizarán
bloques de 128 bits.

Centro de Innovación y Desarrollo 21


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

II.3.2.- Transformaciones del Cifrado AES


Está formado por 4 funciones, SubBytes, ShiftRows, MixColumns y AddRoundKey1, una
llave de cifrado K inicial que genera una estructura de llaves con la misma longitud
escogida de 128 (ver la siguiente sección Algoritmo de Cálculo de Subclaves), una tabla
de valores (tabla S-Box), una llamada de estados (state, generada ) y un algoritmo
general que ejecuta 1 ronda inicial AddRoundKey, 9 rondas principales en donde se
ejecutan las 4 funciones mencionadas y una ronda final que ejecuta tres de las funciones,
en esta ronda final MixColumns no se ejecuta. La figura II.6 muestra el orden de
procesamiento de las funciones AES y en que etapa se agrega la llave de cifrado y las
subclaves generadas en el proceso cálculo de subclaves, como se muestra en la figura
II.5 del apartado II.3, las cuales son generadas con la clave de cifrado o llave principal.

Figura II.6 4 funciones de transformación, AddRoundKey, SubBytes, ShiftRows y


MixColumns 11 rondas.

1
Nombres originales que aparecen en el documento FIPS PUBS 197, Federal Information
Processing Standars Publications 197, del National Institute of Standards and Technology –NIST-.

22 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
II.3.2.1- Ronda Inicial.- AddRoundKey
Las transformaciones inician con AddRoundKey, esta transformación aplica por cada
columna entre pares de elementos de Estado y la Llave principal la operación XOR,
generando otra tabla de 16 elementos, la Figura II.7 lo muestra.

Figura II.7.- Se aplica XOR a cada columna del Estado con la SubClave correspondiente de la ronda.

En las nueve rondas siguientes se ejecutan las 4 funciones descritas en los siguientes
apartados:
II. 3.2.2.- Sustitución de bytes (SubBytes) por el de la tabla S-box, utilizando el valor de
los 4 primeros bits en hexadecimal del elemento se busca en la fila de la tabla y los 4 bit
siguientes para la columna de la tabla, el valor encontrado en la intersección se sustituirá
en lugar del valor anterior ver Figura II.8.

Figura II.8.- Sustitución de cada uno de los 16 elementos del estado por el de la tabla de SubBytes.

Centro de Innovación y Desarrollo 23


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
II.3.2,3.- Corrimiento de bytes en las filas (ShiftRow)
La fila 1 del arreglo de 4x4 permanece sin corrimiento. La fila 2 se rota 1 byte a la
izquierda, los dos dígitos en el extremo izquierdo no se pierden, se rotan al extremo
derecho. La fila 3 se rota 2 bytes a la izquierda, igualmente los dos dígitos en el extremo

Figura II.9.- La fila 0 permanece sin corrimiento, la 1 se corre 8 bits a la izquierda, la 2 se corre 16 y la 3 se corre 24 bits.
izquierdo no se pierden, se rotan 2 lugares quedando en la columna 3, los dígitos que le
siguen quedan en el extremo derecho ver Figura II.9.
La fila 4 se rota 3 bytes a la izquierda, igualmente los dos dígitos en el extremo izquierdo
no se pierden, se rotan 3 lugares quedando en la columna 2, los dígitos que le siguen
quedan en la columna 3 y los que le siguen en el extremo derecho.

II.3.2.4.- Mezclado de datos con cada columna de la matriz State (MixColumns).


Los cuatro bytes de cada columna son multiplicados dentro del campo de Galois por una

Figura II.10.- MixColumns, es la multiplicación de cada término 02, 03,09,11,13,14 por el rango 0 –F.
24 Centro de Innovación y Desarrollo
Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
determinada matriz como se muestra en la Figura II.10. Esta función junto con ShiftRows
proporcionan la principal fuente de difusión al algoritmo AES.
II.3.2.5.- Adicionar la llave de la ronda (AddRoundKey).

La función AddRoundKey añade una clave en cada ronda incluyendo las rondas inicial y
final al Estado utilizando una operación XOR. En la ronda final, en donde se ejecutan las
funciones SubBytes, ShiftRows y AddRoundKey, en esta ronda no se ejecuta
MixColumns. Al final de esta ronda se obtiene el bloque de 128 bits de salida cifrado. En
la Figura II.11 aparece el algoritmo en pseudo código.

Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])


begin
byte state[4,Nb]
state = in
AddRoundKey(state, w[0, Nb-1]) // See Sec. 5.1.4
for round = 1 step 1 to Nr–1
SubBytes(state) // See Sec. 5.1.1
ShiftRows(state) // See Sec. 5.1.2
MixColumns(state) // See Sec. 5.1.3
AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])
end for
SubBytes(state)
ShiftRows(state)
AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])
out = state
end

Figura II.11.- Pseudo código del Algoritmo Cifrador


II.3.2.6.- Algoritmo de Cálculo de Subclaves
Para cada ronda se requiere de una llave inicial propuesta a través del algoritmo de
expansión de llaves se genera una estructura de llaves y cada una de ellas es usada en
las 10 rondas, para este desarrollo se utilizan bloques de 128 bits, se obtienen un total de
44 palabras de 8 bits (subdivididas en dígitos de 4 bits para su manejo en hexadecimal)

KeyExpansion(byte Key[4*Nk],word[Nb*(Nr+1)], Nk)


begin
word temp
i = 0
while (i < Nk)
w[i] = word(key[4*i], key[4*i+1], key[4*i+2], key[4*i+3])
i = i+1
end while
i = Nk
while (i < Nb * (Nr+1)]
temp = w[i-1]
if (i mod Nk = 0)
temp = SubWord(RotWord(temp)) xor Rcon[i/Nk]
else if (Nk > 6 and i mod Nk = 4)
temp = SubWord(temp)
end if
w[i] = w[i-Nk] xor temp
i = i + 1
end while
end

Figura II.12.- Pseudo código del Algoritmo para calcular las subclaves utilizadas en cada ronda

Centro de Innovación y Desarrollo 25


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
(Nb(Nr+1), 4(10+1)=44 ). En la figura II.12 aparece el pseudo código del algoritmo del
Cálculo de Subclaves también llamado algoritmo de expansión de llaves.

II.3.2.7.- SubWord

En el algoritmo aparece la función SubWord la cual toma cuatro bytes de entrada y aplica
la sustitución con la tabla de la página 16 del Fips-197 (Anexo 1) de la manera siguiente:
divide cada byte en dos y toma el lado izquierdo como la fila de la tabla y el lado derecho
como la columna, el valor intersectado es por el que se sustituye.

II.3.2.8.- RotWord

La función RotWord toma los cuatro bytes de la tabla de la llave principal y realiza una
permutación cíclica a la izquierda y el valor más a la izquierda se coloca en el extremo
derecho. La constante de cada ronda Rcon contiene los valores dados por [ xi-
1
,{0,0},{0,0},{0,0}], en donde xi-1 son potencias de x (x es denotado como {02} en el campo
de Galois(28)), el procedimiento es como sigue:

II.3.2.9.- Rcon

La columna 3 (extremo derecho de la tabla) en la matriz de la llave principal se realiza un


RotWord por columna, quedando el elemento del extremo superior en el extremo inferior y
el segundo elemento en el extremo superior, a cada elemento de la columna se sustituye
aplicando la tabla S-Box, en seguida se aplica la operación XOR con la columna 0 de la
matriz de claves y el resultado otra XOR con la columna 0 de matriz Rcon, el resultado
nos da la columna cero de 3 (con 4 valores) que forman la matriz de la subllave de la
primer ronda. Las columnas 0 de cada subllave se forman de la misma manera con los
respectivos valores subsecuentes de la matriz Rcon. La columna 1,2 y 3 de esta matriz se
forman de manera diferente: se aplica XOR con la columna 2 de la matriz de la llave
principal con la columna recién formada, las dos siguientes columnas se forman de la
misma manera, las columnas 1,2 y 3 de las matrices de subllaves de las siguientes
rondas se forman de la misma manera, sólo que ahora la matriz principal será la recién
formada.

II.4.-Permutación Variable
Una permutación es la variación del orden o de la disposición de los elementos de un
conjunto. De manera formal se puede decir que una permutación de un conjunto X es una
función biyectiva de dicho conjunto en sí mismo. Recordando que una función biyectiva es
aquella función en donde todos los elementos del conjunto de salida tienen una imagen
distinta en el conjunto de entrada, y a cada elemento del conjunto de entrada le
corresponde un elemento del conjunto de salida.

Para imágenes de 24 bits, se dispone de 3 bytes para cada pixel, como se especificó en
el apartado I.4.4, el rango de valores enteros está entre 0 y 255 (00 a FF en hexadecimal),
los 128 bits del bloque de entrada están agrupados en 4 palabras de 8 bits (subdivididas
en dígitos de 4 bits para su manejo en hexadecimal) que da un total de 32 bits por 4 filas o
columnas que da los 128 bits del bloque (denotado por Nb=4 número de columnas de la

26 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
matriz), en resumen cada bloque se compone de 16 enteros de 8 bits, la permutación
para este conjunto de 16 elementos sólo cambiará el orden de los mismos.
Pi es un número irracional trascendente, en el presente trabajo estas características de PI
juegan un papel muy importante en la encriptación de imágenes ya que el algoritmo AES
aplicado con algunas imágenes revela ciertos indicios del tipo de imagen encriptada, si
aplicamos la combinación de AES y con la permutación estos indicios desaparecen.
II.4.1- Permutación JV [36]
Dados dos números enteros positivos n,m tales que 0  n  m! – 1, de acuerdo al
algoritmo de las divisiones de Euclides [43] el número n se puede escribir
n = C0(m - 1)! + C1(m - 2)! + …+ Cm-2(1)! + Cm-1(0)! (1)
Observamos que n pertenece al conjunto: Nm = { n є N | 0  n  m! – 1 }
Se puede comprobar 0 Ci < (m-i), donde 0  i  (m – 2) (2)

Nm = { n є N | 0  n  m! – 1 } y

πm = { π | π es una permutación del arreglo 0,1,…,m - 1}.


El algoritmo que se puede construir a partir de estas premisas es el siguiente:
Paso 0.- Se define un arreglo de orden creciente
X[0]=0, X[1]=1, X[2]=2, X[3]=3,…,X[m-1]=m-1.
Paso 1.- De 2 se tiene que C0 < m; por lo tanto, X[C0] es uno de los elementos del arreglo
dado en el paso 0. X[C0] se elimina del arreglo y un nuevo arreglo se define desde X[0]
hasta X[m-2].
Paso 2.- De nuevo, usando la expresión 2, se tiene que C1 < m-1; por lo tanto X[C1] es
uno de los elementos definidos en el paso 1. Continuando con el orden de ideas del paso
anterior, X[C1], se elimina del arreglo definido en el paso 1 y un nuevo arreglo se
construye desde X[0] hasta X[m-3.].
Paso m-1.- Procediendo de forma repetitiva como en los pasos anteriores, se llega al final
del proceso, debiendo tener el arreglo X[Cm-2] y X{0].
II.4.2- Teorema JV
Dados los conjuntos
Nm = { n є N | 0  n  m! – 1 } y

πm = { π | π es una permutación del arreglo 0,1,2,…,m - 1}.


el algoritmo describe una función biyección uno a uno y sobre que va del conjunto Nm al
conjunto πm [36].
Lo anterior significa que, una permutación puede ser asociada a un entero positivo y
viceversa.

Centro de Innovación y Desarrollo 27


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
Ejemplo:
Como ejemplo proponemos el número 37,961, el cual descomponemos como sigue en 7
dígitos:
n = C07! + C16! + C2 5! + C3 4! + C4 3! + C5 2! + C61! + C70!
Proponemos C0, C1,..etc. n = 77! + 36! + 4 5! + 1 4! + 23! + 02! + 51! + C70!
Comprobamos la suma: n = 35,280 + 2,160 + 480 + 24 + 12 + 5 = 37,961
Tomamos los 7 pares de dígitos de Pi después del punto decimal y aplicamos la formula
Ci = Pii mod (m-i)
Pi = 3.14 15 92 65 35 89 79 32 38 46 26 43 38 32 79
C0 = 14 mod 8 = 6
C1 = 15 mod 7 = 1
C2 = 92 mod 6 = 2
C3 = 65 mod 5 = 0
C4 = 35 mod 4 = 3
C5 = 89 mod 3 = 2
C6 = 79 mod 2 = 1
C7 = 32 mod 1 = 1
Donde m es el número de elementos m = 8, i va desde 0 en igual número de
interacciones, el resultado de esta operación nos da la posición del dígito que se toma de
la columna, la cual se reescribe con los dígitos restantes y así sucesivamente, como
aparece en la Tabla II.4.
En la implementación se aplica la función de la permutación después de la segunda ronda
del cifrado AES.
Orden original de los Coeficientes 7 3 4 1 2 0 6 5
Orden con la Permutación 6 1 3 0 7 5 4 2
Posición del dígito que se toma, 6 1 2 0 3 2 1 1
contando desde cero 0 0 0 0 2 2 2 2
1 1 2 2 4 4 4
2 2 3 4 5 5
3 3 4 5 7
4 4 5 7
5 5 7
6 7
7
Tabla II.4.- A través de la formula Ci = Pii mod (m-i) se transmite aleatoriedad a la permutación.

Lo que nos da el número 61307542 que son los mismos dígitos del número original
73412065, pero el orden cambia de acuerdo al orden que da el número Pi, en el caso de
nuestra implementación, se toman 32 dígitos de Pi los cuales proporcionan el orden de los
16 dígitos de cada bloque, en el siguiente bloque se toman los siguientes números de Pi
haciendo un corrimiento a la derecha.
Esta función de permutación juega un papel importantísimo en el cifrado de imágenes ya
que la misma permite eliminar cualquier rasgo reconocible de la imagen por lo que forma
parte de las innovaciones en el presente trabajo.

28 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable

Capítulo III
Desarrollo del Sistema de Encriptado con Advanced
Encryption Standard y Permutación Variable
SEAESPV
Se pretende que el sistema criptográfico desarrollado pueda observarse desde tres
puntos de vista: el primero se refiere a que la solución del problema pueda importarse a
otros ambientes de cómputo con mínimas adecuaciones. El segundo es que un usuario
final del sistema pueda ver y comprobar la solución planteada directamente con imágenes
y herramientas comprobables. El tercero sería que esta solución pueda ser tomada parcial
o totalmente para nuevas versiones o usos más generalizados. Tomando como base esta
solución puedan ser aprovechados módulos o inclusive funciones completas.

III.1.-Análisis
El objetivo que se persigue en este análisis es: como sistema el de identificar precisión las
necesidades del mismo que plantea la implementación de AES con permutación variable
y los requisitos planteados en el párrafo anterior.
Con el fin de mostrar detalladamente las transformaciones del estándar AES, en la
aplicación se incluyeron todas las etapas del proceso de desarrollo, por lo que se pueden
observar en el menú de la aplicación las opciones para realizar desde las
transformaciones simples a bloques de 128 bits hasta la imagen totalmente encriptada.
III.1.1.-Requerimientos

Debido a que el lenguaje C es un lenguaje sencillo, uniforme, portable, que ofrece


características de un lenguaje de bajo nivel y las versiones visuales actuales agregan
funciones de multiplataforma y multi dispositivos con mínimas adecuaciones para futuros
desarrollos.

La aplicación se desarrolla con la herramienta C++ Builder versión 6 que es un lenguaje


orientado a objetos y con un entorno de desarrollo visual. Cuenta con una amplia paleta
de componentes y otros 85 reutilizables, uso de código 100% estándar ANSI/ISO, gestión
eficaz de proyectos, rápida compilación con un optimizador del código de alto rendimiento
y multihebra.

Debido a sus funciones en el desplegado de imágenes y gestor de archivos la


herramienta C++ Builder 6 permite enfocarse a resolver la implementación del estándar
AES sin dedicarse desarrollar estas funciones, esto también permite mostrar un ambiente
al usuario intuitivo y amigable.

El equipo en que se desarrolló es una computadora Toshiba P755 con procesador Intel®
Core™ i3-2330M CPU 2.20Ghz, pero el sistema puede correr en sistemas básicos,
incluyendo con procesador Atom de Intel. El Sistema Operativo de desarrollo es Windows
7 Home Premium, pero la funcionalidad del ejecutable fue probado con Windows XP y
Windows 8 sin mayor problema.

Centro de Innovación y Desarrollo 29


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
III.2.-Diseño
El diagrama de proceso del sistema de cifrado AES considera como entrada un archivo en
formato BMP (imagen), un procesamiento de cifrado o descifrado y como salida un
archivo BMP, con la imagen descifrada o cifrada. Como se puede observar en la Figura
III.1 no es utilizado algún proceso de compresión, debido a que en algunos países no se
permite el manejo de información a partir de un proceso de compresión, y en apego a la
NORMA OFICIAL MEXICANA NOM-151-SCFI-2002, y por supuesto para poder asegurar

Figura III.1. Estructura de las principales Funciones del encriptado con AES y
Permutación Variable
que la imagen descifrada no presente pérdidas ni en un solo bit de información con
respecto a la original, de ahí también la decisión de utilizar el formato BMP, que es un
formato sin pérdida.

Inicio
Inicio
Cifrado
Cifrado
AES
AES

Llave principal
Ronda = 0

Imagen BMP

AddKey

SI
Último Bloque

NO
Despliega NO
imagen Cifrada Ronda < 9
SI
SI
Guarda imagen
cifrada
Ronda == 3 Permutación SubBytes
NO

Fin
Fin SubBytes ShiftRows

ShiftRows AddKey

MixColumns

AddKey

Ronda++

Figura III.2 Algoritmo del Cifrado AES

30 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional
Standard (AES) con permutación variable
En la figura III.2 se muestra el algoritmo de Cifrado AES con Permutación variable
utilizado para la implementación en lenguaje C++ de la aplicación para cifrar y descifrar.
El código está organizado en más de 80 funciones desarrolladas para cifrar y descifrar
imágenes, apegados al FIPS-197, con casi 3 mil líneas de código en C++. Entre las
funciones para el cifrado se pueden citar: Cifrado_AES, SBytes, ShiftRows, MixColumns,
AddKey, Permuta y sus correspondientes inversas para el descifrado, que se consideran
la solución escencial.

En la figura III.3 se incluyen el agregado de llaves, funciones complementarias, las cuales


permiten la interacción con el usuario, en un sistema de menús, el manejo del archivos
de datos e imágenes, su desplegado, el manejo de tablas, las funciones desarrolladas
para las pruebas, los histogramas y las funciones para medir los indicadores que nos
permiten comprobar la eficacia del sistema así como el grado de eficiencia en tiempos,
que nos muestran datos de la dispersión de la imagen así como el nivel de recuperación
una vez que la imagen ha sido cifrada.

AES

Cifrado Descifrado

SubBytes InvSubByte
Cálculo de s
Subclaves
ShiftRows InvShiftRow
s
MixColumn InvMixColu
s mns
Permutación InvPermuta
ción
Figura III.3. Estructura de las principales Funciones del encriptado con AES
y Permutación Variable

III.3.-Implementación

En la figura III.4 se muestra la implementación de la función de cifrado AES a un bloque


de 128 bits, en el campo de Entrada se introduce una cadena de 16 pares en hexadecimal
de 8 bits cada uno.

A partir de una llave principal se calculan las 10 llaves que serán utilizadas en las rondas
del algoritmo AES, a partir de una llave principal, la Figura III.5 muestra la opción del
programa que hace esta operación.

En el FIPS 197 se le llama expansión de la llave, y son aplicadas las funciones RotWord,
Subytes y Rcon, estas dos últimas a partir de las tablas definidas en el estándar. RotWord
es la rotación de la última columna de la llave, para aplicar luego la tabla Sbox a los
cuatro elementos de la columna rotados y en seguida un XOR con la primer columna de la
llave y XOR con los valores Rcon del ejemplo en FIPS 197.

Centro de Innovación y Desarrollo 31


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable

El detalle las transformaciones utilizadas, en la aplicación se presentan: transformaciones


simples, transformaciones completas y la transformación total de imágenes, así como la
opción del cálculo de subclaves.

Figura III.4. Transformaciones AES de Cifrado a un Bloque de 128 bits

Como se menciona en el apartado III.1.1 de Requerimientos el desarrollo se realizó


utilizando C++ Builder versión 6, con lo cual se codificaron las funciones que aparecen en
la Figura III.3, en alrededor de tres mil líneas de código, se utilizaron archivos de texto y
un archivo binario para los dígitos del número Pi.

Figura III.5. Opción del Sistema Cálculo de las Subclaves AES

El desarrollo de cada función que se encuentra en el Federal Information Processing


Standards Publications 197 (FIPS PUBS) publicado por el National Institute of Standards

32 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
and Technology (NIST) fueron probadas y se obtuvo el mismo resultado que aparece en
los apéndices de esta publicación con las cadenas de los ejemplos del mismo estándar.

III.4.- Pruebas

III.4.1.-Pruebas en cadenas

Transformaciones simples (TSB)

Se refieren a las transformaciones de AES, especificadas en el Processing Standards


Publication 197 –FIPS197- SubBytes, ShiftRows y MixColumns aplicadas una sola vez a
una cadena de 128 bits. Estas transformaciones simples a un bloque permiten comprobar
que la función se apega a lo establecido en estándar AES, comprobables con el resultado
que presenta la aplicación para cualquier bloque de 128 bits.

Transformaciones completas a un bloque de 128 bits(TCB).

Se refiere a las transformaciones de AES, SubBytes, ShiftRows y MixColumns aplicadas


individualmente una sola vez a un bloque de 128 bits, esta transformación incluye la
función AddRound que es el agregado de las llaves en cada ronda.

III.4.1.1-Transformación total

En el menú de Cifrado del programa se visualiza la opción para aplicar el algoritmo de


transformación AES de manera total, incluidas las transformaciones SubBytes, ShiftRows
y MixColumns, el agregado de la llave en cada ronda y la permutación variable.

III.4.1.2-Cálculo de Subclaves AES

Con la llave de cifrado se realiza una expansión a 10 llaves, las cuales serán agregadas
en cada ronda del algoritmo AES, esta opción se puede visualizar de manera individual en
el Menú de Transformaciones, con el fin de corroborar el cálculo especificado en el
Estándar AES del FIPS-197, con cualquier llave propuesta de 128 bits, con elementos
cuyos valores se encuentren entre 0 y 255, se realiza el cálculo de las llaves que se
utilizan en el algoritmo AES la implementación aparece en la Figura III.5.

III.4.1.3-Cifrado AES a un bloque de 128 bits.

En el Menú de Cifrado se aplica el Algoritmo completo AES tanto a un bloque de 128 bits
–submenú Cifrado AES a bloque de 128 Bits- como para una imagen completa –
submenú Cifrado AES puro de Imágenes-.

En el lado izquierdo de la Figura III.6 se puede observar la opción del menú de Cifrado
AES a Bloques de 128 bits, la columna R10 en donde se encuentran los resultados del
cifrado de la cadena de entrada del ejemplo que aparece en el Apendix C del FIPS-197.

III.4.1.4-Descifrado AES a un bloque de 128 bits.

En el lado derecho de la Figura III.6 se muestra la opción del Menú Descifrado AES a
Bloques de 128 bits, donde se puede apreciar el descifrado del ejemplo del párrafo
anterior, y la comprobación de la función ya que se puede ver el regreso de la cadena
original con el que se inició el cifrado. Los elementos del Bloque de entrada en el lado

Centro de Innovación y Desarrollo 33


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
izquierdo son los mismos de la columna R10 del lado derecho, lo que demuestra el cifrado
y descifrado de un bloque de 128 bits.

Figura III.6. Cifrado y Descifrado AES de un bloque de 128 bits.

Cada columna de las figuras mencionadas en el cifrado y descifrado contienen los


elementos arrojados por las transformaciones SubBytes, ShiftRows, MixColumns y
AddKey lo que nos da un total de 1,584 elementos presentados aquí en notación
hexadecimal generados para la transformación de un bloque de 16 bytes o 128 bits,
además de los 160 elementos de las 10 llaves de 16 componentes calculados para
aplicarse en cada ronda del algoritmo.

A continuación se presentan estos resultados para las 10 rondas y las llaves utilizadas
para cada una en el algoritmo de descifrado, las operaciones se realizan internamente
con números enteros, para presentarlos en pantalla el programa hace la transformación a
hexadecimal.

En la tabla III.1 Se muestran en el lado izquierdo los valores en hexadecimal de cada


transformación del cifrado del bloque 00112233445566778899AABBCCDDEEFF de 128 bits y sus
llaves correspondientes, al final de esta columna aparece el valor
69C4E0D86A7B0430D8CDB78070B4C55A que es el cifrado del bloque anterior. Del lado derecho se
encuentran los valores en hexadecimal de cada transformación del descifrado del bloque
anterior y sus llaves correspondientes, iniciando como entrada el bloque anterior, al final
aparece como resultado el valor 00112233445566778899AABBCCDDEEFF que es el bloque de 128
bits con el que se inició el cifrado. Con esto se demuestra el cifrado y descifrado AES a un
bloque de 128 bits, de esta manera será aplicado a cada bloque de 128 bits de la imagen.

34 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable

CIFRADO DESCIFRADO
Texto Bloque
00112233445566778899AABBCCDDEEFF 69C4E0D86A7B0430D8CDB78070B4C55A
plano cifrado
Key 0 000102030405060708090A0B0C0D0E0F Key 0 000102030405060708090A0B0C0D0E0F
Ronda0 000102030405060708090A0B0C0D0E0F Ronda 0 7AD5FDA789EF4E272BCA100B3D9FF59F
Key1 D6AA74FDD2AF72FADAA678F1D6AB76FE Key 1 13111D7FE3944A17F307A78B4D2B30C5
Box 63CAB7040953D051CD60E0E7BA70E18C Row 7A9F102789D5F50B2BEFFD9F3DCA4EA7
Row 6353E08C0960E104CD70B751BACAD0E7 Box BD6E7C3DF2B5779E0B61216E8B10B689
Mix 5F72641557F5BC92F7BE3B291DB9F91A Add E9F74EEC023020F61BF2CCF2353C21C7
AddK 89D810E8855ACE682D1843D8CB128FE4 Mix 54D990A16BA09AB596BBF40EA111702F
Key2 B692CF0B643DBDF1BE9BC5006830B3FE Key 2 549932D1F08557681093ED9CBE2C974E
Box A761CA9B97BE8B45D8AD1A611FC97369 Row 5411F4B56BD9700E96A0902FA1BB9AA1
Row A7BE1A6997AD739BD8C9CA451F618B61 Box FDE3BAD205E5D0D73547964EF1FE37F1
Mix FF87968431D86A51645151FA773AD009 Add BAA03DE7A1F9B56ED5512CBA5F414D23
AddK 4915598F55E5D7A0DACA94FA1F0A63F7 Mix 3E1C22C0B6FCBF768DA85067F6170495
Key3 B6FF744ED2C2C9BF6C590CBF0469BF41 Key 3 47438735A41C65B9E016BAF4AEBF7AD2
Box 3B59CB73FCD90EE05774222DC067FB68 Row 3E175076B61C04678DFC2295F6A8BFC0
Row 3BD92268FC74FB735767CBE0C0590E2D Box D1876C0F79C4300AB45594ADD66FF41F
Mix 4C9C1E66F771F0762C3F868E534DF256 Add C57E1C159A9BD286F05F4BE098C63439
AddK FA636A2825B339C940668A3157244D17 Mix B458124C68B68A014B99F82E5F15554C
Key4 47F7F7BC95353E03F96C32BCFD058DFD Key 4 14F9701AE35FE28C440ADF4D4EA9C026
Box 2DFB02343F6D12DD09337EC75B36E3F0 Row B415F8016858552E4BB6124C5F998A4C
Row 2D6D7EF03F33E334093602DD5BFB12C7 Box C62FE109F75EEDC3CC79395D84F9CF5D
Mix 6385B79FFC538DF997BE478E7547D691 add 9816EE7400F87F556B2C049C8E5AD036
AddK 247240236966B3FA6ED2753288425B6C mix E8DAB6901477D4653FF7F5E2E747DD4F
Key5 3CAAA3E8A99F9DEB50F3AF57ADF622AA Key 5 5E390F7DF7A69296A7553DC10AA31F6B
Box 36400926F9336D2D9FB59D23C42C3950 Row E847F56514DADDE23F77B64FE7F7D490
Row 36339D50F9B539269F2C092DC4406D23 Box C81677BC9B7AC93B25027992B0261996
Mix F4BCD45432E554D075F1D6C51DD03B3C Add F4BCD45432E554D075F1D6C51DD03B3C
AddK C81677BC9B7AC93B25027992B0261996 Mix 36339D50F9B539269F2C092DC4406D23
Key6 5E390F7DF7A69296A7553DC10AA31F6B Key 6 3CAAA3E8A99F9DEB50F3AF57ADF622AA
Box E847F56514DADDE23F77B64FE7F7D490 Row 36400926F9336D2D9FB59D23C42C3950
Row E8DAB6901477D4653FF7F5E2E747DD4F Box 247240236966B3FA6ED2753288425B6C
Mix 9816EE7400F87F556B2C049C8E5AD036 add 6385B79FFC538DF997BE478E7547D691
AddK C62FE109F75EEDC3CC79395D84F9CF5D mix 2D6D7EF03F33E334093602DD5BFB12C7
Key7 14F9701AE35FE28C440ADF4D4EA9C026 Key 7 47F7F7BC95353E03F96C32BCFD058DFD
Box B415F8016858552E4BB6124C5F998A4C Row 2DFB02343F6D12DD09337EC75B36E3F0
Row B458124C68B68A014B99F82E5F15554C Box FA636A2825B339C940668A3157244D17
Mix C57E1C159A9BD286F05F4BE098C63439 Add 4C9C1E66F771F0762C3F868E534DF256
AddK D1876C0F79C4300AB45594ADD66FF41F Mix 3BD92268FC74FB735767CBE0C0590E2D
Key8 47438735A41C65B9E016BAF4AEBF7AD2 Key 8 B6FF744ED2C2C9BF6C590CBF0469BF41
Box 3E175076B61C04678DFC2295F6A8BFC0 Row 3B59CB73FCD90EE05774222DC067FB68
Row 3E1C22C0B6FCBF768DA85067F6170495 Box 4915598F55E5D7A0DACA94FA1F0A63F7
Mix BAA03DE7A1F9B56ED5512CBA5F414D23 add FF87968431D86A51645151FA773AD009
AddK FDE3BAD205E5D0D73547964EF1FE37F1 mix A7BE1A6997AD739BD8C9CA451F618B61
Key9 549932D1F08557681093ED9CBE2C974E Key 9 B692CF0B643DBDF1BE9BC5006830B3FE
Box 5411F4B56BD9700E96A0902FA1BB9AA1 Row A761CA9B97BE8B45D8AD1A611FC97369
Row 54D990A16BA09AB596BBF40EA111702F Box 89D810E8855ACE682D1843D8CB128FE4
Mix E9F74EEC023020F61BF2CCF2353C21C7 Add 5F72641557F5BC92F7BE3B291DB9F91A
AddK BD6E7C3DF2B5779E0B61216E8B10B689 Mix 6353E08C0960E104CD70B751BACAD0E7
Key10 13111D7FE3944A17F307A78B4D2B30C5 Key 10 D6AA74FDD2AF72FADAA678F1D6AB76FE
Box 7A9F102789D5F50B2BEFFD9F3DCA4EA7 Row 63CAB7040953D051CD60E0E7BA70E18C
Row 7AD5FDA789EF4E272BCA100B3D9FF59F Box 00102030405060708090A0B0C0D0E0F0
AddK 69C4E0D86A7B0430D8CDB78070B4C55A Mix
Cifrado Descifrado
00112233445566778899AABBCCDDEEFF

Tabla III.1. Valores resultantes en cada transformación AES y de las llaves.

Centro de Innovación y Desarrollo 35


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
Como se puede observar en la Tabla III.1 a cada bloque de 128 bits se le hacen
aproximadamente 40 transformaciones para el cifrado y 40 para el descifrado

De lo anterior podemos obtener el total de transformaciones nT que una imagen sufrirá


con el encriptado AES, en función del tamaño del archivo longImg en bits:

𝐥𝐨𝐧𝐈𝐦𝐠 ∗ 𝟒𝟎
𝒏𝑻 =
𝟏𝟐𝟖

Por ejemplo el archivo lena.bmp tiene un tamaño de 769 kbytes = 6,152,000 bits nos da

nT = 1,922,480 transformaciones a esta imagen que es relativamente pequeña.

III.4.2.-Pruebas en imágenes

Para comprobar visualmente se realiza las mismas transformaciones de AES sobre una
imagen y también en una ronda. En las Figuras III.7, III.8 y III.9 se puede apreciar el
efecto de las trasformaciones en una imagen de 512 por 512 pixels.

Figura III.7. Función SubBytes en imagen de


512 por 512 pixels.

El caso de la encriptación de imágenes se hace más complejo debido a que cada pixel de
la imagen se descompone en 3 elementos de un byte cada uno y es manejado de manera
independiente de tal manera que si se toman 128 bits se tiene:

𝟏𝟐𝟖 𝐛𝐢𝐭𝐬 (𝐛𝐥𝐨𝐪𝐮𝐞)


𝟏𝟔 𝑬𝒍𝒆𝒎𝒆𝒏𝒕𝒐𝒔 =
𝟖 𝒃𝒊𝒕𝒔 (𝟏 𝒃𝒚𝒕𝒆)

𝟏𝟔 𝐄𝐥𝐞𝐦𝐞𝐧𝐭𝐨𝐬 𝐝𝐞 𝐮𝐧 𝐛𝐥𝐨𝐪𝐮𝐞
𝟓. 𝟑 =
𝟑 (𝒄𝒐𝒎𝒑𝒐𝒏𝒆𝒏𝒕𝒆𝒔 𝒅𝒆 𝒖𝒏 𝒑𝒊𝒙𝒆𝒍)

Debido a que 16 no es múltiplo de 3, algunos elementos de un mismo pixel son tratados


en diferentes bloques y por lo tanto sufren transformaciones diferentes con otro bloque de
16 elementos.

36 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
Transformación Simple a Imágenes (TSI)

Debido a ello en las imágenes subsecuentes se pude observar que tan sólo con una
transformación (transformación simple en imagen –TSI-), ya sea SubBytes, ShiftRows o

Figura III.8 Función ShiftRows.


MixColumns, se tiene ya muestras de dispersión, pero a simple vista se notan rasgos
identificables con la imagen original.

En la figura III.7 se puede ver el resultado de aplicar la transformación Subytes contornos


de la imagen original, los valores de la gráfica del histograma permiten comprobar esta
dispersión.

Figura III.9. Función MixColumns.

Con la aplicación de la transformación ShiftRows, Figura III.8, en una sola ocasión o sea
una ronda, se ve la imagen todavía más identificable, lo evidencia el histograma
correspondiente el cual muestra cierta similitud con el mismo de la imagen original.

Centro de Innovación y Desarrollo 37


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
Como se puede observar la transformación de MixColumns en la Figura III.9 se aprecia
una imagen con patrones verticales que ha cambiado la imagen pero que se logra
identificar, el histograma presenta una variación más notable que lo que se puede
observar a simple vista.

Cifrado AES con


Original Cifrado AES
PV

Figura III.10. Imágenes con bajo nivel de profundidad, un bit y 8 bits.

Transformaciones Completas a Imágenes (TCI)

III.4.2.1- Encriptación a Imágenes con bajo nivel de profundidad.

Cada uno de los píxeles de una imagen bitmap está coloreado con un color homogéneo.
¿Cuántos bits se emplean para albergar esta información? A esto es lo que llamamos
profundidad de color de una imagen.

El número de bits utilizados para describir el color de cada pixel de la imagen es la


profundidad del color.

Se seleccionaron tres imágenes con trazos sencillos en blanco y negro por el


contrastantes blanco y negro, LOREM IPSUM, burro y cruz. La primer imagen muestra el
original, la segunda la imagen encriptada con AES y permutación variable y la tercera sólo
encriptación con AES.

En la segunda imagen de cada motivo Figura III.10 se puede observar que para este tipo
de imágenes, AES muestra información de la imagen original, al desplegar rasgos o
siluetas identificables. La explicación de esta transformación se ve claramente con los

38 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
histogramas de este tipo de imágenes que se explican en la sección de Pruebas con
diferente profundidad de color ya que si sólo se dispone de 1 bit para describir el color de
cada pixel, tan sólo se puede elegir entre dos colores: un color si el bit tiene el valor 0
(habitualmente negro) y otro color si el bit vale 1 (habitualmente blanco).

Por esta razón en la primer imagen de la figura III.10 “LOREM IPSUM” se muestra con
menos rasgos identificables ya que maneja diferentes tonalidades de grises, en cambio en
las imágenes de burro y cruz sólo se utilizan blanco y negro resultando rasgos más
identificables.

Otra observación en esta prueba es que a mayor resolución de la imagen el grano de la


imagen encriptada es más fino que el de más baja resolución, la imagen de LOREM
IPSUM y burro tiene una resolución alrededor de 225 por 228 pixels y un tamaño entre
147 y 150 kb, mientras la imagen cruz tiene una resolución de 512 por 512 pixels y un
tamaño de 768 kb. En las imágenes de la segunda columna de la figura III.10 no se le
aplica la función de permutación, en la primer imagen por ejemplo podemos observar el
área donde termina el texto. En la segunda imagen de esa misma columna se observa la
silueta de la figura, lo cual da más información de la imagen encriptada, los pixeles que
son negros dibujan en la imagen encriptada esta silueta, en el caso de la tercer imagen de
la misma columna, podemos deducir que la imagen encriptada es una cruz, contrastando
en el área donde los pixeles son blancos en donde se dibujan rayas verticales,
interrumpiéndose en el contorno de la cruz, lo cual da información para identificarla.

De lo anterior observamos que imágenes con niveles de profundidad y resolución bajos,


en el cifrado de imágenes únicamente con AES se perciben rasgos en la imagen que
permiten deducir a simple vista el contenido general de la imagen original.

Figura III.11. 31 imágenes seleccionadas de diferentes ámbitos.

Centro de Innovación y Desarrollo 39


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
Para eliminar cualquier indicio que permita identificar algún rasgo de la imagen, se
implementó la función de Permutación la cual se aplica a cada bloque de 128 bits de la
imagen con n (necesarios) dígitos de Pi a partir del punto decimal a la derecha, para ello
la aplicación utiliza un archivo en binario que almacena estos dígitos de Pi, los cuales son
utilizados en la función de Permutación.

III.4.2.2.-Pruebas a imágenes de diferentes áreas de aplicación

Se aplicaron las funciones de cifrado y descifrado a más de treinta imágenes figuras III.11
y III.12 con diferentes características en tamaño, profundidad y color, por ejemplo se
hicieron pruebas a imágenes con profundidad de 1 (blanco y negro) y 8 bits (en escala
de grises).

Figura III.12. Continuación de las 31 imágenes seleccionadas

Se obtuvieron los indicadores de entropía y coeficiente de correlación y sobre todo el


tiempo de cifrado y descifrado.

En el Capítulo I se mencionó que el uso de las imágenes en diferentes ámbitos es cada


vez mayor, por esta razón se consideraron archivos como huella.bmp, un ejemplo de las
imágenes que son usadas en los sistemas de identificación personal, el archivo
r_ianrushton_onetreehill11.bmp, de las bases de datos de la Universidad de Yale que es
usado en su sistema de reconocimiento facial. espectroscopia1.bmp y
espectroscopia2.bmp, imágenes médicas, indice1.bmp e indice2.bmp como ejemplos de
documentos de texto; rey.bmp, caballero.bmp y voinicht1.bmp, obtenidas de los sitios
dedicados al arte (National Gallery de Londres y El Rijksmuseum o Museo Nacional de
Ámsterdam).

40 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable

Velocid Tiempo Cifrado en Tiempo Descifrado


ad segundos en segundos
Ancho Alto Tamaño
Archivo BMP cifrado
pixeles pixeles kbytes
seg/byt Core 2 i3 Core 2 i3
e
cruz 224 225 147 0.00477 1.31000 0.70200 1.45100 0.79500
frutoverde 259 194 147 0.28100 0.15600
lorem1 224 225 147 0.26500 0.17200 0.29700 0.18700
lorem2 224 225 147 0.28100 0.17200 0.29600 0.18700
lorem3 224 225 147 0.26600 0.17200 0.29600 0.18700
Niña 224 225 147 0.28000 0.15600 0.29600 0.15600
portada1 224 225 147 0.28100 0.14100 0.29600 0.17100
Rostro1 224 225 147 0.28100 0.17100 0.29600 0.17100
voynich1 224 225 147 0.26600 0.15600 0.29700 0.18700
Burrito 224 225 150 0.26500 0.17200 0.29600
yaleB27_P02A+070E+45 512 513 257 1.40400 0.73300 1.54400 0.82700
delitos1 512 225 337 0.57800 0.34300 0.64000 0.35800
espectroscopia1 512 256 384 0.67100 0.37500 0.70200 0.40600
Barbara 512 512 768 1.21600 0.90500 1.46600 0.81200
espectroscopia2 512 512 768 1.24800 0.70200 1.26400 0.78000
indice 512 512 768 1.32600 0.70200 1.57500 0.81100
indice1 512 512 768 1.45100 0.71700 1.40400 0.81100
Lena 512 512 768 1.38900 0.79500 1.35700 0.82600
r_ianrushton_onetreehill11 512 512 768 1.26300 0.70200 1.43500 0.78000
guerrero 768 512 1120 1.76300 0.99900 2.01300 1.15400
arquitectonico1 814 553 1280 2.24600 1.34200
Alhambra1 1024 768 2250 3.47900 1.96600 4.43000 2.40200
Alhambra24 1024 768 2250 3.99400 2.09100 4.33700 2.40300
Alhambra8 1024 768 2250 3.82300 2.06000 3.80600 2.26200
Chrysanthemum1 1024 768 2250 3.60300 2.01200 4.60200 2.51100
Desert1 1024 768 2250 3.83700 2.01200 3.97800 2.27800
huella1 768 1024 2250 3.43200 1.98100 3.77600 2.27700
caballeros 1280 768 2810 4.99200 2.48000 5.39700 3.05700
rey 1280 768 2810 5.27200 2.59000 6.20900 2.87000
arquitectonico2 1280 1280 4680 8.45500 4.16500 9.29800 4.83600
cosmovitral1 1536 2048 9000 15.25700 8.06600 17.03600 9.03300

Tabla III.2. Imágenes de prueba para el cifrado y descifrado con dos procesadores diferentes.

Ejemplos con diferente profundidad del color son las imágenes Alhambra1.bmp, que sólo
utiliza un bit para cada color, Alhambra8.bmp utiliza 8 bits por lo que se pude ver la
imagen en escala de grises y Alhambra24.bmp que utiliza 24 bits para el color por lo que
se muestra una imagen con mayor detalle, para ellas también se realizaron pruebas de
cifrado y descifrado en las que se muestra las variables de tiempo, entropía y coeficiente
de correlación.

Centro de Innovación y Desarrollo 41


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
La prueba de cifrado y descifrado se realizó en una imagen llamada cosmovitral1.bmp que
fue seleccionada por su gran tamaño de 9 Mega bytes, profundidad 24 bits y amplia gama
de colores, las figuras III.13 y III.14. muestran los resultados de la aplicación.

Figura III.13. Cifrado de la imagen cosmovitral.bmp 9,437,238 bytes, 1,536 por


2048 pixeles, tiempo de cifrado 8.066 segundos en procesador Core i3.

Se incluyeron imágenes con diversidad de parámetros, en tamaños desde 147 kb hasta 9


Mb, en profundidad 1,8 y 24 bits, escala de grises, y color, ancho y alto y la realización de
pruebas en dos computadoras con procesador diferente para establecer un comparativo.

Figura III.14. Descifrado de la imagen cosmovitral.bmp, tiempo de descifrado 9.033


segundos en procesador Core i3.
Puede mencionarse que en promedio el sistema cifra a 100 kb por cada 0.117 segundos,
asimismo se encontró una diferencia promedio de 0.16 segundos más entre el descifrado
y el cifrado, en el desempeño del sistema en el procesador Intel® Core™2 Duo y el
procesador Intel® Core™ i3 se observan diferencias importantes a partir de los 300
kbytes, en archivos con menos tamaño no existe gran diferencia de tiempo, ya que son
del orden de 0.001 segundos.

42 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
III.4.2.3.- Pruebas con variación mínima en la llave

No se identificó claves débiles o semi-débiles para el algoritmo AES, por lo que no hay
ninguna restricción en la selección de la clave.

Por la simetría del algoritmo lo único es que la clave de cifrado deberá ser exactamente la
de descifrado, ya que si el algoritmo realiza el cifrado o descifrado con la más mínima
variación, los resultados serán no sólo inadecuados sino se observará mayor complejidad
en el descifrado.

En la Figura III.15 se muestra la prueba realizada con dos claves diferentes, entre las
cuales la variación fue sólo en un bit, el resultado como se logra observar a simple vista
no es el adecuado, en los análisis estadísticos arrojaron una dispersión parecida a la
imagen cifrada, el coeficiente de correlación con la imagen cifrada fue de 0.0127 y con la
descifrada de 0.0498, por lo que se puede asegurar que su descifrado resultó totalmente
inadecuado con una variación de un bit.

Figura III.15. Cifrado con 2b7e151628aed2a6abf7158809cf4f3c y descifrado


con 2b7e151628aed2a6abf7158809cf4f3d, variación de un bit.

Centro de Innovación y Desarrollo 43


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
III.5.-Resultados

Comparativos de tiempo de cifrado y descifrado contra tamaño de archivos con


procesador Intel® Core™2 Duo y el procesador Intel® Core™ i3.

III.5.1.- Comparativos de tiempo de cifrado y descifrado contra tamaño

En la Gráfica III.1 se puede observar las pruebas realizadas a 31 imágenes en


computadoras con procesadores Intel Core 2 a 2.1 Ghz. e Intel Core i3 2.3 Ghz. con dos
núcleos, en donde se grafica tiempo contra tamaño.

A partir de tamaños de 300 kb existe una correspondencia directa entre el tamaño y el


tiempo de cifrado, en menores tamaños parece no importar el procesador, como se puede
observar en la Gráfica III.1, y se empiezan a notar diferencias en el desempeño de cada
procesador, de tal manera que con la imagen de vitral1.bmp con tamaño de 9 Mb el
tiempo de cifrado alcanza el doble con el procesador Core 2.

18

16

14

12

10
Segundos

8 Tiempo Cifrado Core 2

6 Tiempo Cifrado i3

0 Kbytes
147

2250
147
147
147
147
147
147
147
147

150
257
337
384
768
768
768
768
768
768
1120
1280
2250
2250
2250
2250
2250

2810
2810
4680
9000

Gráfica III.1. Resultados de tiempo, procesador y tamaño de archivo al aplicarle las funciones de cifrado
y descifrado, ver Tabla III.1 para más detalles.

44 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable

III.5.2.-Análisis de los Histogramas

Una de las preguntas que se generan es ¿Qué grado de encriptación tiene la imagen o
que tan seguro resulta el mismo?, visualmente la aplicación muestra que la imagen no se
reconoce en lo más mínimo, pero ¿se puede tener algún parámetro para medirlo?.

Para poder conocer los resultados de las transformaciones del cifrado de imágenes, se ha
recurrido al análisis estadístico con los histogramas, los cuales muestran una
representación estadística, que indican la proporción de píxeles de cada tonalidad que
hay en una imagen. En el eje de las abscisas se encuentra el valor de la tonalidad rk que
toma valores entre 0 - 255 y en las ordenadas se encuentra el nivel de intensidad de la
tonalidad nk, esto es:

h(rk) = nk

longh= kx x my

es el tamaño de la imagen en pixeles

Recordando que cada pixel tiene su componente en cada color tenemos

h(rkR) = nKr ROJO

h(rkB) = nkB AZUL

h(rkG) = nkG VERDE

Figura III.16. Histograma de la imagen original y la encriptada, la aplicación


muestra la frecuencia de cada pixel en azul y calcula su probabilidad de ocurrencia.

En la Figura III.16 podemos ver los histogramas correspondientes a cada canal R (rojo), G
(verde), B (azul) que compone cada pixel de la imagen, en estado original o antes del
cifrado y posteriormente del mismo y cuando se encuentra descifrada, con lo que

45 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
podemos comprobar de manera cuantitativa la transformación y la distribución de los
pixeles en los tres estados.

Para poder asegurar inmunidad para los ataques que se basan en el análisis estadístico,
se aplicaron los métodos de difusión y confusión [38].

Para lograr la difusión se aplicaron a cada bloque operaciones con las funciones
ShiftRrows y MixColumns, de manera que los elementos del mensaje aparecerán
dispersos o desordenados en el criptograma. La difusión pretende propagar las
características del bloque de 128 bits en todo el criptograma, ocultando así la relación
entre el bloque original y el cifrado.

Para lograr la confusión, se aplicaron igualmente a cada bloque de 128 bits las funciones
de SubBytes y Permutación [36] que hacen las sustituciones de un elemento del bloque,
por otros elementos similares.

III.5.3.-La llave elemento fundamental.

Algo notable en el algoritmo de AES está en la función AddRound ya que permite


incorporar en cierta atapa del proceso de cifrado las propiedades de difusión y confusión,
como los nombra Shannon, pero con una particularidad de gran relevancia en el cifrado,
que es: la dependencia de toda la metodología del cifrado y descifrado en una llave
conocida sólo por el usuario y que como se analizó en la sección de pruebas cualquier
cambio en la llave de descifrado por pequeño que sea, el resultado del descifrado no sólo
no será el adecuado, sino que producirá resultados más complejos para descifrar.

De lo anterior, se demuestra la simetría del estándar AES, ya que se tiene que usar la
misma clave para cifrar o descifrar, para nuestro caso en las imágenes cualquier cambio
altera el resultado, en las mediciones del coeficiente de correlación para la imagen cifrada
fue de 0.0127 y con la descifrada de 0.0498 la diferencia fue de 0.0371, en donde se
estaría esperando valores cercanos a 1 se obtienen valores parecidos al de cifrado del
orden de centésimas con diferencia en la clave de un bit de los 128.

Con esta particularidad no importa inclusive en que sea conocida la metodología de


cifrado-descifrado por un tercero, ya que se deberá conocer la llave exacta para tener
éxito en el descifrado, de cualquier otra manera fracasará el ataque.

De lo anterior se deberá analizar la vulnerabilidad de la llave del cifrado considerando el


riesgo de un ataque exitoso de fuerza bruta inclusive teniendo en cuenta futuros avances
en las velocidades de procesamiento.

Un ataque de fuerza bruta involucra verificar sistemáticamente todas las claves posibles
hasta que se encuentre la correcta, y es una manera de atacar cuando no es posible
tomar ventaja de otras debilidades en un criptosistema.

En la Figura III.17 aparecen ejemplos de las llaves para cadenas de diferente tamaño en
bits, y en la gráfica se observa el incremento exponencial de combinaciones posibles a
medida que aumenta la longitud de la clave.

En 2013 BBC News mundo [44] dio a conocer las características de lo que fue la
computadora más rápida del mundo, la Tianhe-2, desarrollada por la Universidad de
Tecnología de Defensa China, que es administrada por el gobierno, la cual lideró la lista

Centro de Innovación y Desarrollo 46


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
de las 500 computadoras más rápidas del mundo en ese momento, su sistema opera a
33.86 petaflops por segundo, lo que equivale a 33.860 billones de cálculos por segundo.

En seguida se presenta el cálculo del tiempo que tomaría esta computadora para
encontrar todas las llaves de 128 bits. La longitud de la clave usada en encriptación
determina la posibilidad práctica de realizar un ataque de fuerza bruta, donde las claves
más largas son exponencialmente más difíciles de descubrir que claves más cortas.

Velocidad de la Supercomputadora Tianhe-2

33.86 petaflops = 33.86X1015 flops (Flops= operaciones de punto flotante por segundo).

Las combinaciones con una llave de 128 bits es de 3.4X1038

Cantidad de segundos en un año = 365 x 24 x 60 x 60 = 31536000

(3.4 x 1038) / [ (33.86 x 1015) x 31536000 ] = 0.318409X1018 segundos o


1.0096683155E+1010 años.

La primera conclusión en este sentido es que un ataque de fuerza bruta para encontrar la
llave no resulta ni siquiera pensable ya que el cálculo anterior es realizado con un sistema
del gobierno chino con altos requisitos para su uso y que el competidor más cercano a
este equipo dobla el tiempo de procesamiento según el reportaje.

Sistema
Cifrado
Bits
Número de
posibles llaves
Algunas llaves Número de posibles
1 2 0,1
llaves
1.2E+77
2 4 00,01,10,11
0000,0001,0010,
0011,0100,0101, 1E+77
0110,0111,1000,
4 16 Número de
1001,1010,1011,
1100,1101,1110, 8E+76 combinaciones
1111
8 256
6E+76
16 65536

32 4.20E+09 4E+76
DES 56 7.2E+16
2E+76
64 1.8E+19

AES 128 3.40E+38 Desarrollado


0
AES 192 6.20E+57 0 100 200 300
AES 256 1.10E+77 -2E+76

Figura III.17. Incremento exponencial de llaves posibles a medida que aumenta la longitud de la misma, para
128 bits el número es de 3.40E+38.

47 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
Por otro lado se puede deducir que el ataque más fuerte a este tipo de esquemas es
proveniente por factores humanos y no tecnológicos, concluyendo que AES de 128 bits es
suficiente para satisfacer las necesidades del futuro próximo.

III.5.4.- Medición de la Entropía

La entropía es un concepto introducido por Shannon en 1948 [38]. La entropía puede ser
pensada como una medida matemática de la información o la incertidumbre, y es
calculada como una función de distribución de probabilidad. [3].

Supongamos que tenemos una variable aleatoria discreta X que toma valores de un
conjunto finito X de acuerdo a una distribución de probabilidad específica. ¿Cuál es la
información obtenida por los resultados de un experimento que se lleva a cabo de
acuerdo con esta distribución de probabilidad?. De manera equivalente, si el experimento
(todavía) no tenido lugar, ¿cuál es la incertidumbre sobre el resultado?. Esta cantidad se
llama la entropía de X y se denota por H (X).

Figura III.18. Cálculo de la Entropía para cada color de la imagen.

En la figura III.18 se muestra el cálculo de la Entropía dado por:

Sea Xi uno de los elementos que aparecería en la imagen, y que podrían ser de 0 a 256
que son los caracteres ascii, la probabilidad de que alguno de estos elementos aparezcan
es 1/256 para cada uno de ellos, pero si este elemento aparece dos veces será 2/256, de
manera general sería:

𝐂𝐚𝐬𝐨𝐬 𝐩𝐫𝐨𝐛𝐚𝐛𝐥𝐞𝐬 𝐝𝐞 𝐗(𝐢)


𝐏𝐫𝐨𝐛𝐚𝐛𝐢𝐥𝐢𝐝𝐚𝐝 𝐝𝐞 𝐗(𝐢) =
𝐓𝐨𝐭𝐚𝐥 𝐝𝐞 𝐜𝐚𝐬𝐨𝐬 𝐗

esto es:

𝑭𝒓𝒆𝒄𝑿(𝒊)
𝑷(𝑿𝒊) =
𝑭𝒆𝒄𝑻𝒐𝒕 𝑿

se obtiene la frecuencia de ocurrencia de cada elemento Xi y se divide entre el total de


elementos de X.

Centro de Innovación y Desarrollo 48


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
La sumatoria de las probabilidades multiplicado por el logaritmo base 2 de esas las
probabilidades de X(i) es el cálculo de la entropía, dada por la fórmula matemática:

𝑯(𝑿) = − ∑ 𝐩(𝒙𝒊 ) 𝒍𝒐𝒈𝟐 𝒑(𝒙𝒊 )

En la Figura III.18 aparece en la parte inferior de los histogramas en azul, verde y rojo el
cálculo de la Entropía para cada color, en este caso los valores son: Eb = 7.99846, Eg =
7.99843 y Er = 7.998439999999.

III.5.5.-Coeficiente de Correlación[45]

La correlación permite conocer el grado de relación entre las variables, en el que se busca
determinar qué tan bien una ecuación lineal, o de otro tipo, describe o explica la relación
entre las variables [46].

La correlación está dada en función del grado de variación conjunta de dos variables
aleatorias, esto es el grado de dependencia de ambas variables llamada en estadística la
covarianza y está dada por:
∑ 𝒇𝒊 (𝑿𝒊 𝒀𝒊 )
̅𝒀
− 𝑿 ̅ donde N es el total de elementos.
𝑵

y las desviaciones típicas que nos dice el grado de dispersión de los datos con respecto al
valor promedio de cada variable de X y Y o sea el "promedio" o variación esperada con
respecto a la media aritmética la cual está dada por:

∑ 𝑿𝟐𝒊 ∑ 𝒀𝟐𝒊
𝝈𝒙 = √
𝑵
̅𝟐
− 𝑿 𝝈𝒚 = √
𝑵
̅𝟐
− 𝒀

En nuestro caso el Coeficiente de Correlación nos dice la similitud o coherencia de los


pixeles de la imagen el cual debe estar en rangos entre 0 y 1, el cual nos indica que
cuando el valor es menor que 1 NO hay relación entre los pixeles, en otro caso el valor
de 1 nos indica que SI hay una gran similitud entre los pixeles. La ecuación que se tomó
para el cálculo del Coeficiente de Correlación está dada por:

𝒏 ∑ 𝑿𝒊 𝒀𝒊 − ∑ 𝑿𝒊 ∑ 𝒀𝒊
𝒓𝒙𝒚 =
√𝒏 ∑ 𝑿𝟐𝒊 − (∑ 𝑿𝒊 )𝟐 √𝒏 ∑ 𝒀𝟐𝒊 − (∑ 𝒀𝒊 )𝟐

III.5.5.1-Interpretación del Coeficiente de Correlación

El valor del índice de correlación varía en el intervalo [-1,1]:

Si r = 1, existe una correlación positiva perfecta. El índice indica una dependencia total
entre las dos variables denominada relación directa: cuando una de ellas aumenta, la otra
también lo hace en proporción constante.

En la figura III.19 se muestran los posibles valores que puede tener el Coeficiente de
Correlación.

Si 0<r< 1, existe una correlación positiva [47].

49 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
Si r = 0, no existe relación lineal. Pero esto no necesariamente implica que las variables
son independientes: pueden existir todavía relaciones no lineales entre las dos variables.

Si -1 < r < 0, existe una correlación negativa.

Si r = -1, existe una correlación negativa perfecta. El índice indica una dependencia total
entre las dos variables llamada relación inversa: cuando una de ellas aumenta, la otra
disminuye en proporción constante.

Figura III.19. La correlación refleja la no linealidad y la dirección de la relación


lineal. En e) la correlación es indeterminada o cero.

III.5.5.2.-Implementación en el Cifrado de Imágenes.

Para implementar el Coeficiente de Correlación en las imágenes Original (IO), Cifrada (IC)
y Descifrada (ID) se usó la función de C++ srand( time( 0 ) ) que genera un número
aplicando cierto algoritmo a una semilla.

Para que rand() retorne siempre números distintos, la semilla tiene que ir cambiando, al
hacer una llamada a time() con el argumento NULL o 0, la función retorna la cantidad de
segundos que transcurrieron desde el 1 de Junio de 1970 a las 00:00 hrs. [48].

En seguida se usa la función rand() que genera números aleatorios mediante una semilla
diferente cada vez con srand(), el rango de donde se seleccionan estos números es el
ancho y lo alto de la imagen, por lo que se eligen 1000 pares de pixeles adyacentes (x,y)
de las imágenes IO, IC e ID en dirección diagonal (x+1, y+1). Parte del código en c++ es:
srand( time( 0 ) );
for(i = 0; i < 1000; i++)
{
Xa[i] = rand() % (widthImgO-3);
Ya[i] = rand() % (heightImgO-1); ………

Centro de Innovación y Desarrollo 50


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
En la Figura III.20 se muestran tres áreas del sistema, la primera son las imágenes
origina, cifrada y descifrada, la segunda área está en la parte inferior a ellas que muestran
las imágenes correspondientes al Coeficiente de Correlación.

Figura III.20. Coeficiente de Correlación, cuando el valor es menor que 1 NO hay


relación entre los pixeles, en otro caso el valor de 1 nos indica que SI hay una gran
similitud entre los pixeles

En la parte inferior se observa para el caso de la Imagen Original IO la similitud existente


entre los pares de pixeles seleccionados aleatoriamente. Los puntos graficados se
concentran en la diagonal del espacio gráfico.

Para el caso de la imagen Cifrada como se puede ver no existe relación en los pares de
pixeles aleatorios y por lo tanto se observa dispersión en la parte inferior de la imagen
cifrada. En la imagen recuperada o descifrada se nota en la parte inferior de esta imagen
una concentración en la parte diagonal del cuadrado del espacio del gráfico, se puede
decir que es prácticamente idéntico al de la imagen original.

De lo anterior, podemos decir que los resultados de los gráficos de los pixeles aleatorios
seleccionados corresponden con el fundamento teórico expuesto en el punto previo al
presente. La tercer área de la Figura III.20 se encuentra en el lado izquierdo de las
variables X y Y que son los valores seleccionados aleatoriamente con el método
anteriormente expuesto, además de las variables calculadas X*Y, X2 y Y2 las cuales
fueron necesarias para calcular los Coeficientes de Correlación Correspondientes.

En la Figura III.20 por último se muestran los resultados de los cálculos del Coeficiente de
Correlación de acuerdo a la ecuación expuesta en el punto previo al presente, a
continuación se muestran en la Tabla III.3.
Imagen Coeficiente de Covarianza Desviación Típica Desviación Típica
Correlación X Y
Original 0.9841 6673 83.1023 81.5966
Cifrada 0.0425 240 74.8665 75.4453
Descifrada 0.9841 6673 83.1023 81.5966
Tabla III.3. EL valor de 0.9841 es bastante aproximado a 1 y 0.0425 si lo restamos a 0.9841 no se ve
disminuido (0.9416) de manera nada notable por lo que se puede considerar 0.

51 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
III.5.5.3.- Resultado de la Entropía y Coeficiente de Correlación aplicado a 31
imágenes.

En la Tabla III.4 se muestran los resultados de los cálculos en 31 imágenes seleccionadas


para las variables de Entropía y Coeficiente de Correlación.
Coeficiente
Archivo BMP Tamaño kb Entropía
No Correlación

1 cosmovitral1 9000 7.99866 0.04260


2 arquitectonico2 4680 7.99862 0.03040
3 caballeros 2810 7.99838 0.06760
4 rey 2810 7.99737
5 Alhambra1 2250 7.99831 0.00390
6 Alhambra24 2250 7.99846 0.01010
7 Alhambra8 2250 7.99856 0.01100
8 Chrysanthemum1 2250 7.99851 0.01310
9 Desert1 2250 7.99842 0.02240
10 huella1 2250 7.99828 0.13110
11 arquitectonico1 1280
12 guerrero 1120 7.99806 -0.00640
13 Barbara 768 7.99782 0.06340
14 espectroscopia2 768 7.99762 -0.00560
15 indice 768 7.99682
16 indice1 768 7.99674
17 Lena 768 7.99779 0.01130
18 r_ianrushton_onetreehill11 768 7.99795 0.06470
19 espectroscopia1 384 7.99681
20 delitos1 337 7.99661
21 yaleB27_P02A+070E+45 257 7.99514 0.15690
22 Burrito 150 7.99523
23 cruz 147 7.99641
24 frutoverde 147
25 lorem1 147 7.99476 -0.00210
26 lorem2 147 7.99536 0.08520
27 lorem3 147 7.99499
28 Niña 147 7.99528 0.12470
29 portada1 147 7.99535 0.06440
30 Rostro1 147 7.99530 0.06420
31 voynich1 147 7.99514 0.07640
Tabla III.4. 31 Cálculo de la Entropía y Coeficiente de Correlación realizado por el sistema.

Centro de Innovación y Desarrollo 52


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
Encontramos que los valores de Entropía oscilan entre 7.99476 y 7.99866 encontrados el
primero en una de las imágenes más pequeñas de 147kb y el segundo valor en la imagen
de mayor tamaño de 9 Mb.

En cuanto al cálculo del Coeficiente de Correlación se encontró valores que casi todos del
orden de centésimas, sólo uno de ellos llegó a un valor máximo de 0.13110 el menor de
los 31 fue de 0.00390 en una imagen con una profundidad de color de 1 bit, en general la
mayoría se encuentran con valores aceptables del Coeficiente de Correlación.

53 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable

Capítulo IV: Conclusiones y Trabajo futuro


IV.1.-Conclusiones

 El método de cifrado con la combinación de Advanced Encryption Standard (AES)


y Permutación Variable resulta ser un método de encriptación que brinda
estándares de seguridad de alto nivel de acuerdo con los resultados descritos.

 Un ataque de fuerza bruta para encontrar la llave no resulta ni siquiera pensable


ya que aún con los equipos con mayor velocidad de procesamiento el tiempo que
le tomaría a equipos de este nivel resulta muy elevado y costoso.

 AES de 128 bits es suficiente para satisfacer las necesidades de por lo menos 10
años, tomando en cuenta que las computadoras más rápidas requieren tiempos
del orden de 1010 años.

 Es importante señalar que la función AddRound permite incorporar en cierta atapa


del proceso de cifrado las propiedades de los métodos de confusión y difusión,
pero con una particularidad de gran relevancia en el cifrado: la dependencia de
toda la metodología del cifrado y descifrado en una llave conocida sólo por el
usuario y que como se analizó en la sección de pruebas cualquier cambio en la
llave de descifrado por pequeño que sea, el resultado del descifrado no sólo no
será el adecuado, sino que producirá resultados más complejos para descifrar.

 Imágenes con niveles de profundidad y resolución bajos, en el cifrado de


imágenes únicamente con AES se perciben rasgos en la imagen que permiten
deducir a simple vista el contenido general de la imagen original. Para eliminar
cualquier indicio que permita identificar algún rasgo de la imagen, deberá
implementarse la función de Permutación, la cual se aplica a cada bloque de 128
bits de la imagen con n (necesarios) dígitos de Pi a partir del punto decimal a la
derecha, los cuales son utilizados en la función de Permutación.

 La función de Permutación Variable fortalece el algoritmo AES, como se puede


percibir en las imágenes de bajo nivel de profundidad. Introducir a través de los
números Pi su propiedad de aleatoriedad, permite obtener resultados a primera
vista más confusos.

Por lo anteriormente expuesto se concluye que los objetivos general y particular han
sido cumplidos y superados.

Centro de Innovación y Desarrollo 54


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable

IV.2.-Trabajos Futuros

 Desarrollar un proyecto de investigación para transformar el algoritmo AES-


Permutación Variable para sistemas paralelos con el fin de reducir los tiempos de
cifrado y descifrado.

 Simplificar el algoritmo AES-Permutación Variable para la implementación en


equipos RaspBerry PI con el fin de generar prototipos de unidades de hardware
Cifrado –Descifrado.

 Implementar el algoritmo de AES –Permutación Variable con circuitos FPGA para


la utilización en dispositivos embebidos.

 Escalar del algoritmo AES-Permutación Variable para su utilización en sistemas


móviles, como unidades de transferencia de archivos de imágenes.

55 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable

Anexo 1

Centro de Innovación y Desarrollo 56


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable

Anexo 2
Poster presentado en el 10º. International Congress
Technological Trends in Computing, octubre de 2014
CIDETEC IPN, México.

57 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable

Referencias
[1] Hamdan.O.Alanazi, B.B.Zaidan, A.A.Zaidan, Hamid A.Jalab, M.Shabbir and Y. Al-Nabhani,
“New Comparative Study Between DES, 3DES and AES within Nine Factors”, JOURNAL OF
COMPUTING, VOLUME 2, ISSUE 3, MARCH 2010
[2] Bruen Aiden A., Forcinito Mario A., Cryptography, Information Theory, and Error Correction,
Published by John Wiley & Sons, Inc. Hoboken, New Jersey, 2005.
[3] Douglas R. Stinson. Cryptography Theory and Practice. Third Edition. University Waterloo;
Ontario Canada. Published Chappman and Hall/CRC. 2006.
[4] Gaj, Krzysztof. Szyfr Enigmy : metody zlamania Published by Warszawa : Wydawn. Komunikacji
i Lacznosci. 1989. Traducción: http://www.exordio.com/1939-1945/militaris/espionaje/enigma.html
[5] Omar Guzmán Guzmán. Tesis Seguridad de la Información a través de la Criptografía,. Morelia,
Michoacán Febrero 2010.
[6] National Institute of Standards and Technology (NIST). Federal Information Processing
Standards Publications (FIPS PUBS). ADVANCED ENCRYPTION STANDARD (AES). Publication
197 November 26, 2001.
[7] A.A. Zaidan, B. A. (s.f.). "High Securing Cover-File of Hidden Data Using Statistical Technique
and AES Encryption. World Academy of Science Engineering and Technology ol.54, ISSN: 2070-
3724, P.P 468-479.
[8] A.W. Naji, A.A. Zaidan, B.B.Zaidan, Ibrahim A.S. Muhamadi, “Novel, Approach for Cover File of
Hidden Data in the Unused Area Two, within EXE File Using Distortion Techniques and Advance
Encryption Standard.”, Proceeding of World Academy of Science, Engineering and Technology
(WASET),Vol.56, ISSN:2070-3724, P.P498-502.
[9] M. Abomhara, Omar Zakaria, Othman O. Khalifa , A.A. Zaidan, B.B. Zaidan, “Enhancing
Selective Encryption for H.264/AVC Using, Advance Encryption Standard “, International Journal of
Computer and Electrical Engineering (IJCEE), ISSN: 1793-8198,Vol.2 , NO.2, April 2010,
Singapore.
[10] A.W. Naji, Shihab A. Hameed, B.B. Zaidan, Wajdi F. Al-Khateeb, Othman O. Khalifa, A.A.
Zaidan and Teddy S. Gunawan, “ Novel, Framework for Hidden Data in the Image Page within
Executable File Using Computation between Advance Encryption Standard and Distortion
Techniques”, International Journal of Computer Science and Information Security (IJCSIS), Vol. 3,
No 1 ISSN: 1947-5500, P.P 73-78,3 Aug 2009, USA.
[11] Hamdan. Alanazi, Hamid. A.Jalab, A.A. Zaidan, B.B. Zaidan, “New Frame Work of Hidden Data
with in Non Multimedia File”, International Journal of Computer and Network Security, 2010, Vol.2,
No.1, ISSN: 1985-1553, P.P 46-54,30 January, Vienna, Austria.
[12] Alaa Taqa, A.A Zaidan, B.B Zaidan ,“New Framework for High Secure Data Hidden in the
MPEG Using AES Encryption Algorithm”, International Journal of Computer and Electrical
Engineering (IJCEE),Vol.1 ,No.5, ISSN: 1793-8163, p.p.566-571 , December (2009). Singapore.
[13] A.A. Zaidan, B.B. Zaidan, Hamid.A. Jalab,“ A New System for Hiding Data within (Unused Area
Two + Image Page) of Portable Executable File using Statistical Technique and Advance
Encryption Standard “, International Journal of Computer Theory and Engineering (IJCTE), 2010,
VOL 2, NO 2, ISSN:1793-8201, Singapore.
[14] Rojas Matas Ángela, “Cifrado de imágenes y Matemáticas”, Departamento de Matemáticas,
Edificio Einstein Campus de Rabanales, Universidad de Córdoba (14071) España.
[15] Hernández Encinas Luis, “Esquemas criptográficos visuales” Dpto. Didáctica de las
Matemáticas y de las CC.EE. UNIVERSIDAD DE SALAMANCA, 2000.

Centro de Innovación y Desarrollo 58


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
[16] James D. Murray, William VanRyper, Encyclopedia of Graphics File Formats: The Complete
Reference. O'Reilly Media; Second Edition edition (May 8, 1996). http://windows.microsoft.com/es-
mx/windows/understanding-picture-file-types#1TC=windows-727.09.2013, 20:40 hrs.
[17] López González Erika, Tesis de Maestría “Esquema de encriptación de imágenes usando 3-
DES de permutación variable” CIDETEC,I.P.N. México, 2010.
[18] Cuerpo Nacional de Policía, Gobierno de España. http://www.dnielectronico.es/PortalDNIe/
Guíe de Referencia del DNIe con NFC, Madrid febrero de 2015.
[19] Gibrán Granados Paredes. INTRODUCCIÓN A LA CRIPTOGRAFÍA. Revista Digital
Universitaria. 10 de julio 2006 • Volumen 7 Número 7 • ISSN: 1067-6079
[20] http://www.exitoexportador.com/stats.htm. Usuarios del Internet y la Población por Países y
Regiones (Africa, Asia, Europa, Latinoamérica, Norteamérica, Oriente Medio y Oceanía).
[21] Donado Escobar Leonardo Daniel, “El Teorema de Shannon y la Criptografía”, Journal of
Technology, Vol. 5 No1, 2006. Catedrático en la Universidad del Bosque en Colombia.
[22] http://www.navy.mil/midway/Rochefort.html, 06.10.13, 19:hrs.
[23] Hernández Leobardo. Coordinador del Laboratorio de Seguridad Informática UNAM, México.
Taller de Seguridad Informática, VII Congreso Iinternacional de Informática, Robótica, Mecatrónica
y Tecnologías”, Mazatlán, Sinaloa, 7, 8 y 9.11. 2013.
[24] ESET México. Paseo de la Reforma 250 Piso 8 Torre A Colonia Juarez, Delegación
Cuauhtémoc México DF, CP 06600 Resultados del ESET Security Report febrero de 2010 en
México D.F. http://www.eset-la.com.
[25] http://redyseguridad.fi-p.unam.mx/proyectos/criptografia/criptografia/index.php/1-panorama-
general/11-concepto-de-criptografia, 23 de noviembre de 2013, 23:51 hrs.
[26] THE Codebreakers The Story of Secret Writing By DAVID KAHN. A SIGNET BOOK from NEW
AMERICAN IBRARV. © 1967, 1973 by David Kahn
[27] Chi-Wu Huang, Hong-You Chen*, Hsing-Chang Yeh, Chi-Jeng Chang. Block RAM Based
Design of 8-bit AES Operation Modes. Dept. of Applied Electronics Technology. National Taiwan
Normal University, Taipei, Taiwan.
[28] Jin Gong ,Wenyi Liu, Huixin Zhang. Multiple Lookup Table-Based AES Encryption Algorithm
Implementation. Key Laboratory of Instrumentation Science &Dynamic Measurement (North
University of China), Ministry of Education,Science and Technology on Electronic Test
&Measurement Laboratory North University of China Taiyuan, China. 1-s2.0-S1875389212005822-
main
[29] David Arroyo a, Chengqing Li b, Shujun Li c, Gonzalo Alvarez a, Wolfgang A. Halang c a
Cryptanalysis of an image encryption scheme based on a new total shuffling algorithm. Instituto de
Física Aplicada, Consejo Superior de Investigaciones Científicas, Serrano 144, 28006 Madrid,
Spain b Department of Electronic Engineering, City University of Hong Kong, 83 Tat Chee Avenue,
Kowloon Tong, Hong Kong SAR, China c Fern Universität in Hagen, Chair of Computer
Engineering, 58084 Hagen, Germany1-s2.0-S0960077908004645-main.
[30] Qing Zhou, Kwok-wo Wong, Xiaofeng Liao, Tao Xiang, Yue Hu. Parallel image encryption
algorithm based on discretized chaotic map. Department of Computer Science and Engineering,
Chongqing University, Chongqing 400044, China .Department of Electronic Engineering, City
University of Hong Kong, Hong Kong, China Accepted 2 January 2007.
[31] Instituto de Matemáticas, UNAM,
http://www.matem.unam.mx/rajsbaum/cursos/web/presentacion_seguridad_1.pdf, 04/04/2014,
15:03 hrs.
[32]. Kerchoff’s, August 1883 La cryptographies militaries” Journal des sciences militaries 59, 1
(Paris): 5-38), (http://danteslab.blogspot.mx/2008/12/la-doctrina-de-kerckhoffs.html

59 Centro de Innovación y Desarrollo


Tecnológico en Cómputo
Cifrado de imágenes utilizando Advanced Encryption
Instituto Politécnico Nacional Standard (AES) con Permutación Variable
[33] Kenneth R. Castleman. Digital Image Processing (2nd Edition). Published Prentice Hall 1995
[34] Joan Daemen, Vincent Rijmen. The First 10 Years of Advanced Encryption STMicroelectronics,
Katholieke, Universiteit Leuven, Copublished By The IEEE Computer And Reliability Societies,
Crypto Corner November/December 2010.
[35] A. Menezes, Hanbook of Applied Crytography, CRC Press, New York 1997.
[36] Silva García, Víctor M., et al. “Algorithm for Strengthening Some Crytographic Systems”,
[Paper] México D.F.: Aplied Mathematical Sciences, Vol. 4, 2010, no. 20, 967-976, 2010, s/n.
[37] C.E.Shannon, Mathematical Theory of Comunication, The Bell System Technical Journal
Vol.XXVII, No. 3 July, 1948.
[38] C.E. Shannon, Comunication Theory of Secrecy Systems, The material in this paper appeared
in a confidential report “A Mathematical Theory of Cryptography” dated Sept.1, 1946, which has
now been declassified.
[39] Barron Vidales Jesús, Diseño e implementación de un esquema de cifrado híbrido basado en
DHIES, CIVESTAV IPN, 2005.
[40] Rueda, Jorge Enrique; Romero, Ana Ludia; Castro, Lina Mireya Criptografía digital basada en
tecnología óptica Bistua: Revista de la Facultad de Ciencias Básicas, vol. 3, núm. 2, julio, 2005, pp.
19-25, Universidad de Pamplona.
[41] Ángela Rojas Matas , Alberto Cano Rojas, Cifrado de imágenes y Matemáticas, Departamento
de Matemáticas, Universidad de Córdoba, España.
[42] González González Rafael Alberto, Algoritmo basado en Wavelets aplicado a la detección de
incendios forestales, Capítulo 2, Universidad de las Américas Puebla. Mayo 2010.
[43] Herstein I.N., 1986, Algebra Abstracta, Grupo Editorial Iberoamérica, pp. 22 y 11.
[44] Leo Kelion. BBC News 18 november 2013. http://www.bbc.com/news/technology-24984320.
Sun Yat-sen University East Campus, Higher Education Mega Centre, Guangzhou, P. R. China.
http://www.tianhe2.org/.
[45] Murray R. Spiegel, Larry J. Stephens, Estadística, 4ª. Ed. Shaum, págs. 345,346.
[46] D. López-Mancilla, J.M. Roblero Villa, Encriptado de Imágenes Usando Modelos Caóticos
Continuos y Discretos, XXIX Congreso de Instrumentación 2014, Puerto Vallarta , Jalisco, México.
[47] Nieves Hurtado Antonio. Domínguez Sánchez Federico C. Probabilidad y Estadística para
Ingeniería Un enfoque moderno. McGraw Hill Interamericana. 2009.
[48] cplusplus.com. C++ Language Tutorial. http://www.cplusplus.com/reference/cstdlib/srand/.
30 de Julio 2015.

Centro de Innovación y Desarrollo 60


Tecnológico en Cómputo