Publicidad
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.
Publicidad
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.
Publicidad
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.
Próximo SlideShare
RSA crypt4youRSA crypt4you
Cargando en ... 3
1 de 13
Publicidad

Más contenido relacionado

Publicidad

Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños al algoritmo RSA, Problema del Logaritmo Discreto (PLD), Algoritmo de cifra ELGAMAL y Firma Digital ELGAMAL.

  1. 1 CORPORACIÓN UNIVERSITARIA AMERICANA CUA MÓDULO DE CRIPTOGRAFÍA CONTENIDO Tema Página 1. Ataque a la clave por paradoja del cumpleaños 2 2. El Problema del Logaritmo Discreto (PLD) 8 3. Algoritmo de cifra ELGAMAL 9 4. Firma Digital con ELGAMAL 11 5. Referencias Bibliográficas 13 AUTORES Ing. Ameth G. Ordoñez Ingeniero de Sistemas Estudiante Esp. Seguridad informática Ing. José L. Carpio Ingeniero de Sistemas Estudiante Esp. Seguridad informática
  2. 2 ATAQUE A LA CLAVE POR PARADOJA DE CUMPLEAÑOS Palabras claves: Paradoja, Colisión, Cifrar, Descifrar, DES, RSA, MITMA Introducción: En el año 1981, Ralph Merkle y Martin Hellman proponen un método para atacar al algoritmo DES (Data Encryption Standard), basado en el problema o paradoja del cumpleaños, lo que finalmente deriva en lo que se conoce como Ataque a medio camino (Meet in the Middle Atack). Este mismo principio permite encontrar colisiones en las cifras con RSA. El ataque tiene la particularidad de que al prosperar tras observarse una colisión, nos entregará la clave privada de la víctima, una clave privada pareja, o en muy pocos casos un falso positivo. El problema: La paradoja del cumpleaños, sin entrar en detalles matemáticos y estadísticos, pretende establecer que si hay 23 personas reunidas, hay la probabilidad del 50,7% (lo que se conoce como confianza) de que al menos dos personas de ellas cumplan el mismo día. ¿Cómo funciona? 1. Se elige un valor aleatorio N cualquiera. 2. Se eligen dos números aleatorios distintos i, j dentro del cuerpo n (el cual es un dato público). 3. Ese valor de n (módulo) se divide en dos mitades, parte baja o izquierda y parte alta o derecha. Por lo tanto, se debe cumplir que: 1) Espacio del contador i (parte baja o izquierda): 1 ≤ i ≤ n/2 2) Espacio del contador j (parte alta o derecha): n/2 ≤ j < n 4. Con dichos valores se realizan las siguientes operaciones de cifra: Para i=i+1 Para j=j+1 Se calcula: 𝑵𝒊 𝒎𝒐𝒅 𝒏 y 𝑵𝒋 𝒎𝒐𝒅 𝒏 5. Cuando se encuentran un resultado igual o colisión entre el ultimo resultado de j con el primer resultado de i, o bien entre el ultimo resultado de i con el primer resultado de j, en este momento el algoritmo llega a su fin y será capaz de encontrar la clave privada d. 6. Una vez encontrada la colisión, se obtienen los valores de i y j. 7. Como se conocen los valores de la clave pública e, se calcula: w = (i – j) / mcd (e, |i – j|) 8. Deberán existir dos valores s y t de forma que se cumpla lo siguiente:
  3. 3 w*s + e*t = 1 9. Se puede solucionar esta ecuación así: w*s mod e = 1 e*t mod w = 1 10. Se calcula s = inv (w, e) 11. Se calcula t = inv (e, w) 12. Se comprueba que w*s + e*t = 1 13. El valor de t será la clave privada, una clave pareja o bien un falso positivo. Ejemplo: Sean los siguientes valores: p = 7 q = 19 n = 133 (p*q) e = 5 d = 65 d’ = 11, 29, 47, 83, 101, 119 El atacante conoce los valores de n (133) y e (5). Se utiliza como numero de ataque N = 25. Luego los rangos bajo y alto:  1 < i < 66, es decir i = 2, 3, 4… 63, 64, 65.  65 < j < 132, es decir j = 66, 67, 68… 129, 130, 131. Vamos a suponer que primero se realiza la cifra en la zona baja (i) y luego en la zona alta (j): 251 mod 133 = 25 2566 mod 133 = 64 252 mod 133 = 93 2567 mod 133 = 4 253 mod 133 = 64 2568 mod 133 = 100 254 mod 133 = 4 2569 mod 133 = 106 255 mod 133 = 100 2570 mod 133 = 123 256 mod 133 = 106 2571 mod 133 = 16 257 mod 133 = 123 2572 mod 133 = 1 258 mod 133 = 16 2573 mod 133 = 25
  4. 4 Se ha producido una colisión, pues el resultado en j 2573 mod 133 = 25 es igual que el valor en i 251 mod 133 = 25 Entonces calculamos w: w = (i – j) / mcd (e, |i – j|) w = (1 – 73) / mcd (5, |1 – 73|) w = -72 e * t mod w = 1 5 * t mod 72 = 1 Luego, t = inv (e, w) t = inv (5, 72) t = 29 Clave pareja encontrada!
  5. 5 Ejemplo práctico: Utilizaremos las herramientas Generador_Claves_RSA (genRSA) y LegionRSA para generar unas claves con el algoritmo de cifrado RSA y luego atacar la clave por la paradoja del cumpleaños: Lo primero que haremos es generar unas claves cualesquiera en genRSA. Para eso usaremos el método automático de generación de claves de esta herramienta con una longitud de 18 Bits: genRSA nos genera los números primos p = 397 y q = 401. El módulo n = 159197, la clave pública e = 14537 y la clave privada d = 108473.
  6. 6 Ahora utilizaremos LegionRSA para iniciar el ataque a la clave. Iniciamos el modo servidor y el modo cliente por separado. Configuramos el modo cliente para estar a la espera y unirse al ataque: En el modo servidor configuramos los parámetros que nos arrojó genRSA manualmente: Ahora ¡Atacamos!... y cómo podemos observar, fue todo un éxito!
  7. 7 Como vemos, el ataque con LegionRSA obtuvo directamente la clave privada d, la cual se muestra en genRSA:
  8. 8 EL PROBLEMA DEL LOGARITMO DISCRETO Palabras claves: Aritmética, Módulo, Logaritmo, Exponente Introducción: Mantener la información protegida gracias a la Criptografía es imprescindible prácticamente en cualquier acción cotidiana. El uso de problemas matemáticos difíciles o imposibles de resolver bajo ciertas condiciones con las herramientas de cálculos disponibles hoy en día es algo habitual en Criptografía. Uno de los problemas matemáticos en los que se basan algunos sistemas criptográficos es el del Logaritmo Discreto (PLD): Sea G un grupo multiplicativo finito, y sea g un elemento de orden n de G. Dado un elemento a pertenecientes al subgrupo generado por g, se define el logaritmo discreto de a en base g como el entero k, 0 ≤ k ≤ n – 1 tal que: gk = a El problema del Logaritmo Discreto consiste en dados g y a, calcular k. La importancia del estudio de este problema radica en el interés del logaritmo discreto como operación inversa a la exponenciación de un grupo. Se puede comparar como si tuviéramos 3 colores, los cuales al mezclarlos generan un nuevo color. Dado este nuevo color, es casi imposible ir a la reversa, es decir, saber cuáles fueron estos 3 colores iniciales a partir del nuevo color. La exponenciación modular es una operación inversa a la exponenciación en un grupo. Por lo tanto el módulo hace que calcular la inversa sea más complejo, dado que: Logaritmo = LOGAlfa Beta mod Grupo
  9. 9 Grupo (p) es un valor muy grande y se hace computacionalmente intratable. La exponenciación modular es una operación sencilla y se conocen métodos eficientes para calcularlo. En cambio, el cálculo del logaritmo discreto modulo un entero cualquiera no siempre puede realizarse de forma eficiente. Por este motivo, algunos criptosistemas y sistemas de autenticación de mensajes e intercambio de claves basan su seguridad en el PLD. Utilizamos la herramienta Fortaleza de Cifrados (Fortaleza) para ver ejemplos de PLD: ALGORITMO DE CIFRA ELGAMAL Palabras claves: PLD, Módulo, Cifra, Clave Introducción: Taher Elgamal famoso criptógrafo egipcio, reconocido por ser el inventor de la Firma Digital y un gran aportador al desarrollo del protocolo SSL, propuso el algoritmo que lleva su nombre en 1985, el cual hace uso del Problema del Logaritmo Discreto (PLD).
  10. 10 ¿Cómo funciona? 1. Se conoce un grupo del cuerpo Fq y un elemento g del mismo. 2. El usuario A elige un entero a tal que 2 ≤ a ≤ q – 2 y calcula ga . El entero a es su clave privada y ga es su clave pública. 3. Otro usuario B manda un mensaje m a A por lo que hace: a. Elegir un entero k, tal que: 2 ≤ k ≤ q – 2 b. Enviar el par (gk , mgak ) a A A partir del par (gk , mgak ), es fácil para A obtener el mensaje original m de la siguiente manera: 1. Calcula gak = (gk )a 2. Halla (mgak )/gak = m Ejemplo: Supongamos que Ana y Beto quieren intercambiar mensajes utilizando el método de cifra Elgamal. En el cuerpo F157 se escoge el generador g = 5. Para ello, Ana escoge su clave privada a = 25 y comparte su clave pública ga = 34. Supongamos que Beto quiere mandar el mensaje m = 19 a Ana, entonces elige un entero k = 89 y le envía el par (589 , 19×525×89 ) = (131, 45). Para obtener el mensaje original, Ana halla 525×89 = 85 (mod 157) y calcula 45/85 = 19 (mod 157) que es m. ANA a BETO k Clave pública: ga (gk , mgak )
  11. 11 FIRMA DIGITAL CON ELGAMAL Palabras claves: PLD, Módulo, Cifra, Clave, Firma Introducción: Taher Elgamal también propuso un algoritmo de cifra basado en la exponenciación de cuerpos finitos. ¿Cómo funciona? Supongamos que el usuario A quiere firmar los mensajes que envía. Para ello publica un primo p, un elemento primitivo g módulo p y un entero y, 1 ≤ y ≤ p – 1, tal que y = ga donde a es un entero cualquiera que mantiene en secreto. El primo p y g pueden ser elegidos por cada usuario o ser las mismas para todos los usuarios. Para firmar un mensaje m, A procede de la siguiente manera: 1. Elige un entero k con (k, p – 1) = 1 y calcular r = gk 2. Calcula s a partir de la ecuación: m = ar + ks (mod p – 1) 3. La firma de A para el mensaje m es, por lo tanto, el par (r, s) Si alguien fuese capaz de calcular logaritmos discretos y obtener el entero a a partir de y, podría firmar mensajes como si fuese el usuario A. El algún usuario quiere verificar que un mensaje m procede efectivamente de A, debe verificar: gm = yr rs (mod p) Ya que, si efectivamente A es el emisor: yr rs = gar gks = gar + ks = gm (mod p) Clave pública: (p,g, y) Clave privada: a
  12. 12 Ejemplo: Cierto usuario A toma como clave privada a = 33 y comparte la siguiente clave pública (151, 6, 60). Si el usuario quiere firmar el mensaje m = 79 debe proceder así: 1. Elige un cierto k, por ejemplo, k = 11 y calcular r = 611 = 77 (mod 151) 2. Calcula s = (79 – 33 × 77) / 11 = 8 (mod 50) La firma del mensaje m = 79 es (77, 8). Si el destinatario del mensaje quiere verificar la autoría del mismo, ha de comprobar que 679 = 63 = 6077 × 778 (mod 151).
  13. 13 REFERENCIAS BIBLIOGRAFICAS 1. Red temática de Criptografía y Seguridad de la Información – CRIPTORED Por el aporte y la documentación sobre algoritmos de cifra y software de prácticas como genRSA, Legion y Fortaleza. URL: http://www.criptored.upm.es/ 2. Repositorios de la Universidad de Cantabria (España) Por la documentación aportada en el trabajo dirigido en Estadística y Computación de la Licenciatura de Matemáticas de la autora Jennifer Santamaría Fernández. URL: http://repositorio.unican.es/xmlui/bitstream/handle/10902/3101/Jen nifer%20Santamaria%20Fernandez.pdf?sequence=1 3. Información de libre distribución URL: https://www.youtube.com/watch?v=fLDPW1gZF4M URL: https://www.youtube.com/watch?v=Ex9sN5MorRs
Publicidad