La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

El Criptosistema RSA CRIPTOGRAFIA de CLAVE PRIVADA CRIPTOGRAFIA de CLAVE PUBLICA Block Ciphers Stream Ciphers Hash functions Digital Signature Key Agreement.

Presentaciones similares


Presentación del tema: "El Criptosistema RSA CRIPTOGRAFIA de CLAVE PRIVADA CRIPTOGRAFIA de CLAVE PUBLICA Block Ciphers Stream Ciphers Hash functions Digital Signature Key Agreement."— Transcripción de la presentación:

1 El Criptosistema RSA CRIPTOGRAFIA de CLAVE PRIVADA CRIPTOGRAFIA de CLAVE PUBLICA Block Ciphers Stream Ciphers Hash functions Digital Signature Key Agreement

2 RSA New Directions in Cryptography1976 - New Directions in Cryptography W. Diffie, M. Hellman A Method for Obtaining Signatures and Public-Key Cryptosystems1978 - A Method for Obtaining Signatures and Public-Key Cryptosystems R. Rivest, A. Shamir, L. Adleman

3 RSA -----

4 Partes del sistema RSA PRIMITIVAS ESQUEMAS PROTOCOLOS

5 Ejemplos Protocolos: SSL v 3, TLS, SSL Plus, SET PGP, S/MIME, Ipsec Esquemas: Firma Digital, Intercambio de Claves, Cifrado Primitivas: Prim. Firma, Prim. Verificación, Prim. de cifrado, Prim. de descifrado

6 RSA M, C=M^e mod n C, M = C^d mod n n = p * q d = e^-1 mod  (n)

7 Primitiva de Cifrado c = m^e mod n Esquema de CifradoEsquema de Firma Primitiva de Descifrado m = c^d mod n Primitiva de Firma s = m^d mod n Primitiva de Verificación c = m^e mod n

8 Esquema de Cifrado 1) Generación de claves 2) Proceso de cifrado 3) Proceso de descifrado a) Seguridad b) Implementación c) Ataques

9 Justificación Teorema de Euler Teorema de Fermat

10 Ejercicio: Con entonces

11 Generación de Claves Las claves (n,e) clave pública (d) clave privada n= pq, d = e^-1 mod  (n) Paso 1) Generación de un número aleatorio (GNA) Paso 2) Genarar tantos NA hasta tener un número primo probabilistico con P(1/2^100) de error Paso 3) Obtener n = pq Paso 4) Calcular d

12 Paso 1 Existen varias formas de generar números seudoaleatorios de las mas usadas estan : Usando una función hash MD5, SHA1 El generador de Blum Blum

13 Blum-Blum 1) Se generan dos números primos p,q, y n=pq 2) Se selecciona una semilla entera s en [1,n-1] tal que mcd(s,n) = 1 y se calcula 3) Para i = 1 hasta k 4) La salida es la sucesión

14 Referencias FIPS 186 PKCS #14 www.rsasecurity.com NIST (Juan Soto) www.nist.gov

15 Paso 2 La generación de primos se realizan en dos etapas 2.1) un número candidato a ser primo p se somete a la pruba de divisibilidad por primos pequeños, tantos hasta una cota adecuada 2.2) Un número candidato a ser primo que paso la prueba 2.1 se somete a una prueba probabilistica dura, como Miller-Rabin El resultado es un número “primo industrial” p

16 Teorema del número primo El número de primos  x, denotado por  (x), satisface Por lo que se espera encontrar un número primo a lo mas en ln(x) números cerca de x. Por lo tanto es fácil encontrar números primos

17 Prueba de Fermat TPF Si p es primo, para todo es decir: si para algún entonces p, es número compuesto. A a se le llama un testigo de la composición de p La idea de la prueba de Fermat es: si se encuentra un testigo, definitivamente el núemro es compuesto, si no se encuentra un testigo entonces es un probable primo, hay mas confianza con mas número de interacciones

18 Prueba de Fermat Fermat (p,t) Repetir t veces Generar aleatoriamente un número a, 0 < a < p Si entonces regresar a es compuesto Despues de las t interacciones, regresar a es primo A este tipo de primos se les conoce como probables primos, en el caso de RSA se pide (p-1,e) = 1

19 Números de Carmichael La mayoría de números compuestos tienes varios testigos para la prueba de Fermat Excepto los números de Carmichael, los únicos testigos son los a, tales que mcd(a,p)  1 ejemplo 561 = 3 *11* 17, pero para todo a tal que mcd(a,561)=1, Existen una cantidad infinita de números de Carmichael

20 Prueba de Miller-Rabin Rabin (p,t) Sea, donde u es impar Repetir t veces: Generar aleatoriamente un a, tal que 0<a<p Si regresar compuesto Después de t interacciones, regresar primo

21 ¿Qué pasa si p, pasa y no es primo? El modulo n tiene almenos 3 factores y será más fácil de factorizar Si p es de Carmichael, entonces las operaciones de cifrado y descifrado serán inversas para todo los mensajes En otro caso cada operación de cifrado/descifrado, será escencialmente una prueba de Fermat y el descifrado fallará para casi todos los mensajes

22 ¿Qué tan buena es la prueba de Rabin? Se ha mostrado que: Pr[Rabin(p,1)=primo | p es compuesto]  Pr[Rabin(p,1)=primo | p es primo] = 1 Pr[Rabin(p,t)=primo | p compuesto] 

23 k\t 1 2 3 4 5 6 7 8 9 10 300 19 33 44 53 60 67 73 78 83 88 350 28 38 48 58 66 73 80 86 91 97 400 37 46 55 63 72 80 86 91 99 105 450 46 55 63 72 80 87 93 100 106 112 500 56 63 70 78 85 92 99 106 113 119 550 65 72 79 86 93 100 107 113 119 126 600 75 82 88 95 102 108 115 121 127 133

24 Experimento de Rivest 718 millones de números aleatorios de 256 bits 43 millones pasaron la prueba de divisores primos pequeños 4 058 000 pasaron la prueba de Fermat con testigo 2 De los cuales todos pasaron la prueba de Miller Rabin con 8 interacciones

25 Según estimaciones el número de seudoprimos (números compuestos que pasan la prueba de Fermat) es de 4 x 10^52, y hay aproximadamente 6.5 x 10^74 números primos de 256 bits Por lo tanto si estas estimaciones son ciertas, la probabilidad de que un número elegido aleatoriamente de 256 bits que pasa la prueba de Fermat con testigo 2 y que este sea seudoprimo es menor a 1/10^22

26 Paso 3,4 Para calcular a n, se multiplican los dos primos p,q Para calcular a d, se usa el algoritmo extendido de Euclides El número e por razones de implementación se elije como 3 o como 65537, el número 4 de Fermat Al usar a e de esta forma, d tiene una longitud considerable, es decir evita el ataque de Wiener, que es aplicable si d <

27 Representación de las claves Claves públicas (n,e), e es un número tal que mcd (e,  (n)) = 1 Clave privada a) d, un entero no negativo b) la quinteta (p,q,dP,dQ, qinv)

28 Proceso de cifrado 00 02 cadena de relleno 00 bloque de datos EB = 00||02||PS||00||DB Según el PKCS #1 v 1.5 el método es el siguiente: 1) Se codifica el mensaje a mandar 2) Se convierte la cadena de caracteres EB (cadena de Octetos) a un número entero, llamado mensaje representativo M. Con el estándar OS2IP

29 3) Se aplica la primitiva de cifrado a el mensaje representativo M En Agosto de 1998 D. Bleichenbacher, propone un ataque a este modo de codificar, en enero de 1999 se asume para el esquema de cifrado el OAEP (optimal asymetric encryption padding) Este método de codificación es resistente al ataque de D.B. y aún más se puede mostrar que su seguridad es equivalente a la seguridad de la misma función RSA

30 OAEP Seed PM Hash Padding Operation DB xor maskedDB MGF xor Masked Seed EM

31 Proceso de descifrado K Entrada K, una clave privada en alguna de sus representaciones C el texto cifrado representativo, un entero entre 0 y n-1 Salida m el mensaje representativo, un entero entre 0 y n-1

32 Proceso K Si es de la forma K=(d), K Si K = (p,q,dP, dQ, qinv)

33 Se convierte el número m a una cadena de octetos, por medio del estandár I2OSP Se recupera el mesaje m

34 Referencias www.rsa.com http://theory.lcs.mit.edu/~rivest http://cacr.math.uwaterloo.ca/hac/ www.seguridata.com


Descargar ppt "El Criptosistema RSA CRIPTOGRAFIA de CLAVE PRIVADA CRIPTOGRAFIA de CLAVE PUBLICA Block Ciphers Stream Ciphers Hash functions Digital Signature Key Agreement."

Presentaciones similares


Anuncios Google