220 likes | 389 Views
JORNADAS GRATUITAS DE CRIPTOGRAFÍA Y SEGURIDAD INFORMÁTICA. EST Escuela Superior Técnica Facultad de Ingeniería del Ejército Buenos Aires, 14 de noviembre de 2013. Fortalezas y debilidades de la cifra con clave pública: el caso de RSA. Ejemplos prácticos del estándar. Jorge Ramió Aguirre
E N D
JORNADAS GRATUITAS DE CRIPTOGRAFÍA Y SEGURIDAD INFORMÁTICA EST Escuela Superior TécnicaFacultad de Ingeniería del Ejército Buenos Aires, 14 de noviembre de 2013
Fortalezas y debilidades de la cifra con clave pública: el caso de RSA.Ejemplos prácticos del estándar. Jorge Ramió Aguirre Profesor UPM, Director proyectos Criptored, Intypedia y Crypt4you http://www.lpsi.eui.upm.es/~jramio
Breve introducción al algoritmo RSA (1) • En febrero de 1978 Ron Rivest, AdiShamir y Leonard Adleman proponen RSA, un algoritmo de clave pública Pasos del algoritmo • Cada usuario elige un grupo n = pq con p y q primos • Los valores p y q no se hacen públicos • Cada usuario calcula (n) = (p-1)(q-1) … la trampa • Cada usuario elige una clave pública e • Condiciones de clave pública: 1 < e < (n) y mcd [e, (n)] = 1 Fortalezas y debilidades en RSA: casos prácticos
Breve introducción al algoritmo RSA (2) Cada usuario calcula la clave privada d = inv [e, (n)] Se hace público el grupo n y la clave e Se guarda en secreto la clave d. También guardará p y q puesto que en la operación de descifradousará el Teorema del Resto Chino Operación de Cifra: C = NeR mod nR Operación de Firma: C = h(M)dE mod nE Fortalezas y debilidades en RSA: casos prácticos
La seguridad computacional del sistema ¿Y dónde reside la seguridad del sistema? Básicamente en que dado un valor n, producto de dos primos p y q ambos grandes, es muy difícil encontrar estos dos primos en el sentido que dicha tarea tarda mucho tiempo y consume demasiados recursos Se trata del Problema de la Factorización Entera, que se vuelve intratable cuando los números que se encuentran implicados son muy grandes… Fortalezas y debilidades en RSA: casos prácticos
¿Tiempo, recursos, número grande? Mucho tiempo y demasiados recursos: miles de millones de años y toda la capacidad de cómputo mundial … pero … ¿Qué se considera hoy en día un número grande? Hablamos de al menos 1.024 bits, unos 300 dígitos, … pero lógicamente estos valores aún no han sido factorizados No entraremos en conceptos matemáticos (problemas NP)… lo comprobaremos en las siguientes diapositivas de una manera más simple y coloquial Fortalezas y debilidades en RSA: casos prácticos
El problema fácil (P) y su solución Cálculo fácil o polinomial (función directa) Calcular “a mano” los siguientes productos de dos primos y tome el tiempo aproximado que tarda en la operación: a) 13*31 b) 113*131 c) 1.013*1.031 ... calcule ... Dificultad polinomial (rápido) … no vale usar calculadora 13*31 = 403; 113*131 = 14.803; 1013*1031 = 1.044.403 A medida que aumenta el tamaño de la entrada, el tiempo de cálculo aumenta proporcionalmente con el número de dígitos Fortalezas y debilidades en RSA: casos prácticos
El problema difícil (NP) Paciencia, un computador va a sufrir lo mismo ... • Cálculo difícil o polinomial no determinista (función inversa) • Usando la criba de Eratóstenes, factorice en dos primos los siguientes números y vuelva a tomar el tiempo empleado: • a) 629 b) 17.399 c) 1.052.627 calcule... • Ayuda: en el caso • a) son primos de 2 dígitos • b) son primos de 3 dígitos • c) son primos de 4 dígitos Fortalezas y debilidades en RSA: casos prácticos
Solución al problema difícil Dificultad polinomial no determinista (lento) a) 629 b) 17.399 c) 1.052.627 Da igual que el algoritmo sea éste -muy elemental- u otro más eficaz; el tiempo de cálculo aumenta mucho al incrementar en un solo dígito los números en cuestión. Esto es NO lineal. Los resultados a), b) y c) son el producto de los números primos inmediatamente superiores a los que se usaron en el cálculo polinomial es decir 17*37; 127*137; 1019*1033. Fortalezas y debilidades en RSA: casos prácticos
Ejemplo gráfico del problema ¿Hay otros frentes de ataque? Sí y uno muy interesante: paradoja del cumpleaños Ejercicio básico realizado con software factor.exe Existen programas mucho más rápidos, e.g. Msieve Fortalezas y debilidades en RSA: casos prácticos
La paradoja del cumpleaños • Con 23 personas escogidas al azar, la probabilidad que dos de ellas cumplan años en el mismo día es mayor que el 50%. • Solución: • Pizarra con los 365 días del año • Las personas entran al aula de una en una y van marcando el día de su cumpleaños en la pizarra … hasta que entre una que ya lo vea marcado • Cuando haya una colisión, se cuentan los accesos y se repite proceso • Para superar esa confianza del 50% basta que entren sólo 23 personas Fortalezas y debilidades en RSA: casos prácticos
Paradoja del cumpleaños en RSA C = NeR mod nR (el atacante conoce eR y nR) Elige un valor de ataque N cualquiera (e.g. N = 2) Elige dos números aleatorios distintos i, j, dentro del cuerpo de cifra público n. Normalmente i = 1 y j = (n/2) + 1 Calcula Ni mod n = Ci y Nj mod n = Cj. Comprueba si Ci = Cj Si no hay colisión, incrementa i y j, repitiendo el proceso y comparando todos los resultados de i con los de j … PERO … sucede algo muy interesante (anillos) que optimiza el ataque. Fortalezas y debilidades en RSA: casos prácticos
Paradoja del cumpleaños en RSA Ejemplo n = 133 e = 5 N = 25 Con simples ecuaciones y conociendo que e = 5, se puede encontrar la clave privada d. Fortalezas y debilidades en RSA: casos prácticos
Capturas de ataque con LegionRSA (1/7) Ataque a RSA 70 bits monousuario: 21 min, 45 seg (servidor) Fortalezas y debilidades en RSA: casos prácticos
Capturas de ataque con LegionRSA (2/7) Ataque a RSA 70 bits monousuario: 21 min, 45 seg (cliente) Fortalezas y debilidades en RSA: casos prácticos
Capturas de ataque con LegionRSA (3/7) Ataque a RSA 70 bits en red con 4 clientes: 5 min, 18 seg (servidor) Fortalezas y debilidades en RSA: casos prácticos
Capturas de ataque con LegionRSA (4/7) Ataque a RSA 70 bits en red con 4 clientes: 5 min, 18 seg (Cliente1) Fortalezas y debilidades en RSA: casos prácticos
Capturas de ataque con LegionRSA (5/7) Ataque a RSA 70 bits en red con 4 clientes: 5 min, 18 seg (Cliente2) Fortalezas y debilidades en RSA: casos prácticos
Capturas de ataque con LegionRSA (6/7) Ataque a RSA 70 bits en red con 4 clientes: 5 min, 18 seg (Cliente3) Fortalezas y debilidades en RSA: casos prácticos
Capturas de ataque con LegionRSA (7/7) Ataque a RSA 70 bits en red con 4 clientes: 5 min, 18 seg (Cliente4) Fortalezas y debilidades en RSA: casos prácticos
Ejemplo práctico de ataque con LegionRSA Fortalezas y debilidades en RSA: casos prácticos • Diferentes pruebas con software LegionRSA. • Explicación del software. • Particularidades: linealidad del ataque • Trabajo Futuro. • Viabilidad de un ataque real: • Muy interesante pero desgraciadamente, o afortunadamente, no es viable … sin embargo, se está actualmente evaluando y cuantificando la capacidad de cómputo necesaria.
Conclusiones Muchas gracias Fortalezas y debilidades en RSA: casos prácticos Con los algoritmos actuales y los tamaños de clave que se usan y que los protocolos fuerzan, podemos estar tranquilos … al menos en el entorno civil. No obstante, en criptografía la paranoia es una máxima, en tanto una de sus funciones es asegurar la confidencialidad o el secreto de las comunicaciones. No es necesario ahondar en las matemáticas para entender qué hace y cómo funciona la criptografía, para diseñarla no. Con la llegada de la computación cuántica, toda la actual criptografía podría ser papel mojado …, se quedaría en una hermosa historia como las cifras del César, Vigenère, etc. de la criptografía clásica. En seguridad es sano ser algo paranoico… pero sin pasarse.