Nuevas ideas en criptografía simétrica
Autor: Damián Mateos Ramos (
[email protected])
1
Este es el texto que corresponde al trabajo de fin de carrera presentado
a fin de obtener el título de Ingeniero Informático por la Universidad de
León.
Deseo
agradecer
a
Francisco
Javier
Cabida
Fernández
(
[email protected]) por soportarme tanto tiempo con mis locas ideas
y por animarme a publicar este trabajo.
Deseo asimismo agradecer a Kriptopolis (www.kriptopolis.com) la
posibilidad de publicarlo.
El presente trabajo se acoge a
la
licencia Creative Commons
Reconocimiento – No Comercial – Compartir Igual
Reconocimiento. Debe reconocer los créditos de la obra de la
manera especificada por el autor o el licenciador.
No comercial. No puede utilizar esta obra para fines
comerciales.
Compartir bajo la misma licencia. Si altera o transforma esta
obra, o genera una obra derivada, sólo puede distribuir la obra
generada bajo una licencia idéntica a ésta.
Dicha licencia puede ser consultada en la siguiente dirección:
http://creativecommons.org/licenses/by-nc-sa/2.5/es/
Creado con PDF Creador 0.9.3
1 Índice
2
1
2
3
4
Índice............................................................................................................... 2
Introducción..................................................................................................... 4
Red de Feistel ................................................................................................... 6
Red de Feistel extendida ................................................................................... 9
4.1
4.2
4.3
4.4
4.5
4.6
4.7
Notación ................................................................................................ 9
El problema de la decodificación ........................................................... 10
Reversibilidad del algoritmo .................................................................. 14
Asimetría aparente ............................................................................... 17
Funciones interconectadas ................................................................... 20
Funciones inversibles ........................................................................... 21
Construcción de redes .......................................................................... 22
4.7.1
4.7.2
4.7.3
4.7.4
Herramientas de trabajo ...................................................... 22
Construcción de redes completas ......................................... 23
Construcción mediante eslabones ........................................ 27
Ejemplo de red construida mediante eslabones .................... 31
3.8 Subclaves ................................................................................................. 34
5
Funciones ...................................................................................................... 35
5.1
5.2
Ataques para la obtención de la clave.................................................... 36
Ejemplos de funciones.......................................................................... 37
5.2.1
5.2.2
5.2.3
5.2.4
5.2.5
datos
5.2.6
Funciones con una entrada que afectan a una salida ........... 38
Funciones de dos entradas que afectan a dos salidas ........... 40
Conseguir proteger las subclaves ......................................... 42
Resistencia al criptoanálisis ................................................. 43
Modificación del flujo de datos según determinen los propios
43
Criptosistema aleatorio ........................................................ 44
6
Claves ............................................................................................................ 47
6.1
6.2
6.3
6.4
Claves débiles y semidébiles ................................................................. 47
Algoritmo para detectar claves débiles y semidébiles ............................. 49
Ejemplo de búsqueda de claves débiles y semidébiles ............................ 53
Evitando codificaciones débiles ............................................................. 58
7
Propuesta de algoritmo simétrico de cifrado .................................................... 60
7.1
7.2
7.3
Estructura ........................................................................................... 60
Las funciones ....................................................................................... 61
Filtros .................................................................................................. 71
7.4 Detalle de la distribución de claves ....................................................... 71
7.5 Detalle de los filtros.............................................................................. 72
7.6
7.7
Análisis realizados................................................................................ 73
Codificación, esquema de relleno .......................................................... 78
3
8
Implementación del algoritmo (NICS)............................................................... 80
8.1 Optimizaciones aplicadas ..................................................................... 80
8.2
8.3
8.4
Código ................................................................................................. 82
Ejecución ............................................................................................. 85
Resultados obtenidos ........................................................................... 85
9
Conclusiones.................................................................................................. 87
10 Bibliografía..................................................................................................... 88
4
2 Introducción
La seguridad informática es un aspecto muy importante en nuestra vida
cotidiana, no siempre nos percatamos de ello, pero cada vez que
utilizamos el móvil o la tarjeta de crédito, cada vez que nos
comunicamos con nuestro banco por Internet, estamos haciendo uso de
ella. Se nos presenta como algo transparente, buscando siempre una
sencillez que contrasta con la tremenda complejidad que supone
lograrla.
Actualmente existen dos vertientes en criptografía (cifrado de datos) que
representan dos formas de resolver el problema: criptografía de clave
pública y criptografía de clave privada, cada una con sus ventajas e
inconvenientes.
Los últimos avances y estudios permiten ver la despiadada carrera
existente para crear y desbaratar
los algoritmos utilizados.
Recientemente se ha logrado romper una clave RSA de 1024 bits,
cuando se esperaba que pudieran utilizarse hasta 10 años más; se han
encontrado deficiencias en los conocidos algoritmos de hashing SHA-1 y
MD5, los más utilizados del mundo, con especial severidad en el MD5
en el que se ha conseguido que el hash de dos conjuntos de datos
cualesquiera y totalmente diferentes coincidan. Tampoco se libran los
criptosistemas de clave privada: la aparición del criptoanálisis imposible
ha supuesto una tremenda revolución y algoritmos que antes se
consideraban inmunes a ataques más eficientes que la fuerza bruta ya
no lo sean. Otra amenaza importante es la aparición de la futura
computación cuántica, mucho más poderosa que la computación
actual.
En este panorama la única forma que existe actualmente para lograr
mantener la seguridad es el aumento del tamaño de las claves
utilizadas, y el desarrollo de nuevos algoritmos.
La intención del presente trabajo es obtener un criptosistema simétrico
que pueda ofrecer un alto grado de seguridad, trabajando con claves
mayores de las utilizadas actualmente y con una característica muy
5
interesante: el mismo algoritmo será capaz de cifrar y descifrar, y
utilizará operaciones sencillas y será muy sencillo de implementar.
Sin embargo hoy día no existe ninguna receta que permita abordar el
diseño de este tipo de criptosistemas, es más bien un proceso creativo,
así pues otro de los objetivos es mostrar un conjunto de ideas y
razonamientos de aplicación directa en el diseño de los mismos,
proveyendo así de unas directrices y una metodología que simplifique
ese diseño, junto a unas herramientas que permitan analizar posibles
debilidades.
Para ello se estudiará la Red de Feistel y se propondrá una
generalización de la misma y un método sencillo de construcción de
redes que sean capaces de cifrar y descifrar los datos sin ser necesaria
ninguna modificación. También se tratarán las operaciones a realizar en
esa red, cuales son aconsejables y cuales no según los objetivos que nos
marquemos; y por último se hablará del tratamiento y la forma de
utilización de la clave para maximizar la seguridad y eliminar algunos
de los riesgos conocidos.
En la segunda parte del trabajo será en la que se desarrolle el diseño
del algoritmo ya mencionado, basándose en parte de las ideas de la
primera parte y efectuándole una serie de test con el objetivo de
determinar las características que posea. También le serán aplicadas
algunas herramientas expuestas en la primera parte cuyo objetivo es
detectar debilidades comunes.
Es necesario mencionar la escasez de recursos computacionales con los
que se ha abordado la tarea y la gran amplitud del trabajo, lo que ha
llevad
Comentarios de: Nuevas ideas en Criptografía Simétrica (0)
No hay comentarios