La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Presentaciones similares


Presentación del tema: "Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre."— Transcripción de la presentación:

1 Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza su uso, reproducción en computador e impresión en papel sólo para fines docentes, respetando siempre los derechos del autor. Ultima actualización: 10/02/02 Archivo con 32 diapositivas Dr. Jorge Ramió Aguirre Universidad Politécnica de Madrid

2 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.2 En el cifrado del mensaje E e (M) = C y en el descifrado del criptograma E d (C) = M, se usa una exponenciación. En la operación de cifrado, el subíndice e significa el uso de la clave pública del receptor (R) en el extremo emisor y el subíndice d el uso de la clave privada del receptor (R) en el extremo receptor. C = E eR (M) = M eR mod n R M = E dR (C) = C dR mod n R Esta operación se usará para realizar el intercambio de una clave de sesión entre un emisor y un receptor. Cifrado exponencial con clave del receptor

3 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.3 En la operación de cifrado el subíndice d significa el uso de la clave privada del emisor (E) en el extremo emisor y el subíndice e el uso de la clave pública del emisor (E) en el extremo receptor. C = E dE (M) = M dE mod n E M = E eE (C) = C eE mod n E Esta operación se usará para autenticar la identidad de un usuario mediante una firma digital al igual que la integridad del mensaje. Cifrado exponencial con clave del emisor En ambos casos, la operación en emisión como en recepción se hace sobre un bloque de unas pocas centenas de bits.

4 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.4 Sea el grupo de trabajo n = p q (n) = (p-1)(q-1) Se eligen una clave pública e y una privada d de forma que: e d mod (n) = 1 e d = k(p-1)(q-1) + 1. Por el Teorema del Resto Chino se tiene que: M ed = M mod n ssi M ed = M mod p M ed = M mod q Por el Teorema de Euler se tiene que: M k (n) mod n = 1 para todo M primo con n Si e d = k (n) + 1 y... Válido para cualquier valor M Cifrado exponencial genérico tipo RSA

5 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.5 Al cifrar el mensaje M con una clave pública e (en este caso para intercambio de clave, aunque es igual de válido con una clave d en caso de firma digital) tenemos: Cifrado:C = M e mod n Descifrado:C d mod n = (M e ) d mod n = M ed mod n C d mod n = M k (n)+1 mod n = M M k (n) mod n C d mod n = M 1 mod n = M mod n Por lo tanto, la operación C d mod n recupera el mensaje M. Comprobación de recuperación de texto

6 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.6 Sea n = p q = 5 11 = 55 (n) = (5-1)(11-1) = 40 Mensaje M = 50 = (debe ser un elemento de n) Se elige e = 3 d = inv[e, (n)] = inv (3,40) = 27 e d mod (n) = 3 27 mod 40 = 81 mod 40 = 1 C = M e mod n = 50 3 mod 55 = (2 5 2 ) 3 mod 55 C = [(2) 3 mod 55 (5 2 ) 3 mod 55] mod 55 - por reducibilidad - M = C d mod n = {[(2) 3 mod 55 (5 2 ) 3 mod 55] mod 55} 27 mod 55 M = [(2) 3 27 mod 55 (5 2 ) 3 27 mod 55] mod 55 M = [2 2 (n) (n) (n)+1 ] mod 55 Por el Teorema de Euler y del Resto Chino = mod 55 = 50 Ejemplo de cifrado exponencial genérico

7 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.7 El comienzo de los sistemas de clave pública se debe al estudio hecho por Whitfield Diffie y Martin Hellman (1976). Protocolo de Intercambio de Claves de Diffie y Hellman A y B seleccionan un grupo multiplicativo (con inverso) p y un generador de dicho primo, ambos valores públicos. A genera un número aleatorio a y envía a B a mod p. B genera un número aleatorio b y envía a A b mod p. B calcula ( a ) b mod p = ab mod p y luego destruye b. A calcula ( b ) a mod p = ba mod p y luego destruye a. El secreto compartido por A y B es el valor ab mod p. Intercambio de claves de Diffie y Hellman

8 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.8 Un intruso que conozca las claves públicas p y e intercepte el valor a mod p que ha transmitido A y el valor b mod p transmitido por B no podrá descubrir los valores de a, b ni ab mod p... salvo que se enfrente al Problema del Logaritmo Discreto (PLD) que, como ya hemos visto, se vuelve computacionalmente intratable para valores del primo p grandes. Intercambio de claves de Diffie y Hellman

9 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.9 CONDICIONES DEL PROTOCOLO: El módulo p debe ser un primo grande, al menos 512 bits. Interesa que el valor (p-1)/2 también sea primo. El generador debe ser una raíz primitiva del módulo p. Si el módulo es un primo pequeño, se puede hacer un ataque por fuerza bruta dentro de un tiempo razonable. Si el generador no es una raíz primitiva del grupo p, entonces la operación i mod p (1 i p-1) no genera todos los restos del grupo y esto facilita el ataque por fuerza bruta. Ejemplo Condiciones intercambio de claves de D-H

10 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.10 MALA ELECCIÓN DE LOS PARÁMETROS: Sean el grupo de trabajo p = 13 y un valor = 3... entonces 3 1 mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = 1 Se repiten los restos 3, 9 y 1 porque 3 no es un generador de Z 13. Un ataque por fuerza bruta deberá buscar sólo en una tercera parte del espacio de claves y, lo que es peor, la probabilidad de éxito de encontrar un valor verdadero b en b mod p aumenta de 1/12 a 1/3. La necesidad de una raíz en el protocolo

11 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.11 Primero intente calcularlo... y luego para comprobar sus resultados, avance. 2 1 mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = mod 13 = 1 Ahora sí están todos los restos multiplicativos del cuerpo Z 13 porque el resto 2 es un generador dentro de este cuerpo. ¿Y si ahora = 2 ? Además del 2, ¿qué otros restos serán generadores en Z 13 ? Serán generadores g = 2, 6, 7, 11. La necesidad de una raíz en el protocolo

12 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.12 A elige un número a con 1 < a < p-1 y envía a B a mod p C intercepta este valor, elige un número c con 1 < c < p-1 y envía a B c mod p B elige un número b con 1 < b < p-1 y envía a A b mod p C intercepta este valor y envía a A c mod p (valor anterior) A y B calculan sus claves k A = ( c ) a mod p, k B = ( c ) b mod p C calcula también las claves: k CA = ( a ) c mod p k CB = ( b ) c mod p Por lo tanto, a partir de ahora C tiene luz verde y puede interceptar todos los mensajes que se intercambian A y B. La solución a este problema es el sellado de tiempo ¿Es vulnerable el protocolo de D- H? ¿Qué hacer?

13 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.13 En febrero de 1978 Ron Rivest, Adi Shamir y Leonard Adleman proponen un algoritmo de cifra de clave pública: RSA Algoritmo 1. Cada usuario elige un grupo n = p q. Trabajará por tanto en Z n. 2. Los valores p y q no se hacen públicos. 3. Cada usuario calcula (n) = (p-1)(q-1). 4. Cada usuario elige una clave pública e que sea parte del cuerpo n y que cumpla: mcd [e, (n)] = Cada usuario calcula la clave privada d = inv [e, (n)]. 6. Se hace público el grupo n y la clave e. 7. Se guarda en secreto la clave d. Pueden destruirse ahora p, q y (n). Algoritmo de cifra RSA

14 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.14 ¿Qué fortaleza tendrá este algoritmo ante ataques? El intruso que desee conocer la clave secreta d a partir de los valores públicos n y e se enfrentará al Problema de la Factorización de Números Grandes (PFNG) puesto que la solución para conocer esa clave privada pasa por deducir el valor del Indicador de Euler (n) = (p-1)(q-1) para así poder encontrar el inverso de la clave pública d = inv [e, (n)]. Existen, no obstante, otros tipos de ataques a este sistema que no pasan por la factorización de n. Fortaleza del algoritmo RSA

15 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.15 Grupo n = 91 = 7 13; (n) = (7 13) = (7-1)(13-1) = 72 M = 48 Elegimos e = 5 pues mcd (5,72) = 1 d = inv(5,72) = 29 CIFRADO: C = M e mod n = 48 5 mod 91 = mod 91 = 55 DESCIFRADO: M = C d mod n = mod 91 = ya es número grande es un número con 51 dígitos = ¿Cómo podemos acelerar esta operación? ¿Algo más óptimo? Exponenciación rápida 1ª opción: usar reducibilidad Ejemplo de cifrado y descifrado con RSA

16 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.16 En x y mod n se representa el exponente y en binario. Se calculan los productos x 2 j con j = 0 hasta n-1, siendo n el número de bits que representan el valor y en binario. Sólo se toman en cuenta los productos en los que en la posición j del valor y en binario aparece un 1. Calcular z = mod 221 = es un número de 40 dígitos Ejemplo Un método de exponenciación rápida

17 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.17 Calcular z = mod 221 = = mod 221 j x = Bits z = mod 221 = 207 En vez de 36 multiplicaciones y sus reducciones módulo 221 en cada paso operaciones... Hemos realizado cinco multiplicaciones (para j = 0 el valor es x) con sus reducciones módulo 221, más dos al final y su correspondiente reducción. Un ahorro superior al 80%. interesante Ejemplo de exponenciación rápida 12 2 mod mod 221 x2jx2j

18 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.18 Hallar x = A B mod n Obtener representación binaria del exponente B de k bits: B 2 b k-1 b k-2...b i...b 1 b 0 Hacer x = 1 Para i = k-1,..., 0 hacer x = x 2 mod n Si (b i = 1) entonces x = x A mod n Ejemplo: calcule mod = = b 6 b 5 b 4 b 3 b 2 b 1 b 0 x = 1 i=6 b 6 =1 x = mod 91 = 19 x = 19 i=5 b 5 =0 x = 19 2 mod 91 = 88 x = 88 i=4 b 4 =1 x = mod 91 = 80 x = 80 i=3 b 3 =0 x = 80 2 mod 91 = 30 x = 30 i=2 b 2 =0 x = 30 2 mod 91 = 81 x = 81 i=1 b 1 =1 x = mod 91 = 80 x = 80 i=0 b 0 =1 x = mod 91 = 24 x = 24 = = 1, e+106 (calculadora Windows) Algoritmo de exponenciación rápida

19 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.19 Taher ElGamal propone en 1985 un algoritmo de cifra que hace uso del Problema del Logaritmo Discreto PLD. oSe elige un grupo multiplicativo Z p *, p es primo grande. oDel grupo p se elige una raíz, generador del grupo. oCada usuario elige un número aleatorio dentro de p. oEsta será la clave privada. oCada usuario calcula mod p. oJunto con p es la clave pública. Para descubrir la clave privada el atacante deberá enfrentarse al Problema del Logaritmo Discreto para un valor p alto. Para descubrir la clave privada el atacante deberá enfrentarse al Problema del Logaritmo Discreto para un valor p alto. Características Algoritmo de cifra de ElGamal

20 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.20 El usuario B ha elegido su clave privada b dentro del cuerpo del número primo p que es público. El usuario B ha hecho pública su clave b mod p. El emisor A genera un número aleatorio de sesión y calcula mod p. Con la clave pública de B ( b ) el emisor A calcula: ( b ) mod p y M ( b ) mod p A envía a B el par: C = [ mod p, M ( b ) mod p] Operación Cifrado: A cifra un mensaje M que envía a B Operación de cifra con ElGamal

21 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.21 El usuario B recibe C = [ mod p, M ( b ) mod p]. B toma el valor mod p y calcula ( ) b mod p. B descifra el criptograma C haciendo la siguiente división: [M ( b ) mod p ] / [( ) b mod p] ( b ) = ( ) b El paso anterior es posible hacerlo porque existirá el inverso de ( ) b en el grupo p al ser p un primo. Luego: [M ( b ) {inv ( ) b, p}] mod p = M Operación Descifrado: B descifra el criptograma C que envía A Operación de descifrado con ElGamal

22 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.22 Adelaida (A) enviará a Benito (B) el mensaje M = 10 cifrado dentro del cuerpo p = 13 que usa Benito. Claves públicas de Benito: p = 13, = 6, ( b ) mod p = 2 Adelaida A elige por ejemplo = 4 y calcula: ( ) mod p = 6 4 mod 13 = 9 ( b ) v mod p = 2 4 mod 13 = 3 M ( b ) v mod p = 10 3 mod 13 = 4 Envía a B ( ) mod p, M ( b ) v mod p = [9, 4] CIFRADO Ejemplo de cifrado con ElGamal

23 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.23 DESCIFRADO La clave privada de Benito es b = 5 Benito recibe: [( ) mod p, M ( b ) v mod p] = [9, 4] Benito calcula: ( ) b mod p = 9 5 mod 13 = 3 [M ( b ) v ] inv[( ) b, p] = 4 inv (3, 13) = 4 9 M = 4 9 mod 13 = 10 ( se recupera el mensaje ) Recuerde que debe ser una raíz de p. Como ya hemos visto, si no es una raíz, aunque sí puede hacerse la cifra, se facilitará el ataque al Problema del Logaritmo Discreto. Ejemplo de descifrado con ElGamal

24 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.24 Ejemplo Si el mensaje M es mayor que el módulo de trabajo (n = p q para RSA y p para ElGamal) ¿cómo se generan los bloques del mensaje a cifrar? El mensaje M se transforma en números y éstos se dividen en bloques de de g-1 dígitos, siendo g el número de dígitos del módulo de trabajo: el valor n para RSA y p para ElGamal. Consideraciones sobre el bloque

25 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.25 Se representará el mensaje en su valor ANSI decimal. n = p q = = bloques de cuatro dígitos (n) = ; e = 25; d = inv (25, ) = M = Olé = M = M 1 = mod = 0791 M 2 = mod = 0823 M 3 = mod = 3 DESCIFRADOCIFRADO C 1 = mod = C 2 = mod = C 3 = 3 25 mod = Se recupera el mensaje agrupando en bloques de 4 dígitos excepto el último Ejemplo de elección del bloque con RSA

26 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.26 Stephen Pohlig y Martin Hellman proponen en enero de 1978 (sólo un mes antes que el RSA) un algoritmo de cifra de clave secreta que hace uso del problema del Logaritmo Discreto Se elige un grupo multiplicativo Z p *, p es un primo grande. Cada usuario elige una clave e, que sea primo relativo con el grupo (p) = p-1 y luego calcula d = inv (e, (p)]. La clave secreta serán los valores e y d. Características Algoritmo de cifra de Pohlig y Hellman (1)

27 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.27 Para romper la cifra, el atacante se enfrentará al Problema del Logaritmo Discreto PLD, que para un valor de p alto es computacionalmente intratable. El algoritmo es anterior al RSA pero al ser de clave secreta, carece de firma digital. Además, no puede competir en velocidad con los algoritmos típicos de clave secreta como DES, TDES, IDEA, RC2, CAST, etc. Para romper la cifra, el atacante se enfrentará al Problema del Logaritmo Discreto PLD, que para un valor de p alto es computacionalmente intratable. El algoritmo es anterior al RSA pero al ser de clave secreta, carece de firma digital. Además, no puede competir en velocidad con los algoritmos típicos de clave secreta como DES, TDES, IDEA, RC2, CAST, etc. CIFRADO C = M e mod p DESCIFRADO M = C d mod p Ejemplo Algoritmo de cifra de Pohlig y Hellman (2)

28 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.28 C = M e mod p = mod 263; mod 263; mod 263; mod 263; mod 263 C = 245; 143; 179; 86; 101 A cifra un mensaje M que envía a B p = 263 (p) = 262; e = 15 d = inv(15,262) = 35 Sea M = Adiós = Como se usa el código ANSI, podremos cifrar en bloques de un carácter pues el módulo p es algo mayor que 256. Operación Cifrado: Operación de cifra Pohlig y Hellman

29 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.29 M = C d mod p = mod 263; mod 263; mod 263; mod 263; mod 263 M = 065; 100; 105; 243; 115 Convirtiéndolo al código ANSI: M = Adiós B descifra el criptograma C enviado por A p = 263; d = inv(15,262) = 35 C = 245; 143; 179; 86; 101 Operación Descifrado: Operación de descifrado Pohlig y Hellman

30 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.30 El problema de la Factorización de Números Grandes PFNG tiene una complejidad similar al del Logaritmo Discreto PLD: ambos suponen un tiempo de ejecución no polinomial. Número de pasos que debe realizar el algoritmo PFNG: e {ln(n) ln[ln(n)]} n = 60 dígitos 2, pasos n = 100 dígitos 2, pasos n = 200 dígitos 1, pasos Sistema que consuma 1 seg por paso: 3 días 74 años 3, años El PLD es equivalente: número de pasos e {ln(p) ln[ln(p)]} Fortaleza de la cifra exponencial

31 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.31 Los valores primos deben elegirse apropiadamente: Sistema RSA a) p y q deben diferir en unos pocos dígitos. b)p y q no deben ser primos muy cercanos. c)Longitud mínima de p y q: 250 bits. d)Valores de (p-1) y (q-1) del Indicador de Euler deben tener factores primos grandes. e)El mcd entre p-1 y q-1 debe ser pequeño. ¿Cómo? Para el sistema de ElGamal basta elegir un primo muy grande Elección de los números primos

32 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 12: Cifrado Exponencial.32 Primos seguros: se elige r un primo grande de modo que: p = 2 r + 1 y q = 2 p + 1 también sean primos EJEMPLO: Si r es el primo de 4 dígitos 1.019: p = = 2.039Es primo q = = 4.079Es primo p-1 = 2.038; q-1 = p-1 = ; q-1 = mcd (p, q) = 2 El módulo será n = p q = Números primos seguros Fin del Tema 12 Cumplen la condición


Descargar ppt "Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre."

Presentaciones similares


Anuncios Google