ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis...

99

Transcript of ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis...

Page 1: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los
Page 2: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los
Page 3: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO TÉCNICO EN INFORMÁTICA DE SISTEMAS

(ITIS)

APLICACIÓN DE ALGORITMOS GENÉTICOS AL CRIPTOANÁLISIS

DIFERENCIAL DEL CIFRADOR DE FEISTEL

Autor: Daniel Anta Díaz

Director/es: Francisco Alberto Campos Fernández,

Jesús María Latorre Canteli

Madrid

Septiembre 2012

Page 4: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

I

Page 5: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

II

Agradecimientos

En primer lugar, y por encima de todo, me gustaría dar las gracias a mis padres

y toda mi familia, por el apoyo incondicional que he recibido desde siempre, y

porque sin ellos mi educación y la realización de este proyecto habrían sido

imposibles.

También me gustaría dar las gracias a todos los profesores con los que he

compartido estos años de carrera. Muchas gracias a todos por lo que he

aprendido.

Por último, a los amigos que he conocido a lo largo de estos años (Balduz,

Marta, Luque, Moncunil, Villalobos, Jacobo, Pablo Gómez, y muchos más) ,

pero sobre todo, a los que me vienen acompañando desde el colegio y con los

que he compartido vivencias inolvidables (Magán, Raúl, Lombi, Sito, Coke,

Blanca, etc.), gracias a todos por estar ahí y por vuestros ánimos incansables.

Page 6: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

III

Page 7: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

IV

APLICACIÓN DE ALGORITMOS GENÉTICOS AL

CRIPTOANÁLISIS DIFERENCIAL DEL CIFRADOR DE FEISTEL

Autor: Anta Díaz, Daniel.

Director/es: Campos Fernández, Francisco Alberto. Latorre Canteli, Jesús María.

Entidad colaboradora: ICAI - Universidad Pontificia Comillas

RESUMEN DEL PROYECTO

El proyecto tiene el objetivo de valorar la eficacia de los algoritmos genéticos en el

ataque de textos encriptados según el cifrador de Feistel.

Palabras clave: Cifrado de Feistel, criptoanálisis, criptoanálisis diferencial, algoritmos

genéticos, cifrado en bloque.

1-Introducción

La seguridad, a día de hoy, es un requisito fundamental en el mundo de las

comunicaciones donde se mueven grandes cantidades de información, y datos como

números de cuentas bancarias y de carácter personal están expuestos a riesgos

constantes. Es por ello, que el manejo de datos cifrados es algo habitual y como

consecuencia los algoritmos usados para ello han evolucionado enormemente a lo largo

de la historia.

Existen múltiples algoritmos y sistemas de cifrado, siendo uno de los más usados

actualmente para el cifrado de grandes cantidades de información el cifrado de Feistel.

El criptoanálisis de cifradores ha demostrado ser eficaz a través de distintas técnicas de

uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este

proyecto es demostrar la utilidad de los algoritmos genéticos a la hora de simplificar

procesos de criptoanálisis diferencial aplicados al cifrado de Feistel propuesto.

La eficiencia, adaptabilidad, y capacitación en la búsqueda de una solución óptima en

un tiempo reducido hacen de los algoritmos genéticos una opción muy interesante para

resolver problemas de criptoanálisis como el que se plantea en este proyecto.

Page 8: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

V

2-Desarrollo

2.1. Cifrado de Feistel

El cifrado de Feistel propuesto entra dentro de uno de los más comunes y usados dentro

de la criptografía, concretamente, dentro de los cifrados en bloque. Este tipo de cifrado

aplica en cada ronda y dentro de unas funciones llamadas SBoxes, que se encuentran

dentro de la función f, una transformación invariante, compuesta de una serie de

sustituciones y permutaciones que se repiten en cada ronda del mismo (ver [STAN99]).

De esta manera el cifrado de Feistel cifra bloques de longitud fija usando una clave

proporcionada por el usuario. El cifrado usado consta de tres rondas y para el descifrado

de los datos solo es necesario aplicar el mismo algoritmo de cifrado pero en sentido

inverso.

0L0R

01 RL

f

f

Ronda 1

Ronda 2

001 ),( LKRfR

12 RL 112 ),( LKRfR

fRonda 3

23 RL 223 ),( LKRfR

2.2. Criptoanálisis diferencial

Para el ataque al cifrado de Feistel planteado se ha utilizado una de las técnicas más

eficaces aplicables a cifradores en bloque, como es el criptoanálisis diferencial (CAD).

El CAD consiste en explotar la probabilidad de que se den, para ciertas diferencias de

texto en claro, ciertas diferencias en las entradas de la última ronda del cifrador,

Page 9: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

VI

considerando como diferencia el XOR de ambos valores. Conociendo por lo tanto

textos en claro de entrada, el atacante es capaz de seleccionar entradas y examinar sus

salidas del sistema de cifrado para averiguar la clave. Analizando estas entradas y

salidas al sistema de cifrado es posible construir una tabla de frecuencias y ver si existen

determinadas salidas que se dan con una alta probabilidad alejada de la teórica existente

en un sistema de cifrado ideal (ver [MHEY02]). Para completar el ataque, se descifra la

ronda n-1 usando los pares escogidos por tener una alta probabilidad y probando con

todas las posibles claves. La clave optima será la que nos ofrezca un resultado más

cercano al obtenido en el cifrado.

2.3. Algoritmo Genético

Por último, en este proyecto se plantea la mejora del Criptoanálisis Diferencial,

mediante un algoritmo genético (AG). La mejor manera de entender un AG es como

una función de optimización, donde el objetivo consiste en buscar, dentro de un

conjunto de entradas posibles, los valores que hacen que el valor de la función objetivo

involucrada sea máximo o mínimo. El algoritmo genético evoluciona de una población

a otra "mejor" a través de varios operadores genéticos basados en modelos Darwinianos

y de selección natural como la selección, el cruce y la mutación.

Nueva GeneraciónPoblación Inicial

Selección

Cruce

Mutación

El AG usará por tanto como conjunto factible con el que trabajar el conjunto de

claves posibles a probar dentro del desencriptado de la ronda n-1 del CAD,

Page 10: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

VII

buscando evolucionar hacia una clave optima de manera más eficaz y sin tener

que probar secuencialmente con cada una de ellas.

3-Resultados

Para comprobar la eficacia del AG frente a la búsqueda secuencial dentro del conjunto

de claves a probar se han estudiado dos casos de estudio.

3.1. Primer caso de Estudio

En este primer caso de estudio el AG trabaja usando como función de optimización

aquella que devuelve como fortaleza de cada clave la diferencia de la distribución

obtenida en el proceso de desencriptación de la ronda n-1 y la distribución teórica

escogida por tener un par diferencial característico con una alta probabilidad según el

CAD.

El conjunto factible de claves utilizado para este primer caso es de 26. En las

distribuciones se puede apreciar como la fortaleza de una clave correspondiente a cada

SBox es 0, ya que en este caso la función de optimización del AG es de minimización,

por lo que estas partes de la clave global correspondientes a cada una de las SBoxes son

las óptimas.

0

200

400

600

800

1000

1200

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64

Fortaleza

Clave

Distribuciones completas CAD 3ª ronda

Sbox 0

Sbox 1

Sbox 2

Sbox 3

Page 11: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

VIII

3.2. Segundo caso de Estudio

Este segundo caso de estudio presenta ligeras variaciones respecto al primero. En

primer lugar se ha aumentado el caso factible de claves a probar dentro del CAD

omitiendo el enfoque de desencriptado por SBox, pasando por lo tanto a un conjunto

factible de 212

.

Además se ha modificado ligeramente la función de optimización usada por el AG,

pasando a un enfoque más directo que busca la correlación directa entre las salidas

desencriptadas y las obtenidas en esa ronda en el cifrado, contabilizando el numero de

bits coincidentes.

0

200

400

600

800

1000

1 6 11 16 21 26 31 36 41 46 51 56 61

Fortaleza

Clave

Distribuciones completas CAD 3ª ronda

Sbox 4

Sbox 5

Sbox 6

Sbox 7

0

20000000

40000000

60000000

80000000

10000000

10 1097 2056 3088

Fortaleza

Claves

Page 12: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

IX

4-Conclusiones

Este proyecto ha permitido concluir de una manera clara y contundente que el cifrado de

Feistel y en general los cifrados en bloque son una manera muy segura de mantener el

secreto en las comunicaciones. El nivel de no linealidad que se obtiene en las salidas del

cifrado se ha probado que es altísimo y al no obtenerse información de la clave a partir

de las salidas cifradas si no es a través de la fuerza bruta.

Se ha comprobado según los resultados de ambos casos de estudio, e

independientemente del tamaño del conjunto factible que el AG no mejora en términos

de computación el CAD del cifrado de Feistel propuesto. La no linealidad en ambos

casos se mantiene, dando esa forma característica e irregular a las distribuciones

obtenidas y haciendo que el AG se convierta en una búsqueda secuencial, pues las

distribuciones no disponen de gradiente, haciendo imposible que éste avance hacia un

valor optimo.

Por lo tanto, se puede concluir que en ambos casos los AG dependen de la suerte en la

inicialización aleatoria de las poblaciones, para acercarse a la clave óptima, y que por

tanto una búsqueda exhaustiva aleatoria es si no igual, más eficiente que la búsqueda

por AG. Esta conclusión puede parecer de poco valor científico pero echa por tierra

gran parte de los trabajos en los que se ha aplicado un AG al descifrado de Feistel

(véanse por ejemplo [AYMA07], [ LASK06], [SONG07], [ZHAN07]).

5-Referencias

[STAN99] Federal Information, Processing Standards Publication 46-3, "Specifications

for the Data Encryption Standard (DES)" 1999 October 25

[MHEY02] Howard M. Heys, "A tutorial on Linear and Differential Cryptanalysis",

Faculty of Engineering and Applied Science, 2002.

[AYMA07] Eng. Ayman M. B. Albassal, "Genetic Algorithm Cryptanalysis of a Feistel

Type Block Cipher", Ain Shams University, 2004.

[LASK06] E.C. Laskari, G.C. Meletiou, "Applying evolutionary computation methods

for the cryptanalysis of Feistel ciphers", University of Patras, 2006.

[SONG07] Jun Song, Huanguo Zhang, "Cryptanalysis of Four-Round DES Based on

Genetic Algorithm", Computer School Wuhan university, 2007.

Page 13: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

X

[ZHAN07] Jun Song, Huanguo Zhang, "Cryptanalysis of Two-Round DES Using

Genetic Algorithms", Computer School Wuhan university, 2007.

Page 14: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

XI

Page 15: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

XII

APPLICATION OF GENETIC ALGORITHMS TO DIFFERENTIAL

CRYPTANALYSIS OF A FEISTEL BLOCK CHIPHER

Author: Anta Díaz, Daniel.

Supervisor/s: Campos Fernández, Francisco Alberto. Latorre Canteli, Jesús María.

Affiliation: ICAI - Universidad Pontificia Comillas

ABSTRACT

This project aims to assess the effectiveness of genetic algorithms in the attack of

Feistel encrypted cipher texts.

Key words: Feistel cipher, cryptanalysis, differential cryptanalysis, genetic algorithms,

block ciphers.

1-Introduction

Security, today, is a fundamental requirement in the world of communications, where

large amounts of information flow constantly, and data such as bank accounts numbers

and personal data are exposed to constant risk. Therefore, the treatment of encrypted

data is commonplace and as a result the algorithms used for this purpose have evolved

tremendously through history.

There are plenty of algorithms and cipher methods, such as Feistel, one of the most

currently used for encrypting large quantities of information. Cryptanalysis of a number

of ciphers has proven to be effective by using different techniques, such as brute force,

differential cryptanalysis, linear cryptanalysis etc. The interest of this project is to

demonstrate the usefulness of genetic algorithms to simplify the process of differential

cryptanalysis when applied to the Feistel cipher proposed.

The efficiency, adaptability, and capability in the process of finding an optimal solution

in a short period of time of genetic algorithms, make them a very interesting alternative

to solve cryptanalysis problems such as the one proposed in this project.

Page 16: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

XIII

2-Development

2.1. Feistel cipher

The Feistel cipher proposed falls within one of the most commonly used in

cryptography and specifically in the category block ciphers. This type of cipher applies

inside the functions called SBoxes, located inside the function f, an invariant

transformation, consisting of a series of substitutions and permutations that are repeated

every round of the cipher (see [STAN99]). This way, Feistel is able to cipher blocks of

an invariant length under a key provided by the user. The algorithm used consists of

three rounds and to decipher it is only necessary to apply the very same algorithm to an

enciphered message block.

2.2. Differential Cryptanalysis

To attack the Feistel cipher proposed, in this project it has been used one of the most

effective techniques applicable to block ciphers, such as differential cryptanalysis

(DCA).

Page 17: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

XIV

DCA consists in exploiting the likelihood of, giving certain plaintext differences,

differences in the inputs to the last round of the cipher, where the difference is

considered as the XOR between both values. Therefore, knowing plaintexts, the attacker

is able to select inputs and examine their outputs of the cipher to recover bits of the key.

Analyzing this inputs and outputs to the cipher it is possible to tabularize the

frequencies of both and examine the data to see if there are certain outputs that have a

high probability of occurrence much higher than the one an ideal cipher would have (see

[MHEY02]).

The process followed involves decrypting the last round of the cipher using the chosen

pairs for having a high probability with every possible key. The optimum key would be

the one that offers a closer result than the obtained in the cipher process.

2.3. Genetic Algorithm

Finally, this project proposes the improvement of DCA using a Genetic Algorithm

(GA). The best way to understand a GA is as a function optimization, where the

objective is to find, within a set of possible inputs, the values that make the value of the

objective function involved maximum or minimum depending on the problem. The GA

evolves from an old population to a new one, in theory better than the last one, through

some genetic operators based on Darwinian models and natural selection, such as

selection, crossover and mutation.

Page 18: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

XV

The set of values that the GA will use to work with will be the set of possible

keys to try when applying the DCA and deciphering the last round of the

cipher. The GA looks to evolve towards an optimum key as an effective manner

without having to sequentially test each of the possible keys.

3-Results

To verify the effectiveness of the GA over sequential search within the set of keys to be

tested this project proposes two case studies.

3.1. First case study

In this first case, the GA works using as an optimization function the one that returns as

the strength of each key the difference between the distribution obtained in the

deciphering process of the last round of the cipher and the theoretical distribution

chosen by having a differential pair with a high probability given by DCA.

The set of keys used for this case is 26. In the distributions can be seen how there is a

key corresponding to each of the different SBoxes with the value 0, this is because the

optimization function is of minimization, therefore this sub keys are the optimal ones

for the given SBoxes.

0

200

400

600

800

1000

1200

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64

Strength

Keys

Distributions DCA 3rd Round

Sbox 0

Sbox 1

Sbox 2

Sbox 3

Page 19: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

XVI

3.2. Second case study

This second case presents some slightly variations from the first. First of all the set of

keys to be tested has been increased, omitting the DCA and the SBox deciphering

approach, to 212

.

Furthermore, the optimization function used by the GA has also been modified, through

a more direct approach that seeks direct correlation between the deciphered outputs and

the ones obtained in that round of the cipher, counting the number of matching bits.

0

200

400

600

800

1000

1 6 11 16 21 26 31 36 41 46 51 56 61

Strength

Keys

Distributions DCA 3rd Round

Sbox 4

Sbox 5

Sbox 6

Sbox 7

0

20000000

40000000

60000000

80000000

10000000

10 1097 2056 3088

Strength

Keys

Page 20: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

XVII

4-Conclusions

This project has concluded in a clear and convincing way that the Feistel cipher and, in

general, block ciphers, are a very safe way to maintain the secrecy of communications.

The level of non-linearity obtained in the outputs of the cipher has proven to be very

high, and it is not possible to obtain bits of the key if not through brute force.

It has been found according to the results of both cases, and whatever the size of the

feasible key set, that the GA does not improve in terms of computing the DCA of the

proposed Feistel cipher. The non-linearity is maintained in both cases, thus giving the

obtained distributions the characteristic irregular shapes and in so doing making it

impossible for the GA to work as an evolutionary algorithm and evolve towards an

optimal solution but rather as a sequential search.

Therefore, this project can conclude that in both cases the GA depends on luck in the

random initialization of the first population to approach the optimal key, and thus an

exhaustive random search is, is not equal, more efficient than by GA. This conclusion

seem of little scientific value but debunks many of the papers where a GA has been

applied to de Feistel cipher (see [AYMA07], [ LASK06], [SONG07], [ZHAN07]).

5-References

[STAN99] Federal Information, Processing Standards Publication 46-3, "Specifications

for the Data Encryption Standard (DES)" 1999 October 25

[MHEY02] Howard M. Heys, "A tutorial on Linear and Differential Cryptanalysis",

Faculty of Engineering and Applied Science, 2002.

[AYMA07] Eng. Ayman M. B. Albassal, "Genetic Algorithm Cryptanalysis of a Feistel

Type Block Cipher", Ain Shams University, 2004.

[LASK06] E.C. Laskari, G.C. Meletiou, "Applying evolutionary computation methods

for the cryptanalysis of Feistel ciphers", University of Patras, 2006.

[SONG07] Jun Song, Huanguo Zhang, "Cryptanalysis of Four-Round DES Based on

Genetic Algorithm", Computer School Wuhan university, 2007.

Page 21: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

XVIII

[ZHAN07] Jun Song, Huanguo Zhang, "Cryptanalysis of Two-Round DES Using

Genetic Algorithms", Computer School Wuhan university, 2007.

Page 22: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

XIX

Page 23: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

XX

Índice

Parte I Memoria ...................................................................................... I

1 Introducción .......................................................................... - 1 -

1.1 Motivación del proyecto ......................................................................................... - 1 -

1.2 Objetivos .................................................................................................................... - 1 -

1.3 Metodología / Solución desarrollada.................................................................... - 2 -

1.4 Recursos / herramientas empleadas ...................................................................... - 3 -

2 Etapas de la resolución ........................................................ - 4 -

2.1 Cifrado en bloques: cifrador de Feistel ................................................................ - 4 -

2.1.1 Cifrado en bloques ........................................................................................................ - 4 -

2.1.2 Cifrado de Feistel .......................................................................................................... - 5 -

2.1.3 Aplicaciones reales ..................................................................................................... - 17 -

2.2 Criptoanálisis diferencial: aplicación al cifrador de Feistel ........................... - 18 -

2.2.1 Introducción ................................................................................................................ - 18 -

2.2.2 Acerca de la influencia de la clave en el CAD de las salidas ................................ - 18 -

2.2.3 Tablas de distribuciones diferenciales y diferencia característica ........................ - 19 -

2.2.4 Cálculo de las tablas teóricas de distribuciones diferenciales de la penúltima

ronda, y de la diferencia característica ................................................................................... - 20 -

2.3 Mejora del CAD mediante AG ............................................................................ - 24 -

2.3.1 Introducción general a los AG .................................................................................. - 24 -

2.3.2 Ciclo básico y operadores genéticos ......................................................................... - 25 -

2.3.3 Aplicación al CAD ...................................................................................................... - 30 -

3 Casos de Estudio/Resultados ........................................... - 33 -

3.1 Especificaciones comunes. .................................................................................... - 33 -

3.1.1 Cifrado-Descifrado Feistel ......................................................................................... - 33 -

3.1.2 Algoritmo Genético .................................................................................................... - 33 -

3.2 Primer Caso de Estudio. ........................................................................................ - 34 -

3.2.2 Desencriptación mediante CAD ............................................................................... - 35 -

3.2.3 Aplicación del AG ...................................................................................................... - 38 -

Page 24: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

XXI

3.3 Segundo Caso de Estudio. .................................................................................... - 39 -

3.3.1 Introducción. ............................................................................................................... - 39 -

3.3.2 Descripción del nuevo enfoque cifrado y descifrado ............................................ - 40 -

3.3.3 Especificaciones AG ................................................................................................... - 41 -

4 Conclusiones ....................................................................... - 47 -

5 Futuros desarrollos ............................................................ - 49 -

Anexo A Tablas mapeo SBoxes ....................................................... - 51 -

Anexo B Tablas distribuciones diferenciales CAD ..................... - 55 -

Índice de Figuras ................................................................................ - 69 -

Índice de Tablas .................................................................................. - 71 -

Bibliografía .......................................................................................... - 73 -

Page 25: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Parte I MEMORIA

Page 26: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

II

Page 27: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 1 -

1 INTRODUCCIÓN

1.1 Motivación del proyecto

La principal motivación de este proyecto ha sido el análisis de la eficiencia de

los Algoritmos Genéticos (en adelante AG) y la fiabilidad del Criptoanálisis

Diferencial (CAD) en el cifrador de Feistel para poder concluir sobre sus

posibles aplicaciones a casos más complejos.

Los AG son una de las herramientas de optimización más potentes del

panorama actual y unos buenos resultados permitirían abrir horizontes a casos

de estudio muchos más complejos y diferentes.

Es también importante destacar que, pese a que no es la principal motivación, el

interés por el aprendizaje de los modelos teóricos planteados en este proyecto

ha sido un empuje muy fuerte de cara a la persecución de los objetivos

planteados.

1.2 Objetivos

El proyecto tiene, como primer objetivo, el análisis de la eficacia del algoritmo

de encriptación de Feistel atendiendo no sólo al proceso de encriptación en sí

mismo sino también de desencriptación usando el mismo algoritmo de cifrado

pero en sentido inverso.

Seguidamente se analiza la aplicación del CAD para el ataque al cifrado de

Feistel, y se desarrolla un AG para tratar de reducir el rango de claves a probar

dentro del análisis diferencial, con objeto de reducir su nivel de complejidad y

por ende los tiempos de computación.

Page 28: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 2 -

Las conclusiones y resultados obtenidos en cuanto a la posible mejora

computacional y a la fiabilidad de los resultados serán los evaluadores de la

ventaja real de usar el AG propuesto.

1.3 Metodología / Solución desarrollada

Para la consecución de los objetivos propuestos anteriormente se ha modulado

el proyecto en dos grandes etapas, de la siguiente manera.

Dentro del Capítulo 2, subdivididos en tres bloques, se describen los modelos

teóricos de resolución del problema. En concreto, en el apartado 2.1 se

introducen los tipos de cifrado en bloque, concretamente la variante del cifrado

de Feistel usada en el proyecto. Se continúa con el desarrollo y análisis de una

versión del algoritmo de encriptación de Feistel, de tres rondas de cifrado y

descifrado. Seguidamente, en el apartado 2.2, se describe uno de los tipos de

ataque más significativos aplicables al cifrado en bloque, el CAD, junto con su

aplicación a la variante del algoritmo de encriptación de Feistel de este

proyecto. Posteriormente, el Capitulo 2 propone y explica la posible mejora

computacional del CAD mediante un AG, con el cual se ha tratado de optimizar

el CAD reduciendo el rango de búsqueda de claves y por tanto el nivel de

complejidad del criptoanálisis.

Para terminar, como segunda etapa del proyecto, en el Capitulo 3 se describen

los dos casos de estudio analizados. En el primero de ellos se analiza la

aplicabilidad de un AG para aumentar la eficiencia computacional del CAD al

cifrado de Feistel de tres rondas asumiendo conjuntos factibles reducidos. En el

segundo caso de estudio, se aumenta significativamente el tamaño del conjunto

factible de claves a probar y se compara el CAD de una ronda de cifrado de

Feistel, con el criptoanálisis del mismo caso pero aprovechando la eficacia de un

AG para reducir estadísticamente el rango de claves a probar.

Page 29: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 3 -

1.4 Recursos / herramientas empleadas

Para el desarrollo del proyecto se han utilizado las siguientes herramientas

informáticas:

Microsoft Visual Studio 2008 para la programación de la aplicación en

C++.

Microsoft Office Excel, y Word 2007

Windows 7 Professional 64 bits

Equipo con CPU Intel Core i7 920 @ 2.67GHz y 6,00 GB RAM.

Page 30: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 4 -

2 ETAPAS DE LA RESOLUCIÓN

2.1 Cifrado en bloques: cifrador de Feistel

2.1.1 Cifrado en bloques

Uno de los tipos de cifrado más comunes y usados dentro de la criptografía es

el denominado cifrado en bloque. Los cifradores en bloque son elementos

fundamentales en el diseño de muchos protocolos criptográficos y son

ampliamente usados en la implementación de cifrados de grandes grupos de

datos. Dentro de los algoritmos de cifrado por bloques se encuentra el cifrado

de Feistel, siendo el más conocido el algoritmo DES (Data Encryption Standard)

[STAN99]. El DES es uno de los tipos de cifrado más influentes en el avance de

la criptografía moderna y del mundo académico. Fue desarrollado a principios

del año 1970 en IBM y está basado en un diseño anterior de Horst Feistel.

Debido a que este tipo de cifrado ha sido objeto de muchos estudios, el DES

evolucionó a una versión más segura llamada Triple DES. Sin embargo estos

dos algoritmos han sido sustituidos poco a poco por el cifrador en bloques

Advanced Encryption Standard (AES) de amplio uso actualmente a nivel

mundial.

Este tipo de cifrados en bloque operan en grupos de bits de longitud fija,

llamados bloques, aplicándoles una transformación invariante, es decir una

serie de sustituciones y permutaciones que se repiten secuencialmente en cada

ronda de cifrado, usando una clave simétrica, debido a que para el descifrado

de los datos sólo es necesario usar la misma clave que para el cifrado.

En el proceso de cifrado el algoritmo recibe un texto plano como entrada y una

clave de cifrado definida por el usuario. Aplicándole una serie de

Page 31: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 5 -

transformaciones no lineales y usando la clave proporcionada en la entrada, el

algoritmo produce un texto cifrado de igual tamaño al recibido en la entrada.

En su versión más compleja, el algoritmo descompone la clave en subclaves que

se usan en cada una de las rondas de cifrado, y el descifrado consiste en la

aplicación del mismo algoritmo de cifrado pero usando esas mismas subclaves

en sentido inverso. Es decir, si tenemos por ejemplo un sistema de cifrado de 3

rondas donde el algoritmo aplica las subclaves en el orden A-B-C, al descifrar

las claves se aplicarían en el orden inverso, es decir, C-B-A. Las entradas en el

descifrado son además las salidas del cifrado.

2.1.2 Cifrado de Feistel

2.1.2.1 Introducción

Siguiendo la estructura de los cifradores en bloques, el DES toma un texto en

claro de una longitud fija de bits y lo transforma mediante una serie de

transformaciones en otro texto cifrado de la misma longitud. En la Figura 1 se

puede ver cómo es la estructura básica de cifrado de un DES de 16 rondas cuyas

especificaciones se detallan en [STAN99].

Page 32: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 6 -

Figura 1 Ejemplo DES 16 rondas.

La variante simplificada del DES analizada en este proyecto está diseñada para

cifrar y descifrar bloques de textos en claro de 64 bits, bajo el control de una

Page 33: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 7 -

clave de 48 bits. Como ya se ha dicho, el descrifrado de los datos obtenidos se

produce aplicándoles el mismo algoritmo usado en la encriptación con el

detalle de invertir las claves usadas en cada ronda, tal y como se verá a

continuación. Consecuentemente el proceso de descifrado es el inverso al de

cifrado, proporcionándole así la simplicidad característica que le otorga la

simetría del algoritmo.

2.1.2.2 Estructura del algoritmo de cifrado

El algoritmo consta de varias rondas secuenciales donde la entrada de 64 bits se

divide en dos bloques de 32 bits que se procesan alternativamente. Como ya se

ha dicho, la estructura de Feistel asegura que el cifrado y el descifrado sean

procesos muy similares, la única diferencia radica en la colocación de las

distintas subclaves en las diversas rondas. En concreto, el orden de las claves

para las distintas rondas será el inverso para el descifrado. El resto del

algoritmo es idéntico. Esto simplifica enormemente la implementación, en

especial sobre hardware, al no haber necesidad de algoritmos distintos para el

cifrado y el descifrado.

Cifrado

Los bloques de salida de cada ronda (n) vienen definidos por las siguientes

ecuaciones generales:

11

1

),(

nnn

nn

LKLfR

RL

(1)

Donde Ln y Rn son los bloques izquierdo y derecho respectivamente de la ronda

n, cada uno de 32 bits, f es la función de cifrado que se explicará más adelante y

Page 34: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 8 -

K es la clave de 48 bits, única para todas las rondas. En la Figura 2 se detalla la

estructura del algoritmo de cifrado de 3 rondas usado en este proyecto.

0L0R

01 RL

f

f

Ronda 1

Ronda 2

001 ),( LKRfR

12 RL 112 ),( LKRfR

fRonda 3

23 RL 223 ),( LKRfR

Figura 2 Cifrado Feistel 3 rondas.

Como se puede ver, en esta versión del cifrado de Feistel se está utilizando la

misma clave para todas las rondas, difiriendo así del ejemplo de la Figura 1

donde en cada ronda de cifrado se podría utilizar una subclave distinta. En la

Figura 2 las salidas de cada ronda se muestran simplificadas para hacer la

estructura comprensible, sin embargo, para poder entender el descifrado es

conveniente ver las salidas de cada ronda en función de las entradas de la

primera ronda siguiendo las ecuaciones descritas en (1), tal y como sigue:

Page 35: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 9 -

Ronda 1 cifrado

01 RL

001 ),( LKRfR

Ronda 2 cifrado

12 RL , sustituyendo 1R ;

002 ),( LKRfL

Análogamente 112 ),( LKRfR , sustituyendo 1R ;

0002 ),),(( RKLKRffR

Ronda 3 cifrado

23 RL sustituyendo 2R ;

0003 ),),(( RKLKRffL

De la misma forma 223 ),( LKRfR sustituyendo 2R y 2L ;

)),((),),),((( 000003 LKRfKRKLKRfffR

Descifrado

Para el descifrado de la entrada de 64 bits sólo es necesario aplicar el proceso de

cifrado en sentido inverso y sin inducir cambio alguno en el orden de las

subclaves al ser las mismas en cada una de las rondas. No obstante, como se ve

en la Figura 3, en este caso se aplica la función f al bloque izquierdo a diferencia

del cifrado en donde se aplicaba al bloque derecho.

Page 36: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 10 -

fRonda 1

fRonda 3

fRonda 2

3

'

0 LL 3

'

0 RR

'

0

'

0

'

1 ),( RKLfL '

0

'

1 LR

'

1

'

1

'

2 ),( RKLfL '

1

'

2 LR

0

'

3 LL 0

'

3 RR

Figura 3 Descifrado Feistel 3 rondas

Usando la misma notación que para la sección del cifrado (ver (1)), las

ecuaciones generales que definen las salidas del descifrado quedan de la

siguiente manera:

' '

1

' ' '

1 1( , )

n n

n n n

R L

L f L K R

(2)

A continuación se prueba que los lados izquierdo y derecho de la última ronda

del descifrado coinciden, tal y como aparece en la Figura 3, con los lados

Page 37: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 11 -

izquierdo y derecho de la primera ronda del cifrado, hecho que demuestra la

simetría del algoritmo.

Suponiendo como entradas los valores L3 y R3 de la última ronda de cifrado, se

tiene:

0003

'

0 ),),(( RKLKRffLL

)),((),),),((( 000003

'

0 LKRfKRKLKRfffRR

Ronda 1 descifrado

'

0

'

0

'

1 ),( RKLfL , sustituyendo '

0L y '

0R ;

))),((),),),((((),),),((( 00000000

'

1 LKRfKRKLKRfffKRKLKRfffL

Como 0),),),(((),),),((( 000000 KRKLKRfffKRKLKRfff (ya que

0 XX ), se simplifica la ecuación y '

1L ' queda de la siguiente manera;

De igual forma '

0

'

0

'

1 ),( LKRfL

'

0

'

1 LR , sustituyendo '

0L ;

000

'

1 ),),(( RKLKRffR

Ronda 2 descifrado

'

1

'

1

'

2 ),( RKLfL , sustituyendo '

1L y '

1R ;

)),),(((),),(( 00000

'

2 RKLKRffKLKRffL

Como 0),),((),),(( 0000 KLKRffKLKRff , '

2L queda de la siguiente

manera;

Asimismo 0

'

2 RL

'

1

'

2 LR , sustituyendo '

1L ;

00

'

2 ),( LKRfR

Page 38: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 12 -

Ronda 3 descifrado

'

2

'

2

'

3 ),( RKLfL , sustituyendo '

2R y '

2L ;

000

'

3 ),(),( LKRfKRfL

Como 0),(),( 00 KRfKRf , entonces;

0

'

3 LL

Además 0

'

3 RR .

Obtenemos por lo tanto los dos mismos bloques que se propusieron como

entrada al algoritmo de cifrado 0L , 0R , con lo cual el resultado queda probado.

Teniendo en cuenta que el CAD trata de descifrar la clave de una ronda (en

concreto de la última, como se verá en el apartado 2.2), es preciso indicar por

qué se ha realizado el cifrado de tres rondas y no de dos. Como se ha podido

observar en la Figura 2, y en sus correspondientes ecuaciones de salida, al final

de la ronda 1 sólo el bloque derecho está afectado por la función f y la clave K.

Si se realizara el criptoanálisis de la ronda 2, según (2), se estaría comparando la

salida descifrada de la ronda uno con L2=R1 que no está afectado por la clave K.

Es por ello que es necesario ampliar el proceso de cifrado a 3 rondas. De esta

manera el descifrado de la tercera ronda se compara con la salida de la ronda 2

cuyos bloques son:

2 0 0

2 1 1

( , )

( , )

L f R K L

R f R K L

(3)

Y por tanto han pasado por f y están afectados por la clave.

Page 39: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 13 -

2.1.2.3 Confusión y difusión

En esta sección se explica el núcleo del sistema de cifrado, la función f, que

garantiza la confusión y difusión que caracteriza la no linealidad de las salidas

cifradas del DES, es decir, que los bits de salida de cada una de las SBoxes no

puedan ser representados como una operación lineal de los bits de entrada. Este

hecho fundamentará las conclusiones que se han deducido en este proyecto, tal

y como se verá más adelante.

La confusión y difusión son dos conceptos muy ligados entre sí, y que tienen

mucho que ver con la fortaleza de un sistema de cifrado. La difusión nos dice

que, si cambiamos un bit en el texto en plano (sin cifrar), deberían cambiarse el

mayor número de bits en el texto cifrado. Para lograr este efecto recurrimos a la

Tabla E (ver Tabla 1), de la que se habla más adelante. Por otro lado, la

confusión lo que busca es, que la relación entre la clave y el texto cifrado sea lo

más baja y compleja posible. Para obtener este efecto se aplican las SBoxes que,

como se verá más adelante, logran que un mínimo cambio en la clave cambie

drásticamente la salida de la SBox, por lo que la relación entre la clave y la

salida cifrada es muy baja.

Combinando secuencialmente en cada ronda estos dos tipos de efectos se logra

que el cifrado alcance unos niveles de no linealidad muy altos, tal y como se

confirma en esta investigación.

En la Figura 4 se ve el proceso del cálculo de f(R,K), explicado seguidamente.

Page 40: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 14 -

Figura 4 Cálculo de f(R,K)

Tabla de selección E

El primer paso es la conversión del bloque de entrada de 32 bits a 48 bits

mediante la tabla de selección E para poder realizar el XOR con la clave de la

ronda en la que se encuentre el cifrado (o descifrado). Los bits del nuevo bloque

se obtienen seleccionando en el orden que indica la Tabla 1 los bits de la entrada,

como se explica a continuación.

Tabla de selección E

32 1 2 3 4 5

4 5 6 7 8 9

8 9 10 11 12 13

Page 41: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 15 -

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 1

Tabla 1 Mapeo de Selección E

La Tabla 1 nos dice los bits que tenemos que seleccionar de la entrada y en qué

orden tenemos que colocarlos. En concreto, la primera fila nos indica qué bits

de la entrada componen los primeros 6 bits de la salida, la segunda fila los

segundos 6 bits de la salida, y así sucesivamente hasta completar los 48 bits. Por

ejemplo, viendo la Tabla 1, los primeros 6 bits de la salida estarán formados por

el bit nº32 de la entrada, seguido por el bit 1, 2, 3, 4 y por último el 5. Como se

puede comprobar en la tabla se repiten en cada fila 2 bits de la fila anterior.

Estas repeticiones de bits hacen que la entrada de 32 bits pase a 48 bits.

SBoxes

A continuación, se realiza un XOR con la subclave correspondiente a esa ronda

de 48 bits, y la salida se usa de entrada para las funciones de selección (en

adelante SBoxes). Cada una de las SBoxes es única y convierte su entrada

correspondiente de 6 bits a 4 bits de salida. Esta conversión se realiza mediante

una tabla como la de la Figura 5.

Page 42: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 16 -

6x4

S-Box

E1 E2 E3 E4 E5 E6

S1 S2 S3 S4

Figura 5 Mapeo SBox 6x4

Para el sistema de cifrado planteado en este proyecto cada una de las SBoxes

posee su propia tabla, que no varía con la ronda de cifrado. A modo de ejemplo,

en la Tabla 2 se muestra el mapeo empleado para la primera SBox de cada

ronda.

S1 Columnas (bits 4 a 1)

Filas

(bits 5 y 0)

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7

1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0

3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

Tabla 2 Mapeo SBox-1

En este caso, la SBox-1 usará de entrada los primeros 6 bits de los 48 que recibe

la función f de cifrado. El primer y último bit de los 6 bits de la entrada

Page 43: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 17 -

representan, en base 2, un número de rango 0-3, que indica la fila de su tabla

asociada, y los 4 bits intermedios representan, en rango 0-15, el índice de la

columna.

Como muestra la imagen superior, debe tenerse en cuenta que los índices tanto

de filas como de columnas comienzan en 0. Por ejemplo, dada la entrada

101001, la fila correspondiente sería 3=11 (bits 5 y 0 de la entrada), mientras que

la columna seria 4=0100 (bits 4 a 1 de la entrada). Con dicha fila y columna se

selecciona de la tabla de la SBox el valor entero correspondiente, en un rango 0-

15, que, representado en binario, compondrá la salida de la SBox. Para el

ejemplo usado de la SBox-1 con fila 3=11 y columna 4=0100 el valor de salida

sería 4=01001 (véase Tabla 2). Si tomamos como ejemplo la tabla para la SBox-1,

y consideramos como salida el número 15, observamos que la entrada puede

tomar 4 valores distintos correspondientes a los distintos números 15 que hay

en la tabla. Los valores serían, en orden de aparición en la tabla, 001010, 000011,

110000 y 100001, por lo que las SBoxes no son inyectivas.

2.1.3 Aplicaciones reales

La aplicación real inicial del DES por la que fue diseñado, fue resistir un tipo de

ataque criptográfico conocido por la NSA [SECU52], y descubierto por IBM.

Aunque no fue hasta más tarde revelado públicamente por Eli Biham y Adi

Shamir a finales de 1980. La técnica se conoce como criptoanálisis diferencial

(CAD; ver 2.2), y aún se mantiene como uno de los pocos ataques satisfactorios

contra los tipos de cifrado en bloque, junto con el criptoanálisis lineal.

Page 44: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 18 -

2.2 Criptoanálisis diferencial: aplicación al cifrador de Feistel

2.2.1 Introducción

El CAD es una técnica de criptoanálisis aplicable principalmente a cifrados en

bloque cuyo descubrimiento está generalmente atribuido a Eli Biham y Adi

Shamir a finales de 1980, debido a unas publicaciones de un número de ataques

a cifrados en bloque entre los que se incluye una debilidad teórica en el Data

Encryption Standard (DES) (ver [BIHA93]).

En 1994 sin embargo, un miembro del equipo original de IBM que diseño el

DES, Don Coppersmith, publicó un artículo (ver [COPPE94]) en el que afirmaba

que IBM ya era consciente de la existencia del CAD alrededor de 1974, y que la

defensa contra este tipo de criptoanálisis fue un objetivo de diseño.

2.2.2 Acerca de la influencia de la clave en el CAD de las salidas

El CAD consiste en explotar la probabilidad de que se den, para ciertas

diferencias de texto en claro, ciertas diferencias en las entradas de la última

ronda del cifrador (o equivalentemente en las salidas de la penúltima). Usar

diferenciales, como se explicará más adelante, que tengan una alta probabilidad

nos da la oportunidad de explotar la información de entrada a la ronda n y

recuperar bits de la clave de dicha ronda. En el caso propuesto en este proyecto

se determinaría de hecho la clave completa al no existir diferencias entre las

subclaves por ronda.

Si consideramos como entrada a la función f los valores X' y X'', entonces la

diferencia de entrada vendría dada por el XOR de los valores escogidos, es

decir:

''' XXX

Page 45: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 19 -

Hay que tener muy en cuenta que los bits de la clave K involucrados en el

cifrado de X' y X'' antes de aplicar la SBox acaban desapareciendo de la

expresión diferencial dado que se tiene:

' '' ' ''( ) ( )X K X K X X X (4)

Se deduce por lo tanto de (4) que los bits de la clave no tienen ninguna

influencia en la diferencia de la entrada a la SBox, y por tanto tampoco en su

salida.

2.2.3 Tablas de distribuciones diferenciales y diferencia característica

En un tipo de cifrado aleatorizado ideal, es decir, si se pudiera construir una

SBox que no revelara información diferencial acerca de la salida obtenida para

una determinada entrada, la probabilidad de que una determinada diferencia

de salida ∆X se dé, dada una diferencia de entrada ∆Y en una SBox sería de

1/26. Sin embargo, debido a las propiedades explicadas en [3] esto es

técnicamente imposible. El CAD busca por ello explotar el escenario donde una

particular ∆Y ocurra con un determinado ∆X con una alta probabilidad (es

decir, mucho mayor que 1/26). En adelante se referirá al par (∆X*, ∆Y*) como

diferencia característica siendo aquel par que tiene mayor probabilidad, donde

∆X* se encuentra en el rango 0-26 y ∆Y* en el rango 0-24 (como delimitan los bits

de entrada y salida de cada SBox, ver Figura 5).

Conociendo por lo tanto textos en claro de entrada, el atacante es capaz de

seleccionar entradas y examinar sus salidas del sistema de cifrado para

averiguar la clave. Así pues, se seleccionarán parejas de entrada X' y X'' que

satisfagan ∆X*, sabiendo que para ese ∆X* su ∆Y* se da con una alta

probabilidad, lo cual significa que se ha encontrado una debilidad en la

encriptación. Para encontrar el ∆Y* que tiene una alta probabilidad de ocurrir se

Page 46: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 20 -

tabulan, para cada SBox, las distribuciones diferenciales que miden la

"fortaleza" de cada una de las SBoxes, donde las filas representan todos los

posibles valores de ∆X y las columnas todos los de ∆Y. Cada elemento de la

tabla representa el número de ocurrencias de la correspondiente fila-columna.

Obsérvese que según lo probado en el apartado anterior, se puede afirmar que

la tabla de distribuciones de probabilidad es la misma para el cifrado con y sin

clave.

2.2.4 Cálculo de las tablas teóricas de distribuciones diferenciales de la

penúltima ronda, y de la diferencia característica

Dado que el CAD trata de determinar la clave usada en la ronda n-1 (que es de

hecho la clave de cualquiera de las rondas del cifrado) el primer paso del CAD

consiste en determinar la tabla de distribución diferencial para cada una de las

SBoxes para dicha penúltima ronda. Por lo tanto, conociendo un conjunto de

entradas {X} (de la primera ronda) y sus salidas de la última ronda n, {Yn} se

trata de determinar, para cada una de las SBoxes, una estimación de la tabla de

la distribución de las diferencias ∆Yn-1 de la ronda n-1, suponiendo una

determinada diferencia ∆X en la entrada.

En una situación real, el atacante dispondría de un conjunto limitado de textos

en claro {X} y sus correspondientes salidas cifradas {Yn}. Sin embargo, en el

proyecto propuesto, se va a trabajar con una situación “ideal”, donde se

conocen todas las posibles entradas y salidas de cada una de las SBoxes, por lo

que las tablas con las distribuciones de frecuencias son teóricas y estarán

completas. Por lo tanto, para cada SBox de 6x4 (ver Figura 6), se consideran los

62 posibles valores de entrada para X' y entonces el valor de ∆X de la tabla de

distribuciones delimita el valor de X'' de la siguiente manera:

'' 'X X X .

Page 47: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 21 -

El orden del par no es relevante pues el operador XOR es conmutativo, de

manera que ' 'X X X X X . De esta forma, la tabla con las distribuciones

en frecuencia absoluta se calcula como el número de veces que obtenemos cada

∆Yn-1=Yn-1Y',n-1 para cada uno de los 64 valores de ∆X, siendo Yn-1 e Y',n-1 las

salidas de la ronda n-1 correspondientes a X y X’. En la Tabla 3 se muestran las

8 primeras filas de la tabla correspondiente a la SBox-1 (ver Anexo B para la

tabla completa y para las tablas del resto de SBoxes).

1nY

X

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 6 0 2 4 4 0 10 12 4 10 6 2 4

2 0 0 0 8 0 4 4 4 0 6 8 6 12 6 4 2

3 14 4 2 2 10 6 4 2 6 4 4 0 2 2 2 0

4 0 0 0 6 0 10 10 6 0 4 6 4 2 8 6 2

5 4 8 6 2 2 4 4 2 0 4 4 0 12 2 4 6

6 0 4 2 4 8 2 6 2 8 4 4 2 4 2 0 12

7 2 4 10 4 0 4 8 4 2 4 8 2 2 2 4 4

Tabla 3 Matriz parcial frecuencias distribuciones diferenciales SBox-1

Nótese que cada una de las 8 tablas de frecuencias (ver Anexo B) poseen una

serie de propiedades comunes a todas ellas. En primer lugar la suma de todos

los elementos de cada una de las filas es 26. Además la diferencia de entrada

∆X=0 deriva siempre en una diferencia de salida ∆Yn-1=0 (ver [MHEY02]).

Page 48: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 22 -

Una vez calculadas las tablas para cada una de las SBoxes el objetivo es ahora

determinar el diferencial ∆X* que hace máxima la frecuencia relativa de la tabla

de distribuciones de cada SBox. Como se ha comentado, en general se habrá

encontrado una debilidad en la encriptación si esta probabilidad está muy por

encima de 61/ 2 .

2.2.4.1 Obtención de la clave de la última ronda

Una vez se han escogido los pares de {X} cuyas diferencias sean todas iguales a

∆X*, es posible atacar el cifrador y recuperar bits de la clave de la última ronda.

El proceso consiste en desencriptar la última ronda usando los pares {Y,Y'} tales

que Y+Y’=Y*, usando como clave tentativa K’ dentro del conjunto de posibles

claves a elegir. Hecho esto se compara la frecuencia obtenida en el proceso

inverso de desencriptación de una ronda con la frecuencia teórica de la tabla de

distribuciones de la ronda n-1 correspondiente al par diferencial característico

(∆X*,∆Y*). La clave K’ que proporcione una mejor comparativa será la clave

correcta.

A modo de ejemplo, en la siguiente tabla se muestra la frecuencia teórica

correspondiente a cada par diferencial característico (∆X*,∆Y*) de cada una de la

8 SBoxes (ver Anexo B para visualizar las tablas para cada par posible). En

negrita se destacan las frecuencias elevadas que indican una debilidad en la

encriptación para la SBox indicada en la primera columna.

Page 49: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 23 -

1nY

SBox ∆X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 52 0 8 16 6 2 0 0 12 6 0 0 0 0 8 0 6

1 8 0 0 0 4 0 4 0 8 0 10 16 6 6 0 6 4

2 39 0 2 4 16 8 6 6 6 0 2 4 4 0 2 2 2

3 1 0 0 0 0 0 16 16 0 0 16 16 0 0 0 0 0

4 13 10 4 2 2 0 6 16 4 0 2 6 2 4 12 6 4

5 8 0 0 0 6 0 2 16 4 0 2 6 2 4 12 6 4

6 52 0 4 14 8 2 2 2 4 16 2 2 2 0 2 0 4

7 1 0 0 0 6 0 16 10 0 0 0 6 0 14 6 2 4

Tabla 4 Distribuciones de frecuencia teóricas de alta probabilidad.

Denotando como FYn-1 la distribución teórica de ∆X* para la penúltima ronda, y

FYn-1(K') la obtenida en la desencriptación de la última ronda usando la clave K'

para todas las posibles salidas cifradas {Y,Y'} tales que Y+Y’=Y*, entonces la

clave óptima K* correspondiente a la ronda n será la que haga mínima a la

función:

)'()'( 11 KFYFYKF nn (5)

Se dice que la clave correcta de la ronda n es la que hace que el valor de (5) sea

mínimo ya que eso hace que su distribución de frecuencia FYn-1(K*) se parezca a

la teórica FYn-1 escogida por su alta probabilidad, lo que en principio significaría

Page 50: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 24 -

que el resultado de (5) sea menor cuanto mejor sea la clave probada K’. Este

hecho hace de (5) candidata a función fitness del AG propuesto a continuación.

2.3 Mejora del CAD mediante AG

2.3.1 Introducción general a los AG

Los algoritmos genéticos (en adelante AG) están considerados como una de las

más eficientes técnicas de búsqueda de óptimos en un problema de

optimización. Aunque no garantizan una solución óptima global, su habilidad

para alcanzar una solución aceptable, quasióptima u óptima local, les permite

participar activamente en muchas técnicas de investigación operativa e

inteligencia artificial. La mejor manera de entender un AG es como una función

de optimización, donde el objetivo consiste en buscar, dentro de un conjunto de

entradas posibles, los valores que hacen que el valor de la función objetivo

involucrada sea máximo o mínimo (dependerá del problema y de la función

utilizada).

Los AG son métodos adaptativos y probabilistas que comienzan con una

población inicial de candidatos y evolucionan hacia una solución mejor

aplicando transformaciones como el cruce, mutación y selección, basados en

modelos Darwinianos y de selección natural [VILLA09]. El AG por tanto usa la

población inicial para generar una población nueva donde los individuos son

en general "mejores" que los de la generación anterior. En general, este tipo de

algoritmos evolucionarios son mejores que los algoritmos de optimización

convencionales (como la programación matemática) para problemas que

presentan altas discontinuidades, ya sean no diferenciales o con una dificultad

de optimización extrema. El ciclo habitual que permite pasar de una población a

la nueva y que se describe a continuación es el representado en la Figura 6.

Page 51: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 25 -

Nueva GeneraciónPoblación Inicial

Selección

Cruce

Mutación

Figura 6 Ciclo básico Algoritmo Genético

2.3.2 Ciclo básico y operadores genéticos

A las transformaciones usadas en la obtención de una nueva población a partir

de otra se les llaman operadores genéticos. Los operadores genéticos básicos

usados habitualmente por los AG y que permiten pasar de una generación a la

nueva, como se puede ver en la Figura 6, son la Selección, el Cruce, y la

Mutación. La solución del problema es de hecho un individuo de la población y

puede tener diversas representaciones dependiendo del problema concreto a

resolver. A esta representación se la denomina como codificación de los

individuos, y como se ha dicho puede variar según el problema a resolver

(Binaria, Entera, Código Gray, Coma Flotante, Listas y Árboles...). Al igual que

la codificación, el resto de operadores genéticos pueden también variar de un

AG a otro. Junto con la población inicial y la función fitness a optimizar, a

continuación se describe de manera genérica cada uno de estos operadores y se

ven algunas de sus posibles variantes.

Page 52: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 26 -

Población inicial

Dentro de los AG existen normalmente dos tipos de inicializaciones más

habituales para la primera población de individuos.

Inicialización aleatoria, donde como el propio nombre indica no interviene el

usuario. Esta inicialización se usa cuando no se conoce nada acerca de las

posibles soluciones del problema. Este sería el caso del proyecto que aquí se

expone.

Inicialización heurística, donde el usuario tiene una idea aproximadamente de

las claves con una alta probabilidad de éxito y es quien inicializa la

población convenientemente.

Función Fitness

Para poder realizar la selección de los individuos que van a formar la nueva

generación es necesario realizar una evaluación de su "fortaleza", es decir, de su

posible potencial como solución optima al problema. La función objetivo fitness

permite evaluar la fortaleza de cada individuo y es la que guía el proceso de

selección explicado a continuación. Los individuos con un valor fitness más alto

serán más fuertes y por tanto tendrán más probabilidades de ser escogidos para

la nueva generación poblacional.

Selección

La selección es el proceso mediante el cual se eligen individuos a partir de una

población, con el objeto de ser evolucionados, o reinsertados para la siguiente

población. Existen varios métodos de selección entre los que se encuentran los

siguientes:

Page 53: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 27 -

Selección por ruleta: Los individuos se selección en función de su fortaleza,

por lo que es posible que se seleccionen individuos "buenos", pero también

"malos", manteniendo así la diversidad de la población. La probabilidad de

selección del individuo j entre N viene dada, en un problema de

maximización, por:

N

j

jjj FFP1

/

(6)

donde jF es el valor Fitness del individuo j. Mientras que si el problema

fuese de minimización la probabilidad quedaría de la siguiente manera:

N

j

jjj FFP1

)/1/()/1(

(7)

Selección por torneo: Este tipo de selección se efectúa mediante una

comparación entre un pequeño subconjunto de individuos elegidos al azar

de la población [MILLE95].

Selección por torneo: En este método a cada cromosoma se le asigna un rango

numérico basado en su fortaleza y la selección se realiza en función de dicho

ranking. La ventaja de este método de selección frente a la selección por

ruleta es que puede evitar que individuos muy aptos ganen dominancia al

principio a expensas de otros menos aptos, lo que reduciría la diversidad

genética de la población.

Es habitual que, en ocasiones, se realice una reinserción de algún individuo de

la población. La reinserción elitista consiste en seleccionar el mejor elemento de

la población antes de que estos sean evolucionados, como se verá más adelante,

para reinsertarlo en la siguiente población.

Page 54: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 28 -

Cruce

El cruce de los individuos es donde se realiza el intercambio de "material

genético" existente. Consiste en generar una nueva población a partir de la

existente seleccionando padres de la actual, los cuales generan (normalmente)

dos hijos nuevos. Se tiene en cuenta que la selección de los padres se realiza en

función de su valor fitness, es decir que padres con una valor fitness alto

tendrán más probabilidades de ser escogidos para engendrar hijos,

garantizando así que la calidad de las generaciones mejora hacia una solución

óptima, al menos localmente. Pese a que en los AG suele haber muchas

variaciones en los tipos de cruce dependiendo del problema y el contexto de la

situación, se suelen dar los siguientes tres tipos habituales de cruce:

Cruce de punto único.

Cruce multipunto.

Cruce mediante media de enteros.

-Cruce de punto único: En el cruce de punto único el material genético se

intercambia a partir de un bit seleccionado de manera aleatoria. Es decir, se

sortea por qué punto de la clave (en este proyecto los individuos se codificaban

en binario), se va a realizar el intercambio de material genético. Considerando

que en este proyecto la longitud de cada individuo a cruzar es de 6 bits, dado

que son claves parciales para cada SBox, se selecciona un valor aleatorio entre 1

y 6, llamémoslo r, y se intercambian los bits desde r+1 al bit 6 del individuo 1

con los bits r+1 al bit 6 del individuo 2. Siguiendo un ejemplo, y considerando

que el punto de intercambio es el 3, dados los siguientes individuos (claves)

padre:

Padre 1: 55, 110111

Padre2 13, 001101

Page 55: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 29 -

110|111

001|101

Se generan los siguientes dos hijos:

Hijo 1: 53

Hijo 2: 15

-Cruce multipunto: El cruce multipunto tiene las mismas bases que el de punto

único, con la excepción de que re realizan varios intercambios genéticos entre

distintas posiciones delimitadas por varios puntos “r”. El número de puntos es

definido por el usuario y su eficiencia en la búsqueda de soluciones localmente

óptimas dependerá del problema que se esté tratando.

-Cruce mediante media de enteros: Se obtiene mediante la media sencilla de los dos

individuos escogidos. Normalmente la codificación que se emplea en esta

mezcla es en valores reales. Aplicando este tipo de cruce conseguimos que el

hijo resultante quede dentro de la zona óptima delimitada por los dos padres.

Siguiendo el ejemplo anterior, el hijo que se genera sería:

Hijo = (55 +13)/2 = 34.

Mutación

La mutación es un proceso similar al de cruce, pero en el que solo participa un

individuo de la población. No obstante, el objetivo de la mutación es evitar que

el algoritmo genético se quede estancado en óptimos locales que puedan no dar

la clave correcta, por lo que se busca que el individuo mutado difiera lo más

posible del individuo original. La mutación de punto único suele ser la

Page 56: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 30 -

mutación más habitual cuando se usan codificaciones binarias, como ocurre en

este proyecto.

Mutación de punto único: En este caso se sortea qué individuo es el que muta de

entre todos los de la población, así como el bit que muta. Se intercambia

entonces el valor del bit seleccionado generando un nuevo individuo mutado.

Tomando como ejemplo la subclave 14 y siendo el bit que muta el número 5;

001110

La mutación quedará de la siguiente manera;

011110

Por lo tanto, la subclave 14 ha mutado en el nuevo individuo 30.

Criterios de Parada

El AG puede parar cuando se completen un número de rondas determinado

por el usuario o cuando encuentre la solución correcta para el problema.

Aunque para algunos problemas de optimización la solución correcta no es fácil

de identificar (cuando por ejemplo el fitness en maximización tiene una cota

superior que no se sabe es o no alcanzable), en el problema resuelto en este

proyecto la clave óptima puede determinarse como la que hace cero la función

(5). Otros criterios de parada se basan en identificar el estancamiento cuando se

ha efectuado múltiples mutaciones, entiendo estancamiento como la situación

en la que el valor medio del fitness de cada población (iteración) no cambia

positivamente. En general el criterio de parada es situacional, y depende del

problema en cuestión.

2.3.3 Aplicación al CAD

En este proyecto se estudia la aplicación de un AG al CAD descrito en 2.2. El

AG busca usar como conjunto factible la totalidad de claves K' a probar en el

Page 57: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 31 -

desencriptado de la última ronda n-1, de manera que no sea necesario probar

con cada una de las claves, sino que el propio AG evolucione hacia la solución

óptima, sin búsqueda exhaustiva. En el siguiente capítulo se detallan los

parámetros y especificaciones tenidos en cuenta en la aplicación del AG

propuesto a cada uno de los casos de estudio analizados.

Page 58: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 32 -

Page 59: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 33 -

3 CASOS DE ESTUDIO/RESULTADOS

A continuación se exponen los dos casos de estudio contemplados en este

proyecto, junto con sus resultados y análisis. En el primero se realiza el CAD de

la última ronda del cifrado de Feistel, al que se le aplica posteriormente un AG

que busca reducir la dimensión de claves probadas. En el segundo se opta por

realizar el mismo descifrado del primer caso pero prescindiendo del enfoque

del CAD y aumentando el conjunto factible de claves a probar en una única

ronda de cifrado.

3.1 Especificaciones comunes.

Pese a que cada caso de estudio posee sus peculiaridades ambos están

sostenidos por unas bases comunes que se detallan a continuación.

3.1.1 Cifrado-Descifrado Feistel

El cifrado y descifrado se considera para n=3 (tres rondas), como se vio en la

Figura 2 y la Figura 3. No habría sido posible simplificarlo a un número inferior

de rondas debido a lo explicado al final de la sección 2.1.2. El descifrado en

ambos casos es de la última ronda, buscando la clave K asociada.

3.1.2 Algoritmo Genético

A continuación se describen los puntos comunes a los AG usados en este

proyecto para los dos casos de estudio. El resto de especificaciones respecto a

los operadores genéticos que no se mencionan en este apartado se describirán

en cada uno de los casos concretos.

Page 60: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 34 -

Codificación: La codificación de los individuos a efectos del AG se realiza

en binario, aunque para hacer referencias a dichas claves en ocasiones se

use su representación entera.

Cruce: El cruce en ambos casos es el cruce mediante media de enteros.

Buscando así que el nuevo hijo caiga en el conjunto factible delimitado

por los dos padres.

3.2 Primer Caso de Estudio.

3.2.1.1 Especificaciones AG

El AG usado en este apartado comienza con una población inicial aleatoria de

20 elementos, cuyo número se mantiene a lo largo de los ciclos del AG, donde

se encadenan los operadores genéticos descritos a continuación:

Valoración Fitness: La fortaleza de las claves en este caso viene dada por

(5). Es decir, la diferencia de la distribución obtenida al desencriptar con

cada {km} una ronda el conjunto de salidas {Y3} de cada SBox-m y la

distribución teórica escogida 1nFY por tener un par diferencial

característico con una alta probabilidad (∆X*,∆Y*). Dicha distribución es

además diferente por SBox.

Selección: La probabilidad de selección de cada individuo de la población

se especifica según (7) usando (5) como función fitness.

Mutación: La mutación usada en este caso es de punto único, como quedó

definida en 2.3.2, donde el individuo que muta de la población se

selecciona aleatoriamente.

La parada del AG especificada se produce en cuanto se encuentra la subclave

correcta dentro de la población empleada en cada SBox.

Page 61: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 35 -

3.2.2 Desencriptación mediante CAD

En este primer caso de estudio se realiza la desencriptación de la última ronda

de cifrado n=3, como quedó explicado en 2.2.4.1. En dicho apartado, se explica

la obtención de la clave de la última ronda de manera genérica, sin embargo, en

este caso se mostrarán los resultados del CAD para cada SBox por separado, en

la búsqueda de las claves k que interactúan con cada una de las 8 SBoxes, de

manera independientemente. Por tanto, en adelante se hace referencia a todas

las posibles combinaciones (26) de los bits de la clave K que interactúan en cada

SBox-m de la ronda 3 como el conjunto de subclaves {km}. Una vez obtenidas las

8 subclaves optimas {km} correspondientes a cada SBox-m (m=1,..,8), solo es

necesario concatenarlas para formar la clave completa K de la última ronda n.

Recuérdese que el CAD descifra el conjunto {Y3} probando secuencialmente las

64 posibles subclaves para cada SBox-m quedándose con la clave k*m que da un

valor menor de (5).

En la Figura 7 y la Figura 8 se muestran los resultados del CAD para las 8

SBoxes, donde aparece el valor fitness para cada una de las claves probadas

hasta encontrar la clave óptima k*m (para cada SBox-m). Es preciso notar que,

como se explicó en 2.2.4.1, la fortaleza de la clave viene dada por (5) y el valor

de F(km) tiende a ser menor cuando mejor sea km. Como en este caso de estudio

se ha usado la tabla teórica de distribuciones (ver Tabla 4), y por tanto todo el

conjunto posible de salidas {Y3} para la característica diferencial, el valor de

F(k*m) para la clave óptima de cada SBox-m es 0.

Page 62: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 36 -

Figura 7 Resultados CAD primeras 4 SBoxes

Figura 8 Resultados CAD segundas 4 SBoxes

Comentar que en la Figura 7 y la Figura 8 se ha evaluado la función fitness (5)

probando las claves partiendo de la clave 0 hasta obtener la subclave k*m con

fortaleza mínima para cada una de las SBoxes. En ambas figuras se representan

0

100

200

300

400

500

600

700

800

0 5 10 15 20 25 30 35 40

Fortaleza

Clave

Resultados CAD ronda 3

Sbox-1

Sbox-2

Sbox-3

Sbox-4

0

100

200

300

400

500

0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54

Fortaleza

Clave

Resultados CAD ronda 3

Sbox-5

Sbox-6

Sbox-7

Sbox-8

Page 63: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 37 -

las claves que el CAD ha ido seleccionando por su mejoría en la fortaleza hasta

obtener la clave óptima.

En concreto, la clave K usada para el ejemplo ha sido "clavel", de este modo, con

8 bits de la representación ASCII de cada carácter de K se obtienen por

concatenación los 48 necesarios para la clave K. Los 8 bits de cada carácter de la

clave K son:

c = 99 = 01100011

l = 108 = 01101100

a = 97 = 01100001

v = 118 = 01110110

e = 101 = 01100101

l = 108 = 01101100

Por lo tanto, con estas 6 fracciones de clave de 8 bits se obtiene la siguiente clave

K de 48.

011000110110110001100001011101100110010101101100

Los conjuntos de 6 bits de K que interactúan en cada SBox se representan en la

Tabla 5:

SBox-8 SBox-7 SBox-5 SBox-5 SBox-4 SBox-3 SBox-2 SBox-1

011000 110110 110001 100001 011101 100110 010101 101100

24 54 49 33 29 38 21 44

Tabla 5 División clave por SBox

Page 64: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 38 -

3.2.3 Aplicación del AG

Una vez vista la desencriptación de la tercera ronda de cifrado y obtenidas las

subclaves {km} correspondientes a cada SBox-m mediante búsqueda exhaustiva

en este apartado se describe la aplicación del AG para reducir el rango de

búsqueda dentro de cada subconjunto {km}.

Como se ha visto, los conjuntos factibles sobre los que trabaja el AG son de 26 (6

bits de entrada a cada SBox) posibles subclaves a probar por SBox. Con el

propósito de conocer la forma de la función fitness en todo su rango de

definición, con objeto de sacar conclusiones sobre la conveniencia de la

aplicación del AG, a continuación se muestran los valores fitness obtenidos

según (5) para todas las 26 claves . Nótese que cada Sbox tiene un valor mínimo

en 0 que corresponde además con la clave óptima.

Figura 9 Evaluaciones SBox-1 a 4 CAD 3ª ronda

0

200

400

600

800

1000

1200

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64

Fortaleza

Clave

Distribuciones completas CAD 3ª ronda

Sbox 0

Sbox 1

Sbox 2

Sbox 3

Page 65: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 39 -

Figura 10 Evaluaciones SBox-5-7 CAD 3ª ronda

Se puede apreciar la irregularidad de la función fitness debido a la no linealidad

de la función de cifrado f y por tanto de las propias SBoxes. Esto hace que la

minimización del fitness con un AG sea muy complicada ya que claves con

similitud en bits del 95%, provocan cambios drásticos en el valor fitness y por

tanto en el propio texto descifrado.

En cuanto a tiempos computacionales, el AG en este caso apenas tarda en

encontrar la clave óptima. Debido a que el conjunto factible es casi mínimo los

tiempos se han calculado en un orden de décimas de segundo.

3.3 Segundo Caso de Estudio.

3.3.1 Introducción.

Tal y como se ha visto, las distribuciones obtenidas mediante el CAD son “poco

optimizables” desde el punto de vista de un AG, al no haber un claro gradiente

de optimización en ninguna de las SBoxes (ver Figura 9 y Figura 10). Esto

parece indicar que, sin ninguna modificación adicional de la función fitness, no

0

200

400

600

800

1000

1 6 11 16 21 26 31 36 41 46 51 56 61

Fortaleza

Clave

Distribuciones completas CAD 3ª ronda

Sbox 4

Sbox 5

Sbox 6

Sbox 7

Page 66: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 40 -

existe ventaja computacional en la aplicación del AG al compararlo con una

búsqueda exhaustiva en las subclaves de la última ronda. Por otro lado, los

conjuntos factibles de claves para cada una de las SBoxes considerados en el

caso estudio 1 son demasiado cortos para valorar la eficacia de un AG. Por ello

este segundo caso tiene el propósito de analizar la eficacia del AG ante un

aumento considerable del conjunto factible de posibles claves {K}, y tratando de

modificar la función fitness para el apuntamiento de gradientes. Por

simplicidad se prescinde del enfoque del CAD y se opta por uno más directo,

de manera que se han considerado 2 SBoxes de manera conjunta en lugar de las

8 analizadas en el caso anterior.

3.3.2 Descripción del nuevo enfoque cifrado y descifrado

Debido a que los AG mejoran su rendimiento cuanto mayor sea su espacio de

búsqueda, en este nuevo caso se ha modificado ligeramente el cifrado y

descifrado explicado en 2.1.2. Para aumentar el conjunto factible de claves se

reduce el número de SBoxes de f (ver Figura 4) pasando a 2 SBoxes, pero

considerando la entrada de ambas de manera conjunta y eliminando la tabla de

selección E. De esta manera, y como cada SBox tiene 6 bits de entrada, el

algoritmo de cifrado trabaja con una entrada y una clave de 12 bits. El nuevo

conjunto factible de claves K pasa por lo tanto a ser de 212=4096.

Adicionalmente, en este nuevo caso de estudio se han considerado claves

continuas, como se verá más adelante, de modo que la parte entera y la función

techo de cada clave continúa serán las claves candidatas finales a evaluar. El

criptoanálisis se realiza probando el nuevo conjunto factible de claves {k}

descifrando el conjunto de salidas {Y3}, igual que en el caso anterior.

Page 67: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 41 -

3.3.3 Especificaciones AG

En este apartado se detallan las especificaciones del AG para el segundo caso de

estudio.

Codificación: La codificación de los individuos del nuevo conjunto factible

sigue siendo binaria, aunque la representación de las claves se esté

considerando como números continuos. El AG aplica parte de los

operadores genéticos (por ejemplo la mutación) considerando los

individuos como binarios, y otra parte (como el cruce) tratándolos como

variables continuas.

Población inicial: La población inicial sigue siendo aleatoria, pero se ha

incrementado a un total de 40 individuos. Adicionalmente se ha

realizado de manera que los elementos aleatorios no se repitan y queden

distribuidos a lo largo de todo el conjunto factible.

Funcion Fitness: La omisión del enfoque del CAD obliga a modificar la

función fitness del AG al no existir tablas de distribuciones teóricas ni

pares diferenciales. La nueva función fitness de cada una de las claves

consiste en calcular el número de bits coincidentes entre todas las

entradas {X} de la ronda y el descifrado de sus correspondientes salidas

{Y}. Se define pues dicha función fitness de la siguiente manera:

z

j

jnKG0

)(

(8)

donde nj es el número de bits coincidentes entre la entrada j de la ronda,

y la salida j descifrada usando la clave K que se está evaluando. Con

Page 68: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 42 -

objeto de apuntar los valores fitness para cada una de las claves de tal

manera que pueda encontrarse alguna dirección de optimización, se han

aplicado sobre la función fitness anterior las siguientes ecuaciones:

mxpx

mxpxKH

|)(

|)()(

2

(9)

donde x es el valor fitness de la clave K y p el valor medio del conjunto

de valores fitness obtenidos por (8) para la clave K. De esta forma, se

consigue que los valles y puntas de la grafica sean mucho mas abruptos,

apuntando así las claves con valores fitness mejores.

Si juntamos (8) con (9), la nueva función fitness queda de la siguiente

manera:

mxpKG

mxpKGKGHKF

|))((

|))(())(()(

2

2

(10)

Selección: La probabilidad de selección de cada individuo de la población

se calcula según (6) (al ser un problema de maximización) y teniendo en

cuenta la función fitness (10).

Cruce y mutación: Aunque las claves sean continuas el cruce no se ve

afectado, cada hijo nuevo se obtiene como la media simple de los dos

padres seleccionados. De esta manera el hijo queda dentro del conjunto

delimitado por los dos padres y sigue siendo una variable continua. La

mutación usada es de punto único, y se aplica únicamente a la parte

entera de la clave continua. El nuevo individuo se forma cogiendo la

Page 69: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 43 -

mutación obtenida y sumándole la parte decimal del individuo original,

por lo que también sigue siendo una variable continua.

Claves continuas

Como se comentó en la introducción, en este caso de estudio el AG trabaja con

claves continuas, por lo que es preciso especificar cómo se realiza la evaluación

fitness de dichas claves. La idea es que al trabajar con valores continuos es

posible encontrar valores de continuidad en el gradiente que permitan, en

principio (pues es verdad que la región factible crece si se la compara con claves

enteras), mejorar la búsqueda de soluciones.

Para evaluar cada clave continua K se calculan los valores fitness de su parte

entera Kinf así como de su entero inmediato superior Ksup según (10). Con los dos

valores fitness obtenidos se calcula finalmente la interpolación lineal delimitado

por los puntos (Kinf,F(Kinf)) y (Ksup,F(Ksup)) es decir:

sup

inf inf inf sup inf( ) F( ) (K )((F( )-F( ))/( ))H K K K K K K K (11)

A continuación se expone un ejemplo para ver el proceso de construcción de la

función fitness para la población inicial.

En la Figura 11 se pueden ver los valores G determinados por (8)

correspondientes a las partes superior e inferior . Como se puede ver la

distribución es muy irregular y no tiene picos ni valles claros.

Page 70: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 44 -

Figura 11 Distribución valores fitness parte inferior y superior 40 claves

Para solucionar este problema, en la Figura 12 se muestra en el mismo color

azul la Figura 11 modificada según (10), donde se puede observar que quedan

resaltados los picos y valles más pronunciados. También se observa que en la

serie azul hay claves que toman valores negativos, dada la naturaleza de (9),

por lo que se ha desplazado hacia arriba respecto al eje Y dando lugar a la serie

roja, para que todas las fortalezas sean positivas, de manera que la peor ocurra

con valor 0 (hay que tener en cuenta que en este caso el problema es de

maximización dado que lo que se trata es de maximizar el número de aciertos

en la desencriptación de la ronda).

0

10000

20000

30000

40000

50000

60000

10 544 1097.37 1589 2056 2515 3088 3530

Fortaleza

Claves

Page 71: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 45 -

Figura 12 Comparativa distribuciones fitness modificadas

La Figura 13 muestra los valores interpolados según (11) que definen el valor

fitness de cada una de las claves de la población.

Figura 13 Distribución valores fitness interpolados conjunto 40 claves continuas

Es importante tener en cuenta que, gracias a la no linealidad de las SBoxes, que

se mantiene en este segundo caso de estudio, el cambio de un bit en la clave

-5000000

0

50000000

10000000

15000000

20000000

10 544 1097.37 1589 2056 2515 3088 3530

Fortaleza

Claves

0

10000000

20000000

30000000

40000000

50000000

60000000

70000000

80000000

90000000

10000000

10 1097 2056 3088

Fortaleza

Claves

Page 72: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 46 -

hace que los resultados difieran mucho, lo que se reflejaba en los valores fitness

del primer caso de estudio y se sigue manteniendo en este nuevo caso, haciendo

que los fitness sigan siendo poco suaves.

Para hacerse una idea de la poca efectividad de un AG con este tipo de

distribuciones es posible hacer una comparativa simple en términos de

computación. En el caso de un recorrido secuencial del conjunto factible de

claves suponiendo una media entre 10 ejecuciones con una clave aleatoria que

caiga a lo largo del todo el conjunto, se tardan unos 5 segundos 6 centésimas

5 milésimas. Por otro lado el AG tarda de media más de 20 segundos, con un

índice de mutación elevado, debido a la poca inclinación a la optimización de

las distribuciones obtenidas y el propio proceso interno del AG.

Page 73: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 47 -

4 CONCLUSIONES

Este proyecto ha permitido concluir de una manera clara y contundente que el

cifrado de Feistel y en general los cifrados en bloque son una manera muy

segura de mantener el secreto en las comunicaciones. El nivel de no linealidad

que se obtiene en las salidas del cifrado se ha probado que es altísimo y no es

posible obtener información de la clave a partir de las salidas cifradas si no es a

través de la fuerza bruta.

En el caso de estudio 1 se ha comprobado que el CAD funciona bien en el

criptoanálisis de cifrados en bloque, en concreto el planteado para 3 rondas, sin

embargo los valores fitness obtenidos en el CAD de la ronda 3 hacen que una

aproximación con un AG para reducir el barrido del conjunto factible de claves

sea muy difícil. Las distribuciones para cada una de las SBoxes son

completamente irregulares y esto hace que el AG no avance hacia la solución

óptima y se convierta en una solución peor que la búsqueda exhaustiva.

En el caso de estudio 2 se ha ampliado el conjunto factible para contrastar si el

AG es más eficiente que una búsqueda exhaustiva en un problema real. Con

objeto de mejorar la eficiencia, se ha cambiado la función fitness del caso

anterior para buscar una relación más directa entre la bondad de un individuo

del AG y su valor fitness. Sin embargo, la no linealidad de las salidas se

mantiene haciendo inalcanzable la supuesta mejora por la aplicación del AG, de

manera que una búsqueda exhaustiva, con los conjuntos factibles asumidos en

los casos de estudio vistos, es del orden de un 65% más rápida en términos de

computación que los AG propuestos. Esto es debido a que el AG acaba casi

convirtiéndose en una búsqueda secuencial, recurriendo a un nivel de mutación

Page 74: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 48 -

muy elevado y asumiendo los propios costes en tiempos de computación

adicionales que requiere el propio algoritmo.

Por lo tanto, se puede concluir que en ambos casos los AG dependen de la

suerte en la inicialización aleatoria de las poblaciones, para acercarse a la clave

óptima, y que por tanto una búsqueda exhaustiva aleatoria es si no igual, más

eficiente que la búsqueda por AG. Esta conclusión puede parecer de poco valor

científico pero echa por tierra gran parte de los trabajos en los que se ha

aplicado un AG al descifrado de Feistel (véanse por ejemplo [AYMA07],

[LASK06], [SONG07], [ZHAN07]).

Page 75: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 49 -

5 FUTUROS DESARROLLOS

A lo largo de este proyecto se ha estudiado con un nivel de profundidad alto el

cifrado en bloque de Feistel, el criptoanálisis diferencial (CAD), y los

Algoritmos Genéticos (AG) planteados como mejora de los dos primeros

modelos teóricos mencionados. Se han propuesto, además, dos casos de estudio

con variaciones entre ellos que actúan como evaluadores de las técnicas

anteriores. A continuación se proponen varias mejoras que se podrían llevar a

cabo en un desarrollo futuro, con el objetivo de ampliar el estudio y la mejora

del proyecto actual así como para confirmar aún más las conclusiones

obtenidas.

Concatenación parejas de diferenciales SBoxes

Como se ha visto en la sección 2.2, el CAD se aplica a la última ronda del

descifrado, buscando, al descifrar la ronda n, obtener bits de la clave K. En este

proyecto solo se realiza el descifrado de una ronda, por lo que solo se utilizan

las diferencias de entrada y de salida correspondientes a esa ronda. La

evolución lógica de este planteamiento sería concatenar las diferencias de

entrada y de salida a lo largo de varias rondas de cifrado y analizar la

probabilidad con la que se dan unas determinadas diferencias características en

la salida n del cifrado.

Es importante tener en cuenta que en el desarrollo de este proyecto se han

usado para el CAD las distribuciones teóricas para cada una de las SBoxes

(conociendo todos los posibles conjuntos de entradas y salidas a cada una de

ellas), por lo que una posible línea de continuación sería realizar un estudio

Page 76: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 50 -

donde se conocen un número limitado de entradas y salidas el sistema de

cifrado.

Combinación entradas y salidas SBoxes

En el caso de estudio dos se ha visto cómo concatenando las entradas y salidas

de las dos primeras SBoxes, se logra un conjunto factible mucho más grande (

122 ) para aprovechar bien la potencia de un AG.

Combinando SBoxes se puede llegar a considerar un conjunto factible de claves

mucho mayor como por ejemplo del orden de 248=28147497670656 si la clave K

es de 48 bits. Esto podría afianzar más la conclusión principal de este trabajo

que ha permitido demostrar la ineficiencia de los AG en la mejora computación

en el criptoanálisis del cifrador de Feistel.

Page 77: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 51 -

ANEXO A TABLAS MAPEO SBOXES

Especificadas a continuación se encuentran las tablas para el mapeo de las 8

SBoxes del cifrado de Feistel planteado en este proyecto. En cada ronda del

cifrado se usan las tablas para las SBoxes, que son las mismas para cada una de

las rondas del cifrado.

S1 Columnas

Filas

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7

1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0

3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

Tabla SBox-1.

S2 Columnas

Filas

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10

1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5

2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15

3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

Tabla SBox-2.

Page 78: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 52 -

S3 Columnas

Filas

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8

1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1

2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7

3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

Tabla SBox-3.

S4 Columnas

Filas

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15

1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9

2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4

3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

Tabla SBox-4.

Page 79: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 53 -

S5 Columnas

Filas

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9

1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6

2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14

3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

Tabla SBox-5.

S6 Columnas

Filas

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 12 1 10 15 2 6 8 0 13 3 4 14 7 5 11

1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8

2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6

3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

Tabla SBox-6.

Page 80: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 54 -

S7 Columnas

Filas

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1

1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6

2 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2

3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

Tabla SBox-7.

S8 Columnas

Filas

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7

1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2

2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8

3 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Tabla SBox-8.

Page 81: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 55 -

ANEXO B TABLAS DISTRIBUCIONES DIFERENCIALES

CAD

1nY

X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 6 0 2 4 4 0 10 12 4 10 6 2 4

2 0 0 0 8 0 4 4 4 0 6 8 6 12 6 4 2

3 14 4 2 2 10 6 4 2 6 4 4 0 2 2 2 0

4 0 0 0 6 0 10 10 6 0 4 6 4 2 8 6 2

5 4 8 6 2 2 4 4 2 0 4 4 0 12 2 4 6

6 0 4 2 4 8 2 6 2 8 4 4 2 4 2 0 12

7 2 4 10 4 0 4 8 4 2 4 8 2 2 2 4 4

8 0 0 0 12 0 8 8 4 0 6 2 8 8 2 2 4

9 10 2 4 0 2 4 6 0 2 2 8 0 10 0 2 12

10 0 8 6 2 2 8 6 0 6 4 6 0 4 0 2 10

11 2 4 0 10 2 2 4 0 2 6 2 6 6 4 2 12

12 0 0 0 8 0 6 6 0 0 6 6 4 6 6 14 2

13 6 6 4 8 4 8 2 6 0 6 4 6 0 2 0 2

14 0 4 8 8 6 6 4 0 6 6 4 0 0 4 0 8

15 2 0 2 4 4 6 4 2 4 8 2 2 2 6 8 8

16 0 0 0 0 0 0 2 14 0 6 6 12 4 6 8 6

17 6 8 2 4 6 4 8 6 4 0 6 6 0 4 0 0

18 0 8 4 2 6 6 4 6 6 4 2 6 6 0 4 0

19 2 4 4 6 2 0 4 6 2 0 6 8 4 6 4 6

20 0 8 8 0 10 0 4 2 8 2 2 4 4 8 4 0

21 0 4 6 4 2 2 4 10 6 2 0 10 0 4 6 4

22 0 8 10 8 0 2 2 6 10 2 0 2 0 6 2 6

23 4 4 6 0 10 6 0 2 4 4 4 6 6 6 2 0

24 0 6 6 0 8 4 2 2 2 4 6 8 6 6 2 2

25 2 6 2 4 0 8 4 6 10 4 0 4 2 8 4 0

26 0 6 4 0 4 6 6 6 6 2 2 0 4 4 6 8

27 4 4 2 4 10 6 6 4 6 2 2 4 2 2 4 2

28 0 10 10 6 6 0 0 12 6 4 0 0 2 4 4 0

29 4 2 4 0 8 0 0 2 10 0 2 6 6 6 14 0

30 0 2 6 0 14 2 0 0 6 4 10 8 2 2 6 2

31 2 4 10 6 2 2 2 8 6 8 0 0 0 4 6 4

32 0 0 0 10 0 12 8 2 0 6 4 4 4 2 0 12

33 0 4 2 4 4 8 10 0 4 4 10 0 4 0 2 8

Page 82: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 56 -

34 10 4 6 2 2 8 2 2 2 2 6 0 4 0 4 10

35 0 4 4 8 0 2 6 0 6 6 2 10 2 4 0 10

36 12 0 0 2 2 2 2 0 14 14 2 0 2 6 2 4

37 6 4 4 12 4 4 4 10 2 2 2 0 4 2 2 2

38 0 0 4 10 10 10 2 4 0 4 6 4 4 4 2 0

39 10 4 2 0 2 4 2 0 4 8 0 4 8 8 4 4

40 12 2 2 8 2 6 12 0 0 2 6 0 4 0 6 2

41 4 2 2 10 0 2 4 0 0 14 10 2 4 6 0 4

42 4 2 4 6 0 2 8 2 2 14 2 6 2 6 2 2

43 12 2 2 2 4 6 6 2 0 2 6 2 6 0 8 4

44 4 2 2 4 0 2 10 4 2 2 4 8 8 4 2 6

45 6 2 6 2 8 4 4 4 2 4 6 0 8 2 0 6

46 6 6 2 2 0 2 4 6 4 0 6 2 12 2 6 4

47 2 2 2 2 2 6 8 8 2 4 4 6 8 2 4 2

48 0 4 6 0 12 6 2 2 8 2 4 4 6 2 2 4

49 4 8 2 10 2 2 2 2 6 0 0 2 2 4 10 8

50 4 2 6 4 4 2 2 4 6 6 4 8 2 2 8 0

51 4 4 6 2 10 8 4 2 4 0 2 2 4 6 2 4

52 0 8 16 6 2 0 0 12 6 0 0 0 0 8 0 6

53 2 2 4 0 8 0 0 0 14 4 6 8 0 2 14 0

54 2 6 2 2 8 0 2 2 4 2 6 8 6 4 10 0

55 2 2 12 4 2 4 4 10 4 4 2 6 0 2 2 4

56 0 6 2 2 2 0 2 2 4 6 4 4 4 6 10 10

57 6 2 2 4 12 6 4 8 4 0 2 4 2 4 4 0

58 6 4 6 4 6 8 0 6 2 2 6 2 2 6 4 0

59 2 6 4 0 0 2 4 6 4 6 8 6 4 4 6 2

60 0 10 4 0 12 0 4 2 6 0 4 12 4 4 2 0

61 0 8 6 2 2 6 0 8 4 4 0 4 0 12 4 4

62 4 8 2 2 2 4 4 14 4 2 0 2 0 8 4 4

63 4 8 4 2 4 0 2 4 4 2 4 8 8 6 2 2

Tabla 6 Distribución completa frecuencias diferenciales SBox-1

1nY

X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 4 0 2 6 4 0 14 8 6 8 4 6 2

2 0 0 0 2 0 4 6 4 0 0 4 6 10 10 12 6

3 4 8 4 8 4 6 4 2 4 2 2 4 6 2 0 4

4 0 0 0 0 0 6 0 14 0 6 10 4 10 6 4 4

5 2 0 4 8 2 4 6 6 2 0 8 4 2 4 10 2

6 0 12 6 4 6 4 6 2 2 10 2 8 2 0 0 0

7 4 6 6 4 2 4 4 2 6 4 2 4 4 6 0 6

8 0 0 0 4 0 4 0 8 0 10 16 6 6 0 6 4

Page 83: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 57 -

9 14 2 4 10 2 8 2 6 2 4 0 0 2 2 2 4

10 0 6 6 2 10 4 10 2 6 2 2 4 2 2 4 2

11 6 2 2 0 2 4 6 2 10 2 0 6 6 4 4 8

12 0 0 0 4 0 14 0 10 0 6 2 4 4 8 6 6

13 6 2 6 2 10 2 0 4 0 10 4 2 8 2 2 4

14 0 6 12 8 0 4 2 0 8 2 4 4 6 2 0 6

15 0 8 2 0 6 6 8 2 4 4 4 6 8 0 4 2

16 0 0 0 8 0 4 10 2 0 2 8 10 0 10 6 4

17 6 6 4 6 4 0 6 4 8 2 10 2 2 4 0 0

18 0 6 2 6 2 4 12 4 6 4 0 4 4 6 2 2

19 4 0 4 0 8 6 6 0 0 2 0 6 4 8 2 14

20 0 6 6 4 10 0 2 12 6 2 2 2 4 4 2 2

21 6 8 2 0 8 2 0 2 2 2 2 2 2 14 10 2

22 0 8 6 4 2 2 4 2 6 4 6 2 6 0 6 6

23 6 4 8 6 4 4 0 4 6 2 4 4 4 2 4 2

24 0 6 4 6 10 4 0 2 4 8 0 0 4 8 2 6

25 2 4 6 4 4 2 4 2 6 4 6 8 0 6 4 2

26 0 6 8 4 2 4 2 2 8 2 2 6 2 4 4 8

27 0 6 4 4 0 12 6 4 2 2 2 4 4 2 10 2

28 0 4 6 6 12 0 4 0 10 2 6 2 0 0 10 2

29 0 6 2 2 6 0 4 16 4 4 2 0 0 4 6 8

30 0 4 8 2 10 6 6 0 8 4 0 2 4 4 0 6

31 4 2 6 6 2 2 2 4 8 6 10 6 4 0 0 2

32 0 0 0 2 0 12 10 4 0 0 0 2 14 2 8 10

33 0 4 6 8 2 10 4 2 2 6 4 2 6 2 0 6

34 4 12 8 4 2 2 0 0 2 8 8 6 0 6 0 2

35 8 2 0 2 8 4 2 6 4 8 2 2 6 4 2 4

36 10 4 0 0 0 4 0 2 6 8 6 10 8 0 2 4

37 6 0 12 2 8 6 10 0 0 8 2 6 0 0 2 2

38 2 2 4 4 2 2 10 14 2 0 4 2 2 4 6 4

39 6 0 0 2 6 4 2 4 4 4 8 4 8 0 6 6

40 8 0 8 2 4 12 2 0 2 6 2 0 6 2 0 10

41 0 2 4 10 2 8 6 4 0 10 0 2 10 0 2 4

42 4 0 4 8 6 2 4 4 6 6 2 6 2 2 4 4

43 2 2 6 4 0 2 2 6 2 8 8 4 4 4 8 2

44 10 6 8 6 0 6 4 4 4 2 4 4 0 0 2 4

45 2 2 2 4 0 0 0 2 8 4 4 6 10 2 14 4

46 2 4 0 2 10 4 2 0 2 2 6 2 8 8 10 2

47 12 4 6 8 2 6 2 8 0 4 0 2 0 8 2 0

48 0 4 0 2 4 4 8 6 10 6 2 12 0 0 0 6

49 0 10 2 0 6 2 10 2 6 0 2 0 6 6 4 8

50 8 4 6 0 6 4 4 8 4 6 8 0 2 2 2 0

51 2 2 6 10 2 0 0 6 4 4 12 8 4 2 2 0

52 0 12 6 4 6 0 4 4 4 0 4 6 4 2 4 4

53 0 12 4 6 2 4 4 0 10 0 0 8 0 8 0 6

Page 84: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 58 -

54 8 2 4 0 4 0 4 2 0 8 4 2 6 16 2 2

55 6 2 2 2 6 6 4 8 2 2 6 2 2 2 4 8

56 0 8 8 10 6 2 2 0 4 0 4 2 4 0 4 10

57 0 2 0 0 8 0 10 4 10 0 8 4 4 4 4 6

58 4 0 2 8 4 2 2 2 4 8 2 0 4 10 10 2

59 16 4 4 2 8 2 2 6 4 4 4 2 0 2 2 2

60 0 2 6 2 8 4 6 0 10 2 2 4 4 10 4 0

61 0 16 10 2 4 2 4 2 8 0 0 8 0 6 2 0

62 4 4 0 10 2 4 2 14 4 2 6 6 0 0 6 0

63 4 0 0 2 0 8 2 4 0 2 4 4 4 14 10 6

Tabla 7 Distribución completa frecuencias diferenciales SBox-2

1nY

X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 2 0 4 2 12 0 14 0 4 8 2 6 10

2 0 0 0 2 0 2 0 8 0 4 12 10 4 6 8 8

3 8 6 10 4 8 6 0 6 4 4 0 0 0 4 2 2

4 0 0 0 4 0 2 4 2 0 12 8 4 6 8 10 4

5 6 2 4 8 6 10 6 2 2 8 2 0 2 0 4 2

6 0 10 6 6 10 0 4 12 2 4 0 0 6 4 0 0

7 2 0 0 4 4 4 4 2 10 4 4 8 4 4 4 6

8 0 0 0 10 0 4 4 6 0 6 6 6 6 0 8 8

9 10 2 0 2 10 4 6 2 0 6 0 4 6 2 4 6

10 0 10 6 0 14 6 4 0 4 6 6 0 4 0 2 2

11 2 6 2 10 2 2 4 0 4 2 6 0 2 8 14 0

12 0 0 0 8 0 12 12 4 0 8 0 4 2 10 2 2

13 8 2 8 0 0 4 2 0 2 8 14 2 6 2 4 2

14 0 4 4 2 4 2 4 4 10 4 4 4 4 4 2 8

15 4 6 4 6 2 2 4 8 6 2 6 2 0 6 2 4

16 0 0 0 4 0 12 4 8 0 4 2 6 2 14 0 8

17 8 2 2 6 4 0 2 0 8 4 12 2 10 0 2 2

18 0 2 8 2 4 8 0 8 8 0 2 2 4 2 14 0

19 4 4 12 0 2 2 2 10 2 2 2 2 4 4 4 8

20 0 6 4 4 6 4 6 2 8 6 6 2 2 0 0 8

21 4 8 2 8 2 4 8 0 4 2 2 2 2 6 8 2

22 0 6 10 2 8 4 2 0 2 2 2 8 4 6 4 4

23 0 6 6 0 6 2 4 4 6 2 2 10 6 8 2 0

24 0 8 4 6 6 0 6 2 4 0 4 2 10 0 6 6

25 4 2 4 8 4 2 10 2 2 2 6 8 2 6 0 2

26 0 8 6 4 4 0 6 4 4 8 0 10 2 2 2 4

27 4 10 2 0 2 4 2 4 8 2 2 8 4 2 8 2

28 0 6 8 8 4 2 8 0 12 0 10 0 4 0 2 0

Page 85: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 59 -

29 0 2 0 6 2 8 4 6 2 0 4 2 4 10 0 14

30 0 4 8 2 4 6 0 4 10 0 2 6 4 8 4 2

31 0 6 8 0 10 6 4 6 4 2 2 10 4 0 0 2

32 0 0 0 0 0 4 4 8 0 2 2 4 10 16 12 2

33 10 8 8 0 8 4 2 4 0 6 6 6 0 0 2 0

34 12 6 4 4 2 4 10 2 0 4 4 2 4 4 0 2

35 2 2 0 6 0 2 4 0 4 12 4 2 6 4 8 8

36 4 8 2 12 6 4 2 10 2 2 2 4 2 0 4 0

37 6 0 2 0 8 2 0 2 8 8 2 2 4 4 10 6

38 6 2 0 4 4 0 4 0 4 2 14 0 8 10 0 6

39 0 2 4 16 8 6 6 6 0 2 4 4 0 2 2 2

40 6 2 10 0 6 4 0 4 4 2 4 8 2 2 8 2

41 0 2 8 4 0 4 0 6 4 10 4 8 4 4 4 2

42 2 6 0 4 2 4 4 6 4 8 4 4 4 2 4 6

43 10 2 6 6 4 4 8 0 4 2 2 0 2 4 4 6

44 10 4 6 2 4 2 2 2 4 10 4 4 0 2 6 2

45 4 2 4 4 4 2 4 16 2 0 0 4 4 2 6 6

46 4 0 2 10 0 6 10 4 2 6 6 2 2 0 2 8

47 8 2 0 0 4 4 4 2 6 4 6 2 4 8 4 6

48 0 10 8 6 2 0 4 2 10 4 4 6 2 0 6 0

49 2 6 2 0 4 2 8 8 2 2 2 0 2 12 6 6

50 2 0 4 8 2 8 4 4 8 4 2 8 6 2 0 2

51 4 4 6 8 6 6 0 2 2 2 6 4 12 0 0 2

52 0 6 2 2 16 2 2 2 12 2 4 0 4 2 0 8

53 4 6 0 10 8 0 2 2 6 0 0 6 2 10 2 6

54 4 4 4 4 0 6 6 4 4 4 4 4 0 6 2 8

55 4 8 2 4 2 2 6 0 2 4 8 4 10 0 6 2

56 0 8 12 0 2 2 6 6 2 10 2 2 0 8 0 4

57 2 6 4 0 6 4 6 4 8 0 4 4 2 4 8 2

58 6 0 2 2 4 6 4 4 4 2 2 6 12 2 6 2

59 2 2 6 0 0 10 4 8 4 2 4 8 4 4 0 6

60 0 2 4 2 12 2 0 6 2 0 2 8 4 6 4 10

61 4 6 8 6 2 2 2 2 10 2 6 6 2 4 2 0

62 8 6 4 4 2 10 2 0 2 2 4 2 4 2 10 2

63 2 6 4 0 0 10 8 2 2 8 6 4 6 2 0 4

Tabla 8 Distribución completa frecuencias diferenciales SBox-3

1nY

X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 0 0 16 16 0 0 16 16 0 0 0 0 0

2 0 0 0 8 0 4 4 8 0 4 4 8 8 8 8 0

3 8 6 2 0 2 4 8 2 6 0 4 6 0 6 2 8

Page 86: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 60 -

4 0 0 0 8 0 0 12 4 0 12 0 4 8 4 4 8

5 4 2 2 8 2 12 0 2 2 0 12 2 8 2 2 4

6 0 8 8 4 8 8 0 0 8 0 8 0 4 0 0 8

7 4 2 6 4 6 0 16 6 2 0 0 2 4 2 6 4

8 0 0 0 4 0 8 4 8 0 4 8 8 4 8 8 0

9 8 4 4 4 4 0 8 4 4 0 0 4 4 4 4 8

10 0 6 6 0 6 4 4 6 6 4 4 6 0 6 6 0

11 0 12 0 8 0 0 0 0 12 0 0 12 8 12 0 0

12 0 0 0 4 0 8 4 8 0 4 8 8 4 8 8 0

13 8 4 4 4 4 0 0 4 4 8 0 4 4 4 4 8

14 0 6 6 4 6 0 4 6 6 4 0 6 4 6 6 0

15 0 6 6 4 6 4 0 6 6 0 4 6 4 6 6 0

16 0 0 0 0 0 8 12 4 0 12 8 4 0 4 4 8

17 4 2 2 16 2 4 0 2 2 0 4 2 16 2 2 4

18 0 0 0 8 0 4 4 8 0 4 4 8 8 8 8 0

19 8 2 6 0 6 4 0 6 2 8 4 2 0 2 6 8

20 0 8 8 0 8 0 8 0 8 8 0 0 0 0 0 16

21 8 4 4 0 4 8 0 4 4 0 8 4 0 4 4 8

22 0 8 8 4 8 8 0 0 8 0 8 0 4 0 0 8

23 4 6 2 4 2 0 0 2 6 16 0 6 4 6 2 4

24 0 8 8 8 8 4 0 0 8 0 4 0 8 0 0 8

25 4 4 4 0 4 4 16 4 4 0 4 4 0 4 4 4

26 0 6 6 4 6 0 4 6 6 4 0 6 4 6 6 0

27 0 6 6 4 6 4 0 6 6 0 4 6 4 6 6 0

28 0 8 8 8 8 4 0 0 8 0 4 0 8 0 0 8

29 4 4 4 0 4 4 0 4 4 16 4 4 0 4 4 4

30 0 6 6 0 6 4 4 6 6 4 4 6 0 6 6 0

31 0 0 12 8 12 0 0 12 0 0 0 0 8 0 12 0

32 0 0 0 8 0 0 0 12 0 0 0 12 8 12 12 0

33 0 4 8 0 8 4 8 8 4 0 4 4 0 4 8 0

34 8 2 2 0 2 4 8 6 2 8 4 6 0 6 6 0

35 4 6 2 8 2 4 0 2 6 0 4 6 8 6 2 4

36 0 6 6 4 6 4 0 6 6 0 4 6 4 6 6 0

37 0 8 4 4 4 0 0 4 8 8 0 8 4 8 4 0

38 0 6 6 0 6 4 8 2 6 8 4 2 0 2 2 8

39 4 6 2 8 2 4 0 2 6 0 4 6 8 6 2 4

40 16 4 4 0 4 4 4 4 4 4 4 4 0 4 4 0

41 0 6 2 8 2 4 0 2 6 8 4 6 8 6 2 0

42 0 2 2 16 2 4 4 2 2 4 4 2 16 2 2 0

43 8 0 4 0 4 8 16 4 0 0 8 0 0 0 4 8

44 8 4 4 4 4 0 8 4 4 8 0 4 4 4 4 0

45 4 2 6 4 6 8 0 6 2 0 8 2 4 2 6 4

46 16 0 0 0 0 16 0 0 0 0 16 0 0 0 0 16

47 16 0 0 0 0 0 16 0 0 16 0 0 0 0 0 16

48 0 6 6 4 6 4 0 6 6 0 4 6 4 6 6 0

Page 87: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 61 -

49 0 8 4 4 4 0 0 4 8 8 0 8 4 8 4 0

50 16 6 6 4 6 0 4 2 6 4 0 2 4 2 2 0

51 0 2 6 4 6 8 8 6 2 0 8 2 4 2 6 0

52 0 12 12 8 12 0 0 0 12 0 0 0 8 0 0 0

53 0 4 8 0 8 4 8 8 4 0 4 4 0 4 8 0

54 0 2 2 4 2 0 4 6 2 4 0 6 4 6 6 16

55 0 2 6 4 6 8 8 6 2 0 8 2 4 2 6 0

56 0 4 4 0 4 4 4 4 4 4 4 4 0 4 4 16

57 0 6 2 8 2 4 0 2 6 8 4 6 8 6 2 0

58 0 4 4 0 4 8 8 4 4 8 8 4 0 4 4 0

59 16 4 4 0 4 0 0 4 4 0 0 4 0 4 4 16

60 0 4 4 4 4 0 8 4 4 8 0 4 4 4 4 8

61 4 2 6 4 6 8 0 6 2 0 8 2 4 2 6 4

62 0 2 2 8 2 12 4 2 2 4 12 2 8 2 2 0

63 8 4 0 8 0 0 0 0 4 16 0 4 8 4 0 8

Tabla 9 Distribución completa frecuencias diferenciales SBox-4

1nY

X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 4 0 10 8 6 0 4 2 2 12 10 2 4

2 0 0 0 4 0 10 6 4 0 6 4 2 4 8 10 6

3 8 2 4 6 4 4 2 2 6 8 6 4 4 0 2 2

4 0 0 0 8 0 4 10 6 0 6 6 4 8 6 0 6

5 12 2 0 4 0 4 8 2 4 0 16 2 0 2 0 8

6 0 8 4 6 4 6 2 2 4 4 6 0 6 0 2 10

7 2 0 4 8 4 2 6 6 2 8 6 2 2 0 6 6

8 0 0 0 2 0 8 10 4 0 4 10 4 8 4 4 6

9 8 6 0 4 0 6 6 2 2 10 2 8 6 2 0 2

10 0 6 8 6 0 8 0 0 8 10 4 2 8 0 0 4

11 4 2 2 4 8 10 6 4 2 6 2 2 6 2 2 2

12 0 0 0 10 0 2 10 2 0 6 10 6 6 6 2 4

13 10 4 2 2 0 6 16 0 0 2 10 2 2 4 0 4

14 0 6 4 8 4 6 10 2 4 4 4 2 4 0 2 4

15 4 4 0 8 0 2 0 2 8 2 4 2 8 4 4 12

16 0 0 0 0 0 4 4 12 0 2 8 10 4 6 12 2

17 6 6 10 10 4 0 2 6 2 4 0 6 2 4 2 0

18 0 2 4 2 10 4 0 10 8 6 0 6 0 6 6 0

19 0 0 6 2 8 0 0 4 4 6 2 8 2 8 10 4

20 0 12 2 6 4 0 4 4 8 4 4 4 6 2 4 0

21 4 8 0 2 8 0 2 4 2 2 4 2 4 8 8 6

22 0 6 10 2 14 0 2 2 4 4 0 6 0 4 6 4

23 0 6 8 4 8 4 0 2 8 4 0 2 2 8 6 2

Page 88: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 62 -

24 0 10 8 0 6 4 0 4 4 4 6 4 4 4 0 6

25 0 4 6 2 4 4 2 6 4 2 2 4 12 2 10 0

26 0 2 16 2 12 2 0 6 4 0 0 4 0 4 4 8

27 2 8 12 0 0 2 2 6 8 4 0 6 0 0 8 6

28 0 10 2 6 6 6 6 4 8 2 0 4 4 4 2 0

29 4 6 2 0 8 2 4 6 6 0 8 6 2 4 2 4

30 0 2 6 2 4 0 0 2 12 2 2 6 2 10 10 4

31 0 6 8 4 8 8 0 6 6 2 0 6 0 6 2 2

32 0 0 0 8 0 8 2 6 0 4 4 4 6 6 8 8

33 0 0 0 6 6 2 6 4 6 10 14 4 0 0 4 2

34 14 4 0 10 0 2 12 2 2 2 10 2 0 0 2 2

35 2 0 0 4 2 2 10 4 0 8 8 2 6 8 0 8

36 6 2 8 4 4 4 6 2 2 6 6 2 6 2 2 2

37 6 0 0 8 2 8 2 6 6 4 2 2 4 2 6 6

38 12 0 0 4 0 4 4 4 0 8 4 0 12 8 0 4

39 12 2 0 2 0 12 2 2 4 4 8 4 8 2 2 0

40 2 8 4 6 2 4 6 0 6 6 4 0 2 2 2 10

41 6 4 6 8 8 4 6 2 0 0 2 2 10 0 2 4

42 4 4 0 2 2 4 6 2 0 0 6 4 10 4 4 12

43 4 6 2 6 0 0 12 2 0 4 12 2 6 4 0 4

44 8 6 2 6 4 8 6 0 4 4 0 2 6 0 6 2

45 4 4 0 4 0 6 4 2 4 12 0 4 4 6 4 6

46 6 0 2 4 0 6 6 4 2 10 6 10 6 2 0 0

47 10 4 0 2 2 6 10 2 0 2 2 4 6 2 2 10

48 0 4 8 4 6 4 0 6 10 4 2 4 2 6 4 0

49 0 6 6 4 10 2 0 0 4 4 0 0 4 6 12 6

50 4 6 0 2 6 4 6 0 6 0 4 6 4 10 6 0

51 8 10 0 14 8 0 0 8 2 0 2 4 0 4 4 0

52 0 4 4 2 14 4 0 8 6 8 2 2 0 4 6 0

53 0 4 16 0 8 4 0 4 4 4 0 8 0 4 4 4

54 4 4 4 6 2 2 2 12 2 4 4 8 2 4 4 0

55 4 2 2 2 4 2 0 8 2 2 2 12 6 2 8 6

56 0 4 8 4 12 0 0 8 10 2 0 0 0 4 2 10

57 0 8 12 0 2 2 2 2 12 4 0 8 0 4 4 4

58 0 14 4 0 4 6 0 0 6 2 10 8 0 0 4 6

59 0 2 2 2 4 4 8 6 8 2 2 2 6 14 2 0

60 0 0 10 2 6 0 0 2 6 2 2 10 2 4 10 8

61 0 6 12 2 4 8 0 8 8 2 2 0 2 2 4 4

62 4 4 10 0 2 4 8 8 2 2 0 2 6 8 4 0

63 8 6 6 0 4 2 2 4 4 2 8 6 2 4 6 0

Tabla 10 Distribución completa frecuencias diferenciales SBox-5

Page 89: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 63 -

1nY

X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 6 0 2 6 2 0 4 2 4 6 16 14 2

2 0 0 0 2 0 10 6 10 0 2 4 8 6 6 8 2

3 0 8 0 8 0 6 4 6 4 4 4 12 2 4 2 0

4 0 0 0 8 0 0 8 0 0 6 8 10 2 4 10 8

5 10 2 4 4 4 8 8 4 2 2 0 4 0 8 0 4

6 0 8 4 4 8 4 2 2 12 0 2 6 6 2 2 2

7 6 6 4 0 2 10 2 2 2 2 6 6 8 0 6 2

8 0 0 0 6 0 2 16 4 0 2 6 2 4 12 6 4

9 10 4 2 6 0 2 6 2 4 0 8 6 4 4 2 4

10 0 14 4 4 0 2 2 2 10 4 4 4 6 4 2 2

11 4 6 2 0 2 2 12 8 2 2 2 6 8 2 0 6

12 0 0 0 12 0 10 4 6 0 8 4 4 2 12 2 0

13 12 0 2 10 6 4 4 2 4 2 6 0 2 6 0 4

14 0 6 4 0 4 4 10 8 6 2 4 6 2 0 6 2

15 2 2 2 2 6 2 6 2 10 4 8 2 6 4 4 2

16 0 0 0 8 0 8 0 12 0 4 2 6 8 4 6 6

17 6 2 6 4 6 2 6 4 6 6 4 2 4 0 6 0

18 0 8 4 2 0 4 2 0 4 10 6 2 8 6 4 4

19 6 6 12 0 12 2 0 6 6 2 0 4 0 2 4 2

20 0 4 6 2 8 6 0 2 6 10 4 0 2 4 6 4

21 2 2 6 6 4 4 2 6 2 6 8 4 4 0 4 4

22 0 4 14 6 8 4 2 6 2 0 2 0 4 2 0 10

23 2 6 8 0 0 2 0 2 2 6 0 8 8 2 12 6

24 0 4 6 6 8 4 2 2 6 4 6 4 2 4 2 4

25 2 6 0 2 4 4 4 6 4 8 6 4 2 2 6 4

26 0 6 6 0 8 2 4 6 4 2 4 6 2 0 4 10

27 0 4 10 2 4 4 2 6 6 6 2 2 6 6 2 2

28 0 0 8 2 12 2 6 2 8 6 6 2 4 0 4 2

29 2 4 0 6 8 6 0 2 6 8 6 0 2 4 0 10

30 0 10 8 2 8 2 0 2 6 4 2 4 6 4 2 4

31 0 6 6 8 6 4 2 4 4 2 2 0 2 4 2 12

32 0 0 0 0 0 6 6 4 0 4 8 8 4 6 10 8

33 2 8 6 8 4 4 6 6 8 4 0 4 0 2 2 0

34 16 2 4 6 2 4 2 0 6 4 8 2 0 2 2 4

35 0 4 0 4 4 6 10 4 2 2 6 2 4 6 6 4

36 10 8 0 6 12 6 10 4 8 0 0 0 0 0 0 0

37 0 2 4 2 0 4 4 0 4 0 10 10 4 10 6 4

38 2 2 0 12 2 2 6 2 4 4 8 0 6 6 8 0

39 8 4 0 8 2 4 2 4 0 6 2 4 4 8 2 6

40 6 8 4 6 0 4 2 2 4 8 2 6 4 2 2 4

41 2 4 4 0 8 8 6 8 6 4 0 4 4 4 2 0

42 6 0 0 6 6 4 6 8 2 4 0 2 2 4 6 8

Page 90: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 64 -

43 12 0 4 0 0 4 2 2 2 6 10 6 10 2 4 0

44 4 2 6 0 0 6 8 6 4 2 2 8 4 6 4 2

45 6 2 2 6 6 4 4 2 6 2 4 8 4 2 4 2

46 4 6 2 4 2 4 4 2 4 2 4 6 4 10 4 2

47 10 0 4 8 0 6 6 2 0 4 4 2 6 2 2 8

48 0 12 8 2 0 6 0 0 6 6 0 2 8 2 6 6

49 2 6 10 4 2 2 2 4 6 0 2 6 0 2 4 12

50 4 2 2 8 10 8 8 6 0 2 2 4 4 2 2 0

51 4 2 2 2 6 0 4 0 10 6 6 4 0 4 8 6

52 0 4 4 2 6 4 0 4 6 2 6 4 2 8 0 12

53 6 12 4 2 4 2 2 4 8 2 2 0 6 4 4 2

54 0 2 2 4 4 4 4 0 2 10 12 4 0 10 4 2

55 10 2 2 6 14 2 2 6 2 0 4 6 2 0 4 2

56 0 4 14 0 8 2 0 4 4 4 2 0 8 2 4 8

57 2 4 8 0 6 2 0 6 2 6 4 2 8 6 2 6

58 8 4 0 4 6 2 0 4 6 8 6 0 6 0 4 6

59 0 4 6 6 2 2 2 14 0 12 0 4 2 2 8 0

60 0 6 16 0 2 2 2 8 4 2 0 12 6 2 2 0

61 0 6 2 2 2 6 8 2 4 2 6 2 6 2 4 10

62 4 2 2 4 4 0 6 10 4 2 4 6 6 2 6 2

63 0 4 6 6 4 8 4 0 4 8 4 0 4 8 2 2

Tabla 11 Distribución completa frecuencias diferenciales SBox-6

1nY

X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 2 0 4 4 14 0 12 4 6 2 6 6 4

2 0 0 0 0 0 12 2 2 0 4 0 4 8 12 6 14

3 8 2 12 2 6 8 6 0 6 4 4 2 2 0 0 2

4 0 0 0 8 0 4 4 8 0 8 8 12 2 6 2 2

5 6 0 0 2 8 0 8 4 0 2 6 0 10 6 6 6

6 0 2 12 0 8 4 8 2 4 4 4 2 6 0 6 2

7 4 6 4 12 0 4 2 0 0 14 2 6 4 0 0 6

8 0 0 0 8 0 0 6 10 0 4 12 4 6 6 0 8

9 10 8 4 8 6 2 2 0 2 6 8 2 0 6 0 0

10 0 10 6 2 12 2 4 0 4 4 6 4 4 0 0 6

11 0 2 2 2 4 8 6 4 4 0 4 2 6 4 2 14

12 0 0 0 4 0 4 8 4 0 2 6 0 14 12 8 2

13 6 6 2 4 2 6 4 6 6 4 8 8 0 2 0 0

14 0 12 10 10 0 2 4 2 8 6 4 2 0 0 2 2

15 2 0 0 0 6 8 8 0 6 2 4 6 8 0 6 8

16 0 0 0 4 0 2 8 6 0 6 4 10 8 4 8 4

17 6 10 10 4 4 2 0 4 4 0 2 8 4 2 2 2

Page 91: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 65 -

18 0 0 8 8 2 8 2 8 6 4 2 8 0 0 8 0

19 4 4 2 2 8 6 0 2 2 2 0 4 6 8 14 0

20 0 8 6 2 8 8 2 6 4 2 0 2 8 6 0 2

21 4 4 8 2 4 0 4 10 8 2 4 4 4 2 0 4

22 0 6 10 2 2 2 2 4 10 8 2 2 0 4 10 0

23 8 2 4 2 6 4 0 6 4 4 2 2 0 4 8 8

24 0 16 2 2 6 0 6 0 6 2 8 0 6 0 2 8

25 0 8 0 2 4 4 10 4 8 0 6 4 2 6 2 4

26 0 2 4 8 12 4 0 6 4 4 0 2 0 6 4 8

27 0 6 2 6 4 2 4 4 6 4 8 4 2 0 10 2

28 0 8 4 4 2 6 6 6 6 4 6 8 0 2 0 2

29 4 4 4 0 0 2 4 2 4 2 2 4 10 10 8 4

30 0 0 2 2 12 6 2 0 12 2 2 4 2 6 8 4

31 2 2 10 14 2 4 2 4 4 6 0 2 4 8 0 0

32 0 0 0 14 0 8 4 2 0 4 2 8 2 6 0 14

33 4 2 6 2 12 2 4 0 6 4 10 2 4 2 2 2

34 10 6 0 2 4 4 10 0 4 0 12 2 8 0 0 2

35 0 6 2 2 2 4 6 10 0 4 8 2 2 6 0 10

36 4 2 0 6 8 2 6 0 8 2 2 0 8 2 12 2

37 2 0 2 16 2 4 6 4 6 8 2 4 0 6 0 2

38 6 10 0 10 0 6 4 4 2 2 4 6 2 4 2 2

39 4 0 2 0 2 2 14 0 4 6 6 2 12 2 4 4

40 14 4 6 4 4 6 2 0 6 6 2 2 4 0 2 2

41 2 2 0 2 0 8 4 2 4 6 4 4 6 4 12 4

42 2 4 0 0 0 2 8 12 0 8 2 4 8 4 4 6

43 16 6 2 4 6 10 2 2 2 2 2 2 4 2 2 0

44 2 6 6 8 2 2 0 6 0 8 4 2 2 6 8 2

45 6 2 4 2 8 8 2 8 2 4 4 0 2 0 8 4

46 2 4 8 0 2 2 2 4 0 2 8 4 14 6 0 6

47 2 2 2 8 0 2 2 6 4 6 8 8 6 2 0 6

48 0 6 8 2 8 4 4 0 10 4 4 6 0 0 2 6

49 0 8 4 0 6 2 2 6 6 0 0 2 6 4 8 10

50 2 4 0 0 6 4 10 6 6 4 6 2 4 6 2 2

51 0 16 6 8 2 0 2 2 4 2 8 4 0 4 6 0

52 0 4 14 8 2 2 2 4 16 2 2 2 0 2 0 4

53 0 6 0 0 10 8 2 2 6 0 0 8 6 4 4 8

54 2 0 2 2 4 6 4 4 2 2 4 2 4 16 10 0

55 6 6 6 8 4 2 4 4 4 0 6 8 2 4 0 0

56 0 2 2 2 8 8 0 2 2 2 0 6 6 4 10 10

57 4 4 16 8 0 6 4 2 4 4 2 6 0 2 2 0

58 16 6 4 0 2 0 2 6 0 4 8 10 0 0 4 2

59 2 0 0 2 0 4 4 4 2 6 2 6 6 12 12 2

60 0 0 8 0 12 8 2 6 6 4 0 2 2 4 6 4

61 2 4 12 2 2 2 0 4 6 10 2 6 4 2 0 6

62 4 6 6 6 2 0 4 8 2 10 4 6 0 4 2 0

Page 92: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 66 -

63 14 0 0 0 8 0 6 8 4 2 0 0 4 8 4 6

Tabla 12 Distribución completa frecuencias diferenciales SBox-7

1nY

X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 6 0 16 10 0 0 0 6 0 14 6 2 4

2 0 0 0 8 0 10 4 2 0 10 2 4 8 8 6 2

3 6 0 2 8 2 6 4 0 6 6 6 2 2 0 8 6

4 0 0 0 2 0 4 6 12 0 6 8 4 10 4 8 0

5 4 10 6 0 0 2 6 0 4 10 4 6 8 2 0 2

6 0 0 10 4 6 4 4 8 2 6 4 2 4 2 2 6

7 6 2 8 2 8 10 6 6 4 2 0 4 0 0 0 6

8 0 0 0 4 0 6 4 2 0 8 6 10 8 2 2 12

9 8 4 0 6 0 4 4 6 2 4 6 2 12 2 0 4

10 0 0 16 4 6 6 4 0 4 6 4 2 2 0 0 10

11 2 8 0 6 2 6 0 4 4 10 0 2 10 2 6 2

12 0 0 0 2 0 10 10 6 0 6 6 6 2 6 10 0

13 6 0 4 10 2 0 8 6 2 2 6 10 2 2 2 2

14 0 0 6 8 4 8 0 2 10 6 2 4 6 2 4 2

15 8 0 4 2 2 4 2 2 2 6 4 6 0 2 14 6

16 0 0 0 4 0 0 8 12 0 0 8 8 2 10 6 6

17 0 6 4 6 2 2 6 6 4 6 4 6 0 4 4 4

18 0 4 0 8 6 2 8 4 2 4 4 6 2 4 10 0

19 4 2 2 6 8 6 2 2 14 2 2 4 2 2 2 4

20 0 16 4 2 6 0 2 6 4 0 4 6 4 6 4 0

21 0 10 6 0 6 0 2 8 2 2 0 8 2 6 6 6

22 0 12 6 4 6 0 0 0 8 6 6 2 2 6 4 2

23 0 6 8 0 6 2 4 6 6 0 2 6 4 4 2 8

24 0 12 2 2 8 0 8 0 10 4 4 2 4 2 0 6

25 6 4 8 0 8 0 4 2 0 0 12 2 4 6 2 6

26 0 4 6 2 8 8 0 4 8 0 0 0 6 2 0 16

27 2 4 8 10 2 4 2 8 2 4 8 2 0 2 4 2

28 0 12 6 4 6 4 2 2 6 0 4 4 2 10 2 0

29 8 6 0 0 10 0 0 8 10 4 2 2 2 8 4 0

30 0 4 8 6 8 2 4 4 10 2 2 4 2 0 6 2

31 4 2 4 2 6 2 4 0 2 6 2 2 2 16 8 2

32 0 0 0 16 0 4 0 0 0 14 6 4 2 0 4 14

33 0 0 2 10 2 8 10 0 0 6 6 0 10 2 2 6

34 8 0 6 0 6 4 10 2 0 6 8 0 4 4 2 4

35 4 8 0 6 0 4 8 6 2 2 10 4 8 0 0 2

36 4 0 4 8 4 6 2 4 8 6 2 0 0 4 4 8

37 0 4 6 8 2 8 8 0 4 2 4 4 2 2 6 4

Page 93: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 67 -

38 2 6 0 6 4 4 4 6 6 0 4 4 10 4 2 2

39 6 6 0 0 2 2 6 2 4 4 6 10 2 6 2 6

40 10 2 6 2 4 12 12 0 2 2 4 0 0 0 2 6

41 4 0 0 14 2 10 4 2 8 6 4 0 4 2 2 2

42 8 8 0 2 0 2 4 0 2 6 8 14 2 8 0 0

43 2 2 0 0 4 2 10 4 6 2 4 0 6 4 8 10

44 2 6 6 2 4 6 2 0 2 6 4 0 6 4 10 4

45 8 0 4 4 6 2 0 0 6 8 2 4 6 4 4 6

46 6 2 2 4 2 2 6 12 4 0 4 2 8 8 0 2

47 8 12 4 6 6 4 2 2 2 2 4 2 2 4 0 4

48 0 4 6 2 10 2 2 2 4 8 0 0 8 4 6 6

49 4 6 8 0 4 6 0 4 4 6 10 2 2 4 4 0

50 6 6 6 2 4 6 0 2 0 6 8 2 2 6 6 2

51 6 6 4 2 4 0 0 10 2 2 0 6 8 4 0 10

52 0 2 12 4 10 4 0 4 12 0 2 4 2 2 2 4

53 6 4 4 0 10 0 0 4 10 0 0 4 2 8 8 4

54 4 6 2 2 2 2 6 8 6 4 2 6 0 4 10 0

55 2 2 8 2 4 4 4 2 6 2 0 10 6 10 2 0

56 0 4 8 4 2 6 6 2 4 2 2 4 6 4 4 6

57 4 4 4 8 0 6 0 6 4 8 2 2 2 4 8 2

58 8 8 0 4 2 0 10 4 0 0 0 4 8 6 8 2

59 8 2 6 4 4 4 4 0 6 4 4 6 4 4 4 0

60 0 6 6 6 6 0 0 8 8 2 4 8 4 2 4 0

61 2 2 8 0 10 0 2 12 0 4 0 8 0 2 6 8

62 6 4 0 0 4 4 0 10 6 2 6 12 2 4 0 4

63 0 6 6 0 4 4 6 10 0 6 8 2 0 4 8 0

Tabla 13 Distribución completa frecuencias diferenciales SBox-8

Page 94: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 68 -

Page 95: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 69 -

ÍNDICE DE FIGURAS

Figura 1 Ejemplo DES 16 rondas.................................................................................6

Figura 2 Cifrado Feistel 3 rondas................................................................................8

Figura 3 Descifrado Feistel 3 rondas.........................................................................10

Figura 4 Cálculo de f(R,K)..........................................................................................14

Figura 5 Mapeo SBox 6x4...........................................................................................16

Figura 6 Ciclo básico Algoritmo Genético...............................................................25

Figura 7 Resultados CAD primeras 4 SBoxes..........................................................36

Figura 8 Resultados CAD segundas 4 SBoxes.........................................................36

Figura 9 Evaluaciones SBox-1 a 4 CAD 3ª ronda....................................................38

Figura 10 Evaluaciones SBox-5-7 CAD 3ª ronda.....................................................39

Figura 11 Distribución valores fitness parte inferior y superior 40 claves..........44

Figura 12 Comparativa distribuciones fitness modificadas..................................45

Figura 13 Distribución valores fitness interpolados conjunto 40 claves

continuas.......................................................................................................................45

Page 96: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 70 -

Page 97: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 71 -

ÍNDICE DE TABLAS

Tabla 1 Mapeo de Selección E....................................................................................15

Tabla 2 Mapeo SBox-1.................................................................................................16

Tabla 3 Matriz parcial frecuencias distribuciones diferenciales SBox-1..............21

Tabla 4 Distribuciones de frecuencia teóricas de alta probabilidad.....................23

Tabla 5 División clave por SBox................................................................................27

Page 98: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 72 -

Page 99: ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)uso, como la fuerza bruta, el criptoanálisis diferencial y lineal, etc. El interés de este proyecto es demostrar la utilidad de los

Aplicación de algoritmos genéticos al criptoanálisis diferencial del cifrador de

Feistel

- 73 -

BIBLIOGRAFÍA

[STAN99] Federal Information, Processing Standards Publication 46-3,

"Specifications for the Data Encryption Standard (DES)" 1999 October 25

[SECU52] National Security Agency (NSA), Cryptologic Intelligence Agency of

the United States Department of Defense.

[MHEY02] Howard M. Heys, "A tutorial on Linear and Differential

Cryptanalysis", Faculty of Engineering and Applied Science, 2002.

[BIHA93] Eli Biham and Adi Shamir, "Differential cryptanalysis of the data

encryption standard", 1993.

[COPPE94] Don Coppersmith, "The Data Encryption Standard (DES) and its

strength against attacks", IBM Journal of Research and Development 38, 1994.

[VILLA09] Dr. José Villar Collado, "Introducción a los algoritmos genéticos",

Escuela Técnica Superior de Ingeniería-ICAI, 2009.

[MILLE95] Brad L. Miller and David E. Goldberg, "Genetic Algorithms,

Tournament Selection, and the Effect of Noise", 1995.

[AYMA07] Eng. Ayman M. B. Albassal, "Genetic Algorithm Cryptanalysis of a

Feistel Type Block Cipher", Ain Shams University, 2004.

[LASK06] E.C. Laskari, G.C. Meletiou, "Applying evolutionary computation

methods for the cryptanalysis of Feistel ciphers", University of Patras, 2006.

[SONG07] Jun Song, Huanguo Zhang, "Cryptanalysis of Four-Round DES

Based on Genetic Algorithm", Computer School Wuhan university, 2007.

[ZHAN07] Jun Song, Huanguo Zhang, "Cryptanalysis of Two-Round DES

Using Genetic Algorithms", Computer School Wuhan university, 2007.