SciELO - Scientific Electronic Library Online

 
vol.17 número1Mejorando la búsqueda de soluciones de sistemas MRHS mediante el Algoritmo Genético índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Articulo

Indicadores

  • No hay articulos citadosCitado por SciELO

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


Revista Cubana de Ciencias Informáticas

versión On-line ISSN 2227-1899

RCCI vol.17 no.1 La Habana ene.-mar. 2023  Epub 01-Ene-2024

 

Matemática computacional

Ataque al PRESENT-80 con el Algoritmo Gene´tico mediante aproximaciones sucesivas de componentes fijas

Attack to PRESENT-80 with the Genetic Algorithm using successive approximations of fixed components

0000-0002-0441-8282Adrian Donatien Charo´n1  , 0000-0003-3364-9677Miguel A. Borges Trenard2  , 0000-0002-5656-0037Mijail Borges Quintana3 

1Departamento de Matema´tica, Universidad de Oriente, Santiago de Cuba, Cuba. 90500. adriand@uo.edu.cu

2Doctorate in Mathematics Education, University Antonio Narin˜o, Bogota´, Colombia.borgestrenard2014@gmail.com

3Departamento de Matema´tica, Universidad de Oriente, Santiago de Cuba, Cuba. 90500. mijail@uo.edu.cu

RESUMEN

Con el surgimiento y desarrollo de la llamada internet de las cosas y la necesidad del uso criptogra´fico en dispositivos de relativamente pocos recursos, es cada vez ma´s creciente el ana´lisis y criptoana´lisis de la familia de los cifrados en bloques ligeros. El cifrado PRESENT es un representante bien conocido de esa familia. En los u´ltimos an˜os se ha incrementado el uso que se le ha dado al Algoritmo Gene´tico (AG) en el criptoana´lisis a cifrados en bloque, no obstante, todavía es necesario seguir profundizando en su estudio. Por otra parte, el Algoritmo Gene´tico es un me´todo de optimizacio´n basado en bu´squedas heur´ısticas en el espacio de las posibles soluciones, el cual intenta simular el comportamiento de la evolucio´n de las especies. Buscar la clave en todo el espacio de las claves es un problema complejo y puede resultar imposible. En el presente trabajo, se muestra un criptoana´lisis al PRESENT-80, utilizando el Algoritmo Gene´tico con una metodolog´ıa de reduccio´n sucesiva del conjunto de las posibles soluciones mediante un procedimiento de fijar componentes iterativamente.

Palabras-clave: criptoana´lisis; cifrados en bloques; algoritmo gene´tico; cifrado PRESENT-80

ABSTRACT

With the emergence and development of the so-called Internet of Things and the need for cryptographic use in devices with relatively few resources, the analysis and cryptanalysis of the family of light block ciphers is increasingly growing. The PRESENT block cipher is a well-known representative of that family. In recent years, the use that has been given to the Genetic Algorithm (GA) in the cryptanalysis of block ciphers has been increasing, however, it is still necessary to continue studying it in depth. On the other hand, the Genetic Algorithm is an optimization method based on heuristic searches in the space of possible solutions, which tries to simulate the behavior of the evolution of species. Searching for the key in the entire key space is a complex problem and can become impossible to solve. In the present work, a cryptanalysis of the PRESENT-80 is shown, using the Genetic Algorithm with a metodology of progresive reducing the set of possible solutions by means of a procedure of iterative fixing components.

Key words: cryptanalyisis; block ciphers; genetic algorithm; PRESENT-80 block cipher

Introduccio´n

Existen varios algoritmos heur´ısticos que son utilizados como me´todos de optimizacio´n y prediccio´n en el contexto de la Criptograf´ıa; en (Grari et al., 2019), se utiliza el me´todo heur´ıstico (ACO) (Ant Colony Optimization), y fue probada una metodolog´ıa con el cifrado en bloque S-AES (Simplified Advanced Encryption Standard), estudiando dos pares de textos claros y cifrados.

En (Ali and Jawad, 2020), se emplea una combinacio´n del Algoritmo Gene´tico (AG) y (ACO) para el criptoana´lisis de cifrados en flujo. En (So, 2020), (Lee et al., 2020), fueron mostradas las posibilidades de combinacio´n y disen˜o de estos algoritmos, analizadas mediante las herramientas de machine learning y deep learning. En (Kramer, 2017) los autores disen˜an e implementan un algoritmo de cifrado sime´trico cuya estructura interna se basa en el Algoritmo de Bu´squeda Tabu´.

En los u´ltimos an˜os es cada vez ma´s creciente el uso que se le ha dado al Algoritmo Gene´tico AG en el criptoana´lisis a cifrados en bloque. El marco de los AGs es direccionado a problemas de criptoana´lisis. En (Tortella et al., 2016) se investiga el uso del AG para generar claves, en particular, solo aquellas claves que proporcionan una sen˜al cifrada con una taza de error de bit suficientemente alta, y lo contrario para la sen˜al descodificada. Los resultados mostraron que el AG genera claves aceptables en el contexto de la Criptografía. Una breve panora´mica sobre algunas ideas claves de criptoana´lisis que usan el AG, y han sido desarrolladas en los u´ltimos 15 an˜os, puede encontrarse en (Baragada and Reddy, 2013). Por su parte, en (Khan et al., 2015) se realiza un interesante estudio sobre las bases de datos en las que se encuentran referencias sobre el AG en el criptoana´lisis. De la lectura de (Baragada and Reddy, 2013) y (Khan et al., 2015) puede observarse que el criptoana´lisis basado en el AG es un a´rea de investigacio´n aun emergente y a su vez promisoria.

Con el uso del AG y la necesidad de disminuir la complejidad de recorrer todo el espacio de las claves, surge la idea de dividir dicho espacio y modificar los algoritmos para que sean capaces de mantener la bu´squeda en una regio´n del mismo. En este sentido en el art´ıculo (Brown et al., 2009) se puede apreciar una idea al respecto: los autores seleccionan un pequen˜o grupo de claves el cual dividen en varios subgrupos de 3, 4 y hasta 5 claves, con el objetivo de determinar cua´l grupo es ma´s de´bil con respecto a determinados criterios que ellos tienen en cuenta. Ideas ma´s formales aparecen en (Borges-Trenard et al., 2019) donde se propone un procedimiento para particionar el espacio de las claves basa´ndose, en cierto sentido, en el uso de congruencia aritme´tica y el algoritmo de la divisio´n con resto en los enteros y (Tito-Corrioso et al., 2019) particiona el espacio de las claves en clases de equivalencia, usando Teoría de Grupos, y así concentrar el ataque sobre estas clases, el objetivo de ambos es dividir el espacio en intervalos para luego orientar el ataque en uno de estos intervalos. En (Tito-Corrioso et al., 2021; Tito-Corrioso, 2021) se nombran estas metodolog´ıas como BBM (Borges-Trenard et al., 2019) y TBB (Tito-Corrioso et al., 2019) respectivamente y se realiza el estudio de varios para´metros del AG en conjunto con la utilizacio´n de las mismas.

La idea de utilizar la congruencia aritme´tica en el criptoana´lisis resulta interesante porque permite abordar problemas complejos con herramientas sencillas. Esta te´cnica tambie´n se utiliza en otros trabajos, en (Valluri, 2018) el autor demuestra que un determinado protocolo de intercambio de claves pu´blicas se puede romper con un ataque man-in-the-middle, que se basa (en principio) en trabajar con congruencias aritme´ticas.

Como es conocido, el espacio de claves del cifrado en bloque PRESENT es relativamente grande, para evitar un ataque de fuerza bruta, por lo tanto, el AG tiene que enfrentarse con la dificultad de buscar en este espacio y, aunque la bu´squeda de AG es heur´ıstica, el taman˜o del espacio de claves debe tenerse en cuenta. En (Borges-Trenard et al., 2019) se realiza una particio´n del espacio de claves, de modo que se pueda enfocar el ataque solo en algunos de los subconjuntos de la particio´n, por lo tanto, de esta manera es posible reducir el conjunto de claves por investigar.

Buscar la clave en todo el espacio de las claves es un problema complejo y puede llegar a ser imposible de resolver en la pra´ctica, en este sentido, el objetivo de este trabajo es realizar un ataque al PRESENT-80 mediante el (AG), con una metodolog´ıa de particionamiento del espacio claves de una forma ma´s general que la que se utiliza en (Borges-Trenard et al., 2019) y (Tito-Corrioso et al., 2021).

Me´todos o Metodolog´ıa Computacional

El Algoritmo Gene´tico

El Algoritmo Gene´tico AG es un me´todo de bu´squeda heur´ıstica que ha demostrado su efectividad en mu´ltiples campos ver (Lambora et al., 2019), (Katoch et al., 2021). En te´rminos generales, el AG toma como punto de partida una poblacio´n inicial, conjunto de individuos que representan posibles soluciones, y mediante sucesivas iteraciones (generaciones, en el argot de esta teor´ıa) intenta obtener la solucio´n del problema que se esté investigando. Elementos típicos asociados con el AG son, m la cantidad de elementos en la poblacio´n inicial, g el nu´mero de generaciones que se recorrera´, F la funcio´n de aptitud que se utilizara´ (las funciones de aptitud miden cua´nto se acercan los individuos de la poblacio´n muestreada a la solucio´n), el tipo de cruzamiento cru y mutaciones mut que se realizara´n en cada iteracio´n, s la cantidad de individuos que se cruzara´n, as´ı como las probabilidades para cruzamiento y mutacio´n. Saber elegir convenientemente esos para´metros y otros por el estilo forma parte de la pericia que debe lograrse para una exitosa aplicacio´n del Algoritmo Gene´tico. Los interesados en profundizar en este algoritmo pudiesen ver (Bodenhofer, 2003) para una primera lectura y (Kramer, 2017) para ulterior profundizacio´n.

Cifrado en bloque ligero PRESENT

El cifrado PRESENT es una red de substitucio´n permutacio´n con 31 rondas, soporta claves de 80 y 128 bits (de ahí las clasificaciones PRESENT-80 y PRESENT-128) (Bogdanov et al., 2007), llamado comúnmente el paradigma de la FCBL (Familia de los Cifrados en Bloques Ligeros). La longitud de bloques es de 64 bits. Cada ronda inicia con una suma XOR del bloque de estado con la clave de la ronda correspondiente (estas claves de ronda son generadas por el algoritmo a partir de la clave que introduce el usuario), posteriormente se pasa en paralelo al bloque que se esta´ procesando por una S-caja de 4 bits (16 realizaciones simulta´neas de la S-caja sobre el bloque de 64 bits en proceso) y finalmente se procede a una transposicio´n de las componentes del bloque de estado obtenido. Para ma´s detalles, la fuente original sigue siendo la mejor referencia (Bogdanov et al., 2007). Atacar al PRESENT de manera exitosa es un desafío actual, ver (Pandey et al., 2019), (Gunathilake et al., 2021).

Resultados y discusio´n

El tipo de ataque realizado es a texto claro conocido, para profundizar ver (Borges-Trenard et al., 2019) .

Sea E: {0, 1}m × {0, 1}n → {0, 1}n un cifrado en bloque, donde m es la longitud de clave y n la longitud de bloque. Sea T un texto claro, K es la clave y C el correspondiente texto cifrado, C = E(K, T ). Se dice que K es una clave consistente E, T y C si C = E(K , T ). Denotemos con Cons E el conjunto de claves consistentes con E, T y C.

El problema que se intenta resolver en este trabajo es, dado E, T y C, calcular una clave en Cons E .

Me´todo de fijar componentes para el Algoritmo Gene´tico

En el caso del criptoana´lisis a cifrados en bloque la poblacio´n esta´ dada por el conjunto de claves, que consisten en cadenas binarias de longitud k 1, donde k 1 es la longitud de clave del cifrado. Sea k 2 la longitud de clave grupal (Borges-Trenard et al., 2019), que representa la longitud de los individuos de la poblacio´n sobre los que realmente trabaja el AG. El me´todo de fijar componentes consiste en fijar el valor de k 1k 2 componentes de las cadenas binarias de longitud k 1. Sean I = {i 1 , . . . , i k 1−k2 } dichas componentes (posiciones) y ρ 1 , . . . , ρ k 1−k2 los valores 0-1 correspondiente a cada una de las componentes.

La clave está en que todos los procedimientos del AG trabajan sobre los individuos de longitud k 2 y donde u´nico se necesita trabajar con sus representaciones como cadenas de longitud k 1 es para el ca´lculo de la aptitud. En este caso, dado un individuo Z de longitud k 2, el correspondiente elemento en el espacio de longitud k 1 ser´ıa Z = ext(Z, I), que consiste en extender Z a Z teniendo en cuenta que en las componentes del conjunto I los valores serian los ρ i ’s, mientras que en las k 2 componentes restantes los valores de Z serian los de Z en orden creciente de las componentes de izquierda a derecha.

Si la longitud de la clave es k 1 entonces el espacio clave K tiene cardinal 2 k 1 y existe una correspondencia uno a uno entre K y los nu´meros enteros en el intervalo [0, 2 k 1 − 1]. En este hecho se basan las metodolog´ıas BBM y TBB (Tito-Corrioso et al., 2021). La funcio´n de extensio´n en estos casos, de la clave grupal a la clave real, es la funcio´n num, num(k 2 , q, r) = q · 2 k 2 + r. Donde la clave grupal Z esta´ representada por el resto r (en BBM) o el cociente q (en TBB). Ambas metodologías tienen un enfoque dual, en el caso de BBM se fijan todas componentes correspondientes al cociente q, mientras que en el caso de TBB se fijan todas las componentes correspondientes al resto r. En BBM se trata de elementos que se encuentran, en su representacio´n decimal, de forma consecutiva en un intervalo de longitud 2 k 2 , mientras que en el caso de TBB es una cantidad de 2 k 1−k2 elementos que se encuentran distribuidos a lo largo del intervalo de nu´meros enteros [0, 2 k 1 − 1], los cuales dejan el resto r en la divisio´n por 2 k 2 .

Tanto BBM como TBB constituyen casos particulares del me´todo general de fijar componentes que se expone en este trabajo.

Criptoana´lisis a PRESENT-80 mediante el Algoritmo Gene´tico.

En el PRESENT el espacio de la clave es demasiado grande para una bu´squeda exhaustiva, tambie´n podr´ıa ser incluso para una forma de bu´squeda heur´ıstica.

Se considera para los experimentos que se ha podido hacer una primera particio´n con k 2 = 44, utilizando BBM, donde en ese mismo intervalo se encuentra la clave. Esto reduce el espacio de bu´squeda del AG a una longitud de 236. Entonces a partir de este punto se evaluara´ comenzar a fijar sucesivamente cierto nu´mero de componentes con mayor frecuencia en las soluciones obtenidas en un nu´mero de corridas realizadas en cada paso. La idea consiste en ir disminuyendo el espacio de las claves posibles. En trabajos anteriores (Borges- Trenard et al., 2019; Tito-Corrioso et al., 2021) se obtuvo buenos resultados aplicando el AG en subconjuntos del espacio de claves de taman˜o 215 y 216, lo que fundamentalmente con cifrados de longitud de bloque hasta 248 como el AES(3) de la familia AES(t) (Monier-Columbie´, 2018; Tito-Corrioso, 2021).

La poblacio´n del AG en este caso esta´ formada por individuos que consisten en bloques de 80 bits (K). El taman˜o escogido para la poblacio´n en cada generacio´n del algoritmo es m = 800. Se realizara´ un ma´ximo de g = 50 iteraciones (generaciones) por experimento, a cada resultado del AG se le llamara´ corrida del AG. Como funcio´n de aptitud se toma la cantidad de ceros en la diferencia entre el texto cifrado C y el valor E(T, X ), donde E(T, X ) es el texto cifrado de T con la clave X que se este´ muestreando, todo ello dividido por la longitud de clave (80 en este caso). De ese modo, la funcio´n de aptitud da una medida de cua´n cercano, segu´n la distancia de Hamming (cantidad de componentes iguales), puede estar el cifrado de T mediante X del cifrado del mismo T mediante la clave buscada K. En cada generacio´n se cruzan 400 individuos de la poblacio´n de 800. Como funcio´n de cruzamiento se utiliza el cruzamiento por 2 puntos, mientras que la mutacio´n mueve hasta 2 posibles componentes del individuo mutante. Las probabilidades de cruzamiento y mutacio´n son respectivamente 0,9 y 0,1.

La instrumentacio´n del AG se realizo´ en el lenguaje de programacio´n del sistema de A´ lgebra Computacional denominado MAPLE (https://www.maplesoft.com), los programas en MAPLE de aplicacio´n especifica del AG para el ataque a cifrados en bloques as´ı como la programacio´n del cifrado PRESENT fueron elaborados por los autores de este trabajo. Se trabajo´ sobre un CPU Intel(R), CoreTM, i5-M 460, a 2.53GHz, con RAM de 8GB y sistema operativo de 64 bits.

Se llevaron a cabo un total de 60 experimentos en una primera etapa, organizados en 6 iteraciones, en cada iteracio´n se realizaron 10 corridas del AG. En la primera iteracio´n con una longitud de clave K = 80, y la clave grupal k 2 = 36 (se esta´n fijando inicialmente 44 componentes), con la cantidad de individuos m y las generaciones g, el AG en cada corrida genera una cantidad a lo sumo de 40000 individuos (que representan posibles claves), el espacio de las claves es de 236 = 68719476736, esto representa 0,0000582076 por ciento de todas las posibles claves, en ninguna de los diez corridas que se hicieron con esa clave grupal se encontro´ la clave, se hizo un ana´lisis de frecuencia con los resultados de los individuos ma´s aptos obtenidos y se fijaron las tres componentes con mayor frecuencia para la pro´xima iteracio´n, en esta iteracio´n la aptitud promedio fue de 0,71.

Se debe destacar que dentro de las componentes de mayor frecuencia hay una mayoría que coinciden con los valores de la clave en esas componentes, no obstante, no en todas ocurre así. En este caso, para evaluar la convergencia del proceso, las componentes que se fijan para pasar a la siguiente iteracio´n se toman de forma tal que coincidan con la clave (ver Tabla 1), de este modo se asegura que en la nueva particio´n se encuentra la clave. En la pra´ctica esto consistir´ıa en un proceso de prueba y error, donde el tomar relativamente pocas componentes en cada paso y entre las de mayor frecuencia, garantizan mayor garant´ıa de e´xito.

Para pasar a la segunda iteracio´n, se fijan 3 nuevas compomentes (47 componentes fijas), por lo que la clave grupal es k 2 = 33, el espacio de las claves se redujo a 233 = 8589934592, considerando un ma´ximo de 40000 individuos que genera cada corrida del AG, esto representa el 0, 00004656612 por ciento de todas las posibles claves. En ninguno de las diez corridas que se hicieron se encontro´ la clave, se hizo un ana´lisis de frecuencia con los resultados de los 10 individuos ma´s aptos que se obtuvieron y se fijaron las 5 componentes con mayor frecuencia para la pro´xima iteracio´n, la aptitud promedio fue 0,73.

En la tercera iteracio´n, se tiene que la clave grupal es k 2 = 28, el espacio clave se redujo a 228 = 268435456, por lo que cada corrida del AG recorre el 0,0149011611 por ciento de todas las posibles claves. En ninguno de los diez experimentos que se hicieron se encontro´ la clave, se hizo un ana´lisis de frecuencia con los resultados de los 10 individuos ma´s aptos que se obtuvieron y se fijaron las 3 componentes con mayor frecuencia para la pro´xima iteracio´n, la aptitud promedio fue de 0,71.

En la cuarta iteracio´n, la clave grupal es k 2 = 25, el espacio clave se redujo a 225 = 33554432 esto representa el 0,1192092896 por ciento de todas las posibles claves, aquí vemos como el espacio clave se va reduciendo y esto nos puede ayudar considerablemente a encontrar la clave. En ninguno de los diez experimentos que se hicieron se encontro´ la clave, se hizo un ana´lisis de frecuencia con los resultados de los 10 individuos ma´s aptos que se obtuvieron y se fijaron las 5 componentes con mayor frecuencia para la pro´xima iteracio´n, la aptitud promedio fue 0,71.

Ni en la quinta (220 longitud del espacio de claves), ni en la sexta iteracio´n (215 longitud del espacio de claves) se encontro´ la clave y la aptitud estuvo muy baja, esto provoco´ que se revisara la ejecucio´n de la instrumentacio´n del AG, debido a que en la sexta iteracio´n el espacio clave es de 215 = 32718 y el AG debe generar en cada corrida 40000 individuos (que representan claves posibles), esto significa que en el algu´n momento deb´ıa de encontrarse la clave con un porciento de e´xito elevado del total de corridas. Al revisar los resultados parciales del programa, se observo´ que la longitud de clave y la constitucio´n del PRESENT hacen que sea frecuente que caiga en o´ptimos locales y que la cantidad de individuos diferentes en la poblacio´n tienda a disminuir y por ende que no resulte cierto asumir que en cada corrida del AG se generen aproximadamente 40000 individuos. Esto conllevo´ a realizar varios cambios en el programa.

Transformaciones realizadas al programa del AG

Lo primero que se realizo´ estuvo motivado por la deteccio´n de que la poblacio´n en cada generacio´n tend´ıa a reducirse ra´pidamente la cantidad de individuos diferentes, en buena parte motivado por la repeticio´n muchas veces del individuo ma´s apto encontrado, entonces mediante el proceso de seleccio´n y posterior cruzamiento estos iban multiplicando este efecto y haciendo que la poblacio´n pudiera llegar a ser incluso de un solo individuo.

Se han tenido en cuenta recomendaciones sobre el manejo de la poblacio´n y los o´ptimos locales dadas en (LOZANO and HERRERA, 2010; Eyal, 2020). En (Tito-Corrioso, 2021) se analiza el comportamiento de varios para´metros del AG con el uso de las metodolog´ıas BBM y TBB, donde se pueden estimar por ejemplo, valores adecuados para la longitud de la clave grupal y su relacio´n con el tiempo disponible o deseado, pero todo ello requiere de mantener en cada generacio´n del AG una poblacio´n constituida por una cantidad de individuos diferentes similar al taman˜o de la poblacio´n.

Algunos principios que se han establecido:

  1. Tratar de que en cada generacio´n la poblacio´n se mantenga con un taman˜o cercano a m atendiendo a los individuos que puedan ser diferentes y a los procesos que intervienen, Cru, Mut, y Select (nueva poblacio´n).

  2. El me´todo de los torneos se dejo´ solo a torneo entre 3 (t = 2). Ya que esto estaba tambie´n influyendo en que se redujera el taman˜o de la poblacio´n. Este me´todo se utiliza para la seleccio´n de los progenitores para el cruzamiento y para la seleccio´n de la poblacio´n de la pro´xima generacio´n a partir de los individuos obtenidos en los diferentes procesos del AG.

  3. Al recibir la poblacio´n P de una generacio´n, para crear la poblacio´n de la siguiente generacio´n:

    1. Se seleccionan de P el conjunto de los padres (progenitores).

    2. Se obtienen los Q 1 descendientes por Cru.

    3. Se mutan los individuos de P y Q 1 y se obtiene Q 2.

    4. Con P, Q 1 y Q 2 se obtiene la lista solo con los diferentes y se completa la poblacio´n con elementos aleatorios hasta que la cantidad sea 2m. Pueden repetirse en ese caso los de la generacio´n aleatoria. Esto de completar 2m se hace para que la seleccio´n de los m individuos de la nueva poblacio´n tenga ma´s posibilidades de transformarse con respecto a la generacio´n anterior, mientras ma´s cercana a m fuese la cantidad de individuos, mayor posibilidad de estancamiento puede haber ya que sería obtener m elementos de casi m elementos, o sea de los mismos o incluso menos. La seleccio´n de los individuos se realiza por el me´todo de torneos entre 3.

    5. Luego se ordena la poblacio´n de acuerdo a la aptitud de los individuos y se hace el control correspondiente para evitar el estancamiento.

Hay dos feno´menos t´ıpicos en el Algoritmo Gene´tico, uno de ellos es el cara´cter oscilante de la funcio´n de aptitud, la misma puede incrementar que disminuir a lo largo de las generaciones. El otro feno´meno es el estancamiento alrededor de un valor de la funcio´n de aptitud, en la literatura esto se asocia con que alrededor de la regio´n explorada se alcanzo´ un o´ptimo local. En el presente trabajo se eludio´ estos feno´meno, utilizando te´cnicas elitistas, es decir, en cada generacio´n se logra que una parte de los mejores permanezca para la pro´xima iteracio´n y se combine con otros seleccionados al azar, pero por el Me´todo de los Torneos (que tambie´n conlleva a cierto elitismo). Por otra parte, si un individuo de mayor aptitud prevalece de una generacio´n a la siguiente, este se salva a una lista de los individuos ma´s aptos obtenidos y se sustituyen todas las ocurrencias de ese individuo en la poblacio´n por otros generados de forma aleatoria. Si en algu´n momento se obtiene un individuo de aptitud 1, el AG termina y devuelve los datos correspondientes a ese individuo.

Con las transformaciones hechas al programa se ejecuto´ una segunda etapa con los mismos para´metros para el AG, repitiendo las iteraciones 5 (k 2 = 20) y 6 (k 2 = 15).

En la iteracio´n 5, recordando que el AG genera en cada corrida unos 40000 individuos, y el taman˜o del espacio de claves es igual a 220 = 1048576, lo que representa el 3,814697266 por ciento de todas las posibles claves. Con estos para´metros de las 10 corridas que se hicieron en 2 se encontro´ la clave y la aptitud promedio aumento´ a 0,779.

En la iteracio´n 6, que ya se conoce que cada corrida del AG puede generar 40000 individuos, que en este caso es una cantidad que supera el taman˜o del espacio de las claves (215 = 32768), se encontro´ la clave en las 10 corridas, pero adema´s en la mayor´ıa de las corridas no se llego´ a realizar 25 generaciones de un total de 50.

A continuacio´n se muestra en dos tablas el resumen del ana´lisis de frecuencia de las componentes en las 6 iteraciones de la primera etapa y las dos repetidas en la segunda etapa. En las tablas, CG significa clave grupal y AP aptitud promedio. En la tercera columna de las tablas se ponen solo aquellas componentes que coinciden con el valor de la clave en esas componentes y se especifica el orden que ocupan segu´n la frecuencia.

Tabla 1 Resumen de la primera etapa antes de las tranformaciones realizadas al (AG). 

Iteracio´n CG Componentes con mayor frecuencia que coinciden con la clave AP
1 k 2 = 44 1ra 43 (0.9), 2da 48 (0.9), 3ra 77 (0.9) 0.71
2 k 2 = 47 1ra 45 (0.9), 2da 62 (0.8), 3ra 64 (0.7), 5ta 67 (0.7), 6ta 69 (0.7) 0.73
3 k 2 = 52 3ra 46 (0.7), 4ta 59 (0.7), 5ta 63 (0.7) 0.68
4 k 2 = 55 3ra 44 (0.7), 7ma 57 (0.7), 8va 66 (0.7) , 9na 68 (0.7), 10ma 70 (0.7) 0.71
5 k 2 = 60 1ra 58 (0.8), 3ra 42 (0.7), 4ta 51 (0.7) , 5ta 53 (0.7), 7ma 61 (0.7) 0.75
6 k 2 = 65 2da 43 (0.9), 4ta 75 (0.8), 5ta 52 (0.7) , 6ta 56 (0.7), 7ma 71 (0.7) 0.71

Tabla 2 Resumen de la segunda etapa despue´s de las tranformaciones realizadas al (AG). 

Iteracio´n CG Componentes con mayor frecuencia que coinciden con la clave AP
1 k 2 = 60 1ra 60 (0.91), 2da 71 (0.91), 3ra 74 (0.91) 4ta 41 (0.83) 5ta 42 (0.83) 0.79
2 k 2 = 65 En todas las corridas se encontro´ la clave 1

De la observacio´n de las dos tablas se puede resumir que para la segunda etapa, luego de resolver el problema con el estancamiento, se logra que, para k 2 = 60, la aptitud promedio aumenta, la frecuencia de las componentes que coinciden con la llave aumenta, al punto de que las 5 primeras de mayor frecuencia en las corridas coinciden con la clave.

Conclusiones

Con este trabajo se logra mostrar que el cifrado PRESENT-80 puede ser vulnerable a un ataque mediante el Algoritmo Gene´tico con aproximaciones sucesivas de componentes fijas, queda au´n mucho por hacer en esta direccio´n, PRESENT-80 es realmente un cifrado dif´ıcil de romper, no obstante, el resultado que aqu´ı se presenta es esperanzador.

Fijar como conocidas algunas componentes de la clave pudiese contribuir a una mayor efectividad del AG y es una forma de proceder relativamente natural en el escenario del criptoana´lisis.

Este trabajo contribuye a la obtencio´n de mayor informacio´n cuando se disminuye la longitud de la clave en movimiento o clave grupal (incremento del nu´mero de componentes fijas), lo cual permite realizar bu´squedas posteriores reduciendo nuevamente el espacio de bu´squeda haciendo uso de la informacio´n obtenida. Este ataque podr´ıa ser especialmente adecuado para otros cifrados en bloque y tambie´n para combinarlo con otros me´todos de ataque.

Las medidas adoptadas para evitar el estancamiento de la poblacio´n que genera el AG y mantener una cantidad de individuos diferentes similar al taman˜o de la poblacio´n, hicieron posible mejorar sustancialmente los resultados de los experimentos realizados con el cifrado PRESENT-80, y pueden constituir procedimientos adecuados a ser utilizados en otros escenarios con la utilizacio´n del AG.

Referencias

Faez Hassan Ali and Riyam Noori Jawad. Using evolving algorithms to cryptanalysis nonlinear cryptosystems. Baghdad Science Journal, 17(2 Special Issue NICST), 2020. [ Links ]

SambasivaRao Baragada and P Satyanarayana Reddy. A survey of cryptanalytic works based on genetic algorithms. International Journal of Emerging Trends & Technology in Computer Science (IJETTCS), 2 (5):18-22, 2013. [ Links ]

Ulrich Bodenhofer. Genetic algorithms: theory and applications. Lecture notes, Fuzzy Logic Laboratorium Linz-Hagenberg, Winter, v. 2004, 2003. [ Links ]

Andrey Bogdanov, Lars R Knudsen, Gregor Leander, Christof Paar, Axel Poschmann, Matthew JB Robshaw, Yannick Seurin, and Charlotte Vikkelsoe. Present: An ultra-lightweight block cipher. In International workshop on cryptographic hardware and embedded systems, pages 450-466. Springer, 2007. [ Links ]

Miguel A´ Borges-Trenard, Mijail Borges-Quintana, and La´zaro Monier-Columbie´. An application of geneticalgorithm to cryptanalysis of block ciphers by partitioning the key space. Journal of Discrete Mathematical Sciences and Cryptography, 25(2):325-334, 2019. doi: 10.1080/09720529.2019.1649028. [ Links ]

Joseph Alexander Brown, Sheridan Houghten, and Beatrice Ombuki-Berman. Genetic algorithm cryptanalysis of a substitution permutation network. In 2009 IEEE Symposium on Computational Intelligence in Cyber Security, pages 115-121. IEEE, 2009. [ Links ]

W Eyal. Hands-on genetic algorithms with python. Packt Publishing Ltd., Birmingham, UK, 2020. [ Links ]

Hicham Grari, Ahmed Azouaoui, and Khalid Zine-Dine. A cryptanalytic attack of simplified-aes using ant colony optimization. International Journal of Electrical & Computer Engineering (2088-8708), 9(5), 2019. [ Links ]

Nilupulee A Gunathilake, Ahmed Al-Dubai, William J Buchanan, and Owen Lo. Electromagnetic analysis of an ultra-lightweight cipher: Present. arXiv preprint arXiv:2106.15225, 2021. [ Links ]

Sourabh Katoch, Sumit Singh Chauhan, and Vijay Kumar. A review on genetic algorithm: past, present, and future. Multimedia Tools and Applications, 80(5):8091-8126, 2021. [ Links ]

Asif Hameed Khan, Auqib Hamid Lone, and Firdoos Ahmad Badroo. The applicability of genetic algorithm in cryptanalysis: A survey. International Journal of Computer Applications, 130(9):42-46, 2015. [ Links ]

Oliver Kramer. Genetic algorithms. In Genetic algorithm essentials, pages 11-19. Springer, 2017. [ Links ]

Annu Lambora, Kunal Gupta, and Kriti Chopra. Genetic algorithm-a literature review. In 2019 international conference on machine learning, big data, cloud and parallel computing (COMITCon), pages 380-384. IEEE, 2019. [ Links ]

Ting Rong Lee, Je Sen Teh, Jasy Liew Suet Yan, Norziana Jamil, and Wei-Zhu Yeoh. A machine learning approach to predicting block cipher security. In Universiti Putra Malaysia, pages 122-132, 2020. [ Links ]

M LOZANO and F HERRERA. Sf1. computacio´n evolutiva y algoritmos bioinspirados. 2010. URL http://sci2s.ugr.es. [ Links ]

L Monier-Columbie´. Criptoana´lisis algebraico a cifrados en bloques ligeros. Tesis de Maestr´ıa en Ciencias Matema´ticas. Universidad de La Habana, Cuba, 2018. [ Links ]

Jai Gopal Pandey, Tarun Goel, and Abhijit Karmakar. Hardware architectures for present block cipher and their fpga implementations. IET Circuits, Devices & Systems, 13(7):958-969, 2019. [ Links ]

Jaewoo So. Deep learning-based cryptanalysis of lightweight block ciphers. Security and Communication Networks, 2020, 2020. [ Links ]

O. Tito-Corrioso. Sobre el criptoana´lisis a cifrados en bloque mediante el algoritmo gene´tico. Tesis de Maestr´ıa en Ciencias Matema´ticas. Universidad de La Habana, Cuba, 2021. [ Links ]

O Tito-Corrioso, MA Borges-Trenard, and M Borges-Quintana. Ataques a cifrados en bloques mediante bu´squedas en grupos cocientes de las claves. Rev. Cienc. Mat, 33:71-74, 2019. [ Links ]

Osmani Tito-Corrioso, Miguel Angel Borges-Trenard, Mijail Borges-Quintana, Omar Rojas, and Guillermo Sosa-Go´mez. Study of parameters in the genetic algorithm for the attack on block ciphers. Symmetry, 13 (5):806, 2021. [ Links ]

Felipe Luiz Tortella, Carlos Miguel Tobar Toledo, and Marcelo Lu´ıs Francisco Abbade. Aplicac¸a˜o de algo- ritmo gene´tico para determinac¸a˜o de chaves usadas em criptografia o´ptica mediante fatiamento espectral. 2016. [ Links ]

Maheswara Rao Valluri. Cryptanalysis of xinyu et al.’s ntru-lattice based key exchange protocol. Journal of Information and Optimization Sciences, 39(2):475-479, 2018. [ Links ]

Financiacio´n

La investigacio´n que da origen a los resultados presentados en la presente publicacio´n recibio´ fondos de la Oficina de Gestio´n de Fondos y Proyectos Internacionales bajo el co´digo PN223LH006-015; as´ı como de la Red CYTED “NUEVAS HERRAMIENTAS CRIPTOGRA´ FICAS PARA LA E-COMUNIDAD”.

Recibido: 06 de Noviembre de 2022; Aprobado: 18 de Diciembre de 2022

Autor para correspondencia: (adriand@uo.edu.cu)

Los autores autorizan la distribucio´n y uso de su art´ıculo.

Conceptualiacio´n: Mijail Borges Quintana, Miguel Angel Borges Trenard,

Curacio´n de datos: Miguel Angel Borges Trenard, Adrian Donatien Charo´n, Mijail Borges Quintana

Ana´lisis formal: Miguel Angel Borges Trenard, Mijail Borges Quintana

Investigacio´n: Miguel Angel Borges Trenard, Adrian Donatien Charo´n, Mijail Borges Quintana

Metodología: Mijail Borges Quintana, Miguel Angel Borges Trenard

Administracio´n del proyecto: Mijail Borges Quintana

Software: Miguel Angel Borges Trenard, Adrian Donatien Charo´n, Mijail Borges Quintana

Supervisio´n: Mijail Borges Quintana, Miguel Angel Borges Trenard

Validacio´n: Miguel Angel Borges Trenard, Mijail Borges Quintana, Adrian Donatien Charo´n

Visualizacio´n: Adrian Donatien Charo´n, Miguel Angel Borges Trenard, Mijail Borges Quintana

Redaccio´n - borrador original: Adrian Donatien Charo´n, Mijail Borges Quintana

Redaccio´n - revisio´n y edicio´n: Mijail Borges Quintana, Miguel Angel Borges Trenard, Adrian Donatien Charo´n

Creative Commons License