La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a la Criptografía

Presentaciones similares


Presentación del tema: "Introducción a la Criptografía"— Transcripción de la presentación:

1 Introducción a la Criptografía
Reinaldo N. Mayol Arnao 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

2 ¿Qué es la criptografía?
“Arte de escribir con clave secreta o de un modo enigmático”1. Una definición mas exacta ( e ingenieril): Es un conjunto de técnicas Basadas en argumentos matemáticos Que tienen como objetivo modificar de manera sistemática un texto 2 De manera que sólo pueda ser autenticado, validado en su integridad y comprendido3 sólo por aquellos que posean las condiciones y los conocimientos adecuados4. 1- Corresponde a la definición de la Real Academia de la Lengua Española. 2- Por texto, de manera general, entenderemos cualquier tipo de fragmento de información: bits, bytes, datagramas, paquetes, flujos de datos, documentos en cualquier formato o soporte, correos electrónicos, transacciones, etc. 3- Los conocidos conceptos de autenticidad, integridad y confidencialidad. 4- Condiciones técnicas para obtener la información y conocimientos ( llaves, contraseñas, etc.) 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

3 Esquema Básico de Criptografía
P= D (C)‏ K C= E (P)‏ K Texto Plano: Texto sin ser modificado (P) Texto Cifrado: Texto Plano luego de haber sido modificado (C) E: Algoritmo de cifrado o modificación. K: Llave que modula a los algoritmos de Cifrado o Descifrado. Es común utilizar también la palabra clave, sin embargo en este curso dejaremos esta última para referirnos a “passwords” o contraseñas. D: Algoritmo de Descifrado. Todo criptosistema ha de cumplir la siguiente condición: Dk(Ek(m)) = m LA PALABRA ENCRIPTACIÓN NO EXISTE EN CASTELLANO. 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

4 A veces el tamaño si importa
Criptografía A veces el tamaño si importa Tamaño de la Llave(bits) Número de Llaves posibles Tiempo de descifrado ( a 106 Operaciones /µs) 32 232 = 4.3 x 109 2.15 milliseconds 56 256 = 7.2 x 1016 10 hours 128 2128 = 3.4 x 1038 5.4 x 1018 years 168 2168 = 3.7 x 1050 5.9 x 1030 years Conclusiones: Cuando se utilizan operaciones sencillas y básicas como las mostradas hasta este momento, en las cuales parte de la fortaleza del algoritmo descansa en el tamaño de la llave, este último factor es determinante para que el algoritmo no sea “ roto” por simple fuerza bruta ( búsqueda exhaustiva de las posible clave en el universo de las mismas). RECUERDE PARA FUTURAS DISCUSIONES ESTA TABLA, EN ESPECIAL LOS NÚMEROS 56 Y 128. Llaves Débiles En la inmensa mayoría de los casos los conjuntos M y C definidos anteriormente Pertenecen al mismo universo. Por esta razón puede darse la posibilidad de que exista alguna llave tal que Ek(M) = M. ES DECIR EL TEXTO NO ES CIFRABLE.!!!!! También puede darse el caso de que ciertas llaves concretas generen textos cifrados de poca calidad. Una posibilidad bastante común en ciertos algoritmos es que algunas llaves tengan la siguiente propiedad: Ek(Ek(M)) = M Estas circunstancias podrían llegar a simplificar enormemente un intento de violar nuestro sistema. Normalmente en un buen criptosistema la cantidad de llaves débiles tiende a 0. Es necesario vigilar esta condición si se realiza un sistema criptográfico propio. 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

5 Criptografía de Clave Privada (Simétrica)
19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

6 ¿Qué significa “ cifrado de clave privada o Simétrico?
Criptografía ¿Qué significa “ cifrado de clave privada o Simétrico? Si se utiliza una misma clave para cifrar y descifrar se habla de Cifrado Simétrico o de Clave Privada Si se utilizan 2 llaves diferentes; una para cifrar y otra para descifrar se habla de Cifrado Asimétrico o de Clave Pública 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

7 Cifrado Simétrico Criptografía
La característica fundamental es que se utiliza la misma clave para cifrar que para descifrar. Note las implicaciones que esto tiene para la confidencialidad de la clave. Existe algún mecanismo para garantizar la autenticidad de la clave? 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

8 Número de llaves necesarias
Criptografía Número de llaves necesarias 103 104 105 106 107 108 109 Número de llaves Número de puntos finales (Aplicaciones) Note que el número de llaves se puede volver inmanejable. Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

9 Algoritmos de Llave Simétrica DES
Criptografía Algoritmos de Llave Simétrica DES 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

10 Criptografía Introducción El DES nació como consecuencia del criptosistema LUCIFER, creado por Horst Feistel quien trabajaba en IBM, este criptosistema trabajaba sobre bloques de 128 bits, teniendo la clave igual longitud . A mediados de 1998, se demostró que un ataque por la fuerza bruta a DES era viable, debido a la escasa longitud que emplea en su clave. No obstante, el algoritmo aún no ha demostrado ninguna debilidad grave desde el punto de vista teórico, por lo que su estudio sigue siendo plenamente interesante. 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

11 Criptografía Introducción Tras las modificaciones introducidas por el NSA (National Security Agency), consistentes básicamente en la reducción de la longitud de clave y de los bloques, DES cifra bloques de 64 bits, mediante permutación y sustitución y usando una clave de 56 bits. No obstante hoy en día todavía es DES el algoritmo mas utilizado. 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

12 Esquema General de DES Rotación Izq. Ronda 1 Ronda 16
Criptografía Esquema General de DES 64 bits de texto plano ……. 64 bits de texto cifrado Permutación Inicial Ronda 1 Ronda 16 Permutación Final Intercambio (L↔R) Permutación Selectiva EP1x 64 bits de la clave Selectiva EP2 Rotación Izq. K1 K16 56 bits 48 bits El algoritmo codifica bloques de 64 bits empleando claves de 56 bits. Esta constituido por: Dos permutaciones, una que se aplica al principio (Pi) y otra que se aplica al final (Pf), tales que Pi = Pf-1 Red de Feistel de 16 rondas El manejo de las claves se realiza manipulando un valor inicial de 64 bits hasta obtener una clave por cada ronda (K1..K16) de 48 bits Se obtiene 64 bits de texto cifrado 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

13 Lentitud de aplicaciones por software
Criptografía Debilidades de DES El tamaño de la clave (56 bits) es insuficiente para detener un ataque de fuerza bruta (con un poco de suerte y bajo algunas condiciones) con las técnicas actuales. La estructura interna de las cajas S no ha sido publicada hasta la actualidad, por lo que se sospecha podrían contener algún tipo de “sorpresa” incluida por sus diseñadores Lentitud de aplicaciones por software A mediados de julio de 1998 EFF (Electronic Frontier Foundation)fabricó y probo con éxito una máquina capaz de descifrar un mensaje DES en menos de tres días, explotando la debilidad de algoritmo por el tamaño de las claves utilizadas. “Curiosamente, pocas semanas antes, un alto cargo de la NSA había declarado que dicho algoritmo seguía siendo seguro, y que descifrar un mensaje resultaba aún excesivamente costoso, incluso para organizaciones gubernamentales. DES-Cracker costó menos de euros.” REF : Manuel J. Lucena López Criptografía y Seguridad en Computadores A pesar de su vulnerabilidad por el tamaño de las claves el algoritmo no ha sido roto en mas de 30 años por ninguna otra razón. Reinaldo N. Mayol Arnao 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

14 Criptografía DES “Recargado” A pesar de su vulnerabilidad por el tamaño de las claves, el algoritmo no ha sido roto en mas de 30 años por ninguna otra razón. 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

15 PARECE QUE FUNCIONA PERO…..
Criptografía ¿Aumentando el tamaño de la clave? 15 K1 K2 P C X Si el problema es el tamaño de la clave, ¿ porque no aumentarla? Una forma sería diseñar un nuevo algoritmo Otra forma sería incluir una etapa adicional de cifrado DES cada una con claves diferentes K1 y K2 tal que: C=Ek2[Ek1[P]] P=Dk1[Dk2[C]] La nueva clave es de 56x2=112 bits Sin embargo, el sistema así establecido, no funciona. ¿Se le ocurre por qué? C=Ek2[Ek1[P]] P=Dk1[Dk2[C]] Reinaldo N. Mayol Arnao 19/09/2018 Reinaldo Mayol Arnao PARECE QUE FUNCIONA PERO….. Prof. Reinaldo Mayol Arnao

16 Punto Medio K1 K2 C P X Si C=Ek2[Ek1[P]] entonces: X=Ek1[P]=Dk2[C] [1]
Criptografía Punto Medio 16 K1 K2 P C X Si C=Ek2[Ek1[P]] entonces: X=Ek1[P]=Dk2[C] [1] Dado un par conocido C, P el ataque funciona de la siguiente forma: Se cifra P con cada una de las posibles 256 claves k1 Se descifra C con cada una de las posibles 256 claves k2 Por [1] tiene que existir un valor de X que haga válida la ecuación. Como se conocen las claves K1 y K2 que hicieron posible [1] se viola el algoritmo sin mayor esfuerzo que el destinado a violar DES. ¿Ya sabe por que los algoritmos NO PUEDEN ser simétricos? Reinaldo N. Mayol Arnao 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

17 Las claves utilizadas fueron K1n y K2m
Criptografía Punto Medio 17 C P K2,1 K11 C X K2m P K1n Eventualmente tiene que haber un valor de X que haga que la ecuación se cumpla. Al encontrar el valor de X se sabrá con que claves K1 y K2 se obtuvo. Se habrá roto el algoritmo con un esfuerzo computacional similar al de DES. Las claves utilizadas fueron K1n y K2m C P K2 256 K1256 Reinaldo N. Mayol Arnao 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

18 Triple DES ó 3DES C P K1 K2 K3 E D
Criptografía Triple DES ó 3DES Obviamente una forma de vencer al ataque de punto medio es colocar en cadena 3 etapas DES con claves diferentes, pero esto hace que el trabajo para manejar las claves, ahora de 56X3=168 bits se vuelva complicado Una solución es colocar tres etapas DES pero sólo utilizar 2 claves diferentes de forma que: C=Ek1[Dk2[Ek1[P]]] C P K1 K2 K3 E D ¿Qué pasa si K1=K2? De esta forma también se garantiza compatibilidad con sistemas DES tradicionales ya que si k1=k2 entonces: C=Ek1[Dk2[Ek1[P]]]=Ek1[P] 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

19 Criptografía 3DES 3DES con dos claves es una alternativa relativamente popular al DES y ha sido adoptada para el uso de las normas de manejo de claves ANS X9.17 y ISO 8732. Subllaves independientes: Emplea 16 sub-llaves diferentes para cada una de las 16 rondas. Puesto que estas subclaves son de 48 bits, la clave resultante tendría 768 bits en total. Sin embargo, empleando criptoanálisis diferencial esta variante podría ser rota con 261 textos claros escogidos, por lo que en la práctica no es superior a DES. 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

20 AES: Rijndael Criptografía 19/09/2018 Reinaldo Mayol Arnao
Prof. Reinaldo Mayol Arnao

21 Rijndael Mecanismo de cifrado por bloques de 128, 192 y 256 bits
Criptografía Rijndael Mecanismo de cifrado por bloques de 128, 192 y 256 bits Utiliza claves simétricas de igual tamaño Utiliza una serie de r etapas Las primeras r-1 etapas son similares y utilizan una serie de operaciones especiales La última etapa realiza sólo un subconjunto de las operaciones de las etapas anteriores A pesar de la sencillez de 3DES y su fortaleza criptográfica, sigue siendo lento en implementaciones por software. Por esa razón en 1997 se realizó un concurso para el desarrollo de un nuevo estándar de cifrado avanzado: AES. El proceso de selección y evaluación concluyó en el El algoritmo seleccionado fue Rijndale, desarrollado y presentado por dos criptógrafos belgas: Joan Daemen y Vicente Rijmaen. AES tiene un tamaño de bloque fijo de 128 bits y tamaños de llave de 128, 192 ó 256 bits, mientras que Rijndael puede ser especificado por una clave que sea múltiplo de 32 bits, con un mínimo de 128 bits y un máximo de 256 bits 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

22 Funcionamiento de Rijndael ( 128bits)
Criptografía Funcionamiento de Rijndael ( 128bits) Texto Plano Etapa Inicial AddRoundKey w[0,3] Etapas 1-9 ByteSub ShiftRow MixCol AddRoundKey Byte Sub W[4,7] (4 palabras por etapa) Se ha representado el caso de bloques de 128 bits, lo que impica claves de ese tamaño y 10 etapas de cifrado Las transformaciones son efectuadas a una matriz que contiene cada bloque de los datos de entrada. La clave suministrada se expanda a un vector de 44 palabras ( en el caso de 128 bits). Cada palabra Wi tiene 32 bits. En cada etapa se utilizan 4 palabras (4x32). Etapa Final AddRoundKey ByteSub ShiftRow w[40,43] 19/09/2018 Texto Cifrado Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

23 ¿Cómo funciona Rijndael?
Criptografía ¿Cómo funciona Rijndael? r-1 Etapas Byte Sub: Sustitución de bytes ShiftRow: Desplazamiento de filas MixCol: Multiplicación de columnas AddRoundKey: Xor con la llave Etapa r Byte Sub ShiftRow AddRoundKey Sustitución de Bytes (byte sub) Se utiliza una tabla, denominada caja S4, para realizar una sustitución byte a byte 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

24 Cifrado de Rijndael Sustituciones Desplazamiento de filas
Criptografía Cifrado de Rijndael Sustituciones Desplazamiento de filas Multiplicación de Columnas ¿Cuál es la estructura de las S4? XOR con la Clave 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

25 Criptografía Rijndael En cada ronda sólo la etapa “AddRoundKey” depende de la clave. Por lo tanto cada etapa puede ser vista como un proceso de desorden de bits seguido por un XOR con la clave. El algoritmo comienza y termina con etapas “Add RoundKey” 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

26 Otros Algoritmos de Cifrado Simétrico
Criptografía Otros Algoritmos de Cifrado Simétrico Algoritmo K Bloque Etapas Utilización IDEA 128 64 8 PGP Blowfish Hasta 448 16 Cifrado x Software RC5 Hasta 2048 Hasta 255 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

27 Criptografía Cifrado de Bloques Hasta el momento hemos hecho el análisis suponiendo la existencia de un sólo bloque. ¿Qué pasa si el mensaje a cifrar tiene mas del tamaño de un sólo bloque? Una solución “ obvia” sería dividir el mensaje en bloques y cifrar cada uno individualmente. Este tipo de esquema se denomina ECB ( Electronic CodeBook) Un caso nada raro es que el tamaño del mensaje no sea exactamente divisible por el tamaño de los bloques. En este lo común es que se “ rellene” el último bloque y luego se agregue la cantidad de bits “rellenados” para que puedan ser eliminados una vez sea descifrado el mensaje. Este enfoque implicará que SIEMPRE haya que agregar información, incluso en aquellos casos en los que no hace falta el relleno. DISCUSIÓN: ¿Qué implicaciones para la seguridad podría tener este enfoque? ¿Qué ventajas le ve? 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

28 CBC (Cipher Block Chaining)
Criptografía CBC (Cipher Block Chaining) Bloque n Bloque 1 Bloque 2 Cn-1 + IV + + CIFRADOR CIFRADOR CIFRADOR K K K ….. El modo CBC (Cipher Book Chaining Mode) incorpora un mecanismo de retroalimentación en el cifrado por bloques, haciendo que la entrada de los bloques de 2 a n sea el resultado del XOR del bloque con la salida cifrada del bloque i-1. Para cifrar el primer bloque, se emplea un vector de inicialización ( VI, una palabra del tamaño del bloque conocida por ambos interlocutores) El VI debe ser protegido con la misma rigurosidad que la clave, normalmente se utiliza ECB para cifrar el VI ( que tiene sólo el tamaño del bloque por lo que puede Hacerse en un sólo paso). ¿Por qué? Cn C1 C2 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

29 Criptografía Hasta este momento… Quien no tenga la clave (K) no podrá leer el mensaje ( a no ser que se enfrente al problema del criptoanálisis). Tenemos CONFIDENCIALIDAD. Si confiamos que sólo los extremos de una conversación conocen K y un mensaje puede ser CORRECTAMENTE descifrado podemos confiar que los extremos son los correctos. Casi tenemos AUTENTICIDAD DE LOS EXTREMOS ¿ Como sabemos que sólo los extremos tienen las claves? ¿ Qué significa “ correctamente” ? Podemos autenticar los bordes de esta forma tan sencilla, pero ¿y los datos? 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

30 Pero… ¿Sabemos si el texto es integro al recibirlo? NO.
Criptografía Pero… ¿Sabemos si el texto es integro al recibirlo? NO. ¿Qué hacemos con las claves? 19/09/2018 Reinaldo Mayol Arnao Prof. Reinaldo Mayol Arnao

31 Criptografía Asimétrica
19/09/2018 Parte 1 Criptografía Asimétrica 19/09/2018 Reinaldo Mayol Arnao

32 Esquema de Funcionamiento
Criptografía 19/09/2018 Esquema de Funcionamiento 19/09/2018 Reinaldo Mayol Arnao

33 Criptografía 19/09/2018 Reglas de Juego El sistema funciona con un par de llaves, una para cifrar y otra para descifrar1 Una clave es secreta y nunca es transmitida (Kp) La otra clave es pública y puede ser difundida en la red sin peligro (Ku) Si un documento es cifrado con una clave sólo puede ser descifrado con su pareja Si un documento puede ser descifrado satisfactoriamente2 con una clave sólo puede haber sido cifrado con su pareja 1- De esa condición viene el nombre de Criptografía Asimétrica o de Clave Pública. 2- Volvemos a la discusión de que significa el término “ satisfactoriamente” . Si lo que se ha enviado es , por ejemplo, una imagen posiblemente sea sencillo responder por la correctitud del proceso pero si por el contrario lo que se ha enviado es un programa la tarea no es tan obvia. Note que no hablamos de con que llave cifrar o descifrar. 19/09/2018 Reinaldo Mayol Arnao

34 José envía el mensaje cifrado con la Kp de Tx (José)
Criptografía 19/09/2018 Ejemplo José envía el mensaje cifrado con la Kp de Tx (José) José Marcos Pero un extraño también puede leerlo, porque tiene la Ku (por algo es pública) El extraño también puede leer el mensaje por lo que el esquema sí planteado no sirve para garantizar la confidencialidad del mensaje. Sin embargo, como José era el único que podía tener su propia Kp, Marcos podrá confiar en que el Tx es autentico. ( NOTE que no hemos dicho que el mensaje sea autentico, sólo el Tx del mismo) Marcos descifra el mensaje utilizando la Ku de José 19/09/2018 Reinaldo Mayol Arnao

35 Ejemplo José envía el mensaje cifrado con la Ku del Rx (Marcos) José
Criptografía 19/09/2018 Ejemplo José envía el mensaje cifrado con la Ku del Rx (Marcos) José Marcos El extraño no puede descifrar el mensaje porque no tiene Kp de Marcos En este esquema el extraño no puede descifrar el mensaje porque no tiene la llave privada de Marcos. Podría estimarse que la confidencialidad del mensaje está a salvo, sin embargo no hay forma de garantizar la confidencialidad ni la integridad ni del mensaje ni del Tx ( en el caso de la confidencialidad obviamente) ya que todos tienen la llave Ku de Marcos, así que cualquiera pudo haberlo enviado. Marcos descifra el mensaje utilizando su Kp 19/09/2018 Reinaldo Mayol Arnao

36 Criptografía 19/09/2018 Conclusiones Si se cifra el mensaje con la Kp del Tx podría estimarse la autenticidad, pero no la confidencialidad. Si se cifra el mensaje con la Ku del Rx podría garantizarse la confidencialidad pero no la autenticidad. Ninguno de los esquemas garantiza la integridad de los datos Tx. Sin embargo, pronto abandonaremos este esquema por ineficiente. Podemos GENERALIZAR diciendo que para garantizar la confidencialidad hay que descifrar con una clave que permanezca privada. 19/09/2018 Reinaldo Mayol Arnao

37 Esquema para garantizar (por el momento) confidencialidad
Texto Cifrado (C)‏ Texto Plano ( P)‏ Kp destino Ku destino C=EKuRx (P) P=DKpRx(C)‏ 19/09/2018 Reinaldo Mayol Arnao

38 Hasta Ahora… Tenemos un mecanismo para mantener las claves en ambientes distribuidos divulgando sólo una parte de la misma ( Ku). Si el destino no ha divulgado su Kp el remitente puede estar seguro que nadie más puede leer y entender el mensaje 19/09/2018 Reinaldo Mayol Arnao

39 Pero… Seguimos sin integridad.
Criptografía 19/09/2018 Pero… Seguimos sin integridad. Pareciera que si logramos autenticidad no podemos lograr confidencialidad. Ya sabemos que RSA es ineficiente para valores grandes de M.1 1-En especial porque E debe ser escogido suficientemente grande. 19/09/2018 Reinaldo Mayol Arnao

40 Parte 2 Funciones Resumen 19/09/2018 Reinaldo Mayol Arnao

41 Funciones Resumen (Hash)
Una función hash toma una entrada de longitud variable a una salida de longitud fija (96, 128 o 160 bits)‏ Requisitos: No puede deducir la entrada de la salida. No puede generar una salida dada sin tener la misma entrada. No puede encontrar dos entradas que produzcan la misma salida. Cualquier cambio en la entrada cambia la salida. 19/09/2018 Reinaldo Mayol Arnao

42 Esquema del uso de las funciones hash
Criptografía 19/09/2018 Esquema del uso de las funciones hash Usando Criptografía Simétrica Usando Criptografía Asimétrica K Privada Tx ¿Son iguales? Ku Tx En la primera parte de la lámina se haya el resumen de un mensaje y se cifra con la clave (única y privada). El recepto recibe el mensaje calcula el resumen del texto recibido y lo compara con el resumen recibido y que fue calculado en el Tx antes de que el mensaje fuese enviado. El segundo caso es igual, pero utilizando para cifrar el resumen la Kp del Tx por lo que el Rx descifrará con la Ku. ¿Qué significa que ambos resúmenes sean iguales? REF: la imagen ha sido descargada desde el sitio del libro Cryptography and Network Security de William Stalling. Estas imágenes son de libre distribución. 19/09/2018 Reinaldo Mayol Arnao

43 ¿Cómo lograr resúmenes Únicos?
Criptografía 19/09/2018 ¿Cómo lograr resúmenes Únicos? Imagine que un atacante logre conseguir 2 mensajes diferentes que den el mismo hash. Podría interceptar el mensaje, cambiarlo, volver a ensamblar la estructura mensaje+hash y transmitirlo. ¡El Rx no tendrá forma de darse cuenta de que el mensaje que ha recibido es falso ! Si recuerda la paradoja del cumpleaños pareciera que ese es un camino adecuado. hash= resumen 19/09/2018 Reinaldo Mayol Arnao

44 La Paradoja del Cumpleaños
Criptografía 19/09/2018 La Paradoja del Cumpleaños Según la teoría matemática, si reuniéramos a 23 personas1 en una habitación existe aproximadamente un 50% de posibilidades de que 2 de ellas cumplan años el mismo día. Si en vez de 23 juntamos 75 la probabilidad sube al 99.9%. 1- Suponiendo que la distribución por días de nacimiento sea homogénea, lo que seguramente será difícil de cumplir. P= probabilidad de que exista coincidencia. p barra= 1-1/365: probabilidad de que no se de la coincidencia. Mire este caso interesante. Suponga que quiere comprar una máquina captadora de huellas, para su empresa de 3000 empleados. En el mercado consigue una que dice que tiene una fiabilidad 1 en Si despejamos n de la fórmula encontraremos que con aproximadamente 1177 casos habrá una probabilidad de 0,5 de que la máquina se equivoque!. Esa es la paradoja del cumpleaños. 19/09/2018 Reinaldo Mayol Arnao

45 ¿Por qué la paradoja del cumpleaños es importante?
Simplemente porque podríamos tener 2 criptogramas iguales cuyo origen sean 2 M diferentes. En un momento entenderemos esto con mas detalle. 19/09/2018 Reinaldo Mayol Arnao

46 De nuevo la paradoja del cumpleaños
Criptografía 19/09/2018 De nuevo la paradoja del cumpleaños Es mucho mas sencillo generar varios mensajes ( por ejemplo variaciones del mensaje fraudulento) y buscar que uno haga que: Hash ( mensaje verdadero)=Hash ( mensaje falso) Por ejemplo si el hash es de 64 bits habría 2 64 posibles valores, pero bastaría generar para que apareciera uno que cumpliese con la condición anterior. Entonces el secreto está en usar funciones hash que generen resúmenes suficientemente grandes. 19/09/2018 Reinaldo Mayol Arnao

47 De nuevo: el tamaño si importa
Criptografía 19/09/2018 De nuevo: el tamaño si importa Entonces el tamaño de la función hash es importante para la fortaleza ante ataques de cumpleaños. Un hash de 128 bits ( MD5) implica hacer 264 mensajes, pero hash de 160 bits implica 280 por ahora fuera de el rango posible por simple aplicación del LPC, sin embargo… Esto explica porque en este curso no hablaremos de MD5. 19/09/2018 Reinaldo Mayol Arnao

48 De nuevo: el tamaño si importa
Criptografía 19/09/2018 De nuevo: el tamaño si importa Un grupo de investigadores ha demostrado que puede “ romper el algoritmo” en 263 operaciones, incluso por debajo del umbral razonable de fuerza bruta.( 280 ) A pesar de que 263 suponen aún un número alto de operaciones, se encuentra dentro de los límites de las capacidades actuales de cálculos, y es previsible que con el paso del tiempo romper esta función sea trivial, al aumentar las capacidades de cálculo y al ser más serios los ataques contra SHA-1. ¿Qué camino queda entonces? 19/09/2018 Reinaldo Mayol Arnao

49 Criptografía 19/09/2018 SHA-1 El algoritmo toma valores de entrada de cualquier tamaño y da a la salida un número de 160 bits. Paso 1: El mensaje se pica en bloques de 512 bits, se rellena y se agrega la longitud del mensaje original. Paso 2: Cada bloque de 512 bits es transformado en una función llamada Hsha. La salida de cada bloque se mezcla con el siguiente. El primer bloque se mezcla con un vector de inicialización de 160 bits. Cuando se han consumido todos los bloques la salida es el hash de mensaje. 19/09/2018 Reinaldo Mayol Arnao

50 Un bloque de la función Hsha
Criptografía 19/09/2018 Un bloque de la función Hsha Cada función está compuesta por 4 etapas, cada una de 20 pasos. Los valores iniciales de A, B, C, D, E son los siguientes: A= B=EFCDAB89 C=98BADCFE D= E=C3D2E1F0 Yq es la entrada del bloque de 512 bits del mensaje, Cvq es la salida de la función Hsha del bloque anterior. A,B,C,D Palabras del Buffer t Paso ( 0-19 F Función F S Rotación de k bits a la izq. W Palabra de 32 bits derivada de la entrada del bloque 19/09/2018 Reinaldo Mayol Arnao

51 Función Hsha A,B,C,D,E (E+ f (t,B,C,D)+S5(A)+Wt+Kt),A,S30(B),C,D Yq
Criptografía 19/09/2018 Función Hsha A,B,C,D,E (E+ f (t,B,C,D)+S5(A)+Wt+Kt),A,S30(B),C,D W0 W2 W8 W13 Yq XOR S1 Note que para cada paso la función f es diferente. La palabra W es derivada del primer bloque de entrada según se muestra en la imagen a la derecha, el resto de las palabras ( hasta la 79) son derivadas según la ecuación que se muestra. (Ec.1) w0 w15 w16 19/09/2018 Reinaldo Mayol Arnao

52 ¿Qué condiciones debe tener un buen algoritmo de hash?
Criptografía 19/09/2018 ¿Qué condiciones debe tener un buen algoritmo de hash? No deben existir 2 mensajes diferentes que posean igual hash.1 Teniendo el valor del hash debe ser prohibitivo conseguir el mensaje original. Teniendo M debe ser fácil calcular el hash. 1-Como esta condición es imposible de sostener, nos conformamos con decir que el reto de conseguir dos mensajes diferentes con hash iguales debe ser lo mas alto posible. 19/09/2018 Reinaldo Mayol Arnao

53 SHA-1 vs MD5 Criterio MD5 SHA-1 Longitud de Salida 128 b 160 b
Criptografía 19/09/2018 SHA-1 vs MD5 Criterio MD5 SHA-1 Longitud de Salida 128 b 160 b Unidad de procesamiento 512 b Tamaño máximo del mensaje infinito 264-1 b Número de pasos 64 80 Endianness Big-Endian Little-Endian El sistema big-endian adoptado por Motorola, Sun ( de donde posiblemente proviene el hecho de que los diseñadores de SHA) entre otros, consiste en representar los bytes en el orden "natural": así el valor hexadecimal 0x4A3B2C1D se codificaría en memoria en la secuencia {4A, 3B, 2C, 1D}. En el sistema little-endian adoptado por Intel, entre otros, el mismo valor se codificaría como {1D, 2C, 3B, 4A}. ¿Existió SHA-0? Sí, el algoritmo original llevaba ese nombre pero fue sustituido en 1995 por la versión 1 que corregía algunas debilidades del mismo. Existen cuatro variantes más que se han publicado desde 1995 cuyas diferencias se deben sobre todo, en los rangos de salida incrementados: SHA-224, SHA-256, SHA-384, y SHA-512 (llamándose SHA-2 a todos ellos). MD5 y SHA no son las únicas funciones hash existentes, aunque si las mas utilizadas. Tiger y Whirlpool son ejemplos de funciones que incluso han sido señaladas como posibles sustitutas de SHA. Ambas funciones producen hashes mas grandes ( 512 y192 bits respectivamente), por lo que en teoría son mas resistentes a ataques que las actuales. Sin embargo, hay razones para sospechar que no veremos en el futuro implementaciones masivas de ambos protocolos. 19/09/2018 Reinaldo Mayol Arnao

54 No son las únicas… MD5 y SHA no son las únicas funciones hash existentes, aunque si las mas utilizadas. Tiger y Whirlpool son ejemplos de funciones que incluso han sido señaladas como posibles sustitutas de SHA. Ambas funciones producen hashes mas grandes ( 512 y 192 bits respectivamente), por lo que en teoría son mas resistentes. Sin embargo, hay razones para sospechar que no veremos en el futuro implementaciones masivas de ambos protocolos. 19/09/2018 Reinaldo Mayol Arnao

55 Parte 3 Firmas Digitales 19/09/2018 Reinaldo Mayol Arnao

56 Firmas Digitales Documento Digitalmente Firmado FIRMA DIGITAL cifrado
Criptografía 19/09/2018 Firmas Digitales FIRMA DIGITAL Documento Digitalmente Firmado cifrado Resumen del mensaje cifrado con la Kp del Remitente Note que es muy común utilizar el término “ yo tengo firma digital” . Ahora sabemos que es incorrecta la expresión. Lo correcto es decir “ yo tengo una clave privada, con la que puedo firmar los documentos, los programas, mensajes, otras llaves o cualquier conjunto de bits”. 19/09/2018 Reinaldo Mayol Arnao

57 Criptografía 19/09/2018 Hasta aquí Si firmamos digitalmente un documento y luego el Rx verifica la firma podrá saber: Si el Tx es quien dice ser pues de lo contrario no hubiese podido cifrar el hash con su Kp. Si el mensaje no ha sido cambiado, pues de lo contrario el hash que se trasmitió ( y que fue calculado antes de salir) no podría ser igual que el que se calcula en el receptor. 1 Podríamos fácilmente extender la seguridad al resto del mensaje cifrándolo también( ahora con la Ku de destino) 1- Ya sabemos que, al menos teóricamente podríamos tener dos mensajes M1 y M2 diferentes y con idéntico hash. En la práctica es mucho mas difícil de hacer que de decir, pues tendríamos que conseguir, además, que los mensajes tuviesen sentido para el receptor de lo contrario este los desecharía inmediatamente y el ataque habrá servido de poco. 19/09/2018 Reinaldo Mayol Arnao

58 Haciendo seguro todo el sistema
Criptografía 19/09/2018 Haciendo seguro todo el sistema Hash Hash Calculado Mensaje en el Tx Mensaje Plano Rx ¿Son iguales? E D Hash EKptx K K Aquí hemos incorporado el cifrado del mensaje con una clave que hemos nombrado K para acentuar su necesario carácter privado. Mensaje Cifrado H Mensaje Cifrado HashRx D Ku tx 19/09/2018 Reinaldo Mayol Arnao

59 Mezclando ambos mundos
Criptografía 19/09/2018 Mezclando ambos mundos Podríamos utilizar la criptografía simétrica para cifrar los mensajes con una clave K. Esto resolvería: 1- Confidencialidad 2- Eficiencia del mecanismo de cifrado. Utilizar criptografía asimétrica para firmar digitalmente los mensajes, al fin y al cabo el hash es un número que cumple que 0<hash<n. Con esto tenemos: 3-Integridad y 4-Autenticidad. PERO ¿Y LA CLAVE K ? ¿Cómo la pasamos entre un extremo y otro de la conexión? Note que hemos mezclado al final todo de lo que hemos venido hablando en este curso. 19/09/2018 Reinaldo Mayol Arnao

60 Haciendo seguro todo el sistema, de nuevo
Criptografía 19/09/2018 Haciendo seguro todo el sistema, de nuevo Reinaldo Mayol Arnao José y Marcos intercambia de forma segura una(s) llave(s) de sesión K y con ella cifran los mensajes Marcos José Mensaje Cifrado HashRx Hash Hash Calculado D Ku tx D K Mensaje Plano Rx ¿Son iguales? Mensaje en el Tx Dos nuevos términos importantes aparecen ahora: Intercambio de llaves y llave de Sesión. Efectivamente no se trata de una llave que los extremos conoce “ a priori” sino que generan e intercambian en cada conexión. A efectos de sencillez hablamos aquí de una sola llave pero en realidad se trata de 2 llaves ( una en cada sentido). En secreto está en que esas llaves sólo puedan ser utilizadas por los extremos correctos. El desconocimiento de lo que sigue es la causa mas sencilla de hacking de conexiones “ supuestamente seguras”. E Hash EKptx K Mensaje Cifrado H 19/09/2018

61 Algoritmo para el intercambio de llaves: Deffie-Hellman
Criptografía 19/09/2018 Algoritmo para el intercambio de llaves: Deffie-Hellman J y M seleccionan un grupo multiplicativo (con inverso) p y un generador  de dicho primo, ambos valores públicos. J genera un número aleatorio a y envía a M a mod p M genera un número aleatorio b y envía a J b mod p En el extremo de Marcos: M calcula (a)b mod p = ab mod p y luego destruye b En el extremo de José: J calcula (b)a mod p = ba mod p y luego destruye a El secreto compartido por J y M es el valor ab mod p=K Con K se cifrarán los mensajes entre José y Marcos. Para este ejemplo supondremos que los extremos de la conexión son J y M ( José y Marcos). Si un extraño quiere saber las claves lo mas que puede “ oir” es αa mod p y αb mod p ( recuerde que esos son números!!). Pero lo que realmente necesita saber es a y b, sin embargo para lograrlo nuevamente tendría que enfrentarse a un logaritmo discreto. CURIOSIDADES En el año 1969 el Government Communications Headquarters(GCHQ) Gran Bretaña comenzó a trabajar en la idea de poder distribuir claves a través de una cifrado asimétrico. En 1973, el matemático Clifford Cocks llegará a la misma conclusión que los creadores de DH. Desgraciadamente este trabajo fue considerado como alto secreto por el gobierno británico por lo que su contenido no se hace público ni se patenta como invento, algo que sí hacen Diffie y Hellman en 1976. 19/09/2018 Reinaldo Mayol Arnao

62 Criptografía 19/09/2018 ¿Cuan fuerte es DH? Un intruso que conozca las claves públicas p y  e intercepte el valor a mod p que ha enviado A y el valor b mod p que ha enviado B no podrá descubrir los valores de a, de b y menos ab mod p ... Salvo que se enfrente al Problema del Logaritmo Discreto (PLD) que se vuelve computacionalmente intratable para valores de p grandes. Claro siempre y cuando M sea Marcos y J sea José. Pero luego regresaremos a este tema. AQUÍ EJERCICIO DE RAIZ PRIMITIVA ALPHA=5 p=13 ALPHA=2 p=13 Si a es una raíz primitiva mod p, las potencias a0, a1, a²,..., ap-2, recorre todas las clases de equivalencia no nulas mod p. 19/09/2018 Reinaldo Mayol Arnao

63 Todavía nos quedan cosas pendientes
¿Cómo hacemos para que todos tengan nuestras llaves públicas? ¿Cómo informamos si hemos perdido nuestra llave privada? ¿Cuando alguien nos envía su llave pública, que elementos tenemos para confiar el ella? ¿Tenemos forma de limitar el uso que se le den a las llaves ? ¿Si alguien se va de la empresa, como revocamos su llave? 19/09/2018 Reinaldo Mayol Arnao

64 Infraestructura de Clave Pública (PKI)
Parte 4 Infraestructura de Clave Pública (PKI) 19/09/2018 Reinaldo Mayol Arnao

65 ¿Por qué? Existe un mecanismo criptográfico para obtener los objetivos fundamentales de la seguridad... Pero es necesario establecer un mecanismo para distribuir de manera segura las claves. No podemos tener las claves de todos Las claves cambian Hace falta que alguien certifique quien es quien Hace falta que alguien establezca para que se puede usar una clave 19/09/2018 Reinaldo Mayol Arnao

66 Criptografía 19/09/2018 ¿Qué es una PKI? Una PKI es una combinación de hardware y software, políticas, normas y procedimientos. El objetivo fundamental es brindar el soporte para la ejecución de los procedimientos criptográficos estudiados. Una PKI ofrece las condiciones para verificar la autenticidad de las Ku de los usuarios1 y regular su uso . Se basa en la existencia de Autoridades Certificadoras (CA) establecidas en una configuración jerárquica2. De las siglas en idioma inglés de los términos Infraestructura de Clave Pública (Public Key Infrastructure). 1- Usuarios puede ser personas, programas, procesos, etc. 2-¿ Recuerda la estructura del DNS? 19/09/2018 Reinaldo Mayol Arnao

67 Criptografía 19/09/2018 ¿Qué es una CA? Entidad encargada de emitir y revocar certificados digitales. La Autoridad de Certificación es un tipo particular de Prestador de Servicios de Certificación que legitima ante los terceros que confían en sus certificados la relación entre la identidad de un usuario y su clave pública. 19/09/2018 Reinaldo Mayol Arnao

68 ¿Qué es un Certificado Digital?
Criptografía 19/09/2018 ¿Qué es un Certificado Digital? Un certificado es una estructura de datos, generada por regla general por una CA, que contiene la clave pública de un usuario ( persona, máquina, proceso e incluso otra CA), junto a otra información que definen los usos de la clave ( por ejemplo cifrar información, correo seguro, firmar otras llaves, como operador CA, etc). Los certificados están firmados por la CA que los emite. Si un usuario confía en una CA, confía entonces en los certificados que esta ha emitido o firmado. 19/09/2018 Reinaldo Mayol Arnao

69 La Jerarquía de CA Certificados Autoridades Criptografía 19/09/2018
X<<A>> Certificado del Usuario A firmado por la autoridad X No te que los procesos de Confianza se dan en ambos sentidos. Fíjese en caso de la CA W. Ella tiene un certificado propio firmado por V, pero a su vez ( y para poder verificar su propio certificado) tiene el certificado de V firmado por ella: W<<V>>. El proceso podría ser no directo sino tener una 3ra CA en la que ambos confiasen. Fíjese en el caso de las CA X y Z. Se ha dado una certificación cruzada entre ambas. Por lo tanto B y A no tendrán problemas para intercambiar información certificada ya que sus CA ( X y Z) confían una en la otra. 19/09/2018 Reinaldo Mayol Arnao

70 ¿Qué contiene un certificado?
Identificación del suscriptor nombrado en el certificado. El nombre, la dirección y el lugar donde realiza actividades la entidad de certificación. La clave pública del usuario. La metodología para verificar la firma digital del suscriptor impuesta en el mensaje de datos. El número de serie del certificado. Fecha de emisión y expiración del certificado. 19/09/2018 Reinaldo Mayol Arnao

71 ¿Cómo se obtiene un certificado?
Criptografía 19/09/2018 ¿Cómo se obtiene un certificado? Note que la pareja de llaves ( Ku, Kp) es generada por el USUARIO, por regla general por el browser con que se conecta para realizar la solicitud. En la figura aparece un nuevo miembro de la estructura PKI, la autoridad de Registro (RA). Una RA es un proxy. Un usuario NUNCA se conecta directamente a la CA ( la cual de manera regular se encuentra incluso aislada de la red). 19/09/2018 Reinaldo Mayol Arnao

72 Autoridad de Registro La función de las Autoridades de Registro es controlar la generación de certificados para los miembros de una entidad. Son las RA las que se encargan de la verificación de los datos del solicitante. La RA tiene un operador, que una vez verificados los datos del solicitante firma la solicitud. La solicitud se envía firmada a la CA, donde el operador CA emite el certificado que devuelve a la RA para que el usuario pueda descargarla. 19/09/2018 Reinaldo Mayol Arnao

73 ¿Cómo se verifica un Certificado?
Criptografía 19/09/2018 ¿Cómo se verifica un Certificado? El primer paso es tener la Ku ( por supuesto el Certificado) de la CA que ha emitido el certificado, de esta forma verificar la firma del certificado. Verificar parámetros del certificado como propiedad, caducidad, validez, etc. Verificar que las políticas de emisión del certificado sean válidas para el uso que se les pretende dar. Ha visto el mensaje que se muestra. Vamos a divertirnos un poco haciendo caer la seguridad de una conexión. 19/09/2018 Reinaldo Mayol Arnao

74 ¿Por qué se puede revocar un certificado?
Criptografía 19/09/2018 ¿Por qué se puede revocar un certificado? La Kp está ( o se sospecha) comprometida El usuario ya no está certificado por esa CA Se sospecha que el certificado de la CA está comprometido La revocación se hace generalmente por medio de Listas de Certificación de Certificados. Las listas de certificación son emitidas por las CA. 19/09/2018 Reinaldo Mayol Arnao

75 X.509v3 19/09/2018 Reinaldo Mayol Arnao

76 X. 509 v3 Incluye una serie de extensiones adicionales para resolver deficiencias de la versión 2: El campo Sujeto no era adecuado para acomodar algunos nombres de usuarios y aplicaciones Existía la necesidad de indicar información de las Políticas de Seguridad Es necesario definir los usos de los certificados Es necesario poder definir diferentes claves usadas por un usuario. 19/09/2018 Reinaldo Mayol Arnao

77 Criptografía 19/09/2018 Extensiones X509 v3 Cada extensión tiene un campo de riesgo que define si la extensión puede ser ignorada o no. Las extensiones se dividen en: Información sobre claves y políticas Atributos de Sujeto y Emisor Limitaciones de la Ruta de Certificación 19/09/2018 Reinaldo Mayol Arnao

78 Pero … A pesar de que le mecanismo funciona, lo cierto es que, de cara al usuario, es un proceso complicado y al que no suelen verle utilidad. El propio desconocimiento por parte de los administradores del sistema hace que el sistema no sea totalmente implementado o se haga se manera incorrecta. Los costos asociados son altos. En nuestros países no hay normas claras para el uso de la certificación digital. 19/09/2018 Reinaldo Mayol Arnao

79 Fin del Tema Introducción a la Criptografía 19/09/2018
Reinaldo Mayol Arnao


Descargar ppt "Introducción a la Criptografía"

Presentaciones similares


Anuncios Google