Table Of ContentUNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO EN INFORMÁTICA
PROYECTO FIN DE CARRERA
EL ALGORITMO CRIPTOGRÁFICO
AES PARA PROTECCIÓN DE DATOS
AUTOR: D. Miguel Vázquez Fernández
Madrid Septiembre de 2007
Autorizada la entrega del proyecto del alumno:
D. Miguel Vázquez Fernández
Madrid, 3 de septiembre de 2007
EL DIRECTOR DEL PROYECTO
Fdo.: Dr. D. Francisco Javier Rodríguez Gómez
Vº Bº del Coordinador de Proyectos
Fdo.: D. David Contreras Bárcena Fecha: ……/ ……/ ……
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO EN INFORMÁTICA
PROYECTO FIN DE CARRERA
EL ALGORITMO CRIPTOGRÁFICO AES
PARA PROTECCIÓN DE DATOS
AUTOR: D. Miguel Vázquez Fernández
DIRECTOR: Dr. D. Francisco Javier Rodríguez Gómez
El Algoritmo Criptográfico AES para
Protección de Datos
Agradecimientos
A mi familia, por mostrarme su apoyo y su ayuda, animándome y protegiéndome. Por
enseñarme y dedicarme su gran esfuerzo para que todo esto fuera posible.
A mi Director y gran amigo, Francisco Javier Rodríguez Gómez, por su paciencia y
ayuda. Por todos los valores enseñados y su gran dedicación en todo momento.
I
Proyecto Fin de Carrera Algoritmo Criptográfico AES para protección de datos
Resumen
En el presente Proyecto se presentan unos estudios sobre el estándar de cifrado para
protección de datos, el algoritmo criptográfico AES, basado en el algoritmo Rijndael,
pretendiendo analizar y estudiar las bases matemáticas de este algoritmo, así como su
implementación y su aplicación gráfica para una mejor comprensión.
De esta manera el principal objetivo consistirá en desarrollar una descripción de los
fundamentos matemáticos y los métodos o algoritmos numéricos que cumplan con unas
condiciones especificadas utilizadas por el algoritmo.
A su vez se hará una amplia investigación de dichas condiciones específicas de los
elementos principales como son la clave, el cifrado y el descifrado, complementada con una
amplia documentación para una mejor comprensión y entendimiento.
Para comprobar y demostrar estos objetivos se ha desarrollado una serie de códigos y
aplicaciones que ayudarán a su mejor entendimiento y su integración en las diferentes aplicaciones
prácticas del mundo real.
Este Proyecto también sirve para demostrar y comprobar cómo mediante el procesamiento
matemático, numérico y simbólico, la importancia que este campo tiene en una disciplina tan
importante como es el de la seguridad y la protección de datos, tan significativo en nuestros días,
donde hay muchísimas posibilidades de acceso a una misma información.
La mayor importancia y motivación de este Proyecto reside en el gran interés que ha
II
Proyecto Fin de Carrera Algoritmo Criptográfico AES para protección de datos
despertado el mundo de la codificación, la protección de datos, la seguridad y la importancia que
estos campos tienen y tendrán en un futuro muy próximo en el mundo de la informática y las
comunicaciones. Máxime cuando se observa que estas disciplinas tecnológicas evolucionan a
pasos agigantados y se requieren teorías matemáticas más seguras.
III
Proyecto Fin de Carrera Algoritmo Criptográfico AES para protección de datos
Abstract
This project presents a study about the Standard for an encrypted protection of data, AES
the advanced cryptographic algorithm, which is based on the Rijndael algorithm. It is intended to
analyze and to study the mathematical bases of this algorithm, at the same time as the
implementation and the graphical application for a better understanding.
In this connection, the main objective will consist in developing a description of the
mathematical foundations and the methods or numerical algorithms that meet specific conditions
used by the algorithm.
Also, such specific conditions- key, encrypted and decrypted will be subject to a large
investigation which will be complemented with the full documentation for its better
comprehension and understanding.
To test and substantiate such objectives, a series of codes and applications have been
developed in order to help its understanding and its integration into practical applications in the
real world.
This project also pretends to test and show, the importance of mathematical, numerical
and symbolic process knowledge in the field of security and the data protection discipline, key
knowledge in today world with many ways to access information
The importance and motivation of this project respond to the significant interest that the
world of codification, data protection and information security currently have. Moreover, greater
IV
Proyecto Fin de Carrera Algoritmo Criptográfico AES para protección de datos
interest are expected in the near future, in everything related to the world of communications and
computer science, as this technological discipline evolve at a rapid pace that requires very secure
mathematical developments.
V
Proyecto Fin de Carrera Algoritmo Criptográfico AES para protección de datos
Índice
Índice......................................................................................................................................... VI
1. Introducción........................................................................................................................... 2
1.1. Historia.................................................................................................................... 5
1.2 Objetivos del Proyecto............................................................................................. 17
2. Fundamentos Matemáticos.................................................................................................... 19
2.1. Campos Finitos GF(2^8)......................................................................................... 19
2.2 Suma en GF(2^8)..................................................................................................... 22
2.3 Multiplicacion en GF(2^8)....................................................................................... 23
2.4 Multiplicacion de polinomios de 4 bytes en GF(2^8).............................................. 25
3. Especificación del Algoritmo................................................................................................ 27
3.1 Estructura del Algoritmo.......................................................................................... 29
3.2 Descripción del proceso de cifrado.......................................................................... 31
3.3 Funciones utilizadas para el cifrado......................................................................... 35
3.3.1 Función AddRoundKey.............................................................................. 37
3.3.1.1 Cálculo de las subclaves............................................................... 39
3.3.2 Función ByteSub........................................................................................ 40
3.3.3 Función ShiftRow....................................................................................... 43
3.3.4 Función MixColumns................................................................................. 46
3.3.5 Función KeySchedule................................................................................. 48
3.3.6 Ejemplo Explicativo del Algoritmo de cifrado.......................................... 52
3.4 Descripción del proceso de descifrado..................................................................... 54
3.4.1 Función utilizada para el descifrado........................................................... 56
3.5 Ejemplo de Cifrado y Descifrado............................................................................. 58
4. Aspectos en la Implementación............................................................................................. 65
4.1 Función Selección de clave...................................................................................... 65
4.2 Función de expansión de clave................................................................................. 65
4.3 Desarrollo del Algoritmo.......................................................................................... 69
5. Aplicaciones del algoritmo en la proteccion de datos........................................................... 75
6. Conclusiones y líneas futuras................................................................................................ 79
7. Desarrollo de la aplicación.................................................................................................... 82
7.1. Ciclo de vida............................................................................................................ 82
7.2. Identificación de necesidades.................................................................................. 90
7.3. Análisis de requisitos............................................................................................... 91
7.4. Arquitectura técnica................................................................................................. 93
VI
Proyecto Fin de Carrera Algoritmo Criptográfico AES para protección de datos
7.5. Diseño de la interfaz de usuario.............................................................................. 94
8. Valoración económica y planificación.................................................................................. 105
8.1. Introducción............................................................................................................. 105
8.2. Técnicas de estimación de costes....................................................................................... 105
8.3. Planificación temporal del proyecto........................................................................ 108
8.4. Costes del proyecto.................................................................................................. 108
9. Apéndice y Glosario.............................................................................................................. 110
Bibliografía................................................................................................................................ 113
CD-ROM con el Proyecto Fin de Carrera y la estructura de archivos de la Aplicación Informática.
VII
Description:mathematical foundations and the methods or numerical algorithms that meet specific conditions used by the algorithm. developed in order to help its understanding and its integration into practical applications in the real world.