ebook img

diseño, implementación y optimización de algoritmos criptográficos de generación de aleatorios y PDF

329 Pages·2003·8.44 MB·Spanish
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview diseño, implementación y optimización de algoritmos criptográficos de generación de aleatorios y

DISEÑO, IMPLEMENTACIÓN Y OPTIMIZACIÓN DE ALGORITMOS CRIPTOGRÁFICOS DE GENERACIÓN DE ALEATORIOS Y FACTORIZACIÓN DE ENTEROS Pedro María ALCOVER GARAU Tesis propuesta para la obtención del Grado de Doctor de Informática Departamento de Ingeniería y Tecnología de Computadores Universidad de Murcia Septiembre de 2003 Dirigida por D. José Manuel GARCÍA CARRASCO Universidad de Murcia DISEÑO, IMPLEMENTACIÓN Y OPTIMIZACIÓN DE ALGORITMOS CRIPTOGRÁFICOS DE GENERACIÓN DE ALEATORIOS Y FACTORIZACIÓN DE ENTEROS Pedro María ALCOVER GARAU Tesis propuesta para la obtención del Grado de Doctor de Informática Departamento de Ingeniería y Tecnología de Computadores Septiembre de 2003 Dirigida por D. José Manuel GARCÍA CARRASCO Tú sabes porqué. ... Y tú —que lo sabes—, comprendes que no tenga nada más que decir. i ÍNDICE GENERAL i ÍNDICE GENERAL. i c CUADROS. xi a ALGORITMOS. xiii t TABLAS. xv g GRÁFICAS. xxi Índice General i a AGRADECIMIENTOS. xxiii r RESUMEN. xxv a ABSTRACT. xxvii 1 INTRODUCCIÓN. 1 1.1. EL RETO DE LA FACTORIZACIÓN DE ENTEROS. 5 1.2. COMPLEJIDAD DE LOS ALGORITMOS DE FACTORIZACIÓN. 6 1.2.1. La notación “big – o”. 7 1.2.2. De los tiempos polinómicos a los tiempos exponenciales. 8 1.3. MEJORAS EN EL RENDIMIENTO DEL CÓDIGO. OPTIMIZACIÓN. 9 1.4. OBJETIVOS DE LA TESIS. 10 1.5. BREVE RESUMEN DEL DESARROLLO DE ESTA TESIS. 11 1.6. GUÍA PARA LA LECTURA DE LA TESIS 13 2 ALGUNAS PROPIEDADES CRIPTOGRÁFICAS DE LOS NÚMEROS PRIMOS. 15 2.1. EXISTENCIA DE INVERSOS. 18 2.1.1. Nociones Básicas 18 2.1.1.1. Existencia de inversos y números primos. 18 2.1.1.2. Función de EULER y otras nociones matemáticas. 21 2.1.2. Un desarrollo algebraico sobre la aritmética modular. 23 2.1.3. Cálculo del inverso cuando desconocemos los factores del 27 módulo. 2.1.4. Algunas consideraciones sobre el criptosistema RSA. 29 2.2. LOCALIZACIÓN Y DISTRIBUCIÓN DE LOS NÚMEROS PRIMOS. 31 2.2.1. Símbolos de LEGENDRE y de JACOBI. 33 Índice General ii 2.2.1.1. Interés del residuo cuadrático en criptografía. 33 2.2.1.2. Símbolos de JACOBI y LEGENDRE. Nociones y métodos de cálculo. 34 2.2.2. En busca de los números primos. 36 2.2.2.1. Distribución de los números primos dentro del conjunto de los enteros. 36 2.2.2.2. Tests probabilísticos de primalidad. 37 2.2.2.3. Tests deterministas. 39 2.2.2.4. Algoritmo de MILLER–RABIN. 40 2.3. OBTENCIÓN DE LOS PRIMOS QUE COMPONEN UN ENTERO: FACTORIZACIÓN. 43 2.3.1. Intento de factorización por divisiones sucesivas. 43 2.3.2. Algoritmo Rho de POLLARD. 44 2.3.3. Algoritmo (p – 1) de POLLARD. 45 2.3.4. Algunas exigencias para los primos que componen el módulo del criptosistema RSA, a la luz de estos algoritmos de factorización. 45 2.3.5. Método de FERMAT. 47 2.3.6. Algoritmos modernos (subexponenciales) de factorización. 47 2.3.7. Estrategia de MORRISON y BRILLHART: CFRAC. 48 2.3.8. Criba lineal de SCHROEPPEL. 49 2.3.9. Criba cuadrática (QS y MPQS). 50 2.3.10. Criba de campo numérico (NFS). 53 2.3.11. Curvas elípticas. 54 3 CONCEPTOS BÁSICOS DEL RENDIMIENTO DE UN ORDENADOR. 55 3.1. MEDIDA DEL RENDIMIENTO. 55 3.2. LEY DE AMDHAL. 57 3.3. VÍAS DE MEJORA. 57 3.4. RIESGOS ESTRUCTURALES Y DE CONTROL. 58 3.5. RIESGOS DE DATOS. 60 3.5.1. Accesos a memoria. 61 3.5.1.1. Cómo aprovechar la localidad espacial. 62 3.5.1.2. Cómo medir y mejorar el rendimiento de la caché. 63 Índice General iii 3.5.1.3. Algunas técnicas de optimización de los accesos a memoria. 64 4 UNA NUEVA IMPLEMENTACIÓN DE ENTERO LARGO PARA PROCESOS DE FACTORIZACIÓN. 67 4.1. FUNDAMENTOS MATEMÁTICOS PARA UN SISTEMA NUMÉRICO BÁSICO. 69 4.1.1. Nociones matemáticas para la correcta definición de un modelo de entero. 69 4.1.2. Nociones matemáticas para el desarrollo de algunas operaciones aritméticas con enteros. 70 4.1.2.1. Aspectos teóricos de la operación para la suma. 71 4.1.2.2. Aspectos teóricos de la operación para la resta. 72 4.2. MODELOS DE NÚMERO PARA UNA CODIFICACIÓN EN UN ORDENADOR. 73 4.2.1. Algunos Modelos de entero largo ya definidos. 74 4.2.2. Presentación de nuestro modelo de entero largo. 76 4.2.2.1. Comentarios comparativos entre los distintos modelos presentados. 77 4.2.2.2. Otras consideraciones sobre nuestro modelo de entero 80 largo. 4.3. DESCRIPCIÓN DE NUESTROS OPERADORES EN NUESTRO MODELO DE NÚMERO. 82 4.3.1. Operadores auxiliares. 82 4.3.1.1. Reserva de espacio en memoria. 83 4.3.1.2. Asignación: Inicializar a cero una variable NUMERO. 84 4.3.1.3. Asignación: Copia del valor de una variable a otra, ambas de tipo NUMERO. 84 4.3.1.4. Operador para actualizar tamaños (campos T y B) de una variable tipo NUMERO. 84 4.3.1.5. Operaciones relacionales. 85 4.3.1.6. Operadores a nivel de bit: Intercambio de valores entre dos variable tipo NUMERO. 85 4.3.1.7. Operación a nivel de bit: Desplazamiento a izquierda. 86 Índice General iv 4.3.1.8. Operación a nivel de bit: Desplazamiento a derecha. 86 4.3.2. Operadores aritméticos. 87 4.3.2.1. Implementación de la operación para la suma. 87 4.3.2.2. Implementación de la operación para la resta. 87 4.3.2.3. Implementación de la operación para el producto. 91 4.2.2.4. Implementación de la operación para la división. 93 4.4. OTRAS FUNCIONES MATEMÁTICAS. 95 4.4.1. Algoritmo de EUCLIDES: cálculo del máximo común divisor. 95 4.4.2. Cálculo de la parte entera de la raíz cuadrada de un entero. 96 4.4.3. Cálculo de la potencia con base y exponente enteros largos. 97 4.5. FUNCIONES PARA LOS NÚMEROS PRIMOS. 98 4.5.1. Algoritmo para el cálculo de los símbolos de LEGENDRE y JACOBI. 98 4.5.2. Test de las divisiones sucesivas. Criba de ERASTÓTHENES. 100 4.5.3. Presentación del algoritmo de MILLER–RABIN. 102 4.5.4. Primos especiales: primos fuertes y primos doblemente seguros. 103 4.6. REFLEXIONES FINALES. 104 5 DISEÑO E IMPLEMENTACIÓN DE GENERADORES DE BITS ALEATORIOS Y PSEUDOALEATORIOS. 107 5.1. DESCRIPCIÓN DE UN GENERADOR DE SECUENCIAS DE BITS ALEATORIAS POR ENTRADAS DE TECLADO. 111 5.1.1. Presentación del generador implementado. 111 5.1.2. Primer estudio de las características del generador descrito. 113 5.1.2.1. Postulados de aleatoriedad de GOLOMB. 115 5.1.2.2. Estudio del perfil de la complejidad lineal del generador. 116 5.1.2.3. Algoritmo de BERLEKAMP–MASSEY para determinar el perfil de la complejidad lineal del generador. 117 5.1.3. Tests estadísticos. Tests de contraste de hipótesis. 119 5.1.3.1. Descripción de los cinco tests estadísticos recomendados en [Mene97]. 121 5.1.3.2. Resultados de la aplicación de los tests y conclusiones. 123 5.1.4. Test estadístico universal de MAURER. 126 5.1.4.1. Presentación teórica del test de MAURER. 126 5.1.4.2. Algoritmo para el test estadístico universal de MAURER. 129 Índice General v

Description:
Mi madre me cuenta a veces lo mucho que desea que termine la tesis: dice la función malloc(), definida en la biblioteca estándar de C stdlib.h.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.