Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Generación de números primos fuertes para criptografía

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Clase2_Python-CTIC
Clase2_Python-CTIC
Wird geladen in …3
×

Hier ansehen

1 von 20 Anzeige
Anzeige

Weitere Verwandte Inhalte

Andere mochten auch (15)

Ähnlich wie Generación de números primos fuertes para criptografía (20)

Anzeige

Aktuellste (20)

Generación de números primos fuertes para criptografía

  1. 1. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Generaci´on de n´umeros primos fuertes para criptograf´ıa Juan Alfredo Salas Santillana Escuela de Ciencia de la Computaci´on Universidad Cat´olica San Pablo 4 de julio de 2014 Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  2. 2. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Outline 1 Introducci´on 2 Generadores de primos fuertes El metodo original del rsa Algoritmo de Williams/Schmid Algoritmo de Gordon 3 Comparativas 4 Conclusiones Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  3. 3. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Algunas definiciones N´umero primo: Es un entero mayor que 1 que tiene ´unicamente dos divisores distintos: ´el mismo y el 1 |Q| es el tama˜no en bits de Q. Criba de Erat´ostenes: Algoritmo que permite hallar todos los n´umeros primos menores que un n´umero natural dado n Test de primalidad: Algoritmo que, dado un n´umero de entrada n, no consigue verificar la hip´otesis de un teorema cuya conclusi´on es que n es compuesto. Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  4. 4. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Qu´e es un primo fuerte Un n´umero primo fuerte es aquel que cumple las siguientes caracter´ısticas: |P| debe ser grande (Actualmente se propone 2048 bits o m´as). El mayor factor de P − 1, llamado P debe cumplir que |P | sea grande. El mayor factor de P − 1, llamado P debe cumplir que |P | sea grande. El mayor factor de P + 1, llamado P+ debe cumplir que |P+| sea grande. Estas definiciones pueden variar en la diversa literatura, segun el autor. Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  5. 5. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Espiral de Ulam La espiral de Ulam, descrita por el matem´atico polaco-estadounidense Stanislaw Marcin Ulam (1909-1984), es una forma de representaci´on gr´afica de n´umeros primos que muestra un patr´on. Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  6. 6. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Test de primalidad Miller-Rabin Dado n un primo mayor a 1 impar del cual queremos saber si es primo o no. Sea m un valor impar tal que n − 1 = 2km y a tal que 2 ≤ a ≤ n − 2, Cuando se cumple: am ≡ ±1 m´od n o a2r m ≡ −1 m´od n Para al menos un r entero tal que 1 ≤ r ≤ k − 1, se considera que n es un probable primo; en caso contrario n no puede ser primo. Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  7. 7. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Generador de primos aleatorios Este algoritmo es una implementaci´on propia y hace uso del generador de aleatorios URAND del sistema operativo GNU/Linux. 1 Parsear a un entero el valor aleatorio obtenido de /dev/urand y almacenarlo en A. 2 Calcular (A m´od (END − START)) + START donde END y START es el mayor y menor numero que se almacena en la cantidad de bits indicada. 3 Sumar en una unidad A. 4 Enviar A al test de primalidad de Miller-Rabin. 5 Si A es compuesto regresar al paso 3. 6 Retornar A. Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  8. 8. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Pollard P-1 El algoritmo fue desarollado por J. M. Pollard en los 70, el m´etodo basicamente usa alguna informaci´on acerca del orden de un elemento en el grupo Zp para encontrar un factor p de N El Algoritmo hace uso del Teorema de Fermat el cual indica, Dado un primo p y un a ∈ Z tal que p a entonces ap−1 ≡ 1 m´od p. Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  9. 9. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Pollard P-1 1 Seleccionar un limite superior para B (Usualmente 105 y 106) 2 Calcular m = lcm(B), Puede ser calculado mediante la multiplicatoria de los primos generados mediante la Criba de Erat´ostenes. 3 Seleccionar un entero aleatorio positivo entre 1 y n 4 Calcular d = gcd(a, n). Si d = 1, retornar d. (Este es un factor no trivial de n) 5 Calcular am m´od n 6 Calcular e = gcd(am − 1, n) Si e = 1, ir a 1 e incrementar B. Si e = n, ir a 3 y cambiar a. Si e = 1 y e = n, retornar d. (Este es un factor no trivial de n) Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  10. 10. Introducci´on Generadores de primos fuertes Comparativas Conclusiones El metodo original del rsa Algoritmo de Williams/Schmid Algoritmo de Gordon Descripci´on El algoritmo planteado en el articulo original de RSA, tiene la caracteristica de encontrar un numero P primo el cual ser´a el menor factor de (P − 1) que ser´a el menor factor de (P − 1). Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  11. 11. Introducci´on Generadores de primos fuertes Comparativas Conclusiones El metodo original del rsa Algoritmo de Williams/Schmid Algoritmo de Gordon Algoritmo 1 Encontrar un primo P con un tama˜no de bits elegido. 2 Calcular P = A P + 1 Para alg´un entero A , el cual debe ser encontrado probando los valores {2, 4, 6, 8, ...}. 3 Calcular P = A P + 1 A se obtiene de manera similar a A . Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  12. 12. Introducci´on Generadores de primos fuertes Comparativas Conclusiones El metodo original del rsa Algoritmo de Williams/Schmid Algoritmo de Gordon Descripci´on En 1979, Williams y Schmid propusieron el siguiente algoritmo, es efectivo y altamente recomendado para generar primos fuertes. Este tambien calcula P+ Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  13. 13. Introducci´on Generadores de primos fuertes Comparativas Conclusiones El metodo original del rsa Algoritmo de Williams/Schmid Algoritmo de Gordon Algoritmo 1 Encontrar dos primos P y P+ del tama˜no de bits elegido. 2 Calcular R = −(P )−1 m´od P+ Por tanto 0 < R < P+, La inversa de P en modulo P+ puede ser calculada mediante el algoritmo extendido de Euclides. 3 Encontrar el menor A tal que P = 2AP P+ + 2RP + 1, y P = 4AP P+ + 4RP + 3 O encontrado P P = 2P + 1 Hasta que sean primos. Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  14. 14. Introducci´on Generadores de primos fuertes Comparativas Conclusiones El metodo original del rsa Algoritmo de Williams/Schmid Algoritmo de Gordon Descripci´on En 1984, John Gordon propuso un nuevo algoritmo para generar primos fuertes, este es un poco m´as eficiente que el de Williams/Schmid, debido a que no necesita calcular un P fuerte. Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  15. 15. Introducci´on Generadores de primos fuertes Comparativas Conclusiones El metodo original del rsa Algoritmo de Williams/Schmid Algoritmo de Gordon Algoritmo 1 Encontrar dos primos P y P+ del tama˜no de bits elegido. 2 Calcular el menor primo de la forma P = A P + 1 para algun entero A 3 Dejar P0 = ((P+ )P −1 − (P )P+−1 )(P P+ ) Notar que esto por el teorema de Fermat implicaria que P0 ≡ 1 (m´od P ) y P0 ≡ −1 (m´od p+) 4 Calcular el menor primo P de la siguiente manera P = P0 + AP P+ para algun entero A. Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  16. 16. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Hardware usado CPU: AMD A8-5545M APU with Radeon(tm) HD Graphics N´umero de nucleos: 4 Velocidad del reloj: 1.7 GHz (Sin Overclocking) Cache L2: 4 MB Memoria Ram: 6GB Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  17. 17. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Metodologia usada Es importante mencionar que el proceso se realiz´o en un solo nucleo y no de manera paralela. Los c´alculos se realizaron generando n´umeros de diferentes tama˜nos de bits: 64, 128, 256, 512, 1024, 2048. Para tener una mayor precision en el c´alculo, se gener´o 100 n´umeros por cada generador y tama˜no de bits, luego de esto se calcul´o la media aritmetica del tiempo total. Para obtener una medida m´as exacta el m´etodo de evaluaci´on se utilizar´a la funci´on gettimeofday() que en Linux brinda la precisi´on de 10µs. Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  18. 18. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Tabla de tiempo de generaci´on N. Bits No fuerte A. en RSA Williams Gordon’s 64b 0.0359229 0.161156 0.175932 0.118902 128b 0.112868 0.238891 0.339435 0.282909 256b 0.225215 0.535283 0.553583 0.515051 512b 0.261919 0.881877 0.937849 0.907238 1024b 1.03088 2.69978 2.39081 4.00394 2048b 2.13455 12.6628 20.5621 17.402 Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  19. 19. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Grafica de tiempo de generaci´on 5 6 7 8 9 10 11 Time Bits2x No fuerte RSA Method Williams/Schmid Gordon’s Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa
  20. 20. Introducci´on Generadores de primos fuertes Comparativas Conclusiones Conclusiones Debido a que de la fortaleza de los primos escogidos depende una mayor seguridad del sistema criptogr´afico usado, es altamente recomendable la utilizaci´on de alguno de los m´etodos de generaci´on de primos indicados anteriormente. Como se observa en las comparativas la generaci´on de primos no fuertes es mucho mas rapida, pero no cuentan con las fortalezas indicadas. Tambien se observa que el Algoritmo de Williams/Schmid es m´as eficiente que el de Gordon y que cuenta con una fortaleza mayor que los otros algoritmos expuestos. Juan Alfredo Salas Santillana Generaci´on de n´umeros primos fuertes para criptograf´ıa

×