UNIVERSIDAD AUTÓNOMA DE SAN LUIS POTOSÍ
COORDINACIÓN ACADÉMICA REGIÓN ALTIPLANO
OESTE
DISEÑO DE TRAYECTORIAS CAÓTICAS MEDIANTE EL
AUMENTO DE PUNTOS DE EQUILIBRIO EN SISTEMAS
LINEALES POR PEDAZOS Y SU APLICACIÓN A LA
CRIPTOGRAFÍA.
TESIS PROFESIONAL
PARA OBTENER EL TÍTULO DE:
INGENIERO EN SISTEMAS COMPUTACIONALES
PRESENTA:
JUAN DANIEL GONZÁLEZ DEL RÍO
ASESORES DE TESIS:
DR. LUIS JAVIER ONTAÑÓN GARCÍA PIMENTEL
DR. MARCO TULIO RAMÍREZ TORRES
ABRIL 2019
AGRADECIMIENTOS
Los sueños parecen al principio imposibles, luego improbables, y luego, cuando
nos comprometemos, se vuelven inevitables.
Mahatma Gandhi
Primeramente, quiero agradecer a la UASLP, Coordinación Académica Región
Altiplano Oeste, por darme la oportunidad de estudiar una carrera universitaria, así
como formar parte de la primera generación de egresados del campus Salinas.
Gracias a mis asesores y profesores, el Dr. Luis Javier Ontañón García Pimentel y
el Dr. Marco Tulio Ramírez Torres. Por brindarme su conocimiento, motivación,
paciencia, disponibilidad, ayuda y enseñanzas personales y profesionales a lo largo
de mi vida como estudiante, impulsándome a seguir adelante en todo momento.
Otorgándome grandes experiencias tanto en la investigación, participaciones
académicas y eventos estudiantiles, los cuales me hicieron crecer y formarme
profesionalmente. Agradecimientos a los administradores y profesores del campus
Salinas por su gran apoyo, atención y amabilidad, así como orientarme e
impulsarme a seguir adelante en estos 4 años de estudio.
Gracias a todos aquellos con los que he podido colaborar profesionalmente, así
como a mis compañeros de generación de la carrera de Ingeniería en Sistemas
Computacionales por su motivación, consejos y compañía.
Y por encima de todo, quiero agradecer incondicionalmente a toda mi familia
quienes me brindaron todo su apoyo y buenas vibras para concretar uno de mis
sueños. En especial a mis padres, por creer y confiar en mí, y brindarme la
oportunidad de seguir estudiando a pesar de todo. A mi hermano Karol por
regalarme su cariño y ternura, además de animarme en los momentos difíciles y
agotadores para mí.
A mis amigos que siempre estuvieron presentes, gracias por su amistad y ánimos
cada día. Siempre lograban animarme y hacer que mi vida universitaria fuera más
cómoda. Gracias a los que vienen y a los que ya no están, por dejarme una gran
experiencia.
Muchas gracias a todos, de todo corazón.
DEDICATORIA
Este logro es dedicado en especial a mis padres Rosa María Del Rio y Juan Manuel
González Tapia González por ser un pilar fundamental en mi vida, por su apoyo,
amor, comprensión y motivación durante estos años que me han permitido llegar a
cumplir mi sueño, a mi hermano Karol Alejandro por ser parte importante en mi vida,
por estar siempre conmigo apoyándome y llenándome de alegría siempre que lo
necesite, también a toda mi familia por siempre alentarme a estudiar y ser mejor
persona. A Dios, por ser mi fortaleza en mis momentos de debilidad y brindarme
una vida llena de aprendizajes y experiencias.
A mis asesores el Dr. Luis Javier Ontañón García Pimentel y el Dr. Marco Tulio
Ramírez Torres por su apoyo incondicional en todo momento e influencia de
siempre seguir adelante. Por otorgarme su conocimiento para llevar a cabo esta
tesis, así como las oportunidades de compartir el conocimiento aprendido en varios
congresos y actividades estudiantiles.
También a mí, por mi gran esfuerzo, dedicación y responsabilidad, por mis ganas
de siempre seguir adelante y demostrarme de lo que puedo ser capaz.
Juan Daniel González Del Río
2
ÍNDICE GENERAL
ÍNDICE GENERAL .................................................................................................. 2
ÍNDICE DE TABLAS ............................................................................................... 4
ÍNDICE DE FIGURAS ............................................................................................. 5
Resumen ................................................................................................................. 6
CAPÍTULO 1. Introducción a los sistemas caóticos y criptografía ........................... 7
1.1. Objetivo general ......................................................................................... 9
1.2. Objetivos especificos ................................................................................. 9
1.3. Antecedentes ........................................................................................... 10
1.3.1. Caos ........................................................................................... 10
1.3.2. Criptografía ................................................................................. 11
1.3.3. Seguridad perceptual y criptográfica. .......................................... 13
1.3.4. Autómatas celulares. .................................................................. 13
1.3.5. Regla 90...................................................................................... 14
1.4. Esquema de Tesis ................................................................................... 15
CAPÍTULO 2. Sistemas Dinámicos. ...................................................................... 16
2.1. Sistema de Lorenz. .................................................................................. 16
2.2. Sistema de Rössler. ................................................................................. 17
2.3. Bifurcación. .............................................................................................. 19
CAPÍTULO 3. Diseño de sistemas caóticos con puntos de equilibrio. .................. 22
3.1. Sistemas caóticos. ................................................................................... 22
3.2. Sistemas lineales por pedazos. ............................................................... 22
3.3. Exponentes de Lyapunov. ....................................................................... 28
3.4. Diagrama de bifurcación del sistema multienroscado .............................. 29
CAPÍTULO 4. Desarrollo y mejora de un sistema de encriptacion de imágenes
digitales. ................................................................................................................ 30
4.1. Generador de bits pseudoaleatorio. ......................................................... 30
4.2. Diseño del esquema de cifrado y descifrado. .......................................... 31
4.3. Chosen-Plaintext attack ........................................................................... 32
4.4. Mejora al sistema de cifrado. ................................................................... 34
CAPÍTULO 5. Validación del sistema de cifrado. .................................................. 40
5.1. Cifrado de las imágenes. ......................................................................... 40
5.2. Análisis de histogramas. .......................................................................... 41
3
5.3. Análisis de correlación entre la imagen original y la encriptada. .............. 43
5.4. Entropía de la información. ...................................................................... 44
CONCLUSIONES .................................................................................................. 45
APÉNDICE ............................................................................................................ 46
Apéndice A. Método de 4to orden de Runge Kutta. ........................................ 46
Apéndice B. Códigos de simulaciones en Matlab. .......................................... 47
Apéndice C. Congresos Arbitrados. ................................................................ 55
REFERENCIAS ..................................................................................................... 71
4
ÍNDICE DE TABLAS
Tabla I. Ubicación de las superficies de conmutación. .......................................... 23
Tabla II. Posición de los puntos de equilibrio para la generación del sistema
multienroscado. ..................................................................................................... 27
Tabla III. Interpretación de los coeficientes de correlación. ................................... 43
Tabla IV. Coeficientes de correlación entre las imágenes simples y sus
correspondientes imágenes cifradas. .................................................................... 43
Tabla V. Entropía de la información de las imágenes originales y las imágenes
cifradas. ................................................................................................................. 44
5
ÍNDICE DE FIGURAS
Figura 1. Algoritmo de encriptación simétrico........................................................ 11
Figura 2. Algoritmo de encriptación asimétrico...................................................... 12
Figura 3. Representación de la regla 90 de un autómata celular y su evolución... 14
Figura 4. (a) Atractor de Lorenz ............................................................................ 17
Figura 5. (a) Atractor de Rössler ........................................................................... 18
Figura 6. Diagramas de Bifurcación del sistema Lorenz ....................................... 19
Figura 7. Diagramas de Bifurcación del sistema de Rössler ................................. 20
Figura 8. Diagrama de regiones, superficies de conmutación y colocación de puntos
de equilibrio para la realización del sistema multienroscado. ................................ 24
Figura 9. (a) Proyección del sistema multienroscado en 3 dimensiones dado por las
ecs. (5) y (6) para la ley de conmutación de la ec. (7) con nueve atractores ........ 26
Figura 10. Grafica dinámica de los Exponentes de Lyapunov del sistema
multienroscado. ..................................................................................................... 28
Figura 11. Diagrama de Bifurcación del sistema multienroscado .......................... 29
Figura 12. Vulnerabilidad del Chosen-plaintext attack para la imagen de Lena ... 33
Figura 13. Generador de secuencias pseudoaleatorias ........................................ 35
Figura 14. Función de preprocesamiento y desprocesamiento. ............................ 36
Figura 15. Chosen-plaintext attack para la imagen de Lena ................................. 37
Figura 16. Chosen-plaintext attack para la imagen de Mandril.............................. 38
Figura 17. Chosen-plaintext attack para la imagen de Pimientos .......................... 39
Figura 18. Imágenes de Lena, Mandril y Pimientos original, cifrada y descifrada . 41
Figura 19. (a) Histogramas de la imágenes de Lena, Mandril y Pimientos ........... 42
6
RESUMEN
Actualmente, la seguridad de la información digital ha tenido un gran impacto debido
al creciente número de dispositivos electrónicos conectados a internet y al
incremento de tareas que estos realizan. Esto representa un gran reto para la
comunidad científica y de investigación, ya que, para lograr la confidencialidad,
privacidad, integridad y autentificación de los datos personales es necesario el uso
de tecnologías especializadas. Una forma de proporcionar estos servicios es por
medio de la criptografía, sin embargo, la creciente demanda requiere de nuevos
algoritmos que sean más rápidos y a su vez más seguros. Una opción para lograr
estos objetivos es la criptografía basada en sistemas caóticos. Para ello en el
presente proyecto se llevó a cabo el estudio y aplicación de sistemas caóticos
basados en el uso de sistemas lineales por pedazos, los cuales pueden ser una
gran contribución a la encriptación de datos debido a que estos sistemas son fáciles
de implementar y además presentan trayectorias caóticas óptimas para los
procesos de encriptación. Para esto se utilizó un análisis de la ubicación de los
puntos de equilibrio y número de enroscados, con la finalidad de generar un sistema
multienroscado. Para el sistema de encriptación se tomó la secuencia dada por el
generador para crear una llave de cifrado y se realizó la unión con los datos de
entrada por medio de la operación 𝐗𝐎𝐑 para producir la encriptación de imágenes
en escala de grises. Se efectuó el análisis de seguridad estadístico para determinar
la eficiencia del encriptado propuesto y corroborar los datos mediante las pruebas
de coeficientes de correlación, histogramas, entropía de la información y también
ataques de criptoanálisis como lo es el chosen-plaintext attack (CPA).
Posteriormente se desarrolló una mejora del encriptado propuesto aplicando un
PRNG basado en la evolución hacia atrás de la regla 90 de autómatas celulares. La
cual nos llevará a establecer un sistema de seguridad, que puede ser implementado
en comunicaciones.
7
CAPÍTULO 1. INTRODUCCIÓN A LOS SISTEMAS CAÓTICOS Y
CRIPTOGRAFÍA
La idea de transmitir información sensible y ocultarla de manera segura ante posibles
intrusos y piratas informáticos, ha generado un impacto muy fuerte en la comunidad
científica que inspira a muchos investigadores a combinar una gran variedad de
enfoques para abordar este desafiante problema. Varios métodos que enmascaran
la información transmitida han sido propuestos durante los últimos años. Estos
métodos de encriptación se basan en muchas técnicas diferentes, por ejemplo,
encriptación parcial [1], patrones de exploración [2], autómatas celulares [3, 4] y
árboles de dispersión [5], entre otros. Una de las áreas que ha comenzado a llamar
la atención en la criptografía es el caos. Esto se debe a la dinámica intrínseca que
existe en estos sistemas y su inherente sensibilidad a las condiciones iniciales.
Los sistemas caóticos son sistemas no lineales que cambian o evolucionan con el
estado del tiempo, pueden llegar a tener resultados impredecibles y ser complejos.
Dichos sistemas son extremadamente sensibles a las condiciones iniciales puesto
que la más mínima alteración repercute en su comportamiento, como es en el caso
de la meteorología, la cual es la disciplina que estudia los fenómenos atmosféricos.
El caos ha sido objeto de investigación en los últimos años. Se han encontrado
diversos sistemas dinámicos con comportamiento no lineal o inclusive caótico los
cuales abarcan una gran cantidad de áreas de la ciencia, y el número de aplicaciones
aumenta día a día. Los sistemas dinámicos no lineales son capaces de producir un
comportamiento caótico y pueden presentar dependencia al tiempo con respecto a
su posición en el espacio. El estado de un sistema dinámico se conoce para
cualquier tiempo dadas las condiciones iniciales, a las cuales son extremadamente
sensibles. Además de que sus trayectorias nunca pasan por un mismo punto dos
veces.
Hoy en día la seguridad de la información cuenta con secuencias aleatorias que
resultan útiles para aplicarlas a diversos procesos que permitan otorgar privacidad,
autenticidad y confidencialidad a la información. Estas secuencias deben cumplir con
dos requisitos fundamentales: mostrar aleatoriedad y ser impredecibles, uno de los
sistemas más populares utilizados es el cifrado por flujo ya que este sistema funciona
con secuencias de texto, de un bit o byte a la vez. Este tipo de cifrado toma la señal
generada por el sistema caótico y la usa para enmascarar un mensaje. Algunas de
las aplicaciones utilizadas para las secuencias son las criptográficas. El uso de estas
técnicas ha tenido una buena aceptación por las propiedades estadísticas que
poseen y su comportamiento caótico [6].
En la actualidad, con la gran cantidad de información que se genera en tiempo real,
se requieren de nuevos métodos que ayuden a garantizar la seguridad y evitar el
acceso de personas no autorizadas. Los métodos de encriptación convencionales
8
no son apropiados para cifrar imágenes, ya que son propensos a ataques
estadísticos debido a la fuerte similitud que existe entre píxeles adyacentes.
Tomando esto en consideración, en este trabajo se propone un nuevo algoritmo de
encriptación capaz de trabajar con imágenes digitales altamente redundantes,
mediante el uso de sistemas lineales por pedazos, estos sistemas se basan en
parámetros de conmutación que se visualizan durante un intervalo de tiempo,
creando trayectorias complejas y caóticas en forma de enroscados. Llegando a
utilizar este sistema multienroscado para la generación de una llave de cifrado, la
cual pueda llegar a prevenir que una persona no deseada descifre el mensaje
encriptado si es que ésta desconoce los parámetros del oscilador usado y las
condiciones iniciales del mismo. Llegando a aplicar este tipo de algoritmos en el
cifrado de imágenes médicas, telecomunicaciones, sistemas de vigilancia,
videoconferencias, televisión de paga o en cualquier otro tipo de información
importante.
9
1.1. Objetivo general
Generar un sistema multienroscado mediante el uso de sistemas lineales por
pedazos con más enroscados y puntos de equilibrio con respecto a los ya
presentados en [7, 8] y crear con ello una llave 𝑘 para la encriptación de imágenes
en escala de grises. Además de generar un proceso de cifrado más seguro y eficaz
sometiéndolo a diversas pruebas estadísticas para demostrar su efectividad.
1.2. Objetivos especificos
Crear un sistema multienroscado con más puntos de equilibrio y enroscados
en un plano de 3 dimensiones.
Generar una llave de cifrado pseudoaleatoria con el uso del sistema
multienroscado.
Encriptar y desencriptar pixel a pixel imágenes en escala de grises mediante
un método de encriptación por flujo.
Someter a diferentes pruebas a las imágenes cifradas para su validación.
Mejorar el proceso de cifrado mediante el uso de las ecuaciones de la
evolución hacia atrás de la regla 90 de autómatas celulares en 8 bits.
10
1.3. Antecedentes
1.3.1. Caos
EL caos consiste en el estudio de la percepción de fenómenos complejos que
provienen de la física, la meteorología, la biología, la economía, entre otros. La
definición técnica de caos menciona que, un sistema dinámico caótico es aquél que
exhibe muchos de los atributos de los sistemas ideales aleatorios; en esencia su
evolución es impredecible debido a la extrema sensibilidad a las condiciones
iniciales y el promedio de sus propiedades se puede describir empleando métodos
estadísticos [9].
Un sistema se considera caótico si tiene tres propiedades fundamentales: presenta
sensibilidad a las condiciones iniciales, los puntos periódicos para los sistemas son
densos y el sistema es transitivo [10].
En la actualidad se han llevado a cabo investigaciones enfocadas en el desarrollo
de sistemas multienroscados con el uso de sistemas lineales por pedazos (PWL) [7,
8], y la aplicación de sistemas no lineales como lo son el Sistema de Lorenz [11],
para poder efectuar la generación y el manejo de claves de cifrado y así ejecutar el
proceso de cifrado de imágenes. A continuación, se presentan algunas de ellas:
En [7], E. Campos Cantón y colaboradores generaron un sistema dinámico
tridimensional haciendo uso de sistemas lineales por pedazos (PWL). Este sistema
llamado sistema disipativo inestable (UDS por sus siglas en ingles), fue disipativo
en la variedad de sus puntos de equilibrio de manera estable e inestable, estas
variedades se pueden estudiar a través de los valores del sistema. Fue construido
con una ley de conmutación para obtener varios atractores extraños de múltiple
enroscado, aparecen como resultado de la combinación de varias trayectorias
inestables de una sola espiral mediante conmutación.
En [8], M. García y colaboradores, trabajaron con atractores basados en sistemas
lineales por pedazos de diferente número de enroscados, en donde los enroscados
y puntos de equilibrio se localizaban únicamente a lo largo del eje 𝑥. Por lo tanto,
surge la siguiente pregunta: ¿qué pasaría con la secuencia de la llave cifrada si los
enroscados no solo crecieran en el eje 𝑥, sino en un plano de 2 o 3 dimensiones?
Tomando esto en consideración, en este trabajo de investigación se desarrolla un
algoritmo para ubicar puntos de equilibrio en un sistema lineal por pedazos
localizados en un plano tridimensional, realizando de esta manera un sistema con
un mayor número de enroscados que resulte en trayectorias más complejas.
11
Figura 1. Algoritmo de encriptación simétrico [12].
1.3.2. Criptografía
La criptografía es el arte y la ciencia que tiene como fin proteger información
confidencial. Consiste en el estudio de los procedimientos, métodos y procesos de
elaboración y uso de códigos y cifrados secretos. Ha sido utilizada en entornos
privados como lo son políticos, militares y religiosos a través del tiempo y de
diferentes medios de comunicación: papel, teléfono, telégrafo y redes informáticas.
El intercambio de información tiene un papel muy importante en la actualidad
gracias al gran avance de la tecnología, existen prometedores resultados con
respecto a la evolución y mejora de la seguridad en su transmisión.
Según el número de claves utilizadas, los sistemas criptográficos se dividen en dos
ramas principales: algoritmos simétricos (o de clave privada) y algoritmos
asimétricos (o de clave pública). En la Figura 1 se da un ejemplo de los algoritmos
simétricos, en estos algoritmos el emisor y el receptor utilizan la misma clave
secreta; tanto para cifrar como para descifrar el mensaje; se requiere un canal de
comunicación seguro para el intercambio de la clave secreta entre el emisor y el
receptor con el objetivo de evitar que un tercero pueda descifrar los mensajes.
12
Figura 2. Algoritmo de encriptación asimétrico [12].
Las ventajas que presenta el algoritmo simétrico son: velocidad, fuerza y
disponibilidad. Y sus desventajas son: distribución y gestión de claves y
escalabilidad.
En los sistemas asimétricos el emisor y el receptor utilizan claves diferentes, 𝐾𝐸 y
𝐾𝐷, siendo 𝐾𝐷 la clave privada y 𝐾𝐸 la clave pública. Una de ellas se utiliza para
el cifrado de la información y la otra para su descifrado, como se puede observar en
la Figura 2. El conocimiento de la clave pública 𝐾𝐸 de ninguna manera debe permitir
acceder a la clave privada 𝐾𝐷. De este modo se establece la comunicación segura
por canales inseguros, puesto que únicamente viaja por el canal de la clave pública,
que solo sirve para cifrar, o para llevar a cabo autentificaciones. Las ventajas de
este algoritmo son: gestión de claves y distribución, control de acceso y
autenticación. Y sus desventajas son: presenta un alto costo computacional, por lo
tanto, pueden llegar a ser lento [12].
Existen dos grandes clases dentro de estos algoritmos, los criptosistemas de cifrado
por flujo y los criptosistemas de cifrado por bloque. La principal diferencia entre ellos
es que el cifrado por flujo funciona con secuencias de texto, de un bit o byte a la
vez, mientras que el cifrado por bloque funciona con grupos de bits de longitud fija.
13
1.3.3. Seguridad perceptual y criptográfica.
La seguridad es el mayor requisito del cifrado de la información, demandando
seguridad perceptual y criptográfica. La seguridad perceptual de las imágenes se
refiere a la inteligibilidad de la información cifrada, se puede medir por métricas tanto
subjetivas como objetivas. El cifrado de contenido multimedia es diferente al cifrado
de datos binario/texto debido a que existe redundancia en su contenido cifrado,
haciendo que sea evidente de descifrar hasta cierto punto. Mientras que la
seguridad criptográfica se determina por su capacidad de resistencia ante los
métodos de criptoanálisis y a diversos ataques como lo son el análisis diferencial,
de clave relacionada y estadística. El cifrado debe analizarse exhaustivamente
antes de utilizarlo en la práctica, es por eso que se llevan a cabo métricas para
medir la resistencia del cifrado ante algunos ataques demostrando su sensibilidad y
aleatoriedad, teniendo en cuenta que si el cifrado es seguro ante las pruebas
aplicadas es considerado de alta seguridad, de lo contrario se considera de baja
seguridad [13].
1.3.4. Autómatas celulares.
El concepto de autómatas celulares (CA por sus siglas en inglés) surgió en la
década de 1940 por los matemáticos John von Neumann y Stanislaw Ulam [14]. Un
autómata celular es un modelo matemático para un sistema dinámico compuesto
por un conjunto de celdas o células definidas que adquieren distintos estados o
valores [15]. Los CA son utilizados para modelar el comportamiento complejo de los
sistemas naturales, representan una clase de sistemas dinámicos que permiten
describir la evolución de sistemas complejos con reglas simples, sin usar
ecuaciones diferenciales. Los autómatas celulares consisten en una red organizada
de celdas, donde cada celda tiene un número finito de estados. Los CA forman una
red bidimensional cuyas celdas evolucionan en pasos discretos, de acuerdo con
una regla de actualización local aplicada uniformemente sobre todas las celdas. Al
principio, se asigna un estado a las celdas en el tiempo t = 0, donde los nuevos
estados de una celda dependerán de su propio estado anterior y los estados de su
vecindad [16]. Los autómatas celulares evolucionan a pasos discretos a través de
una regla local, una de ellas es la regla 90. La expresión de un autómata celular es
la siguiente:
𝑆𝑖(𝑡+1)
= [𝑆𝑖−1(𝑡)
+ 𝑆𝑖+1(𝑡)]𝑚𝑜𝑑 2. (1)
donde, 𝑆 consiste en la celda, el estado de la celda 𝑖 en la etapa 𝑡 + 1 consiste en
sumar (módulo 2) los estados de las celdas 𝑖 − 1 e 𝑖 + 1 en la etapa anterior, es
decir, en la etapa 𝑡 [17].
14
Figura 3. Representación de la regla 90 de un autómata celular y su evolución [16].
1.3.5 Regla 90.
En la dinámica de un autómata celular para el caso unidimensional, se debe
considerar una especie de rejilla de celdas, donde cada una de las cuales tiene un
único valor binario, 0 o 1. La asignación de valores a todas las celdas, se conoce
como configuración. El autómata recibe una configuración inicial y luego progresa a
través de otras configuraciones en una secuencia de pasos de tiempo discretos. En
cada paso todas las celdas se actualizan simultáneamente. Una regla pre-
especificada determina el nuevo valor de cada celda como una función de su valor
anterior y de los valores en sus celdas vecinas. Todas las celdas obedecen a la
misma regla, la cual puede ser dada como una fórmula o como una tabla de reglas
que especifica el nuevo valor para cada posible combinación de valores vecinos. La
regla 90 específica el valor en una celda dependiendo de los valores de sus vecinos
inmediatos, los resultados de la regla están codificados en la representación binaria
90 = 01011010 [16]. Es una de las reglas elementales de autómatas celulares
introducida por Stephen Wolfram en 1983, Wolfram clasificó esta regla como clase
III, indicando que presenta un patrón caótico [17], por lo tanto, ha sido empleada en
algoritmos de cifrado. Esta regla se ilustra en la Figura 3 junto el estado inicial de
un autómata celular y el triángulo de Sierpiński con su respectiva evolución durante
15 pasos discretos de tiempo.
15
1.4. Esquema de Tesis
En el capítulo 1 se ha dado una breve introducción al tema que se desarrolló,
también se presentan los objetivos generales y específicos de la investigación, así
como los antecedentes en donde se mencionan algunos trabajos de investigación
e información de los temas presentados a lo largo de la tesis. En el capítulo 2 se
introducen los conceptos sobre los sistemas dinámicos y sus bifurcaciones que
serán de gran utilidad durante el resto de la tesis. En el capítulo 3 se presenta el
diseño de sistemas caóticos lineales por pedazos mediante la colocación de puntos
de equilibrio para la creación del sistema multienroscado, asimismo se somete el
sistema a una prueba mediante los exponentes de Lyapunov para confirmar que el
sistema presenta caos y se realiza un diagrama de bifurcación donde se visualiza
el valor de uno de sus parámetros, el cual muestra en que rango se generan más
enroscado. En el capítulo 4 se presenta el método para formar la llave de cifrado
mediante un generador de bits pseudoaleatorio, se explican las ecuaciones para el
proceso de cifrado y descifrado por flujo para imágenes en escala de grises, se da
a conocer la vulnerabilidad que presento el sistema de cifrado ante una prueba de
criptoanálisis y se dio a conocer la mejora incluida al sistema con el uso de un PRNG
basado en la evolución hacia atrás de la regla 90 de autómatas celulares. En el
capítulo 5 se pone a prueba el sistema de cifrado desarrollado ante diferentes
pruebas estadísticas para de esta manera demostrar su efectividad. Finalmente se
dan a conocer las conclusiones del trabajo realizado, así como los apéndices y
referencias.
16
CAPÍTULO 2. SISTEMAS DINÁMICOS.
Los sistemas dinámicos estudian el comportamiento de fenómenos físicos en el
tiempo y han sido objeto de investigación en los últimos años. Se han encontrado
diversos sistemas dinámicos con comportamiento no lineal o inclusive caótico los
cuales abarcan una gran cantidad de áreas de la ciencia, y el número de
aplicaciones aumenta día a día. Los sistemas dinámicos no lineales son capaces
de producir un comportamiento caótico y no presentan dependencia al tiempo con
respecto a su posición en el espacio. El estado de un sistema dinámico se conoce
para cualquier tiempo dadas las condiciones iniciales, a las cuales son
extremadamente sensibles [18]. A continuación, se da una breve explicación de los
sistemas caóticos más conocidos y sus bifurcaciones.
2.1. Sistema de Lorenz.
Este atractor surgió a través del estudio de Edward N. Lorenz en el año de 1963.
Con este sistema pretendía describir comportamientos climatológicos y fue basado
en la dinámica de fluidos, con base en sus estudios postuló la famosa teoría del
“Efecto mariposa” donde describe que los sistemas con comportamiento caótico
tienen una gran sensibilidad a las condiciones iniciales [19]. Su sistema está
representado por un modelo de tres ecuaciones diferenciales ordinarias:
�̇� = 𝝈(𝒚 − 𝒙)
�̇� = 𝒙(𝝆 − 𝒛) − 𝒚 (2)
�̇� = 𝒙𝒚 − 𝜷𝒛
Este sistema está representado por tres parámetros 𝝈, 𝝆, 𝜷 y tres estados 𝒙, 𝒚, 𝒛,
los valores más utilizados para que el sistema presente caos son 𝜷 = 𝟖/𝟑, 𝝈 = 𝟏𝟎
y 𝝆 = 𝟐𝟓. Cada uno de estos parámetros puede ser utilizado como parámetro de
bifurcación, y dependiendo del valor establecido en los parámetros, el sistema
puede presentar oscilaciones periódicas o caóticas. En la Figura 4 se muestra el
atractor del sistema Lorenz y sus proyecciones en diferentes planos.
17
a b
c d
Figura 4. (a) Atractor de Lorenz. (b) Proyección del atractor sobre el plano (𝑥, 𝑦). (c) plano (𝑥, 𝑧), (d)
plano (𝑦, 𝑧). Los valores de los parámetros son 𝛽 = 8/3, 𝜎 = 10 y 𝜌 = 25.
2.2. Sistema de Rössler.
El atractor de Rössler surgió a través del estudio de Otto Rössler en 1976 [20]. Su
intención original fue que presentara un comportamiento parecido al sistema de
Lorenz, pero con ecuaciones más simples. El sistema está descrito por las
siguientes ecuaciones:
�̇� = −𝒚 − 𝒛
�̇� = 𝒙 + 𝒂𝒚 (3)
�̇� = 𝒃 + 𝒛(𝒙 − 𝒄)
18
a b
c d Figura 5. (a) Atractor de Rössler. (b) Proyección del atractor en el plano (𝑥, 𝑦). (c) plano (𝑥, 𝑧). (d)
plano (𝑦, 𝑧). Los parámetros usados para simular al sistema de Rössler son 𝑎 = 𝑏 = 0.2 y 𝑐 = 5.7.
Este sistema también está representado por tres estados 𝒙, 𝒚, 𝒛 y tres parámetros
𝒂, 𝒃, 𝒄. Los valores más utilizados para obtener comportamiento caótico son 𝒂 =
𝒃 = 𝟎. 𝟐 y 𝒄 = 𝟓. 𝟕. En la Figura 5 se puede observar el atractor Rössler y sus
proyecciones en diferentes planos.
19
a b
c Figura 6. Diagramas de Bifurcación del sistema Lorenz: (a) Variación del parámetro 𝛽 desde 0
hasta 3 con 𝜎 = 10 y 𝜌 = 25. (b) Variación del parámetro 𝜌 desde 20 hasta 50 con son 𝛽 = 8/3 y
𝜎 = 10. (c) Variación del parámetro 𝜎 desde 4 hasta 16 con son 𝛽 = 8/3 y 𝜌 = 25.
2.3. Bifurcación.
La teoría de bifurcación se originó a principios del siglo XX, gracias a los estudios
realizados por Henrí Poincaré acerca de sistemas de ecuaciones diferenciales.
Poincaré designó la palabra “Bifurcación” como una aparición de múltiples
soluciones generadas a partir de la variación de algún parámetro del sistema. El
término, ahora generalizado, se utiliza para indicar cuando la solución de una
ecuación o sistema de ecuaciones cambia cualitativamente en un valor fijo o crítico
de un parámetro característico. Una bifurcación ocurre cuando a un sistema se le
aplica un cambio de valor en alguno de sus parámetros, este cambio ocasiona que
el sistema modifique la periodicidad de su solución gracias al cambio. Un punto en
el que se presente este fenómeno a partir del parámetro mencionado se le llama
“punto de bifurcación”, y a partir del conjunto de estos puntos, emerge una o más
ramas de la solución, ya sean estables o inestables. La representación gráfica a
partir de estos parámetros de bifurcación se le conoce como “Diagrama de
Bifurcación” [21].
20
a b
c Figura 7. Diagramas de Bifurcación del sistema de Rössler: (a) Variación del parámetro 𝑎 desde 0
hasta 0.4 con 𝑏 = 0.2 y 𝑐 = 5.7. (b) Variación del parámetro 𝑏 desde 0 hasta 2 con 𝑎 = 0.2 y 𝑐 =
5.7. (c) Variación del parámetro 𝑐 desde 0 hasta 40 con 𝑎 = 𝑏 = 0.1.
En las Figuras 6 y 7 se muestran los diagramas de bifurcación de los sistemas de
Lorenz y Rössler al variar cada uno de sus parámetros, en ellos se observa en que
zonas presenta un comportamiento periódico o caótico. En la Figura 6 se muestran
las gráficas de bifurcación del sistema de Lorenz, de los parámetros 𝜷 , 𝝆 y 𝝈.
En la Figura 6 (a), el primer parámetro a variar es 𝜷, se realizó una variación desde
0 hasta 3 con incrementos de 0.01, dejando los otros dos parámetros fijos 𝝈 = 𝟏𝟎 y
𝝆 = 𝟐𝟓. En este diagrama de bifurcación se puede observar claramente algunos
valores para los cuales se comporta periódicamente. Esto se puede corroborar a
partir de 0.7 aproximadamente, donde se generan dos cuencas, una para 𝒙 positivo
y otro negativo, después para valores mayores de 3 se estabiliza.
En la Figura 6 (b), el segundo parámetro a variar es 𝝆, se realizó una variación
desde 20 hasta 50 con incrementos de 0.1, con 𝜷 = 𝟖/𝟑, 𝝈 = 𝟏𝟎. En el diagrama se
puede observar como presenta comportamiento caótico con dos cuencas de
atracción cerca de 25, antes se encuentra en un punto sumidero, y después las
cuencas tienden a aumentar de tamaño, una para 𝒙 positivo y otro para negativo.
21
En la Figura 6 (c), se realizó una variación del parámetro 𝝈, desde 4 hasta 16 con
incremento de 0.1 dejando fijo 𝜷 = 𝟖/𝟑 y 𝝆 = 𝟐𝟓. En este diagrama se observó que
los valores para que se genere caos están únicamente entre 7 y 13, para cualquier
otro valor el sistema se encuentra también estable en un punto de equilibrio tipo
sumidero.
En la Figura 7 se muestran las gráficas de bifurcación del atractor de Rössler de los
parámetros 𝒂 , 𝒃 y 𝒄.
En el diagrama de bifurcación de la Figura 7 (a), se realizó una variación del
parámetro 𝒂 desde 0 hasta 0.4 con incrementos de 0.001 dejando fijos los
parámetros 𝒃 = 𝟎. 𝟐 y 𝒄 = 𝟓. 𝟕. Se puede observar que el comportamiento del
sistema es periódico para ciertos valores como son de 0.07 hasta 0.14, en donde
se comporta con periodos de uno y dos respectivamente, también presenta periodo
tres para valores cercanos a 0.2 y 0.25, esto nos indica que el sistema puede
comportarse de manera caótica también, y presenta periodo cuatro para valores
mayores cercanos a 0.15.
En la Figura 7 (b), se realizó una variación del parámetro 𝒃, con una variación desde
0 hasta 2 con incremento de 0.01. En este diagrama se puede observar que también
presenta comportamiento periódico para ciertos valores, periodo uno para 𝒃 mayor
de 1.5 en donde el sistema bifurca y tiene un doblamiento de periodo, a partir de 0.5
a 0.9 tiene periodo dos hasta tener otro doblamiento y presentar periodo cuatro y
después ocho. Cerca de 0.05 y de 0.3, el sistema presenta oscilaciones de periodo
tres.
En la Figura 7 (c), el último valor a variar fue el parámetro 𝒄, con una variación más
grande, desde 0 hasta 40 con incrementos de 0.1, los parámetros 𝒂 = 𝒃 = 𝟎. 𝟏 se
mantienen fijos. Las oscilaciones muestran un comportamiento periódico para
diferentes valores en la simulación, periodo uno de 0 a 5, bifurca en periodo dos de
5 a aproximadamente 7, después periodo cuatro, y cerca de 12 y 28 presenta
periodo 3.
Gracias al estudio de estos sistemas se planeó generar un sistema caótico de
secciones múltiples lo suficientemente complejo y eficaz para generar secuencias
aleatorias las cuales puedan encriptar imágenes en escala de grises mediante un
algoritmo de clave simétrico. Y la calidad del cifrado dependerá de la variación del
número de enroscados.
22
CAPÍTULO 3. DISEÑO DE SISTEMAS CAÓTICOS CON PUNTOS DE
EQUILIBRIO.
3.1. Sistemas caóticos.
La construcción de sistemas dinámicos que muestran un comportamiento caótico
es relevante en diversas disciplinas científicas. Por ejemplo, la biología [22] y la
meteorología [23]. Estos sistemas modelados matemáticamente por ecuaciones
diferenciales ordinarias de primer orden no lineales contienen parámetros
adecuados para garantizar comportamientos caóticos que generan atractores
extraños. Muchos de los fenómenos no lineales observados en la naturaleza o por
el hombre han sido descritos por sistemas caóticos debido a la riqueza de sus
comportamientos dinámicos: ciclos límite, órbitas y atractores extraños, etc. Y desde
hace algunas décadas, la generación de trayectorias caóticas se ha buscado
simplificar con respecto a sus ecuaciones o implementaciones electrónicas. Es por
esto por lo que los sistemas lineales por pedazos (PWL) han sido de gran utilidad
en este tema. Estos sistemas se basan en parámetros de conmutación que se
pueden visualizar como un conjunto de subsistemas y una señal de conmutación
que los selecciona durante un intervalo determinado de tiempo.
Para el diseño de trayectorias complejas y caóticas se han implementado sistemas
que presenten atractores con múltiples enroscados. Este término, se utiliza para
referirse a tres o más enroscados en un atractor visualizado en su espacio de fase.
Un enfoque frecuente para generar uno o más enroscados, ha sido el de modificar
un sistema que produce originalmente atractores con doble enroscado, como por
ejemplo el sistema de Lorenz, entre otros, añadiendo puntos de equilibrio para
permitir que el flujo del sistema visite nuevas regiones en el espacio. Los atractores
extraños de múltiple enroscado aparecen como resultado de la combinación de
varias trayectorias inestables de una sola espiral [7].
3.2. Sistemas lineales por pedazos.
Las simulaciones y cálculos se llevaron a cabo mediante el lenguaje de
programación MATLAB. Se consideró el siguiente sistema de ecuaciones dado por:
�̇� = AX + B; (4)
En donde 𝑿 = [𝑥, 𝑦, 𝑧]𝑇 representa el vector del estado del sistema, 𝑩 =
[𝐵1, 𝐵2, 𝐵3]𝑇 ∈ ℝ3 representa un vector lineal real afín. 𝑨 = [𝑎𝑖,𝑗] ∈ ℝ
3𝑥3, 𝑖, 𝑗 =
1, 2, 3, denota una matriz real de coeficientes, la cual está dada por:
𝑨 = (0 1 00 0 1
−1.5 −1 −1) , 𝑩 = (
𝐵1𝐵2𝐵3
). (5)
23
Estamos interesados en un sistema disipativo que tenga un punto de equilibrio
hiperbólico en 𝑿∗, y debido a la simplicidad del sistema, estos se pueden calcular
mediante 𝑿∗ = −𝐀−𝟏𝐁. Un punto de equilibrio 𝑿∗ ∈ 𝑅𝑛 es llamado así si tiene al
menos un eingevalor (valor propio) con parte real positiva y al menos un par
complejo conjugado con parte real negativa [24]. Para este caso los eingevalores
calculados de la matriz 𝑨 son estos: λ1=-1.2041 + 0.0000𝑖, λ2=0.1020 + 1.1115𝑖,
λ3=0.1020 - 1.1115𝑖.
El vector 𝑩 conmutará dependiendo de la posición de 𝑿, de tal forma que para cada
valor conmutado en 𝑩 se generará un nuevo punto de equilibrio, tomando la
siguiente forma:
𝑩(𝑿) =
{
𝑩1, 𝑠𝑖 𝑿 ∈ 𝐷1;
𝑩2, 𝑠𝑖 𝑿 ∈ 𝐷2;..
𝑩𝑘, 𝑠𝑖 𝑿 ∈ 𝐷𝑘 ,
(6)
donde 𝑩𝑖 ∈ ℝ y 𝐷𝑖 corresponde a los dominios en donde se ubicarán cada
enroscado del sistema. Cada enroscado estará asignado a su punto de equilibrio
correspondiente 𝑿1∗ ∈ 𝐷1, . . . , 𝑿𝑘
∗ ∈ 𝐷𝑘 con 𝑨𝑿𝑖∗ + 𝑩(𝑿) = 0, 𝑖 = 1, … , 𝑘. El objetivo
es elegir valores de 𝑩𝑖, de tal manera que el sistema sea estable y presente
enroscados caóticos. En la Figura 8, se muestra un diagrama de cómo están
distribuidos los puntos de equilibrio marcados con puntos rojos, los enroscados que
se desea obtener mediante línea negra en espiral, el valor de 𝑩 del vector real afín
en donde se formará el enroscado y las superficies de conmutación marcadas como
𝛼−3 , 𝛼−2 , … , 𝛼3 en el eje 𝑥 y 𝛾−1, 𝛾1 en el eje 𝑦.
La ubicación de estas superficies de conmutación se da a conocer en la Tabla I:
Tabla I. Ubicación de las superficies de conmutación.
𝛼0 = 0
𝛼−3 = −24/3 𝛼3 = 24/3
𝛼−2 = −16/3 𝛼2 = 16/3
𝛼−1 = −8/3 𝛼1 = 8/3
𝛾−1 = −4/3 𝛾1 = 4/3
24
Figura 8. Diagrama de regiones, superficies de conmutación y colocación de puntos de equilibrio
para la realización del sistema multienroscado.
Estos valores se escogieron siguiendo la misma estructura de selección de los
puntos de equilibrio que se presentan en [25]. Es importante mencionar que la
distribución de estas superficies es simétrica, permitiendo que los enroscados
generados presenten las mismas dimensiones. Cada espacio generado entre las
superficies de conmutación corresponde con los dominios mencionados en la ec.
(6). Para este caso se les asigna el nombre de 𝐷−3𝑥, 𝐷−2𝑥,𝐷−1𝑥, 𝐷1𝑥 , 𝐷2𝑥, 𝐷3𝑥 a los
dominios que contienen un punto de equilibrio sobre el eje 𝑥, marcados con las
casillas de línea punteada en azul en la Figura. 8. Para el caso de 𝐷−3𝑦, 𝐷−1𝑦,𝐷1𝑦,
marcados en recuadro con línea punteada roja, son los dominios que contienen un
punto de equilibrio desplazado en 2 o 3 ejes. Dadas estas superficies de
conmutación y los dominios en donde se desea la ubicación de los puntos de
equilibrio, se diseña la siguiente ley de conmutación para el sistema de la ecuación
(5) con (6):
𝑩(𝑿) =
{
𝑩1 𝑠𝑖 {𝛼0 ≤ 𝑥 < 𝛼1 ; 𝛾−1 ≤ 𝑥 < 𝛾1} ∈ 𝐷1𝑥;
𝑩2 𝑠𝑖 {𝛼1 ≤ 𝑥 < 𝛼2 ; 𝛾−1 ≤ 𝑥 < 𝛾1} ∈ 𝐷2𝑥;
𝑩3 𝑠𝑖 {𝛼2 ≤ 𝑥 < 𝛼3 ; 𝛾−1 ≤ 𝑥 < 𝛾1} ∈ 𝐷3𝑥;
𝑩4 𝑠𝑖 {𝛼0 ≥ 𝑥 > 𝛼−1 ; 𝛾−1 ≤ 𝑥 < 𝛾1} ∈ 𝐷−1𝑥;
𝑩5 𝑠𝑖 {𝛼−1 ≥ 𝑥 > 𝛼−2 ; 𝛾−1 ≤ 𝑥 < 𝛾1} ∈ 𝐷−2𝑥;
𝑩6 𝑠𝑖 {𝛼−2 ≥ 𝑥 > 𝛼−3 ; 𝛾−1 ≤ 𝑥 < 𝛾1} ∈ 𝐷−3𝑥;
𝑩7 𝑠𝑖 {𝛼0 ≥ 𝑥 > 𝛼−1 ; 𝛾1 ≤ 𝑦 < 𝛾−1} ∈ 𝐷−1𝑦;
𝑩8 𝑠𝑖 {𝛼−1 ≥ 𝑥 < 𝛼0 ; 𝛾1 ≥ 𝑦 < 𝛾−1} ∈ 𝐷1𝑦;
𝑩9 𝑠𝑖 {𝛼2 ≤ 𝑥 < 𝛼3 ; 𝛾1 ≥ 𝑦 < 𝛾−1} ∈ 𝐷−3𝑦.
(7)
25
a
b
26
c
d Figura 9. (a) Proyección del sistema multienroscado en 3 dimensiones dado por las ecs. (5) y (6)
para la ley de conmutación de la ec. (7) con nueve atractores. (a) Plano (𝑥, 𝑦). (b) Plano (𝑥, 𝑧). (d)
Plano (𝑦, 𝑧).
27
Mediante esta ley de conmutación se puede obtener un atractor de 9 enroscados,
tal y como se muestra en la Figura 9. Note que la posición de dichos enroscados
desplazados en el espacio corresponde a lo propuesto en el diagrama de la Figura
8. Los puntos de equilibrios obtenidos tras resolver 𝑿∗ = −𝐀−𝟏𝐁 con los valores de
la ec. (7) se muestran en la Tabla II.
Tabla II. Posición de los puntos de equilibrio para la generación del sistema multienroscado.
𝑩 𝒙 𝒚 𝒛
𝑩1 1.333 0 0
𝑩2 4 0 0
𝑩3 6.667 0 0
𝑩4 -1.333 0 0
𝑩5 -4 0 0
𝑩6 -6.667 0 0
𝑩7 -1.444 2.667 -0.5000
𝑩8 1.444 -2.667 0.5000
𝑩9 6.778 -2.667 0
Para demostrar que el sistema multienroscado diseñado presenta caos, se hace
uso de los exponentes de Lyapunov.
28
Figura 10. Grafica dinámica de los Exponentes de Lyapunov del sistema multienroscado.
3.3. Exponentes de Lyapunov.
Cuando se trata de verificar si un atractor es caótico o no, una herramienta muy útil
son los Exponentes de Lyapunov, los cuales consisten en un cálculo matemático
que mide la distancia que existe entre órbitas bajo distintas condiciones iniciales, el
exponente de Lyapunov unidimensional se define mediante la siguiente ecuación:
LE𝑖 = lim𝑡→∞
1
𝑡log2
𝑝𝑖(𝑡)
𝑝𝑖(0), (8)
donde, se ordenan las LE de mayor a menor, así, los exponentes de Lyapunov están
relacionados con la naturaleza en expansión o en contracción de diferentes
direcciones en fase de espacio. Las direcciones asociadas con un exponente dado
varían en un camino complicado a través del atractor generado. La suma de los
exponentes de Lyapunov es la divergencia promediada en el tiempo del espacio de
fase asociado a un exponente dado [26]. Un sistema presenta caos si tiene un
exponente negativo el cual expresa un equilibrio estable en el sistema, uno positivo
el cual demuestra que posee sensibilidad a las condiciones iniciales (caos) y uno
con valor cero que representa periodicidad, en caso de presentar más de tres
estados los sistemas pueden presentar lo que se conoce como hipercaos, lo que
significa que tiene dos o más exponentes negativos o positivos entre los requeridos
para generar caos dependiendo del número de estados que presente. En la Figura
10 se muestra un gráfico con los valores de los exponentes del sistema
multienroscado generado anteriormente. De esta manera nos damos cuenta de que
presenta un exponente positivo y uno negativo. Demostrando que el sistema
presenta caos dado un tiempo determinado.
29
3.4. Diagrama de bifurcación del sistema multienroscado
a b
Figura 11. Diagrama de Bifurcación del sistema multienroscado con 9 atractores: (a) Variación del
parámetro 𝑎 desde 0.2 hasta 2 con 𝑏 = 𝑐 = 1. (b) Variación del parámetro 𝑎 desde 1 hasta 1.8 con
𝑏 = 𝑐 = 1.
Asimismo, se generó un diagrama de bifurcación para el sistema multienroscado de
9 atractores en donde se muestran los valores en los que el sistema presenta caos.
En la Figura 11 (a) el parámetro a variar fue 𝑎, se realizó una variación desde 0.2
hasta 2 con incrementos de 0.01, dejando los otros dos parámetros fijos 𝑏 = 𝑐 = 1.
En esta Figura se muestran claramente que los valores entre 1 y 1.8 en el parámetro
𝑎 presentan mayor número de atractores. En la Figura 11 (b) se realizó una variación
desde 1 hasta 1.8 con incrementos de 0.005, para corroborar que en esta zona es
donde el número de enroscados es mayor, tomando en cuenta el valor 1.5, el cual
escogimos como valor del parámetro 𝑎 para el diseño del sistema multienroscado.
Ahora mediante este sistema propuesto se diseñará la llave para el proceso de
encriptación como se muestra a continuación.
30
CAPÍTULO 4. DESARROLLO Y MEJORA DE UN SISTEMA DE
ENCRIPTACION DE IMÁGENES DIGITALES.
4.1. Generador de bits pseudoaleatorio.
El Generador de bits pseudoaleatorio (PRBG por sus siglas en inglés) es un
algoritmo determinista, que toma una entrada de bits aleatorios, y los expande a un
número mayor de bits pseudoaleatorios.
Este generador se basa en las series de tiempo obtenidas a partir de los estados
caóticos del sistema de multienroscados dados por las ecuaciones (5), (6) y (7).
La idea es calcular la solución del sistema mediante algún método iterativo, como
el método de Runge Kutta de 4to orden, y evolucionar el sistema n veces para
obtener una secuencia 𝑿 después de 1000 iteraciones del estado transitorio.
Aprovechando la sensibilidad a las condiciones iniciales en sistemas caóticos, se
considera que cada conjunto de ellas da como resultado diferentes series de tiempo.
Por lo tanto, cada valor se puede considerar como una clave de cifrado, si se
aumenta el número de enroscados, la dinámica del sistema es más compleja y la
calidad del cifrado aumenta. A continuación, el generador de bits pseudoaleatorio
(PRBG) se define similar a lo reportado en [8] con la diferencia del que el sistema
presentado solo es de 3 estados y no de 4 como se presenta en el artículo, de la
siguiente manera:
𝐾𝑖 = ⌊∑𝑋𝑗(𝑖) · 1014
3
𝑗=1
⌋𝑚𝑜𝑑 256. (9)
Aquí 𝜅𝑖 ∈ {0, 1, 2, … , 255} e 𝑖 = 1,… , 𝑛, donde 𝑛 = 𝑙 × 𝑚, de acuerdo con el
tamaño de la imagen en escala de grises a ser encriptado. La sumatoria une los 3
estados del vector 𝑿 conforme a la posición de 𝑖. La operación ⌊. ⌋ representa un
redondeo hacia abajo, funciona como coma flotante y precisión doble, la sumatoria
se puede escalar a 1014 y el resultado es dividido mediante la función 𝑚𝑜𝑑 256 para
obtener un vector 𝐾𝑖 con valores enteros en 8 bits. De esta manera es como
creamos la llave de cifrado utilizada para encriptar imágenes en escala de grises.
31
4.2. Diseño del esquema de cifrado y descifrado.
Después de crear las secuencias generadas por el sistema caótico con nueve
atractores, encriptamos la imagen usando un cifrado de flujo similar a los descritos
en [25, 27]. El propósito de cifrar información con el PRBG propuesto es demostrar
que las secuencias con diferente número de atractores generan una imagen de
cifrado diferente, es decir, la calidad de encriptación mejora si se aumenta el número
de atractores. El proceso para cifrar la imagen es píxel por píxel de la siguiente
manera:
{𝐶1 = 𝑃1 ⊕ 𝜅1 ⊕ 𝐼𝑉; 𝐶𝑖 = 𝑃𝑖 ⊕ 𝜅𝑖 ⊕ 𝐶𝑖−1.
(10)
Donde 𝐶𝑖 y 𝑃𝑖 con 𝑖 = 2, . . . , 𝑛 son los pixeles de la imagen de cifrado y la imagen
normal, respectivamente. Para mejorar la seguridad en el proceso, se considera una
retroalimentación en el cifrado (𝐶𝑖 − 1) y un vector inicial, donde IV ∈
{0, 1, . . . , 255} es un vector de inicialización (Initial Vector por sus siglas en inglés)
usado una vez para el primer pixel, 𝜅𝑖 es la secuencia de bits pseudoaleatoria, el
símbolo ⊕ es la operación XOR, que se ejecuta bit a bit en el bloque de 8 bits por
píxel.
Para descifrar correctamente la imagen, el receptor debe tener la misma corriente
de claves (formada por las condiciones iniciales X0, el vector de inicialización IV y la
función de descifrado). Esta función toma la siguiente forma:
{𝑃′1 = 𝐶1 ⊕ 𝜅1 ⊕ 𝐼𝑉;
𝑃′𝑖 = 𝐶𝑖 ⊕ 𝜅𝑖 ⊕ 𝐶𝑖−1. (11)
Si se usan la clave correcta 𝜅𝑖 y el vector de inicialización correcto IV, entonces la
imagen original se obtendrá correctamente, es decir: 𝑃´𝑖 = 𝑃𝑖.
32
4.3. Chosen-Plaintext attack
Llevando a cabo el cifrado y descifrado de imágenes correctamente, el siguiente
paso consistió en someter a 3 imágenes seleccionadas a una prueba de
criptoanálisis denominada Chosen-Plaintext attack, esta prueba tiene como objetivo
que el ataque pueda reducir la seguridad del esquema de cifrado y de esta manera
obtener información. Consiste en que los atacantes puedan elegir algunas imágenes
de manera arbitraria (en casos extremos, imágenes dónde todos los pixeles tengan
el mismo valor), y de esta manera obtener las imágenes cifradas correspondientes,
todas bajo las mismas condiciones del tipo de cifrado utilizado.
Analizando detalladamente el sistema, nos dimos cuenta de cómo fue que se
generó el ataque, el cual es explicado a continuación mediante las siguientes
ecuaciones:
𝐶𝐿 = 𝑃L ⊕ 𝜅1 ⊕ 𝐼𝑉; (12)
𝐶0 = 0 ⊕ 𝜅1 ⊕ 𝐼𝑉.
Donde 𝐶𝐿 corresponde a los pixeles cifrados de la imagen Lena, 𝐶0 indica los valores
cifrados de la imagen sólida, 𝑃L son los pixeles originales de dicha imagen, 𝜅1 son
los valores de la llave de cifrado y 𝐼𝑉 es un valor aleatorio entre 0 y 255.
El ataque consistió en hacer una operación 𝑋𝑂𝑅 bit a bit entre ambas imágenes 𝐶𝐿
y 𝐶0. Como se muestra en la siguiente ecuación:
(𝑃L ⊕ 𝜅1 ⊕ 𝐼𝑉)⊕ (0 ⊕ 𝜅1 ⊕ 𝐼𝑉). (13)
Eliminando los términos semejantes de ambos lados podemos reducir la expresión
a 𝑃𝐿, como se ilustra en la siguiente ecuación:
(𝑃L ⊕ 𝜅1 ⊕ 𝐼𝑉)⊕ (0 ⊕ 𝜅1 ⊕ 𝐼𝑉) = 𝑃𝐿 . (14)
De esta manera se obtiene la información para el primer pixel de la imagen Lena.
Para recuperar la imagen al 100% se utilizaría la siguiente ecuación:
(𝐶𝐿𝑖⊕𝐶0𝑖) ⊕ (𝐶𝐿𝑖−1⊕𝐶0𝑖−1) =
(𝑃𝐿𝑖 ⊕ 𝜅𝑖 ⊕ 𝐶𝐿𝑖−1) ⊕ (0 ⊕ 𝜅𝑖 ⊕ 𝐶0𝑖−1) ⊕ (𝐶𝐿𝑖−1⊕𝐶0𝑖−1) = 𝑃𝐿𝑖 , (15) donde 𝑖 = 2,3, … , 𝑛. Siendo 𝑛 el índice del ultimo pixel de la imagen.
33
a b c
d e f
Figura 12. Vulnerabilidad del Chosen-plaintext attack para la imagen de Lena. (a) La imagen
original, (b) la imagen cifrada de (a), (c) la imagen plana elegida, (d) la imagen cifrada de (c), (e) la
imagen recuperada para el primer pixel y (f) imagen recuperada al 100%.
El ataque se ejecutó de la siguiente manera, los pasos son ilustrados en la Figura
12:
a) Primero se considera una imagen original 𝐼𝑜, en nuestro caso la imagen de
Lena representada en la Figura 12 (a) y su respectiva versión cifrada 𝐼𝑐,
mostrada en la Figura 12 (b).
b) El siguiente paso consistió en escoger una imagen solida 𝐼𝑠 donde todos sus
valores son igual a cero, en nuestro caso la imagen de la Figura 12 (c) y su
respectiva versión cifrada 𝐼𝑚, que se visualiza en la Figura 12 (d).
c) Posteriormente, se llevó a cabo la operación XOR entre la imagen cifrada
original 𝐼𝑐 y la imagen cifrada solida 𝐼𝑚, es decir: 𝐼𝑐⊕ 𝐼𝑚.
d) Si la imagen resultante de esta operación revela información de la imagen
original, se tiene que el sistema de cifrado es vulnerable ante este ataque,
como se puede observar en la Figura 12 (e) en donde la imagen resultante
revela patrones de la imagen original, en la Figura 12 (f) se visualiza la imagen
de Lena recuperada al 100% con el uso de la ec. (15).
34
4.4. Mejora al sistema de cifrado.
Teniendo en cuenta esta vulnerabilidad se pensó en una solución rápidamente,
aplicando la teoría de autómatas celulares de la evolución hacia atrás de la regla 90
en 8 bits. Buscamos que mediante esta mejora: cambien los valores altamente
redundantes de las imágenes por otros antes del proceso de cifrado y evitar que
atacantes puedan ingresar ceros en las ecuaciones.
La función utilizada se diseñó en el artículo [28] donde los bloques de texto en claro
y aleatorio se toman como vectores booleanos. Esta función de procesado y
desprocesado permite cambiar valores altamente redundantes por otros, con
distribución uniforme. La implementación de esta función en forma de las ecuaciones
(16) y (17) se tomaron de la tesis [16].
Procesado
𝑝1 ̂ = p1⊕ z2
𝑝2 ̂ = p2⊕ z1⊕ z3
𝑝3 ̂ = p1⊕ p3⊕ z4
𝑝4 ̂ = p4⊕ z1⊕ z3⊕ z5
𝑝5 ̂ = p1⊕ p3⊕ p5⊕ z2⊕ z6
𝑝6 ̂ = p2⊕ p6⊕ z1⊕ z5⊕ z7
𝑝7 ̂ = p1⊕ p5⊕ p7⊕ z8
𝑝8 ̂ = p8⊕ z1⊕ z5⊕ z7⊕ z9
(16)
Desprocesado
p1 = 𝑝1 ̂ ⊕ z2
p2 = 𝑝2 ̂ ⊕ z1⊕ z3
p3 = 𝑝1 ̂ ⊕ 𝑝3 ̂ ⊕ z2⊕ z4
p4 = 𝑝4 ̂ ⊕ z1⊕ z3⊕ z5
p5 = 𝑝3 ̂ ⊕ 𝑝5 ̂ ⊕ z2⊕ z4⊕ z6
p6 = 𝑝2 ̂ ⊕ 𝑝6̂⊕ z3⊕ z5⊕ z7
p7 = 𝑝1 ̂ ⊕ 𝑝3 ̂ ⊕ 𝑝5 ̂ ⊕ 𝑝7 ̂ ⊕ z4⊕ z6⊕ z8
p8 = 𝑝8 ̂ ⊕ z1⊕ z5⊕ z7⊕ z9
(17)
35
Figura 13. Generador de secuencias pseudoaleatorias con entradas 𝒑 de n bits y 𝒛 de 𝑛 + 1 bits, y
salida de �̂� de 𝑛 bits.
Las ecuaciones de procesado se toman de un generador de números
pseudoaleatorios (PRNG) basado en automatas celulares, descrito en [29]. La
principal función de este PRNG se denomina ℎ (𝑝, 𝑧), requiere de dos vectores 𝒑 y
𝒛 de 𝑛 bits y 𝑛 + 1 bits, respectivamente.
Para calcular una secuencia pseudoaleatoria, la función ℎ requiere que el autómata
celular retroceda en el tiempo. Dicha situación se representa en la Figura 13, donde
el símbolo ⊕ representa la operacion 𝑋𝑂𝑅 y las flechas la conectividad de las
puertas que siguen la regla 90 del autómata celular, el resultado es un vector
llamado �̂�.
En el generador de numeros pseudoaleatorios, la secuencia �̂� se retroalimenta a la
entrada, que se convierte en el siguiente valor de 𝒑, y los 8 bits del valor anterior de
𝒑 se convierten en los bits iniciales de la nueva 𝒛, donde el bit faltante es el bit
menos significativo (LSB) de la anterior 𝒛, este bit se convierte en el bit más
significativo (MSB) de esta nueva secuencia, el mismo procedimiento se repite
constantemente.
36
a b
Figura 14. (a) Función de procesamiento. (b) Función de desprocesamiento. 𝑝 es el coeficiente del
píxel y 𝑧 es un vector aleatorio. La salida es la versión preprocesada del píxel �̂�.
La variación propuesta funciona como una sustitución dinámica, el proceso es
similar a PRNG, donde la función ℎ se utiliza para transformar los bloques 𝒑 que
representan los pixeles en claro de la imagen original, en una forma ininteligible
denominada �̂�, �̂� = ℎ (𝑝, 𝑧). En este caso 𝒑 es el coeficiente del píxel de 𝑛 bits y 𝒛
es un vector inicial de 𝑛 + 1 bits, luego de evolucionar hacia atrás ambos vectores
obtenemos �̂�.
La entrada 𝒑 se reemplaza con el siguiente píxel de la imagen, el vector 𝒛 se
reemplaza con �̂�, y similar al PRNG, el LSB de la 𝒛 anterior se concatena como el
MSB de la nueva 𝒛. Este proceso se repite hasta el último píxel. La Figura 14 (a)
ilustra esta función. Esta operación oculta la alta redundancia de la imagen original.
Con este proceso, evitamos que el atacante introduzca datos arbitrarios como ceros,
que podrían retener la información tal como ocurrió en la versión original del
esquema de cifrado. Ahora, podemos cifrar esta imagen preprocesada, y será
resistente al Chosen-plaintext attack, porque todos los valores de cero y los
coeficientes de la imagen original se cambiaron en la función de procesamiento.
Finalmente, para llevar a cabo el desprocesamiento de la imagen utilizamos la
funcion de desprocesamiento que se ilustra en la Figura 14 (b), el vector �̂� como
entrada y el mismo valor del vector 𝒛, este vector evolucionará de la misma manera
que en la función de procesamiento para todos los pixeles, de esta manera
obtendremos 𝒑. Con el uso de las ecs. (17) ejecutamos el desprocesado de los
pixeles de la imagen para regresarla a su forma original.
37
a b c
d e
Figura 15. Chosen-plaintext attack para la imagen de Lena. (a) La imagen original, (b) la imagen
cifrada, (c) la imagen plana elegida, (d) la imagen de máscara y (e) la imagen recuperada.
Para comprobar nuevamente la efectividad del sistema de cifrado con la mejora, las
3 imágenes utilizadas se analizaron con el Chosen-plaintext attack. En la referencia
[30] señala que, si el sistema criptográfico está seguro contra el ataque de imagen
de plano simple, también lo es contra otros ataques criptoanalíticos como el ataque
de solo cifrado de imagen o el ataque de imagen de plano conocido. Ya que el
objetivo del ataque es obtener información y reducir la seguridad del esquema de
cifrado.
A continuación, se presentan las 3 imágenes cifradas con la versión mejorada del
sistema. En la Figura 15 (a) se visualiza la imagen original de Lena, su versión cifrada
se observa en la Figura 15 (b). En la Figura 15 (c) se visualiza la imagen plana
elegida, su versión cifrada se puede ver en la Figura 15 (d). La imagen normal
recuperada se muestra en la Figura 15 (e), y una inspección visual revela la
efectividad de nuestro esquema de cifrado propuesto, donde en la imagen
recuperada ya no se revelan patrones. Se realizó esta prueba a las imágenes
cifradas de Mandril que se muestra en la Figura 16, y Pimientos visualizada en la
Figura 17.
38
a b c
d e
Figura 16. Chosen-plaintext attack para la imagen de Mandril. (a) La imagen original, (b) la imagen
cifrada, (c) la imagen plana elegida, (d) la imagen de máscara y (e) la imagen recuperada.
39
a b c
d e
Figura 17. Chosen-plaintext attack para la imagen de Pimientos. (a) La imagen original, (b) la
imagen cifrada, (c) la imagen plana elegida, (d) la imagen de máscara y (e) la imagen recuperada.
40
CAPÍTULO 5. VALIDACIÓN DEL SISTEMA DE CIFRADO.
5.1. Cifrado de las imágenes.
Para probar el método de cifrado y descifrado propuesto en el capítulo anterior con
la mejora del sistema desarrollada anteriormente, se consideraron 3 imágenes en
escala de grises con diferente actividad óptica (número de contrastes). Las
imágenes son: Lena, Mandril y Pimientos de Media, Alta y Baja actividad óptica
respectivamente, con un tamaño de 256x256 pixeles, por lo que la Figura 18 (a)
muestra la imagen original de Lena; la imagen de cifrado se presenta en la Figura
18 (b) y la imagen descifrada se muestra en la Figura 18 (c). la Figura 18 (d) muestra
la imagen original de Mandril; la imagen de cifrado se presenta en la Figura 18 (e) y
la imagen descifrada se muestra en la Figura 18 (f) y en la Figura 18 (g) se muestra
la imagen original Pimientos; la imagen de cifrado se presenta en la Figura 18 (h) y
la imagen descifrada se muestra en la Figura 18 (i).
Para medir la calidad del cifrado propuesto se implementaron diferentes pruebas
estadisticas como lo son: los análisis de histogramas, cálculos de correlación entre
imágenes y la entropía de la información, estas pruebas son utilizadas para medir
diferentes aspectos en las imágenes originales y sus versions cifradas [8, 28, 31].
Los resultados de las 3 imágenes se describen a continuación.
a b c
41
d e f
g h i
Figura 18. Imagen Lena original (a) cifrada; (b) descifrada (c); Imagen Mandril original (d) cifrada;
(e) descifrada (f); Imagen Pimientos original (g) cifrada; (h) descifrada (i).
5.2. Análisis de histogramas.
El análisis de histogramas muestra cómo se distribuyen los píxeles en una imagen.
Traza el número de píxeles según el nivel de escala de grises. Una propiedad que
debería satisfacer un sistema de encriptación es que el histograma de la imagen
cifrada presente una distribución uniforme. Por lo tanto, los histogramas entre la
imagen original y la imagen encriptada deben ser completamente diferentes. La
Figura 19 (a) muestra el histograma de la imagen original de Lena y la Figura 19 (b)
muestra el histograma de la imagen cifrada. En la Figura 19 (c) muestra el
histograma de la imagen original de Mandril y la Figura 19 (d) muestra el histograma
de la imagen cifrada y en la Figura 19 (e) muestra el histograma de la imagen original
Pimientos y la Figura 19 (f) muestra el histograma de la imagen cifrada. Es
importante mencionar que en cada unos de los histogramas de los insisos b, d y f
presentaron una distribución uniforme de las imágenes tal y como se esperaba.
42
a b
c d
e f
Figura 19. (a) Histograma de la imagen Lena original. (b) Histograma de la imagen Lena cifrada. (c)
Histograma de la imagen Mandril original. (d) Histograma de la imagen de Mandril cifrada. (e)
Histograma de la imagen Pimientos original. (d) Histograma de la imagen de Pimientos cifrada.
43
5.3. Análisis de correlación entre la imagen original y la encriptada.
Para mostrar que la imagen cifrada es independiente de la imagen simple,
calculamos el coeficiente de correlación entre ambas imágenes. Si el coeficiente es
cercano a 0 por ambos lados, sugiere que no existe una correlación lineal o una
correlación lineal débil, y el sistema de cifrado muestra un buen desempeño. Para
calcular esta dependencia estadística entre las dos imágenes se hace uso del
coeficiente de correlación de Spearman [32]. La Tabla III muestra la interpretación
de los coeficientes de correlación.
Tabla III. Interpretación de los coeficientes de correlación.
Coeficiente de correlación (valor absoluto)
Interpretación
Arriba de |0.2| Correlación muy baja
Arriba de |0.5| Correlación baja
Arriba de |0.7| Correlación moderada
Arriba de |0.9| Correlación alta
Encima de |0.9| Correlación muy alta
Los resultados para las imágenes en escala de grises se enumeran en la Tabla IV.
Tabla IV. Coeficientes de correlación entre las imágenes simples y sus correspondientes imágenes cifradas.
Imagen Coeficientes de
correlación
Lena 0.00089805205501117
Mandril -0.001487678260833
Pimientos -0.000145115810860
Podemos observar que los coeficientes son cercanos a cero para las 3 imágenes
utilizadas, mostrando que las imágenes simples son independientes de las
respectivas versiones cifradas [33].
44
5.4. Entropía de la información.
La entropía de información se puede utilizar para medir la aleatoriedad en la textura
de una imagen. Esto expresa el grado de incertidumbres en el sistema, y se define
como:
𝐻(𝑚) = −∑𝑃(𝑚𝑖) log2 𝑃(𝑚𝑖);
2𝑁
𝑖=0
(18)
Donde 𝑁 es el número de bits para representar un símbolo 𝑚𝑖 y 𝑃(𝑚𝑖) representa la
probabilidad del símbolo 𝑚𝑖, de tal forma la entropía se expresa en bits. Para una
fuente verdaderamente aleatoria emitiendo símbolos 2𝑁, la entropía es 𝐻 (𝑚) = 𝑁,
por lo tanto, para una imagen cifrada con 256 niveles de gris, la entropía podría
idealmente ser 𝐻 (𝑚) = 8. Para el esquema de cifrado de imagen propuesto, la
entropía de información es 𝐻 (𝑚) = 7. 999, que está muy cerca del valor ideal. Los
resultados obtenidos por todas las imágenes de prueba (Lena, Mandril y Pimientos)
están en la Tabla V.
Tabla V. Entropía de la información de las imágenes originales y las imágenes cifradas.
Imágenes Imagen original de
entropía Imagen cifrada de
entropía
Lena 7.440485071302679 7.997124792241476
Mandril 6.632888992840242 7.996923934376936
Pimientos 7.588364986488778 7.996521203142330
Esto significa que una alta aleatoriedad en la textura de las imágenes es lograda
por el algoritmo propuesto [31].
45
CONCLUSIONES
En este trabajo presentamos un estudio de los sistemas caóticos lineales por
pedazos los cuales son sistemas que se basan en parámetros de conmutación y un
intervalo de tiempo produciendo atractores caóticos de múltiple enroscado en 2 y 3
dimensiones, mediante la ubicación de puntos de equilibrio. Las trayectorias
caóticas que este atractor genera debido a su alta sensibilidad a las condiciones
iniciales fueron utilizadas para el diseño de una llave de cifrado utilizando un PRBG.
Esta llave fue usada para la encriptación de imágenes en escala de grises con el
uso de un algoritmo simétrico y un cifrado por flujo, logrando cifrar las imágenes
exitosamente. Se sometió el sistema a diversas pruebas estadísticas para verificar
la seguridad del esquema de encriptación, y así determinar si es confiable como
medio de cifrado de la información, resultando favorecido por los análisis de
histogramas, entropía de la información y la correlación entre la imagen original y la
imagen cifrada. Vimos la vulnerabilidad del sistema de cifrado ante la prueba del
Chosen-plaintext attack y presentamos una solución mediante un PRNG basado en
la evolución hacia atrás de la regla 90 de autómatas celulares, la cual permitió
cambiar los bits altamente redundantes por otros. De esta manera mejoró
satisfactoriamente el sistema de cifrado propuesto.
A futuro se planea someter el sistema a más pruebas de criptoanálisis y de esta
manera determinar su seguridad y eficacia, así como implementar el estudio de
incluir más puntos de equilibrio y de generar más enroscados al atractor. Así como
estimar el tiempo de latencia y costo computacional de este sistema de cifrado
generado.
46
APÉNDICE
Apéndice A. método de 4to orden de Runge Kutta.
Para realizar las simulaciones numéricas de los sistemas descritos anteriormente
se hace uso del método numérico de Runge Kutta de cuarto orden [21]. Este método
depende de una función de incremento, y cuatro ecuaciones recurrentes 𝒌𝟏,
𝒌𝟐, 𝒌𝟑, 𝒌𝟒. Esta recurrencia hace que el cálculo de este método sea más eficiente
utilizando una computadora y toman la siguiente forma:
𝒚𝒊+𝟏 = 𝒚𝒊 + 𝟏
𝟔𝒉(𝒌𝟏 + 𝟐𝒌𝟐 + 𝟐𝒌𝟑 + 𝒌𝟒) (19)
Donde
𝒌𝟏 = 𝒇(𝒙𝒊, 𝒚𝒊)
𝒌𝟐 = 𝒇(𝒙𝒊 + 𝟏
𝟐𝒉, 𝒚𝒊 +
𝟏
𝟐𝒉𝒌𝟏)
𝒌𝟑 = 𝒇(𝒙𝒊 + 𝟏
𝟐𝒉, 𝒚𝒊 +
𝟏
𝟐𝒉𝒌𝟐)
𝒌𝟒 = 𝒇(𝒙𝒊 + 𝒉, 𝒚𝒊 + 𝒉𝒌𝟑)
El parámetro 𝒉 o tamaño de paso, es el que da resolución al cálculo del sistema.
Para todas las simulaciones que se realizaron en este trabajo se asignó un valor de
𝒉 = 𝟎. 𝟎𝟏. Las simulaciones y cálculos se realizaron mediante código generado en
MATLAB.
47
Apéndice B. Codigos de simulaciones en Matlab.
Las simulaciones generadas en el transcurso de este trabajo se realizaron mediante
el software de computación matemático MATLAB. Los programas se muestran a
continuación:
B.1. datos.m
%% Declaración de variables. x0=1; y0=0; z0=1; PT= 10000; %Parámetro para quitar estados transitorios. h=0.01; %Valor del paso (0.01). Ti=0; %Modificar después para los valores del tiempo. %ET=5000; %Estados transitorios %n es el tamaño de la imagen de largo*ancho. %Tf=n*h+Ti; %Numero de iteraciones. %Tf=Tf+PT; %Puntos transitorios. %(evaluar los gráficos desde el punto dado hasta el final).
%% Llamado de las funciones.
res=rk4(x0,y0,z0,h,Ti,PT,n);
%% Graficacion %res(:,1) -> t %res(:,2) -> x %res(:,3) -> y %res(:,4) -> z
%% Puntos de equilibrio %X MatrizA = [0 1 0; 0 0 1; -1.5 -1 -1]; B = [0 ; 0 ; 2]; Bx2 = [0 ;0; 6]; Bx3 = [0;0;10]; Bx_2 = [0 ;0; -6]; Bx_3 = [0;0;-10];
PE = -MatrizA^-1*B; PEx2 = -MatrizA^-1*Bx2; PEx3 = -MatrizA^-1*Bx3; PEx_2 = -MatrizA^-1*Bx_2; PEx_3 = -MatrizA^-1*Bx_3;
%Y By = [8/3;-1/2;0]; By2 = [-8/3;1/2;0]; By_2 = [8/3;0;7.5005];
PEy = -MatrizA^-1*By;
48
PEy2 = -MatrizA^-1*By2; PEy_2 = -MatrizA^-1*By_2;
figure %Figura x,y,z VB->+x VB->y VB->z plot3(res(PT:end,2),res(PT:end,3),res(PT:end,4),'b') %hold on conserva las parcelas de los ejes actuales. hold on plot3(PE(1,1),PE(2,1),PE(3,1),'*r') plot3(-PE(1,1),PE(2,1),PE(3,1),'*r') plot3(PEx2(1,1),PEx2(2,1),PEx2(3,1),'*r') plot3(PEx3(1,1),PEx3(2,1),PEx3(3,1),'*r') plot3(PEx_2(1,1),PEx_2(2,1),PEx_2(3,1),'*r') plot3(PEx_3(1,1),PEx_3(2,1),PEx_3(3,1),'*r') plot3(PEy(1,1),PEy(2,1),PEy(3,1),'*r') plot3(PEy2(1,1),PEy2(2,1),PEy2(3,1),'*r') plot3(PEy_2(1,1),PEy_2(2,1),PEy_2(3,1),'*r') %title('Grafica X-Y-Z') xlabel('X') ylabel('Y') zlabel('Z')
B.2. rk4.m
function [sal]= rk4(x0,y0,z0,h,Ti,PT,n) L=length(1:PT+n);%medir la dimensión del arreglo. res=zeros(L,4); %vector de ceros generado. t=Ti; %Asignar valor a t de Tiempo inicial. %% Solución de ecuaciones mediante Runge Kutta de 4to orden. res(1,1)=t; res(1,2)=x0; res(1,3)=y0; res(1,4)=z0;
for j=2:L
K1x=f(t,x0,y0,z0); k1x=K1x(1,1); k1y=K1x(1,2); k1z=K1x(1,3);
K2x=(f(t+(h/2),x0+((h/2)*k1x),y0+((h/2)*k1y),z0+((h/2)*k1z))); k2x=K2x(1,1); k2y=K2x(1,2); k2z=K2x(1,3);
K3x=(f(t+(h/2),x0+((h/2)*k2x),y0+((h/2)*k2y),z0+((h/2)*k2z))); k3x=K3x(1,1); k3y=K3x(1,2); k3z=K3x(1,3);
K4x=(f(t+h,x0+(h*k3x),y0+(h*k3y),z0+(k3z*h))); k4x=K4x(1,1);
49
k4y=K4x(1,2); k4z=K4x(1,3);
Xn1 = x0+(h/6)*(k1x+2*k2x+2*k3x+k4x); Yn1 = y0+(h/6)*(k1y+2*k2y+2*k3y+k4y); Zn1 = z0+(h/6)*(k1z+2*k2z+2*k3z+k4z);
res(j,1)= t; res(j,2)= Xn1; res(j,3)= Yn1; res(j,4)= Zn1;
t = t+h; %Aumento del valor de x.
x0=Xn1; y0=Yn1; z0=Zn1;
end sal=res; end
B.3. f.m
function [ecdif]= f(t,x,y,z) %% Variables usadas para Sistemas lineales por pedazos. a=1.5; b=1; c=1;
%Y By_1 = [8/3 ; -1/2 ; 0]; %enroscado abajo. By1 = [-8/3 ; 1/2; 0]; %enroscado arriba.
By_2 = [8/3;0;7.5005]; %enroscado abajo.
beta1 = 4/3; beta_1 = -4/3;
%% Superficies de conmutación. alpha0 = 0; alpha1 = 8/3; alpha2 = 16/3;
B1=[0;0;2]; B2=[0;0;-2]; B3=[0;0;6]; B4=[0;0;-6]; B5=[0;0;10]; B6=[0;0;-10];
alpha_1 = -8/3; alpha_2 = -16/3;
50
%% Eje de las X. if x > alpha0 && x >= alpha1 && x > alpha2 B = B5; elseif x > alpha0 && x > alpha1 && x < alpha2 B = B3; elseif x >= alpha0 && x < alpha1 B = B1; elseif x < alpha0 && x < alpha_1 && x <= alpha_2 B = B6; elseif x < alpha0 && x < alpha_1 && x > alpha_2 B = B4; elseif x <= alpha0 B = B2; end
% Eje de las Y if x > alpha0 && x <= alpha1 && y < beta_1 B = By_1; %enroscado abajo. elseif x < alpha0 && x > alpha_1 && y >= beta1 B = By1; %enroscado arriba. elseif x > alpha0 && x > alpha1 && x > alpha2 && y < beta_1 B = By_2; %enroscado abajo. end %% Ecuaciones ecdif = zeros(1,3);
ecdif(1)=y+B(1); ecdif(2)=z+B(2); ecdif(3)=-a*x-b*y-c*z+B(3); end
B.4. llave_k.m
tic %mide el tiempo que tarda en terminar el programa. % Programa para generar llave K, encriptar y desencriptar %las imágenes en escala de grises. % Y se implementaron los códigos de las 4 pruebas realizadas. clc; %borrar command Window clear; %borrar Workspace close all; %Cerrar todas las figuras. workspace; %Espacio de trabajo. foto = imread('mandrill.bmp'); imagen = imresize (foto, [256 256]); subplot(2, 4, 1);%Posicion de la imagen en el workspace. imshow(imagen, []); % para visualizar una imagen. title('Imagen Original'); %Lectura de la imagen original y convertida a escala de grises. grises=rgb2gray(imagen); %converir img original en escala de grises. subplot(2, 4, 2);%Posicion de la imagen en el workspace. imshow(grises, []); % para visualizar una imagen. title('Imagen en escala de grises'); imwrite(grises,'imagen_escala_grises.png'); [largo, ancho] = size(grises); %Tamaño de la imagen. n=largo*ancho; %Tamaño total de la imagen.
51
%% Correr primero el programa de los multienroscados.
run datos.m
Vllave=res(PT+1:end,:); %La información del vector res se pasan al vector
Vllave.
%% Llave K de encriptacion. K=zeros(1,n, 'uint8');%Vector de ceros de 1 hast n=65536. %res(:,2) -> x %res(:,3) -> y %res(:,4) -> z for i=1:n K(i)=mod(floor(Vllave(i,2)+Vllave(i,3)+Vllave(i,4)*10^14),256); end
%% Ecuaciones para el cifrado completo, para L = 8 bits. %Convierto la matriz grises en un vector horizontal unidimensional. %Grises es la cantidad de pixeles de la imagen 256x256=65536. P=grises(:)'; %Vector de pixeles de la imagen. T=zeros(1, 8, 'uint8'); %Vector de 8 bits -> m gorrito. TP=zeros(1,length(P),'uint8'); %Vector de valores del procesado de la
img. %MSBFirst bit mas significativo. %LSBFirst bit menos significativo. %Vector de 9 bits. %382[256-128-64-32-16-8-4-2-1]. Numero = 382; %valor numerico del vector Z. Z = decimalToBinaryVector(Numero,9,'LSBFirst');%Convertir de decimal a
binario.
for v=1:length(P) %longitud del vector P -> 65536 pixeles. Pbin = decimalToBinaryVector(P(v),8,'LSBFirst'); % convertidor de
decimal a binario. T(8)=bitxor(Pbin(1),Z(2),'uint8'); T(7)=bitxor(bitxor(Pbin(2),Z(1)),Z(3),'uint8'); T(6)=bitxor(bitxor(Pbin(1),Pbin(3)),Z(4),'uint8'); T(5)=bitxor(bitxor(bitxor(Pbin(4),Z(1)),Z(3)),Z(5),'uint8');
T(4)=bitxor(bitxor(bitxor(bitxor(Pbin(1),Pbin(3)),Pbin(5)),Z(2)),Z(6),'ui
nt8');
T(3)=bitxor(bitxor(bitxor(bitxor(Pbin(2),Pbin(6)),Z(1)),Z(5)),Z(7),'uint8
'); T(2)=bitxor(bitxor(bitxor(Pbin(1),Pbin(5)),Pbin(7)),Z(8),'uint8');
T(1)=bitxor(bitxor(bitxor(bitxor(Pbin(8),Z(1)),Z(5)),Z(7)),Z(9),'uint8'); %Vector de Z con los bits ordenados. Zn = [Z(1),T(1),T(2),T(3),T(4),T(5),T(6),T(7),T(8)]; %Vector de Z tomando en cuenta el LSB, usado para la proxima
iteracion. Z = [T(8),T(7),T(6),T(5),T(4),T(3),T(2),T(1),Z(1)];
52
%Guardar el valor de T->m gorrito en un vector de los pixeles
procesados. T=double(T); %Convertimos los valores de uint8 a double. TP(v) = binaryVectorToDecimal(T);%de binario a decimal. end
%% Proceso de cifrado de la imagen. IV=randi([0 255]); %IV es un valor escalar entre 0 y 255. C=zeros(largo,ancho,'uint8');%matriz C con el tamaño de la imagen. %Primera ecuacion del cifrado. C(1,1)=bitxor(bitxor(TP(1),K(1),'uint8'),IV,'uint8');%Primer pixel.
%ciclo para el primer renglon despues de (1,1). for j=2:ancho %Barrido Vertical %K(256*(j-1)+(i)) esta operacion hace que al terminarse la primera %fila de la imagen, la llave comience en la segunda donde quedo. C(j,1)=bitxor(bitxor(TP(j),K(j),'uint8'),C(j-1,1),'uint8'); end
%ciclo para todos los demas pixeles. for j=2:ancho %Barrido Vertical for i=1:largo %Barrido Horizontal. %K(256*(j-1)+(i)) esta operacion hace que al terminarse la primera %fila de la imagen, la llave comience en la segunda donde quedo. if(i==1) C(i,j)=bitxor(bitxor(TP(256*(j-1)+(i)),K(256*(j-
1)+(i)),'uint8'),C(256,j-1),'uint8'); else C(i,j)=bitxor(bitxor(TP(256*(j-1)+(i)),K(256*(j-
1)+(i)),'uint8'),C(i,j-1),'uint8'); end
end end %Guardamos y visualizamos la imagen encriptada. imwrite(C,'imagen_cifrada.png'); figure(1) img_cif = imread('imagen_cifrada.png'); subplot(2, 4, 3);%Posición de la imagen en el workspace. imshow(img_cif, []); % para visualizar una imagen. title('Imagen Cifrada');
%% Proceso de descifrado de la imagen. %matriz P1 con el tamaño de la imagen descifrada. P1=zeros(largo,ancho,'uint8'); %Matriz de imagen decifrada. %Primera ecuacion del descifrado. P1(1,1)=bitxor(bitxor(C(1,1),K(1),'uint8'),IV,'uint8');%Primer pixel.
%ciclo para el primer renglon despues de (1,1). for j=2:ancho %Barrido Vertical %fila de la imagen, la llave comience en la segunda donde quedo. P1(j,1)=bitxor(bitxor(C(j,1),K(j),'uint8'),C(j-1,1),'uint8'); end
%ciclo para todos los demas pixeles. for j=2:ancho %Barrido Vertical
53
for i=1:largo %Barrido Horizontal.
if(i==1) P1(i,j)=bitxor(bitxor(C(256*(j-1)+(i)),K(256*(j-
1)+(i)),'uint8'),C(256,j-1),'uint8'); else P1(i,j)=bitxor(bitxor(C(256*(j-1)+(i)),K(256*(j-
1)+(i)),'uint8'),C(i,j-1),'uint8'); end
end end
%% Ecuaciones para el descifrado completo, para L = 8 bits. ImgDes=P1(:)'; %Vector de pixeles de la imagen. IR=zeros(1,length(P),'uint8'); %vector del pixel recuperado. %Numero = 382; %valor numerico del vector Z. Z = decimalToBinaryVector(Numero,9,'LSBFirst');%Convertir de decimal a
binario. for v=1:length(P)%longitud del vector P -> 65536 pixeles. T = decimalToBinaryVector(ImgDes(v),8,'LSBFirst'); Pbin(8)=bitxor(T(1),Z(2),'uint8'); Pbin(7)=bitxor(bitxor(T(2),Z(1)),Z(3),'uint8'); Pbin(6)=bitxor(bitxor(bitxor(T(1),T(3)),Z(2)),Z(4),'uint8'); Pbin(5)=bitxor(bitxor(bitxor(T(4),Z(1)),Z(3)),Z(5),'uint8');
Pbin(4)=bitxor(bitxor(bitxor(bitxor(T(3),T(5)),Z(2)),Z(4)),Z(6),'uint8');
Pbin(3)=bitxor(bitxor(bitxor(bitxor(T(2),T(6)),Z(3)),Z(5)),Z(7),'uint8');
Pbin(2)=bitxor(bitxor(bitxor(bitxor(bitxor(bitxor(T(1),T(3)),T(5)),T(7)),
Z(4)),Z(6)),Z(8),'uint8');
Pbin(1)=bitxor(bitxor(bitxor(bitxor(T(8),Z(1)),Z(5)),Z(7)),Z(9),'uint8');
%Vector de Z con los bits ordenados. Zn = [Z(1),T(8),T(7),T(6),T(5),T(4),T(3),T(2),T(1)];
%Vector de Z tomando en cuenta el LSB, usado para la proxima
iteracion. Z = [T(1),T(2),T(3),T(4),T(5),T(6),T(7),T(8),Z(1)]; %Guardar el valor de T->m gorrito en un vector de los pixeles
procesados. Pbin=double(Pbin); %Convertimos los valores de uint8 a double. IR(v) = binaryVectorToDecimal(Pbin);%de binario a decimal.
%Convertimos el vector en una matriz. imgrec=zeros(largo,ancho, 'uint8'); for j=1:ancho %Barrido Vertical for i=1:largo %Barrido Horizontal. imgrec(i,j)=IR(i+(j-1)*256); end end end
%Guardamos y visualizamos la imagen recuperada
54
imwrite(imgrec,'imagen_recuperada.png'); figure(1) img_rec = imread('imagen_recuperada.png'); subplot(2, 4, 4);%Posicion de la imagen en el workspace. imshow(img_rec, []); % para visualizar una imagen. title('Imagen Recuperada');
%% entropía de la información. % Imagen original. I = imread('imagen_escala_grises.png'); IEG = entropy(I); % Imagen cifrada. L = imread('imagen_cifrada.png'); IC = entropy(L);
%% Análisis de coeficientes de correlación a = imread ( 'imagen_escala_grises.png' ); b = imread ( 'imagen_cifrada.png' ); R = corr2 (a, b);
%% Histogramas figure(1) %Histograma de la imagen de Lena en escala de grises. subplot(2, 3, 4);%Posicion de la imagen en el workspace. imhist(grises); %Histograma imagen escala de grises. title('Histograma imagen escala de grises'); figure (1) %Histograma de la imagen de Lena cifrada. subplot(2, 3, 5);%Posicion de la imagen en el workspace. imhist(img_cif); %Histograma imagen cifrada. title('Histograma imagen cifrada'); figure(1) %Histograma de la imagen de Lena recuperada. subplot(2, 3, 6);%Posicion de la imagen en el workspace. imhist(img_rec); %Histograma imagen cifrada. title('Histograma imagen recuperada');
%% Chosen-plaintext attack ChA=zeros(largo,ancho,'uint8');%matriz de la imagen resultante del
ataque. cif_lena = imread('imagen_cifrada.png'); cif_negro = imread('imagen_cifradanegro.jpg');
for i=1:ancho %Barrido Vertical for j=1:largo %Barrido Horizontal ChA(i,j)=bitxor(cif_lena(i,j),cif_negro(i,j),'uint8'); end end figure imshow(ChA); title('Choosen Plaint-text Attack'); imwrite(ChA,'Choosen_Attack.jpg'); toc %Determina el tiempo final de ejecución del programa.
55
Apéndice C. Congresos Arbitrados.
C.1. XV Encuentro participación de la mujer en la ciencia.
C.1.1. Trabajo en Extenso No. de Ref. IN-0131/18.
ESTUDIO Y APLICACIÓN DE SISTEMAS CAÓTICOS A TRAVÉS DE LA BIFURCACIÓN DE SUS
PARÁMETROS
Juan Daniel González Del Río1, Luis Javier Ontañon García Pimentel1, Marco Tulio Ramírez Torres1
1 Coordinación Académica Región Altiplano Oeste, UASLP, Salinas, S.L.P
[email protected], [email protected], [email protected]
RESUMEN
Los sistemas caóticos son sistemas no lineales que cambian o evolucionan con el estado del tiempo,
pueden llegar a tener resultados impredecibles y ser complejos. Dichos sistemas son
extremadamente sensibles a las condiciones iniciales puesto que la más mínima alteración
repercute en su comportamiento, como es en el caso de la meteorología, la cual es la disciplina que
estudia los fenómenos atmosféricos. En este proyecto de investigación se realizó el estudio de los
sistemas caóticos de Lorenz y Rössler los cuales son sistemas que no llegan a pasar por un mismo
punto dos veces. El estudio de estos sistemas se llevó a cabo través de la solución de su sistema de
ecuaciones diferenciales ordinarias mediante el método numérico Runge Kutta de cuarto orden.
Con este estudio se determinó su comportamiento caótico o periódico al variar los parámetros del
sistema para obtener sus estados estacionarios así como los diagramas de bifurcación donde se
observan las soluciones continuas y los cambios de las soluciones periódicas a múltiple periodo o
periodo infinito. Con el estudio de estos sistemas se espera diseñar un sistema lo suficientemente
complejo y eficaz que pueda llegar a contribuir al cifrado de datos. Ya que existen algoritmos
convencionales que no presentan un buen desempeño en el cifrado de imágenes debido a las
propiedades intrínsecas, por lo que se planea desarrollar algoritmos criptográficos con enfoque
caótico, los cuales demuestran una mejor calidad de cifrado brindando seguridad perceptual y
criptográfica, además son sensibles a las condiciones iniciales y son difíciles de predecir.
56
57
58
59
60
61
62
63
64
C.1.2. Cartel.
65
C.2. Primera reunion de ciberseguridad en la industria 4.0
Aplicación a la criptografía de sistemas
caóticos lineales por pedazos mediante el
aumento de puntos de equilibrio
Resumen—En este trabajo de investigación se realizó el estudio y aplicación de sistemas caóticos basados
en el uso de sistemas lineales por pedazos, los cuales pueden ser una gran contribución a la encriptación de datos
debido a que estos sistemas son fáciles de implementar y además presentan trayectorias caóticas óptimas para los
procesos de encriptación. Para esto se utilizó un análisis de la ubicación de los puntos de equilibrio y número de
enroscados, con la finalidad de generar un sistema multienroscado. Para el sistema de encriptación se tomó la
secuencia dada por el generador como una llave de cifrado y se realizó la unión con los datos de entrada por medio
de la operación XOR para producir la encriptación de imágenes en escala de grises. Se efectuó el análisis de seguridad
estadístico para determinar la eficiencia del encriptado propuesto y corroborar los datos mediante coeficientes de
correlación e histogramas. La cual nos llevará a establecer un sistema de comunicación de video confidencial.
González Del Río Juan Daniel; Ontañón-García Pimentel Luis Javier; Ramírez Torres Marco Tulio,
Coordinación Académica Región Altiplano Oeste, Universidad Autónoma de San Luis Potosí,
Kilómetro 1 Carretera a Santo Domingo, 78600, Salinas de Hidalgo, San Luis Potosí, México,
66
67
68
69
70
C.2.1. Cartel.
71
REFERENCIAS
[1] Cheng, H. Partial encryption of compressed images and videos, IEEE Trans.
Signal Process. 48 (8) (2000) 2439–2451.
[2] Bourbakis, N; Alexopoulos, C. Picture data encryption using scan patterns,
Pattern Recognit. 25 (6) (1992) 567–581.
[3] Wijaya, S; Tan, S.K; Guan, S.U. Permutation and sampling with maximum length
CA or pseudorandom number generation, Appl. Math. Comput. 185 (1) (2007)
312–321.
[4] Rey, A.M.D; Mateus, J.P; Sánchez, G.R. A secret sharing scheme based on
cellular automata, Appl. Math. Comput. 170 (2) (2005) 1356–1364.
[5] Jones, D. Applications of splay trees to data compression, Commun. ACM 31 (8)
(1988) 996–1007.
[6] Molina Vilchis, M. A.; Vega Alvarado, E.; Silva Ortigoza, R. Teoría del Caos en
la Protección de Información, Polibits, núm. 35, 2007, pp. 7-11.
[7] Campos Canton, E., Barajas Ramírez, Juan, Solís Perales, Gualberto, Femat
Flores, Alejandro, Multiscroll attractors by switching systems, et al. Chaos 20,
013116 (2010).
[8] García-Martinez, M; Ontañón-García, L. J; Campos-Cantón, E; Čelikovský, S.
Hyperchaotic encryption based on multi-scroll piecewise linear systems, Applied
Mathematics and Computation 270 (2015) 413-424.
[9] Schifter Isacc, la ciencia del caos, 3ª ed. México : FCE, SEP, CONACyT, 2003.
[10]Devaney, R. L., Siegel, P. B., Mallinckrodt, A. J., & McKay, S. (1993). A first
course in chaotic dynamical systems: theory and experiment. Computers in
Physics, 7(4), 416-417.
[11] Moreno Posada, J. D., Rodriguez Rodriguez, I. F., Suárez Parra, C. A., & Amaya
Barrera, E. I. (2018). Algoritmo de Encriptación de Imágenes Utilizando el
Atractor Caótico de Lorenz.
[12] Ramirez Torres Marco Tulio, Application and implementation of an improved
encryption system, (tesis de doctorado). Universidad Autónoma de San Luis
Potosí, IICO, San Luis Potosi (2015).
[13] Shiguo Lian, multimedia content encryption-techniques and applications.
Publicaciones Auerbach (2008).
[14] Von Neuman, J.: Theory of Self-Reproducing Automata. Burks, A,W. University
of Illinois Press (1966) 64-87.
[15] Reyes Gómez D. A., Descripción y Aplicaciones de los Autómatas Celulares,
Aug (2011).
72
[16] Espinosa Olvera O. J. Análisis Estadístico de Cifrado Parcial, en imágenes
digitales, UASLP, IICO, Febrero 2018.
[17] Wolfram, S. Cellular automata and complexity: collected papers. CRC Press,
(2018).
[18] Ontañón Garcia Pimentel, L. J. (2010). “Estudio Del Fénomeno De
Sincronización En Sistemas Alineales” (tesis de maestría). Universidad
Autónoma de San Luis Potosí, IICO, San Luis Potosi (2010).
[19] Lorenz, Edward N. (1963): Deterministic nonperiodic flow. Journal of
Atmospheric Science, J. Atmos. Sci. 20, 130-141.
[20] Rössler, O. E. “An equation for continuos chaos”, Physics Letters, Vol. 57A, No.
5, pp 397-398, (1976).
[21] Blanchard, P; Devaney, R. L; Hall G. R. Ecuaciones Diferenciales. International
Thomson Editores.Mexico, 1998.
[22] Romanelli, L. (2006). Teoría del caos en los sistemas biológicos. Rev Argent
Cardiol, 74(6), 478-482.
[23] Rodríguez, M. A. (2008). Predicción meteorológica y caos en espacio-tiempo.
[24] Perko, L. (2013). Differential equations and dynamical systems (Vol. 7). Springer
Science & Business Media.
[25] Ontañón Garcia, L. J., Jiménez López, E; Campos Cantón, E. y Basin,
M. (2014). A family of hyperchaotic multi-scroll attractors in Rn. Applied
Mathematics and Computation, 233, 522-533.
[26] Wolf, A., Swift, J. B., Swinney, H. L., & Vastano, J. A. (1985). Determining
Lyapunov exponents from a time series. Physica D: Nonlinear
Phenomena, 16(3), 285-317.
[27] Liu, H; Wang, X; Kadir, A. Color image encryption using choquet fuzzy integral
and hyper chaotic system, Optik 124 (18) (2013) 3527–3533.
[28] Ramirez-Torres, M. T; Murgia, J.S; Mejia Carlos, M. Image encryption with an
improved cryptosystem based on a matrix approach, International Journal of
Modern Physics C, Vol. 25, No. 10 (2014).
[29] Urias, J., Ugalde, E., Salazar, G.,: "A cryptosystem based on cellular automata".
Chaos: An Interdisciplinary Journal of Nonlinear Science. Vol. 8(4). pp. 819-822.
(1998).
[30] Del Rey, A. M., Sánchez, G. R., & De La Villa Cuenca, A. Encrypting digital
images using cellular automata. In International Conference on Hybrid Artificial
Intelligence Systems. Springer, Berlin, Heidelberg (2012) 78-88.
[31] Ramirez-Torres, MT, Murguia, JS, y Mejia-Carlos, M. (2014,
diciembre). Implementación de FPGA de un sistema de cifrado de imágenes
reconfigurable. En ReConFigurable Computing y FPGAs (ReConFig), 2014
International Conference on (pp. 1-4). IEEE.
73
[32] Schmidt, JS, y Osebold, R. (2017). Los sistemas de gestión ambiental como
motor de la sostenibilidad: estado de implementación, beneficios y barreras en
las empresas de construcción alemanas. Revista de Ingeniería Civil y
Gestión , 23 (1), 150-162.
[33] Wang, X; Zhao, J; Zhang, Z. Chaotic encryption algorithm based on alternant of
stream cipher and block cipher, Nonlinear Dyn. 63 (4) (2011) 587–597.
Top Related