Publicado el 26 de Julio del 2018
795 visualizaciones desde el 26 de Julio del 2018
1,5 MB
103 paginas
Creado hace 9a (19/05/2014)
Universidad de Buenos Aires
Facultades de Ciencias Económicas,
Cs. Exactas y Naturales e Ingeniería
Maestría en Seguridad Informática
Tema:
Criptografía
Título:
Implementación de OTP usando el
protocolo Diffie Hellman basado en
curvas elípticas (ECDH)
Autor: Ing. Rodrigo Horacio Zapata Valdez
Tutor: Mg. Ing. Juan Alejandro Devincenzi
Año 2014
Cohorte 2012
Declaración Jurada de origen de los contenidos
“Por medio de la presente, el autor manifiesta conocer y aceptar el Reglamento de
Trabajos Finales vigente y se hace responsable que la totalidad de los contenidos
del presente documento son originales y de su creación exclusiva, o bien
pertenecen a terceros u otras fuentes, que han sido adecuadamente referenciados
y cuya inclusión no infringe la legislación Nacional e Internacional de Propiedad
Intelectual”
Resumen
Desde tiempos inmemoriales la comunicación entre los seres humanos es
una necesidad que fue logrando distintas alternativas de solución a medida del
transcurso de los años y la evolución del conocimiento.
La problemática de que los mensajes emitidos solo fueran comprendidos
por los destinatarios, impulsó la creación y desarrollo de la criptografía. Ciencia que
nació y se fortaleció en el ámbito militar, pero que desde hace unas décadas juega
un papel importante en la vida cotidiana, en especial con el auge de Internet.
A lo largo del trabajo se desarrollarán los conceptos necesarios para poder
construir un sistema semánticamente seguro. Sabiendo que el sistema de cifrado
denominado One Time Pad ofrece la propiedad de secreto perfecto, y que su
implementación es algo compleja en términos prácticos, se construirá un sistema
con ciertas características del OTP que ofrezca la seguridad deseada. Básicamente la
gran diferencia se encuentra en el proceso de generación de claves aleatorias, que
serán reemplazadas por claves pseudoaleatorias obtenidas a través de un proceso
Diffie-Hellman basado en curvas elípticas.
Palabras claves: criptografía, one time pad, Diffie Hellman, curvas elípticas,
seguridad semántica
i
TABLA DE CONTENIDO
1
Presentación de la tematica ................................................................................. 1
1.1
Formulación de la problemática.................................................................... 1
1.2 Objetivos:....................................................................................................... 2
1.2.1
1.2.2
Generales ............................................................................................... 2
Específicos .............................................................................................. 2
1.3
1.4
1.5
Hipótesis ........................................................................................................ 3
Alcance .......................................................................................................... 3
Estructura del trabajo .................................................................................... 3
2
Criptografía .......................................................................................................... 5
2.1
2.2
Criptografía asimétrica .................................................................................. 6
Criptografía simétrica .................................................................................... 6
2.2.1
One-Time Pad o cifrador de Vernam ..................................................... 7
3
Conceptos de Seguridad ....................................................................................... 9
3.1
Definiciones y conceptos de seguridad ......................................................... 9
3.1.1
Seguridad Perfecta ................................................................................ 9
3.1.2
3.1.3
Conceptos asociados a la Seguridad Perfecta ...................................... 10
Seguridad computacional .................................................................... 12
3.2
Conceptos básicos de la seguridad.............................................................. 16
3.2.1
3.2.2
Seguridad semántica ............................................................................ 18
Pseudoaleatoriedad ............................................................................ 19
4
Introducción a la criptografía de curvas elípticas ............................................... 20
4.1
Problema del logaritmo discreto de curvas elípticas (PLDCE) .................... 22
4.1.1
Longitud de la clave ............................................................................. 22
4.2
4.3
4.4
4.5
4.6
Elección del campo finito ............................................................................ 23
Estándares relacionados .............................................................................. 23
Dominio de parámetros ............................................................................. 24
Requerimientos de la curva elíptica ........................................................... 25
Ataques conocidos contra las curvas elípticas ........................................... 27
4.6.1
Representación de los puntos de una curva elíptica .......................... 29
5
Establecimiento de claves compartidas ............................................................. 31
5.1
5.2
5.3
Intercambio de claves Diffie-Hellman ........................................................ 31
Algoritmo de establecimiento de clave Diffie-Hellman .............................. 31
Protocolo Diffie-Hellman de Curva Elíptica ................................................ 32
ii
5.3.1
Validación de claves públicas .............................................................. 33
6 Desarrollo del sistema ........................................................................................ 34
6.1
Introducción ................................................................................................ 34
6.2 One-Time Pad modificado ........................................................................... 34
6.2.1
Funcionamiento del sistema ................................................................ 35
6.3
Análisis de indistinguibilidad del sistema .................................................... 36
6.3.1
6.3.2
6.3.3
6.3.4
Construcción criptográfica con un generador pseudoaleatorio .......... 36
Teorema ............................................................................................... 37
Generación de claves pseudoaleatorias en ECDH ............................... 39
Análisis de indistinguibilidad del OTP modificado ............................... 39
7
El lenguaje Java ................................................................................................... 41
7.1
7.2
Justificación de elección del Lenguaje Java ................................................. 41
Características criptográficas de Java ......................................................... 43
7.2.1
7.2.2
7.2.3
Proveedores Criptográficos .................................................................. 45
Proveedores de terceros ...................................................................... 48
Justificación elección de Proveedor Criptográfico ............................... 54
8
Implementación del sistema............................................................................... 56
8.1
8.2
8.3
Instalación de los archivos de políticas de JCE ............................................ 56
Instalación y configuración del proveedor Criptográfico FlexiProvider ...... 57
Descripción del programa ........................................................................... 58
8.3.1
Pseudoaleatoriedad y generación de claves en Java .......................... 62
9
Conclusiones ....................................................................................................... 66
10
Bibliografía ...................................................................................................... 69
Anexo A: Aritmética Modular .................................................................................... 75
A.1 Estructuras algebraicas ................................................................................... 76
A.1.2 Grupos ....................................................................................................... 76
A.2 Campos Finitos ................................................................................................ 77
A.2.1 Campo primo ...................................................................................... 78
A.2.2 Campos binarios .............................................................................. 79
A.2.3 Subcampo .................................................................................................. 79
Anexo B: Curvas elípticas .......................................................................................... 80
B.1 Estructura de grupo (caso general) ................................................................. 82
B.1.1 Curvas elípticas sobre campos ............................................................. 83
B.1.2 Curvas elípticas sobre el campo ...................................................... 87
B.2 Algunas propiedades básicas .......................................................................... 88
iii
Anexo C: Parámetros recomendados para la curva secp521r1 ................................. 89
Anexo D: Codigos de porgramas de prueba ...........................
Comentarios de: Implementación de OTP usando el protocolo Diffie Hellman basado en curvas elípticas (ECDH) (0)
No hay comentarios