Criptografı́a y Seguridad Manuel J. Lucena López [email protected] Departamento de Informática Universidad de Jaén 25 de febrero de 2010 Manuel Lucena (Dpto. Informática) Criptografı́a y Seguridad 25 de febrero de 2010 1 / 11 Datos de la Asignatura I Nombre: Criptografı́a y Seguridad. I Código: 5265. I Titulación: Ingenierı́a Técnica en Informática de Gestión (1997). I Carácter: Optativo. I Curso: 3o . I Cuatrimestre: 2o . I Créditos LRU: 3 teóricos y 3 prácticos. I Créditos ECTS: 2.4 teóricos y 2.4 prácticos. Manuel Lucena (Dpto. Informática) Criptografı́a y Seguridad 25 de febrero de 2010 2 / 11 Datos del Profesorado I Profesor: Manuel J. Lucena López. I e-mail: [email protected] I Despacho: A3-112. I Teléfono: 953 21 28 86 I Web: http://wwwdi.ujaen.es/∼mlucena Tutorı́as: I Lunes, de 10:30 a 12:30. I Jueves, de 10:30 a 12:30. I Viernes, de 11:30 a 13:30. Manuel Lucena (Dpto. Informática) Criptografı́a y Seguridad 25 de febrero de 2010 3 / 11 Objetivos I Conocer las principales bases teóricas de la Criptografı́a. I Diferenciar entre Criptografı́a Simétrica y Asimétrica. I Conocer la estructura, propiedades y ámbito de aplicación de los principales algoritmos criptográficos. I Identificar los principales riesgos de seguridad de un sistema informático. Manuel Lucena (Dpto. Informática) Criptografı́a y Seguridad 25 de febrero de 2010 4 / 11 Programa de la Asignatura Programa Teórico: 1. Introducción. 2. Conceptos Básicos sobre Criptografı́a. 3. Bases Teóricas de la Criptografı́a. 4. Algoritmos Criptográficos. 5. Aplicaciones Criptográficas. Programa Práctico: I Trabajo de carácter práctico, grupos de 3 a 5 personas. Manuel Lucena (Dpto. Informática) Criptografı́a y Seguridad 25 de febrero de 2010 5 / 11 Criterios de Evaluación I Teorı́a (60 %) y Prácticas (40 %). I I I Teorı́a: Examen escrito. I I I Se considera como presentado si se hace el examen o se entregan las prácticas. Si se aprueba una parte y otra no, se guarda la nota hasta septiembre. 30 preguntas objetivas (50 %). 6 preguntas de respuesta breve, a elegir 5 (50 %). Prácticas: I I I I Reuniones periódicas de seguimiento, al menos 4. Tema libre, acordado por escrito con el profesor. Entrega de memoria, código fuente, ejecutables, etc. Exposición al final del cuatrimestre. Manuel Lucena (Dpto. Informática) Criptografı́a y Seguridad 25 de febrero de 2010 6 / 11 Memoria de Prácticas I Se entregará en formato CD: I I I I Rotular en el disco el curso académico, número de grupo, nombres de los integrantes, tı́tulo de la aplicación y nombre de la asignatura. Organizar en carpetas. No usar espacios, tildes, etc. en los nombres de carpetas/archivos. Documentos en formatos estándar: pdf, OpenDocument, html, etc. Elementos: I I I I I I Índice de contenidos. Descripción de los detalles de implementación y de las decisiones de diseño tomadas. Documentación relativa a los algoritmos que se implementen. Guı́a breve del código fuente. Descripción de la estructura de directorios, propósito de cada archivo. Manual de usuario de la aplicación. Manuel Lucena (Dpto. Informática) Criptografı́a y Seguridad 25 de febrero de 2010 7 / 11 Calificación de las prácticas Se valorarán los siguentes elementos, con los siguientes pesos relativos: I Relativos a la aplicación: I I I I Calidad del código fuente (legibilidad, diseño, etc.): 2. Correcto funcionamiento: 2. Aspecto visual y usabilidad de la aplicación: 1. Relativos a la documentación: I I I I Aspecto general (limpieza, orden, claridad): 1. Índice (presencia, claridad y utilidad de éste): 1. Manual (claridad, organización, completitud): 2. Discusión crı́tica de todos los aspectos relevantes: 2. Manuel Lucena (Dpto. Informática) Criptografı́a y Seguridad 25 de febrero de 2010 8 / 11 Bibliografı́a Básica: I M. Lucena, Criptografı́a y Seguridad en Computadores, 4o Edición. I Alfred J. Menezes, Paul C. Van Oorschot y Scott A. Vanstone. Handbook of Applied Cryptography. CRC Press 1996. Complementaria: I P. Caballero, Introducción a la Criptografı́a, 2o edición. RA-MA. I B. Schneier, Applied Cryptography. Second Edition. J. Wiley & Sons. I William Stallings, Fundamentos de Seguridad en Redes. Aplicaciones y Estándares, 2o ed. Pearson Educación, 2003. Manuel Lucena (Dpto. Informática) Criptografı́a y Seguridad 25 de febrero de 2010 9 / 11 Otros datos Horarios: I Teorı́a: Jueves, de 12:30 a 13:30, y viernes, de 13:30 a 14:30. I Prácticas: Martes de 10:30 a 12:30 y de 12:30 a 14:30. Aulas: I Teorı́a: Aula 2, edificio A-4. I Prácticas: Laboratorio 2 (dependencia 174, edificio A-3). Manuel Lucena (Dpto. Informática) Criptografı́a y Seguridad 25 de febrero de 2010 10 / 11 Más información en: http://wwwdi.ujaen.es/∼mlucena Manuel Lucena (Dpto. Informática) Criptografı́a y Seguridad 25 de febrero de 2010 11 / 11 Criptografı́a y Seguridad en Computadores Tema 1. Introducción Manuel J. Lucena López [email protected] Departamento de Informática Universidad de Jaén 17 de septiembre de 2008 Manuel Lucena (Dpto. Informática) 1. Introducción 17 de septiembre de 2008 1/6 ¿Qué es la Criptografı́a? Definición (Diccionario de la Real Academia): “Arte de escribir con clave secreta o de un modo enigmático” I I La necesidad de transmitir información corre paralela con la de protegerla. Hace años que dejó de ser un considerada un arte. Conjunto de técnicas que tratan sobre la protección —ocultamiento frente a observadores no autorizados— de la información. I Disciplinas: Teorı́a de la Información, Teorı́a de Números, Complejidad Algorı́tmica, etc. Manuel Lucena (Dpto. Informática) 1. Introducción 17 de septiembre de 2008 2/6 Objetivo de la Criptografı́a Protección de la Información I Alterar la información para que aquellos que pretendan recuperarla sin la debida autorización, se enfrenten a un problema intratable. I La autorización suele ser una pieza de información llamada clave. Preservación de la Integridad de la Información I Detección de posibles alteraciones. I Certificación del origen de la misma =⇒ Firma Digital. Manuel Lucena (Dpto. Informática) 1. Introducción 17 de septiembre de 2008 3/6 Historia de la Criptografı́a I La Criptografı́a nace con la escritura. I I I I La Criptografı́a moderna, como la Informática, nace en la II Guerra Mundial. I I I Referencias desde varios siglos antes de Jesucristo. Tradicionalmente, los cifrados se hacı́an a mano. Los intentos de descifrado también se hacı́an a mano. Cifrados Enigma y de Lorenz. Proyecto Colossus. La Criptografı́a militar ha estado por delante de la Criptografı́a civil durante décadas. Manuel Lucena (Dpto. Informática) 1. Introducción 17 de septiembre de 2008 4/6 ¿Qué no es Criptografı́a? Seguridad a través de la oscuridad I Si mantenemos en secreto nuestras técnicas de cifrado, serán más seguras. Falso. I Cualquier persona o equipo es capaz de diseñar un sistema que él mismo no sea capaz de romper. I Es necesario que las técnicas de cifrado sean conocidas. I Al atacante hay que suponerle un conocimiento completo del sistema. I Desconfiar de soluciones secretas o milagrosas... Manuel Lucena (Dpto. Informática) 1. Introducción 17 de septiembre de 2008 5/6 Números Grandes I Probabilidad de ser fulminado por un rayo (por dı́a): 1 entre 9.000.000.000 (233 ). I Probabilidad de ganar la Loterı́a Primitiva: 1 entre 13.983.816 (223 ). I Probabilidad de ganar la Primitiva y caer fulminado por un rayo el mismo dı́a: 1 entre 256 . I Edad del Planeta Tierra: 109 (230 ) años. I Edad del Universo: 1010 (234 ) años. I Un año: 244 millonésimas de segundo. I Número de átomos en el Planeta Tierra: 1051 (2170 ). I Número de átomos en la Vı́a Láctea: 1067 (2223 ). I Número de átomos en el Universo (excl. materia oscura): 1077 (2255 ). Manuel Lucena (Dpto. Informática) 1. Introducción 17 de septiembre de 2008 6/6 Criptografı́a y Seguridad en Computadores Tema 2. Conceptos Básicos Manuel J. Lucena López [email protected] Departamento de Informática Universidad de Jaén 19 de marzo de 2010 Manuel Lucena (Dpto. Informática) 2. Conceptos Básicos 19 de marzo de 2010 1 / 13 19 de marzo de 2010 2 / 13 Criptosistema Índice Criptosistema Esteganografı́a Criptoanálisis Seguridad en Sistemas Informáticos Manuel Lucena (Dpto. Informática) 2. Conceptos Básicos Criptosistema Definición de Criptosistema Criptosistema: Quı́ntupla (M, C , K , E , D), donde: I M: Conjunto de todos los posibles mensajes sin cifrar. I C : Conjunto de todos los posibles mensajes cifrados, o criptogramas. I K : Conjunto de claves que se pueden emplear en el criptosistema. I E : Conjunto de transformaciones de cifrado. Existe una transformación diferente Ek para cada valor posible de la clave k. I D: Conjunto de transformaciones de descifrado. I Todo criptosistema ha de cumplir: Dk (Ek (m)) = m Manuel Lucena (Dpto. Informática) 2. Conceptos Básicos Criptosistema 19 de marzo de 2010 3 / 13 Tipos de Criptosistemas Tipos de Criptosistemas Simétricos (o de llave privada) I Emplean la misma clave k tanto para cifrar como para descifrar. I Problema: distribución de claves. Asimétricos (o de llave pública) I Emplean una doble clave (kp , kP ). I kp se conoce como clave privada y kP se conoce como clave pública. I Una de ellas sirve para cifrar, y la otra para descifrar. I No solo permiten cifrar la información, sino firmarla digitalmente. Manuel Lucena (Dpto. Informática) 2. Conceptos Básicos 19 de marzo de 2010 4 / 13 Criptosistema Claves Débiles Claves Débiles En un criptosistema, puede haber elementos de K que produzcan transformaciones de cifrado fáciles de romper. I No es algo necesariamente malo. Muchos criptosistemas poseen claves débiles. I Es difı́cil demostrar que un criptosistema no tiene claves débiles. I Suelen ser muy pocas en relación con el número total de posibles claves. I Lo ideal es conocerlas y evitarlas. Manuel Lucena (Dpto. Informática) 2. Conceptos Básicos 19 de marzo de 2010 5 / 13 19 de marzo de 2010 6 / 13 Esteganografı́a Índice Criptosistema Esteganografı́a Criptoanálisis Seguridad en Sistemas Informáticos Manuel Lucena (Dpto. Informática) 2. Conceptos Básicos Esteganografı́a Esteganografı́a Consiste en ocultar en el interior de una información, aparentemente inocua, otro tipo de información (cifrada o no). I Tanto o más antigua que la propia Criptografı́a. I Permite burlar sistemas de censura, en los que el atacante se limita a destruir el mensaje si lo considera sospechoso. I Con la enorme cantidad de datos que nos rodean, la esteganografı́a adquiere un potencial prácticamente ilimitado. Manuel Lucena (Dpto. Informática) 2. Conceptos Básicos 19 de marzo de 2010 7 / 13 19 de marzo de 2010 8 / 13 Criptoanálisis Índice Criptosistema Esteganografı́a Criptoanálisis Seguridad en Sistemas Informáticos Manuel Lucena (Dpto. Informática) 2. Conceptos Básicos Criptoanálisis Criptoanálisis Consiste en descifrar uno o más mensajes sin conocer la clave correspondiente (romper el criptosistema). I Posibilidades: I I I Descifrar mensajes sin hacer uso de la clave. Recuperar la clave a partir de un número de mensajes cifrados. No se considera criptoanálisis: I I Probar todas las posibles claves (fuerza bruta). Descubrir el algoritmo de cifrado, cuando este era secreto. Ataque Un ataque es cualquier técnica que nos permite romper un criptosistema más rápido que mediante la fuerza bruta. Manuel Lucena (Dpto. Informática) 2. Conceptos Básicos 19 de marzo de 2010 9 / 13 Criptoanálisis Compromiso entre Criptosistema y Criptoanálisis Prácticamente todos los criptosistemas pueden ser rotos con el suficiente esfuerzo computacional. I Cuanto más complejo es un algoritmo de cifrado, más costosa es su implantación. I No es lo mismo proteger una información efı́mera, que otra a más largo plazo. I Se busca un compromiso entre el coste (económico, computacional, de almacenamiento...) del criptosistema y el coste necesario para romperlo. I Hoy dı́a disponemos de algoritmos cuyo coste de rotura excede al de la capacidad de cómputo existente en el planeta. Manuel Lucena (Dpto. Informática) 2. Conceptos Básicos 19 de marzo de 2010 10 / 13 Seguridad en Sistemas Informáticos Índice Criptosistema Esteganografı́a Criptoanálisis Seguridad en Sistemas Informáticos Manuel Lucena (Dpto. Informática) 2. Conceptos Básicos 19 de marzo de 2010 11 / 13 Seguridad en Sistemas Informáticos Seguridad I La seguridad de la información es mucho más compleja que el simple uso de técnicas de cifrado. I Los escenarios y requerimientos variarán en función de que la computadora se encuentre aislada o interconectada, sea fija o portátil, etc. Algunas cuestiones de Seguridad: I Seguridad fı́sica. I Seguridad de los canales de comunicaciones. I Control de acceso a los datos. I Autentificación. I No repudio. I Anonimato. Manuel Lucena (Dpto. Informática) 2. Conceptos Básicos 19 de marzo de 2010 12 / 13 Seguridad en Sistemas Informáticos Tipos de Autentificación Autentificar: comprobar la autenticidad de algo. I Una pieza de información (un mensaje). I Un usuario (contraseña). I Un dispositivo. Manuel Lucena (Dpto. Informática) 2. Conceptos Básicos 19 de marzo de 2010 13 / 13 Criptografı́a y Seguridad en Computadores Tema 3. Bases Teóricas de la Criptografı́a Manuel J. Lucena López [email protected] Departamento de Informática Universidad de Jaén 19 de marzo de 2010 Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 1 / 41 19 de marzo de 2010 2 / 41 Teorı́a de la Información Índice Teorı́a de la Información Complejidad Algorı́tmica Aritmética Modular Curvas Elı́pticas Números Aleatorios Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Teorı́a de la Información Cantidad de Información Cantidad de Información de un Suceso La observación de un suceso aumenta nuestro conocimiento sobre el universo, es decir proporciona información. Ejemplo I Una bolsa con nueve bolas negras y una blanca. I Sacamos una bola blanca, ¿Cuánta información aporta ese suceso? I ¿Y si ahora sacamos una bola negra? I El primer suceso aporta mucha información, porque era muy poco probable. El segundo suceso no aporta ninguna información, porque ya sabı́amos lo que iba a ocurrir. I Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Teorı́a de la Información 19 de marzo de 2010 3 / 41 Cantidad de Información Cantidad de Información de un Suceso Caracterı́sticas de cantidad de Información I Es mayor cuanto menos probable es el suceso en cuestión. I Es siempre mayor o igual que cero. I Siendo V una variable aleatoria, xi un suceso y P(xi ) su probabilidad asociada, la Cantidad de Información de xi se define como: Ii = − log2 (P(xi )) I Si P(xi ) = 1 −→ Ii = 0. I Si P(xi ) = 0 −→ Ii = ∞. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 4 / 41 Teorı́a de la Información Entropı́a Entropı́a Definición Suma ponderada de las cantidades de información de todos los posibles estados de una variable aleatoria V : P H(V ) = − ni=1 P(xi ) log2 [P(xi )] Propiedades 1. 0 ≤ H(V ) ≤ log2 N 2. H(V ) = 0 ⇐⇒ ∃i tal que P(xi ) = 1 y P(xj ) = 0 ∀j 6= i 3. H(x1 , x2 . . . xn ) = H(x1 , x2 . . . xn , xn+1 ) si P(xn+1 ) = 0 I I I Se mide en bits. La entropı́a de una variable aleatoria es el no medio de dı́gitos binarios necesario para codificar cada uno de sus estados. Proporciona el lı́mite teórico de compresión de la información. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Teorı́a de la Información 19 de marzo de 2010 5 / 41 Entropı́a Entropı́a Ejemplos: I Moneda al aire: 1 1 1 1 H(M) − [ log2 ( ) + log2 ( )] = 1 bit 2 2 2 2 I Moneda trucada (60 % cara, 40 % cruz): H(Mt ) = −(0,6 log2 (0,6) + 0,4 log2 (0,4)) = 0,970 bits I Bolsa con nueve bolas negras y una blanca: H(B) = −(0,9 log2 (0,9) + 0,1 log2 (0,1)) = 0,468 bits Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 6 / 41 Teorı́a de la Información Entropı́a Condicionada Entropı́a Condicionada I Entropı́a de una distribución conjunta de dos variables (X , Y ): H(X , Y ) = − n X m X P(xi , yj ) log2 (P(xi , yj )) i=1 j=1 I Entropı́a de la distribución de X condicionada a un valor de Y : H(X /Y = yj ) = − n X P(xi /yj ) log2 (P(xi /yj )) i=1 I Entropı́a Condicionada de X sobre Y : H(X /Y ) = − n X m X P(xi , yj ) log2 (P(xi /yj )) i=1 j=1 Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Teorı́a de la Información 19 de marzo de 2010 7 / 41 Entropı́a Condicionada Propiedades de la Entropı́a Condicionada Ley de Entropı́as Totales H(X , Y ) = H(X ) + H(Y /X ) I Si X e Y son variables independientes: H(X , Y ) = H(X ) + H(Y ) Teorema de Disminución de la Entropı́a La entropı́a de una variable X condicionada por otra Y es menor o igual a la entropı́a de X , alcanzándose la igualdad si y sólo si las variables X e Y son independientes. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 8 / 41 Teorı́a de la Información Cantidad de Información entre dos Variables Cantidad de Información entre dos Variables La cantidad de información que la variable X contiene sobre Y se define como: I (X , Y ) = H(Y ) − H(Y /X ) I Al medir la incertidumbre sobre Y , puede que obtengamos valores distintos según conozcamos el valor de X o no. I Si conocemos X , puede que la incertidumbre de Y no varı́e, o que disminuya. I Esa posible disminución de incertidumbre (entropı́a), es la cantidad de información entre X e Y . Propiedades: I 1. I (X , Y ) = I (Y , X ) 2. I (X , Y ) ≥ 0 Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Teorı́a de la Información 19 de marzo de 2010 9 / 41 Criptosistema Seguro de Shannon Criptosistema Seguro de Shannon I Criptosistema que cumple: I (C , M) = 0 I I C : Variable aleatoria que representa el criptograma enviado. M: Variable aleatoria que representa el mensaje en claro. I Conocer el valor concreto de C (el criptograma) no modifica la incertidumbre sobre el texto en claro al que corresponde. I Imposible de romper, incluso disponiendo de capacidades de cómputo (memoria y procesamiento) infinitas. I No suelen resultar prácticos: la clave debe ser al menos tan larga como el mensaje. I Ejemplo: One-time pads (cuadernos de un solo uso), empleados en la I Guerra Mundial. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 10 / 41 Teorı́a de la Información Redundancia Redundancia LPT D M CS S P RT C L R I El mensaje puede reconstruirse con facilidad. I La información que falta puede recuperarse de los sı́mbolos que quedan. I Esto implica que los sı́mbolos transportan información repetida: redundancia. I Los lenguajes humanos son redundantes. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Teorı́a de la Información 19 de marzo de 2010 11 / 41 Redundancia Medidas de Redundancia I Índice de un lenguaje para mensajes de longitud k: rk = I Hk (M) k Índice absoluto de un lenguaje de m sı́mbolos: log2 (mk ) k log2 (m) R= = = log2 m k k I Redundancia de un lenguaje: D =R −r I Índice de redundancia: I = Manuel Lucena (Dpto. Informática) D R 3. Bases Teóricas 19 de marzo de 2010 12 / 41 Teorı́a de la Información Desinformación y Distancia de Unicidad Desinformación y Distancia de Unicidad Desinformación Entropı́a condicionada del conjunto M de posibles mensajes sobre el conjunto C de posibles criptogramas. I I I Es máxima, H(M/C ) = H(M), para criptosistemas seguros de Shannon. Si H(M/C ) = 0, conocer un criptograma reduce nuestra incertidumbre sobre el mensaje a cero (lo podemos recuperar). También sobre K como H(K /C ): conocimiento que ganamos sobre la clave k conocido el criptograma c. Distancia de unicidad Cantidad de texto cifrado que reduce la incertidumbre sobre K a cero. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Teorı́a de la Información 19 de marzo de 2010 13 / 41 Confusión y Difusión Confusión y Difusión Confusión I Oculta la relación entre c y m. I Operación básica: sustitución. Difusión I Diluye la redundancia del texto claro repartiéndola a lo largo del texto cifrado. I Operación básica: transposición. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 14 / 41 Complejidad Algorı́tmica Índice Teorı́a de la Información Complejidad Algorı́tmica Aritmética Modular Curvas Elı́pticas Números Aleatorios Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 15 / 41 Complejidad Algorı́tmica Complejidad Algorı́tmica Algoritmo Secuencia finita y ordenada de instrucciones elementales que, dados los valores de entrada de un problema, en algún momento finaliza y devuelve la solución. Complejidad Algorı́tmica Permite medir el esfuerzo computacional para resolver un problema, independientemente de la máquina que empleemos para ello. I Tres alternativas: mejor caso, caso promedio y peor caso. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 16 / 41 Complejidad Algorı́tmica Clases de Complejidad I Clase P: Problemas de decisión que pueden ser resueltos en tiempo polinomial. I Clase NP: Problemas para los que una respuesta afirmativa puede ser verificada en tiempo polinomial, a partir de un certificado. I Clase co-NP: Problemas para los que una respuesta negativa puede ser verificada en tiempo polinomial, a partir de un certificado. I La clase NPC es un subconjunto de NP, en el que todos sus elementos pueden reducirse unos a otros. I Los problemas NP-duros son la versión computacional de los problemas de la clase NPC. Ejemplo: problema de la mochila. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 17 / 41 19 de marzo de 2010 18 / 41 Complejidad Algorı́tmica Clases de Complejidad Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Complejidad Algorı́tmica Algoritmos Probabilı́sticos Algoritmos Probabilı́sticos I Son algoritmos que dan una respuesta, pero con una probabilidad de error. I Para algunos problemas, son mucho más rápidos que los algoritmos deterministas. I Tienen sus propias clases de complejidad. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 19 / 41 19 de marzo de 2010 20 / 41 Aritmética Modular Índice Teorı́a de la Información Complejidad Algorı́tmica Aritmética Modular Curvas Elı́pticas Números Aleatorios Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Aritmética Modular Definición Definición de Aritmética Modular Dados tres números a, b, n ∈ N, decimos que a es congruente con b módulo n, y se escribe: a ≡ b (mód n) si cumplen: a = b + kn, para algún k ∈ Z I Zn contiene los números que van de 0 a n − 1. I Propiedades para la suma: asociativa, conmutativa, elemento neutro y elemento simétrico. I Propiedades para el producto: asociativa, conmutativa y elemento neutro. I Zn con la operación suma es un grupo conmutativo. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Aritmética Modular 19 de marzo de 2010 21 / 41 Inversas en aritmética modular Inversas en Zn Existencia I a tiene inversa módulo n solo si a y n son primos entre sı́. I Si n es primo, Zn tiene estructura de cuerpo, ya que todos sus elementos tienen inversa excepto el cero. Función de Euler φ(n) I Indica cuántos números menores que n son primos relativos con n. Teoremas: I Si mcd(a, n) = 1, entonces aφ(n) ≡ 1 (mód n). I (de Fermat): Si p es primo, ap−1 ≡ 1 (mód p). Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 22 / 41 Aritmética Modular Inversas en aritmética modular Cálculo de Inversas y Teorema Chino del Resto Cálculo de Inversas 1. Usar la función de Euler φ(n). 2. Usar el algoritmo extendido de Euclides, ya que: I I En el último paso, 1 = nui + avi . En consecuencia, avi ≡ 1 (mód n). Teorema Chino del Resto I Dada una serie de ecuaciones en congruencias módulo p1 , p2 , ..., pr , siendo los pi primos relativos, de la forma: x ≡ xi I (mód pi ) Si n = p1 · p2 · ... · pr , todas las ecuaciones tienen una única solución común en [0, n − 1]. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Aritmética Modular 19 de marzo de 2010 23 / 41 Exponenciación y Logaritmos Discretos Exponenciación y Logaritmos Discretos Algoritmo rápido de exponenciación I Permite calcular potencias de forma eficiente. Logaritmos Discretos I Problema inverso a la exponenciación. Dados a,b y n, encontrar c tal que: a ≡ b c (mód n). I Es un problema computacionalmente difı́cil de resolver. Problema de Diffie-Hellman I Dados α, αa y αb , encontrar αab . Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 24 / 41 Aritmética Modular Factorización Factorización I Problema inverso al de la multiplicación. I También es un problema difı́cil. I Algoritmos de factorización: I I I Método de Fermat. Método p − 1. Métodos cuadráticos. Se basan en la ecuación: x2 ≡ y2 (mód n). Por tanto, n|(x + y )(x − y ), por lo que n ha de tener factores comunes con (x + y ) y (x − y ). Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Aritmética Modular 19 de marzo de 2010 25 / 41 Tests de primalidad Tests de primalidad I Para saber si un número es primo, basta con intentar factorizarlo, lo cual es muy ineficiente. I ¿Cómo saber si un número es primo? I Algoritmos probabilı́sticos: I I I Devuelven verdadero o falso con una probabilidad de fallo. Lehmann (50 %), Rabin-Miller (25 %). Ejecutándolos varias veces, la probabilidad de fallo se reduce exponencialmente. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 26 / 41 Aritmética Modular Anillos de Polinomios Anillos de Polinomios Definición: I Sea R un anillo conmutativo. Un polinomio con variable x sobre R se define como: f (x) = an x n + an−1 x n−1 + ... + a1 x + a0 con ai ∈ R. I El conjunto de polinomios R[x] tiene estructura de anillo conmutativo. I Los polinomios pueden ser descompuestos como productos de otros polinomios. I Los polinomios irreducibles son análogos a los números primos. I Podemos definir clases de equivalencia módulo f (x), análogas a los conjuntos Zn . Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Aritmética Modular 19 de marzo de 2010 27 / 41 Anillos de Polinomios Polinomios en Zn I Podemos definir polinomios con coeficientes en Zn , particularmente en Z2 : I I I I Los polinomios pueden representarse mediante secuencias de bits. Las sumas son operaciones or-exclusivo. Los productos son desplazamientos y sumas. Resultan muy eficientes para implementaciones hardware. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 28 / 41 Curvas Elı́pticas Índice Teorı́a de la Información Complejidad Algorı́tmica Aritmética Modular Curvas Elı́pticas Números Aleatorios Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Curvas Elı́pticas 19 de marzo de 2010 29 / 41 Curvas Elı́pticas en R Curvas Elı́pticas en R Definición: Una curva elı́ptica sobre R es el conjunto de los puntos del plano (x, y ) que cumplen la ecuación: y 2 = x 3 + ax + b a) b) y 2 = x 3 − 5x + 1 Manuel Lucena (Dpto. Informática) y 2 = x 3 − 3x + 4 3. Bases Teóricas 19 de marzo de 2010 30 / 41 Curvas Elı́pticas Curvas Elı́pticas en R Grupo de Curva Elı́ptica E (R) Compuesto por todos los puntos de la curva, más un punto O, situado en el infinito. I Definiremos una operación suma con las siguientes propiedades: I I I r + O = O + r = r (elemento neutro). ∀r, ∃s tal que r + s = O (elemento simétrico). Sumar un punto p consigo mismo k veces ⇒ multiplicar p por el entero k. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Curvas Elı́pticas 19 de marzo de 2010 31 / 41 Curvas Elı́pticas en R Interpretación Gráfica de la Suma en E (R) Sumar r y s: Sumar p consigo mismo: -t -t p s r t t a) Manuel Lucena (Dpto. Informática) b) 3. Bases Teóricas 19 de marzo de 2010 32 / 41 Curvas Elı́pticas Curvas elı́pticas en otros conjuntos Curvas elı́pticas en otros conjuntos En GF (n) y 2 ≡ x 3 + ax + b (mód n) I No tienen representación gráfica. I La suma se efectúa mediante las expresiones analı́ticas. En GF (2n ) y 2 + xy ≡ x 3 + ax + b I (mód p(x)) En este caso, el conjunto base está compuesto por polinomios con coeficientes en Z2 . Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Curvas Elı́pticas 19 de marzo de 2010 33 / 41 Logaritmos Discretos en Curvas Elı́pticas Problema de los Logaritmos Discretos en Curvas Elı́pticas I Sea p un punto de una curva elı́ptica. I Sea hpi el conjunto {O, p, 2p, 3p,. . . }. I Para todo q ∈ hpi, debe existir un entero k tal que kp = q Problema de los Logaritmos Discretos en Curvas Elı́pticas I Hallar k ∈ N tal que q = kp. I Es un problema difı́cil, apto para su uso en Criptografı́a. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 34 / 41 Números Aleatorios Índice Teorı́a de la Información Complejidad Algorı́tmica Aritmética Modular Curvas Elı́pticas Números Aleatorios Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 35 / 41 Números Aleatorios Importancia de los Números Aleatorios en Criptografı́a Es fundamental poder generar valores impredecibles y sin relación estadı́stica entre ellos. I Claves de sesión. I Números primos para las claves privadas. I ... Generadores tradicionales I Generan secuencias que superan los test estadı́sticos de aleatoriedad. I Son predecibles. ⇐ Inadmisible I Son reproducibles. ⇐ Inadmisible Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 36 / 41 Números Aleatorios Generadores aleatorios Secuencias Pseudoaleatorias Secuencias Estadı́sticamente Aleatorias I Pasan los tests estadı́sticos de aleatoriedad. I Predecibles y reproducibles a partir de porciones pequeñas de la secuencia. Secuencias Criptográficamente Aleatorias I Calcular el siguiente valor de la secuencia a partir de una porción arbitraria de la misma resulta intratable. I Usan información secreta de inicialización y estado. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Números Aleatorios 19 de marzo de 2010 37 / 41 Generadores aleatorios Secuencias Aleatorias Una secuencia es totalmente aleatoria si no puede reproducirse de manera fiable. I I Una computadora es determinista (predecible). Fuentes externas de aleatoriedad: I I I I I I Conversores A/D (tarjetas de sonido). Actividad de dispositivos externos (disco duro). Actividad del usuario. Dispositivos hardware especı́ficamente diseñados. ... Podemos mezclar varias fuentes externas de aleatoriedad. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 38 / 41 Números Aleatorios Generadores aleatorios Clasificación de las secuencias aleatorias Secuencias Aleatorias (no reproducibles) Secuencias Pseudoaleatorias (reproducibles) Secuencias Criptográficamente Aleatorias Secuencias Estadísticamente Aleatorias Manuel Lucena (Dpto. Informática) 3. Bases Teóricas Números Aleatorios 19 de marzo de 2010 39 / 41 Generadores aleatorios Eliminación del Sesgo I Normalmente, p(1) = 0,5 + d y p(0) = 0,5 − d. Mediante bits de paridad I I Agrupar la secuencia de n en n bits y tomar la paridad. log2 (2) , el sesgo resultante es inferior a . Si n > log2 (2d) Método de Von Neumann I Agrupar los bits de dos en dos. Descartar los pares 00 y 11. I Asignar un 1 al par 10 y un 0 al par 01. I Los bits de la salida son equiprobables. Funciones resumen I Conociendo la entropı́a de la secuencia original. Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 40 / 41 Números Aleatorios Generadores aleatorios Generadores Aleatorios X9.17 I A partir de una semilla s0 , los valores gi de la secuencia se calculan: gn = DES(k, DES(k, t) ⊕ sn ) sn+1 = DES(k, DES(k, t) ⊕ gn ) Blum Blum Shub I Sean p y q números primos tales que p ≡ 3(mód 4) y q ≡ 3(mód 4), y n = p · q: s0 = (x 2 )(mód n) si+1 = (si2 )(mód n) Manuel Lucena (Dpto. Informática) 3. Bases Teóricas 19 de marzo de 2010 41 / 41 Criptografı́a y Seguridad en Computadores Tema 4. Algoritmos Criptográficos 1a Parte: Criptografı́a Clásica Manuel J. Lucena López [email protected] Departamento de Informática Universidad de Jaén 19 de marzo de 2010 Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica 19 de marzo de 2010 1 / 19 19 de marzo de 2010 2 / 19 Introducción Índice Introducción Cifrados de Sustitución Cifrados de Transposición Máquinas de Rotores Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica Introducción La Criptografı́a Clásica I Abarca desde los inicios de la escritura hasta la II Guerra Mundial. Caracterı́sticas I Comprende técnicas de cifrado que pueden ser ejecutadas a mano. I Considerada en ocasiones como un pasatiempo o un reto intelectual. I Sus algoritmos pueden romperse con recursos computacionales relativamente modestos, según los estándares actuales. I Empleada por Julio César, Leonardo Da Vinci, Edgar Allan Poe, Arthur Conan Doyle, Francis Bacon, etc. Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica 19 de marzo de 2010 3 / 19 19 de marzo de 2010 4 / 19 Cifrados de Sustitución Índice Introducción Cifrados de Sustitución Cifrados de Transposición Máquinas de Rotores Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica Cifrados de Sustitución Cifrados de Sustitución I Se basan en cambiar unos sı́mbolos del alfabeto por otros: confusión. Tipos I Monoalfabéticos: la sustitución es siempre la misma, a lo largo de todo el texto. I Polialfabéticos: la sustitución de cada sı́mbolo depende de su posición en el texto claro. Dispositivo de cifrado monoalfabético empleado por el Ejército Confederado de los EE.UU. Manuel Lucena (Dpto. Informática) Cifrado monoalfabético dibujado por Conan Doyle para The adventure of the dancing men. 4a. Criptografı́a Clásica Cifrados de Sustitución 19 de marzo de 2010 5 / 19 Cifrados Monoalfabéticos Cifrados Monoalfabéticos Algoritmo de César I Cada sı́mbolo c del criptograma se calcula a partir de cada sı́mbolo m del mensaje original según la función: c = (m + 3) mód 26. I El conjunto K de claves tiene un único elemento. Sustitución afı́n I Función de cifrado para un alfabeto de N sı́mbolos: E(a,b) (m) = (a · m + b) mód N. I Dos parámetros: a y b. I Si a = 1 y b = 3, tenemos el algoritmo de César. Cifrado Monoalfabético General I La transformación es arbitraria. I Tenemos N! posibles claves. Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica 19 de marzo de 2010 6 / 19 Cifrados de Sustitución Cifrados Monoalfabéticos Criptoanálisis de Cifrados Monoalfabéticos I Las propiedades estadı́sticas del texto claro se conservan en el criptograma. I Las letras más frecuentes en el criptograma corresponderán con los sı́mbolos más frecuentes del idioma original. I Basta con emparejar el histograma de frecuencias del criptograma con el del idioma original. Distancia de Unicidad S= H(K ) log2 (N!) = D D I D: redundancia del lenguaje empleado en el mensaje original. I N: es el número de sı́mbolos del lenguaje. Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica Cifrados de Sustitución 19 de marzo de 2010 7 / 19 Cifrados Polialfabéticos Cifrados Polialfabéticos I Se basan en una aplicación cı́clica de d cifrados monoalfabéticos diferentes. Cifrado de Vigenère I Clave: K = {k0 , k1 , . . . kd−1 }. I Función de cifrado: Ek (mi ) = mi + k(i mód d) (mód n) Criptoanálisis I I Conociendo el valor de d, aplicamos análisis de frecuencias a cada subconjunto de los sı́mbolos del mensaje por separado. Para conocer d, aplicamos el método de Kasiski. 1. Buscar subcadenas repetidas de tres o más sı́mbolos. 2. Medir las distancias si que las separan. 3. d: máximo común divisor de los si . Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica 19 de marzo de 2010 8 / 19 Cifrados de Sustitución Cifrados de Sustitución Homofónica Cifrados de Sustitución Homofónica Caracterı́sticas I Hacen corresponder a un sı́mbolo del texto claro varios sı́mbolos posibles del texto cifrado, de forma aleatoria. I Tratan de aplanar el histograma de frecuencias, dificultando el criptoanálisis. I En la práctica, reducen o eliminan la redundancia del mensaje cifrado, al hacer todos sus sı́mbolos equiprobables. Inconvenientes I Necesitamos un alfabeto de salida mayor que el de entrada. I Es difı́cil conseguir un histograma totalmente plano. Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica 19 de marzo de 2010 9 / 19 Cifrados de Transposición Índice Introducción Cifrados de Sustitución Cifrados de Transposición Máquinas de Rotores Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica 19 de marzo de 2010 10 / 19 Cifrados de Transposición Cifrados de Transposición I Se basan en cambiar de lugar los sı́mbolos del mensaje: difusión. I Ejemplo: el Escitalo. I Normalmente, se toma el mensaje en bloques de n sı́mbolos y se reordena de alguna forma. I Texto claro: El perro de San Roque no tiene rabo. I Clave: {3, 2, 5, 1, 4}. I Texto cifrado: “ Osonealr r irednu eoere et p aqonb”. Manuel Lucena (Dpto. Informática) 1 E R E E T 4a. Criptografı́a Clásica Cifrados de Transposición 2 L R R I R 3 O S O N E A 4 P A Q O N B 5 E D N U E O 19 de marzo de 2010 11 / 19 Criptoanálisis de los cifrados de Transposición Criptoanálisis de los cifrados de Transposición I Las frecuencias relativas de los sı́mbolos se conservan. El enfoque empleado en los cifrados de sustitución no sirve. I Podemos analizar las frecuencias de pares y tripletas de sı́mbolos. I Muchos pares y ternas de sı́mbolos nunca aparecen en los lenguajes humanos. I Conociendo el valor de n, tenemos n! posibles claves. I Aplicaremos un enfoque basado en la fuerza bruta. Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica 19 de marzo de 2010 12 / 19 Máquinas de Rotores Índice Introducción Cifrados de Sustitución Cifrados de Transposición Máquinas de Rotores Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica Máquinas de Rotores 19 de marzo de 2010 13 / 19 La Máquina Enigma La Máquina Enigma I Inventada en 1923 por Arthur Scherbius. I Adoptada por el ejército del III Reich durante la II Guerra Mundial. I La clave viene dada por la posición inicial de una serie de rotores. Máquina Enigma Manuel Lucena (Dpto. Informática) Rotor de una Enigma 4a. Criptografı́a Clásica 19 de marzo de 2010 14 / 19 Máquinas de Rotores La Máquina Enigma Funcionamiento de Enigma I Tres rotores móviles. I Un reflector. I Rotores y reflector llevan contactos internamente. I Al pulsar una tecla, se forma un circuito que ilumina una letra. I Los rotores giran tras cada pulsación. I La posición no se repite hasta haber tecleado 263 = 17,576 caracteres. Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica Máquinas de Rotores 19 de marzo de 2010 15 / 19 La Máquina Enigma Mejoras a Enigma I Se hicieron diversas mejoras: aumento del número de rotores, rotores intercambiables, etc. I El clavijero o stecker: Detalle del clavijero (stecker). I Intercambia hasta diez caracteres antes y después de los rotores. I Aumenta hasta 1017 el número de posibles claves. Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica 19 de marzo de 2010 16 / 19 Máquinas de Rotores La Máquina Enigma La Bomba de Turing I Ideada por Alan Turing, basándose en el ciclómetro de Rejewsky, Rózycki y Zygalski I Formada por muchas máquinas Enigma encadenadas, lo que anulaba el stecker. I Necesitaba del empleo de pivotes. Enigma no puede codificar una letra en sı́ misma. Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica Máquinas de Rotores 19 de marzo de 2010 17 / 19 La Máquina Enigma Consideraciones Teóricas sobre Enigma I Un rotor es una permutación π del alfabeto de entrada. I Todas las letras tienen imagen, y no puede haber dos letras con la misma imagen. I La permutación π3 asociada al reflector cumple que π3 = π3−1 . I Permutación que produce la máquina: πtotal = hπ0 , π1 , π2 , π3 , π2−1 , π1−1 , π0−1 i Otras máquinas de Rotores I Purple, Sigaba, etc. Manuel Lucena (Dpto. Informática) 4a. Criptografı́a Clásica 19 de marzo de 2010 18 / 19 Máquinas de Rotores El cifrado de Lorenz El Cifrado de Lorenz I I I I Se hacı́a con la máquina SZ40, más compleja que Enigma. Permitı́a codificar teletipos. Simulaba un cifrado seguro de Shannon. Roto por Colossus, el primer ordenador programable, diseñado por el Dr. Tommy Flowers. Máquina de Lorenz Manuel Lucena (Dpto. Informática) Colossus 4a. Criptografı́a Clásica 19 de marzo de 2010 19 / 19 Criptografı́a y Seguridad en Computadores Tema 4. Algoritmos Criptográficos 2a Parte: Cifrados por Bloques Manuel J. Lucena López [email protected] Departamento de Informática Universidad de Jaén 20 de abril de 2009 Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 1 / 28 20 de abril de 2009 2 / 28 Introducción Índice Introducción El algoritmo DES El algoritmo IDEA Algoritmo AES Modos de Operación Criptoanálisis Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques Introducción Introducción Algoritmos de Cifrado por Bloques Dividen el mensaje en bloques de igual tamaño, y los cifran por separado. I Para hacer un buen sistema de cifrado, la sustitución serı́a suficiente. I Sin embargo, codificar tablas de sustitución grandes es complicado. I En la práctica, se mezclan operaciones de sustitución con otras de transposición. Cifrado de Producto I Combinación más o menos compleja de operaciones simples de sustitución y transposición. I Estructura denominada red de sustitución-permutación. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques Introducción 20 de abril de 2009 3 / 28 20 de abril de 2009 4 / 28 Redes de Feistel Redes de Feistel I Dividen el bloque en dos mitades, L y R. I Combinan los bloques con una serie de valores Ki , empleando una función arbitraria f . I Para descifrar, basta emplear la misma red, invirtiendo el orden de los Ki . I Muchos algoritmos usan esta estructura: DES, Lucifer, FEAL, CAST, Blowfish, etc. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques Introducción Cifrados con estructura de Grupo Cifrados con estructura de Grupo Definición: I Decimos que un cifrado tiene estructura de grupo si: ∀ k1 , k2 , M ∃ k3 tal que Ek2 (Ek1 (M)) = Ek3 (M) I No es una propiedad deseable. I Generalmente, resulta muy difı́cil demostrar que un algoritmo posee (o carece de) esta estructura. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques Introducción 20 de abril de 2009 5 / 28 S-Cajas S-Cajas I Son la unidad básica de sustitución. I Una S-Caja de m × n bits tiene m bits de entrada y n bits de salida. I m puede ser menor, mayor o igual que n. Ejemplos de S-Caja individual y de agrupación de S-Cajas. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 6 / 28 El algoritmo DES Índice Introducción El algoritmo DES El algoritmo IDEA Algoritmo AES Modos de Operación Criptoanálisis Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 7 / 28 El algoritmo DES El algoritmo DES I DES: Data Encryption Standard. I Estándar para documentos no clasificados en EE.UU. desde 1976 hasta finales de los 90. I Longitud de bloque: 64 bits. Longitud efectiva de clave: 56 bits. I Estructura: Red de Feistel con 16 rondas. I Una permutación inicial y otra final, inversa de la primera. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 8 / 28 El algoritmo DES Función f de DES Esquema de la función f en DES. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 9 / 28 El algoritmo DES Generación de los valores Ki Generación de los Ki en DES. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 10 / 28 El algoritmo DES Claves débiles en DES Claves débiles en DES I Claves débiles: Todos los Ki son iguales ⇒ Ek (Ek (M)) = M. I Claves semidébiles: Generan secuencias con solo dos valores distintos de Ki . Claves Débiles Clave Clave tras EP1 0101010101010101 0000000 0000000 1F1F1F1F0E0E0E0E 0000000 FFFFFFF E0E0E0E0F1F1F1F1 FFFFFFF 0000000 FEFEFEFEFEFEFEFE FFFFFFF FFFFFFF Manuel Lucena (Dpto. Informática) Claves Semidébiles Clave Clave tras EP1 01FE01FE01FE01FE AAAAAAA AAAAAAA FE01FE01FE01FE01 5555555 5555555 1FE01FE00EF10EF1 AAAAAAA 5555555 E01FE01FF10EF10E 5555555 AAAAAAA 01E001E001F101F1 AAAAAAA 0000000 E001E001F101F101 5555555 0000000 1FFE1FFE0EFE0EFE AAAAAAA FFFFFFF FE1FFE1FFE0EFE0E 5555555 FFFFFFF 011F011F010E010E 0000000 AAAAAAA 1F011F010E010E01 0000000 5555555 E0FEE0FEF1FEF1FE FFFFFFF AAAAAAA FEE0FEE0FEF1FEF1 FFFFFFF 5555555 4b. Cifrados por Bloques El algoritmo DES 20 de abril de 2009 11 / 28 Variantes de DES Variantes de DES DES múltiple: I Se aplica el algoritmo DES varias veces sobre el mismo bloque. I Funciona porque DES no tiene estructura de grupo. I Ejemplo: C = Ek1 (Ek−1 (Ek1 (M))) 2 I Longitud efectiva de clave: hasta 168 bits. I Esta estrategia se puede aplicar a cualquier algoritmo. DES con subclaves independientes: I Permite claves de hasta 16 × 48 = 768 bits. I En la práctica, no es mucho más difı́cil de criptoanalizar que DES estándar. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 12 / 28 El algoritmo DES Variantes de DES Variantes de DES DES generalizado: I Se emplea una red de Feistel generalizada, que divide el bloque en n trozos de 32 bits. I No mejora sustancialmente la seguridad. DES con S-Cajas alternativas: I Modificando las S-Cajas. I Cuando se desarrolló el criptoanálisis diferencial, a inicios de los 90, se descubrió que las S-Cajas de DES son resistentes frente a este ataque. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 13 / 28 20 de abril de 2009 14 / 28 El algoritmo IDEA Índice Introducción El algoritmo DES El algoritmo IDEA Algoritmo AES Modos de Operación Criptoanálisis Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques El algoritmo IDEA El algoritmo IDEA I International Data Encryption Algorithm. I Desarrollado en 1992. I Bloque: 64 bits. Clave: 128 bits. I Optimizado para su implementación en microprocesadores modernos. Se basa en las siguientes operaciones: I I I I XOR. Suma módulo 216 . Producto módulo 216 + 1. I En este caso, 216 se representa con el cero. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques El algoritmo IDEA 20 de abril de 2009 15 / 28 Estructura de IDEA Estructura de IDEA I I Se divide el bloque en cuatro partes de 16 bits: X1 , X2 , X3 y X4 . Se calculan 52 subclaves: I I Las 8 primeras dividiendo la clave en 8 trozos de 16 bits. El resto, desplazando 25 bits sucesivamente y volviendo a dividir. I Cifrado: se aplican las 52 subclaves en 8 rondas. I Descifrado: se aplican los opuestos o inversas en distinto orden, con el mismo algoritmo. Ronda 1 2 3 4 5 6 7 8 Final Z1 Z7 Z13 Z19 Z25 Z31 Z37 Z43 Z49 Z2 Z8 Z14 Z20 Z26 Z32 Z38 Z44 Z50 Subclaves de Cifrado Z3 Z4 Z5 Z9 Z10 Z11 Z15 Z16 Z17 Z21 Z22 Z23 Z27 Z28 Z29 Z33 Z34 Z35 Z39 Z40 Z41 Z45 Z46 Z47 Z51 Z52 Manuel Lucena (Dpto. Informática) Z6 Z12 Z18 Z24 Z30 Z36 Z42 Z48 −1 Z49 −1 Z43 −1 Z37 −1 Z31 −1 Z25 −1 Z19 −1 Z13 Z7−1 Z1−1 4b. Cifrados por Bloques Subclaves de Descifrado −1 −Z50 −Z51 Z52 Z47 −1 −Z45 −Z44 Z46 Z41 −1 −Z39 −Z38 Z40 Z35 −1 −Z33 −Z32 Z34 Z29 −1 −Z27 −Z26 Z28 Z23 −1 −Z21 −Z20 Z22 Z17 −1 −Z15 −Z14 Z16 Z11 −1 −Z9 −Z8 Z10 Z5 −Z2 −Z3 Z4−1 Z48 Z42 Z36 Z30 Z24 Z18 Z12 Z6 20 de abril de 2009 16 / 28 Algoritmo AES Índice Introducción El algoritmo DES El algoritmo IDEA Algoritmo AES Modos de Operación Criptoanálisis Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques Algoritmo AES 20 de abril de 2009 17 / 28 Introducción Algoritmo AES I También conocido como Rijndael. I Adoptado por el NIST como sucesor de AES. I Tamaño de bloque y clave variables, entre 128 y 256 bits. I Usa una S-Caja 8 × 8, calculada empleando GF (28 ). Estructura I I Diseñado expresamente para resistir a los criptoanálisis lineal y diferencial. Cada ronda: cuatro funciones invertibles, organizadas en tres capas: 1. Mezcla Lineal: DesplazarFila y MezclarColumnas. 2. Capa no Lineal: S-Caja 8 × 8 (función ByteSub). 3. Adición de clave: Or-exclusivo. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 18 / 28 Algoritmo AES Elementos de AES Elementos de AES I Estado (S): Matriz de bytes de cuatro filas, y Nb columnas. I Clave (Ki ): Matriz de bytes de cuatro filas, y Nk columnas. Rondas: I 1. 2. 3. 4. S S S S ←−ByteSub(S) ←−DesplazarFila(S) ←−MezclarColumnas(S) ←− Ki ⊕ S Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques Algoritmo AES 20 de abril de 2009 19 / 28 Elementos de AES Funciones DesplazarFila y MezclarColumnas S Cada columna se considera un polinomio con coeficientes en GF (28 ). Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 20 / 28 Algoritmo AES Elementos de AES Cifrado y Descifrado en AES Cifrado: I Se aplican las rondas con una serie de Ki generados a partir de K . Descifrado: I Se aplican las inversas de todas las funciones, en orden inverso, con los Ki también en orden inverso. Cálculo de las subclaves Ki I Función de expansión + Función de selección. I Se emplea la aritmética en GF (28 ). Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 21 / 28 20 de abril de 2009 22 / 28 Modos de Operación Índice Introducción El algoritmo DES El algoritmo IDEA Algoritmo AES Modos de Operación Criptoanálisis Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques Modos de Operación Modos de Operación I Un mensaje tı́pico es más largo que un bloque. I Si el mensaje no ocupa un número exacto de bloques, hay que rellenar el último (padding): I Cifrar cada bloque de forma independiente no es siempre lo mejor. I Hay diversas estrategias, llamadas Modos de Operación. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques Modos de Operación 20 de abril de 2009 23 / 28 Modo ECB Modo ECB Modo ECB (Electronic Code Book) I Cada bloque se cifra de forma independiente. I Interesante para cifrar ficheros de acceso aleatorio. I Un atacante puede realizar inserciones, sustituciones, permutaciones y eliminaciones. I Pueden detectarse patrones repetitivos en el mensaje. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 24 / 28 Modos de Operación Modo CBC Modo CBC Modo CBC (Cipher Block Chaining Mode) I Los bloques están encadenados. Se usa un vector de inicialización. I Dos mensajes que difieran en un bit se cifran igual hasta el bloque en el que esté ese bit. I Si falla el descifrado de un bloque, se pierde el siguiente. I Impide eliminaciones, inserciones, permutaciones y sustituciones. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques Modos de Operación 20 de abril de 2009 25 / 28 Modo CFB Modo CFB Modo CFB (Cihper-Feedback) I Cada bloque se cifra y se combina con el siguiente bloque del mensaje original. I En el cifrado, cada bloque afecta a todos los siguientes. I Si se produce un error en el descifrado, tiene alcance limitado. I Puesto que el paso final es un XOR entre Mi y Ci , éste puede hacerse a trozos. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 26 / 28 Criptoanálisis Índice Introducción El algoritmo DES El algoritmo IDEA Algoritmo AES Modos de Operación Criptoanálisis Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 27 / 28 Criptoanálisis Criptoanálisis de cifrados por bloques Criptoanálisis Diferencial I Se calculan pares de mensajes que difieren en un bit. I Se estudian cómo se propagan esas diferencias a lo largo de las rondas del algoritmo en cuestión, para una clave dada. I Cifrando pares de mensajes y observando sus diferencias, se asignan probabilidades a las distintas claves, hasta dar con la correcta. Criptoanálisis Lineal I Se toman algunos bits del texto claro, algunos del texto cifrado asociado, y se hace un or-exclusivo entre todos ellos. I El resultado será 0 o 1 con probabilidad próxima a 1/2, variando el resto de bits del texto claro. I Si hay un sesgo, puede explotarse para ganar conocimiento sobre la clave de cifrado. Manuel Lucena (Dpto. Informática) 4b. Cifrados por Bloques 20 de abril de 2009 28 / 28 Criptografı́a y Seguridad en Computadores Tema 4. Algoritmos de Cifrado. 3a Parte: Cifrados de Flujo Manuel J. Lucena López [email protected] Departamento de Informática Universidad de Jaén 4 de mayo de 2010 Manuel Lucena (Dpto. Informática) 4c. Cifrados de Flujo 4 de mayo de 2010 1 / 11 4 de mayo de 2010 2 / 11 Introducción Índice Introducción Tipos de Generadores de Secuencia Registros de Desplazamiento Retroalimentados Otros Generadores de Secuencia Manuel Lucena (Dpto. Informática) 4c. Cifrados de Flujo Introducción Los Cifrados de Flujo I Tratan de imitar el cifrado de Vernam, que es Seguro de Shannon. I Generan una secuencia de longitud igual al mensaje, y la combinan con éste. ci = mi ⊕ oi I El destinatario regenera la secuencia a partir de la misma semilla y recupera el mensaje original. I El generador de secuencia debe ser criptográficamente aleatorio. El estudio de los cifrados de flujo se reduce al estudio de los generadores de secuencia. Manuel Lucena (Dpto. Informática) 4c. Cifrados de Flujo 4 de mayo de 2010 3 / 11 4 de mayo de 2010 4 / 11 Tipos de Generadores de Secuencia Índice Introducción Tipos de Generadores de Secuencia Registros de Desplazamiento Retroalimentados Otros Generadores de Secuencia Manuel Lucena (Dpto. Informática) 4c. Cifrados de Flujo Tipos de Generadores de Secuencia Generadores Sı́ncronos I La secuencia es generada de forma independiente del texto claro y del texto cifrado. I El texto cifrado se obtiene combinando la secuencia con el texto claro, mediante una función reversible w . si+1 = g (si , k), Manuel Lucena (Dpto. Informática) oi = h(si , k), 4c. Cifrados de Flujo ci = w (mi , oi ) 4 de mayo de 2010 5 / 11 Tipos de Generadores de Secuencia Generadores Ası́ncronos I La salida del generador es el mensaje cifrado. I Se usan los valores anteriores del texto cifrado para generar los siguientes valores de la secuencia. oi = h(k, ci−t , ci−t+1 , . . . , ci−1 ), Manuel Lucena (Dpto. Informática) 4c. Cifrados de Flujo ci = w (oi , mi ) 4 de mayo de 2010 6 / 11 Registros de Desplazamiento Retroalimentados Índice Introducción Tipos de Generadores de Secuencia Registros de Desplazamiento Retroalimentados Otros Generadores de Secuencia Manuel Lucena (Dpto. Informática) 4c. Cifrados de Flujo 4 de mayo de 2010 7 / 11 Registros de Desplazamiento Retroalimentados Registros de Desplazamiento Retroalimentados I I Compuestos por un conjunto de L estados {S0 , S1 , ...SL−1 }. Cada Si almacena un bit. I En cada paso, los registros se desplazan, siendo S0 el bit que sale. El nuevo SL−1 es una función de los Si en el paso anterior. I Pueden ser lineales o no lineales, según sea la función que se aplique a los Si . Manuel Lucena (Dpto. Informática) 4c. Cifrados de Flujo 4 de mayo de 2010 8 / 11 Otros Generadores de Secuencia Índice Introducción Tipos de Generadores de Secuencia Registros de Desplazamiento Retroalimentados Otros Generadores de Secuencia Manuel Lucena (Dpto. Informática) 4c. Cifrados de Flujo Otros Generadores de Secuencia 4 de mayo de 2010 9 / 11 Cifrados por Bloques en modo OFB Cifrados por Bloques en modo OFB I El modo de operación OFB (Ouput-Feedback) genera secuencias criptográficamente aleatorias. I Válido para construir cifrados de flujo sı́ncronos. Manuel Lucena (Dpto. Informática) 4c. Cifrados de Flujo 4 de mayo de 2010 10 / 11 Otros Generadores de Secuencia Algoritmos especı́ficos Algoritmos de generación de secuencia RC4 I Desarrollado por Rivest en 1987. I Emplea una S-caja 8 × 8 dinámica. I Genera una secuencia de bytes con claves de hasta 2048 bits. SEAL I Rogaway y Coppersmith (1993). I Extremadamente rápido. I Define una familia de funciones pseudoaleatorias, que combina para generar la secuencia. I Tiene una fase de cálculo previa compleja, basada en SHA. Manuel Lucena (Dpto. Informática) 4c. Cifrados de Flujo 4 de mayo de 2010 11 / 11 Criptografı́a y Seguridad en Computadores Tema 4. Algoritmos de Cifrado. 4a Parte: Cifrados Asimétricos Manuel J. Lucena López [email protected] Departamento de Informática Universidad de Jaén 6 de mayo de 2010 Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos 6 de mayo de 2010 1 / 21 6 de mayo de 2010 2 / 21 Introducción Índice Introducción Ataque de intermediario Algoritmo RSA Otros Algoritmos Asimétricos Criptografı́a Asimétrica de Curva Elı́ptica Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos Introducción La Criptografı́a Asimétrica I I Introducida por Diffie y Hellman a mediados de los 70. Las claves no son únicas, sino que forman pares. I I I El más extendido es RSA. I I I Si una cifra, a otra descifra, y viceversa. Una se hace pública, y la otra se mantiene en secreto. Rivest, Shamir y Adleman (1977). Las longitudes tı́picas de clave que se consideran seguras son mucho mayores que las de los algoritmos simétricos. Sus algoritmos son más lentos que los simétricos. I Métodos de cifrado hı́bridos. Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos Introducción 6 de mayo de 2010 3 / 21 Problemas de la Criptografı́a Simétrica Problemas de la Criptografı́a Simétrica Número de claves necesarias I Con n interlocutores, son necesarias n2 −n 2 claves diferentes. Distribución de claves I Para generar un canal seguro de comunicaciones, se emplea una clave simétrica. I Para distribuir la clave, es necesario tener un canal seguro de comunicaciones. Problema del huevo y la gallina. I La Criptografı́a asimétrica permite resolver estos problemas. Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos 6 de mayo de 2010 4 / 21 Introducción Aplicaciones Aplicaciones de la Criptografı́a Asimétrica Cifrado tradicional: I La clave pública del destinatario se usa para cifrar. I Problema de la distribución de claves: Resuelto. Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos Introducción 6 de mayo de 2010 5 / 21 6 de mayo de 2010 6 / 21 Aplicaciones Aplicaciones de la Criptografı́a Asimétrica Autentificación: I La clave privada del remitente se usa para cifrar. Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos Ataque de intermediario Índice Introducción Ataque de intermediario Algoritmo RSA Otros Algoritmos Asimétricos Criptografı́a Asimétrica de Curva Elı́ptica Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos 6 de mayo de 2010 7 / 21 Ataque de intermediario Ataques de intermediario I Un atacante C se sitúa entre A y B. I C roba la clave pública de B y la sustituye por la suya. I Cuando A quiere enviar un mensaje, emplea la clave de C, en lugar de la de B. Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos 6 de mayo de 2010 8 / 21 Ataque de intermediario ¿Cómo evitar los ataques de intermediario? I Resulta imposible. I Se pueden reducir riesgos, si una entidad de confianza firma las claves públicas ⇒ Certificado Digital. Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos 6 de mayo de 2010 9 / 21 Algoritmo RSA Índice Introducción Ataque de intermediario Algoritmo RSA Otros Algoritmos Asimétricos Criptografı́a Asimétrica de Curva Elı́ptica Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos 6 de mayo de 2010 10 / 21 Algoritmo RSA El algoritmo RSA I Desarrollado por R. Rivest, A. Shamir y L. Adleman (1977). I Uno de los más sencillos, seguros y fáciles de entender. I Se apoya en el Logaritmo Discreto y en la dificultad para factorizar números enteros. Generación de claves I I I I I n = p · q, con p, q primos. e, primo relativo con (p − 1)(q − 1). d ≡ e −1 (mód (p − 1)(q − 1)). Clave pública: KP = (e, n). Clave privada: Kp = (d, n). Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos Algoritmo RSA 6 de mayo de 2010 11 / 21 Cifrado y descifrado en RSA Cifrado y descifrado en RSA I Cifrado: c = me (mód n). I Descifrado: m = c d (mód n). I Justificación: c d = (me )d = med = mk(p−1)(q−1)+1 = (mk )(p−1)(q−1) · m cd ≡ m I I (mód n) Factorización: Para conocer d a partir de (e, n), deberá factorizar n. Logaritmo Discreto: Podemos cifrar un m arbitrario y obtener c = me . Luego, d = logc (m) Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos 6 de mayo de 2010 12 / 21 Algoritmo RSA Seguridad de RSA Seguridad de RSA I Resolviendo la factorización o el logaritmo discreto, RSA quedarı́a roto. I No está demostrado que no exista otro método para romper RSA, sin necesidad de factorizar o resolver logaritmos. I Puede plantearse un ataque a la función φ(n). I Si p o q no son primos, el algoritmo no funciona. Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos Algoritmo RSA 6 de mayo de 2010 13 / 21 Vulnerabilidades de RSA Vulnerabilidades de RSA I RSA puede resultar vulnerable si se emplea mal. Posibles problemas: I I Posee claves débiles: me ≡ m La longitud de clave puede ser un problema. I I (mód n) Cada vez se necesitan claves más largas. Ataque de texto claro escogido: I I Generamos m1 y m2 y pedimos a alguien que los firme. El mensaje m = m1 · m2 quedará también firmado. Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos 6 de mayo de 2010 14 / 21 Algoritmo RSA Vulnerabilidades de RSA Vulnerabilidades de RSA Posibles Problemas: I Ataques de módulo común: I I I Ataques de exponente bajo: I I I No se debe generar más de un par de claves para un valor concreto de p, q. Un mismo mensaje m cifrado con dos claves e1 y e2 , puede ser recuperado. Un mismo m cifrado con tres claves distintas, en las que e = 3, puede recuperarse. Se evitan rellenando m con información aleatoria. Firmar y codificar: I Nunca firmar un mensaje después de cifrarlo. Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos 6 de mayo de 2010 15 / 21 6 de mayo de 2010 16 / 21 Otros Algoritmos Asimétricos Índice Introducción Ataque de intermediario Algoritmo RSA Otros Algoritmos Asimétricos Criptografı́a Asimétrica de Curva Elı́ptica Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos Otros Algoritmos Asimétricos Algoritmo de Diffie-Hellman El Algoritmo de Diffie-Hellman I Propuesto en 1976 por W. Diffie y M. Hellman. I Descubierto algunos años antes por los servicios de inteligencia británicos (Malcolm J. Williamson), pero mantenido en secreto. I Permite acordar una información secreta por dos interlocutores no autentificados. Descripción I Interlocutores: A y B. I Información pública: p primo y α generador de Z∗p . Algoritmo: I 1. 2. 3. 4. A B B A genera un valor x aleatorio, y envı́a a B: αx (mód p). genera un valor y aleatorio, y envı́a a A: αy (mód p). calcula K = (αx )y (mód p). calcula K = (αy )x (mód p). Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos Otros Algoritmos Asimétricos 6 de mayo de 2010 17 / 21 Algoritmos de ElGamal y Rabin Algoritmos de ElGamal y Rabin Algoritmo de ElGamal I Diseñado inicialmente para firma digital, y extendido posteriormente para cifrado. I El tamaño del mensaje firmado o cifrado es aproximadamente el doble que el del mensaje original. Algoritmo de Rabin I Basado en el problema del residuo cuadrático. I El cifrado es muy simple: c = m2 (mód n). I El descifrado es más complejo. Se generan cuatro mensajes y hay que decidir cuál es el bueno. Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos 6 de mayo de 2010 18 / 21 Otros Algoritmos Asimétricos Algoritmo DSA Algoritmo DSA Digital Signature Algorithm I Propuesto por el NIST en 1991. I Variante del algoritmo de ElGamal. I Solo para generar y verificar firmas digitales. I Forma parte del protocolo DSS (Digital Signature Standard). I Diseñado para funcionar en conjunción con SHA-1. Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos 6 de mayo de 2010 19 / 21 6 de mayo de 2010 20 / 21 Criptografı́a Asimétrica de Curva Elı́ptica Índice Introducción Ataque de intermediario Algoritmo RSA Otros Algoritmos Asimétricos Criptografı́a Asimétrica de Curva Elı́ptica Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos Criptografı́a Asimétrica de Curva Elı́ptica Criptografı́a Asimétrica de Curva Elı́ptica I Adapta los algoritmos asimétricos al dominio de las curvas elı́pticas. I Reformula los algoritmos para convertir los problemas en Zn en problemas análogos en curvas elı́pticas finitas. I Casi todos los algoritmos asimétricos poseen una versión de curva elı́ptica. Cifrado de ElGamal sobre Curvas Elı́pticas I Sea p un punto de una curva elı́ptica. I Sea n el cardinal de hpi. Tomamos un entero x entre 1 y n − 1. I y = p x es sustituido por y = xp. I a = p k es sustituido por a = kp. I ... Manuel Lucena (Dpto. Informática) 4d. Cifrados Asimétricos 6 de mayo de 2010 21 / 21 Criptografı́a y Seguridad en Computadores Tema 4. Algoritmos de Cifrado. 5a Parte: Funciones Resumen Manuel J. Lucena López [email protected] Departamento de Informática Universidad de Jaén 25 de septiembre de 2008 Manuel Lucena (Dpto. Informática) 4e. Funciones Resumen 25 de septiembre de 2008 1 / 10 25 de septiembre de 2008 2 / 10 Funciones Resumen Índice Funciones Resumen Funciones MDC Funciones MAC Manuel Lucena (Dpto. Informática) 4e. Funciones Resumen Funciones Resumen Funciones Resumen I Útiles para verificar la integridad de los datos. I A partir de un mensaje de longitud arbitraria, generan resúmenes (hashes) de longitud fija. I Se produce una pérdida de información en el proceso, por lo que son funciones irreversibles. Tipos: I I I MAC: Emplean una clave para calcular la signatura. MDC: No hacen uso de ninguna clave. Manuel Lucena (Dpto. Informática) 4e. Funciones Resumen Funciones Resumen 25 de septiembre de 2008 3 / 10 Propiedades Propiedades de las Funciones Resumen 1. r (m) es de longitud fija, independientemente de la longitud de m. 2. Dado m, es fácil calcular r (m). 3. Dado m, resulta imposible obtener un m0 tal que r (m0 ) = r (m). I La idea es que cada mensaje tenga asociado un valor de r (m). I Aunque en teorı́a deben existir infinitos valores de m para un r (m), debe ser muy difı́cil encontrarlos. Propiedad adicional: I I Debe ser difı́cil encontrar un par (m, m0 ) tal que r (m) = r (m0 ). Manuel Lucena (Dpto. Informática) 4e. Funciones Resumen 25 de septiembre de 2008 4 / 10 Funciones MDC Índice Funciones Resumen Funciones MDC Funciones MAC Manuel Lucena (Dpto. Informática) 4e. Funciones Resumen Funciones MDC 25 de septiembre de 2008 5 / 10 Estructura Estructura de una Función MDC I Se basan en funciones de compresión. I El mensaje se trocea en bloques de igual tamaño. I De forma iterativa, los bloques se van combinando con los resultados anteriores. Estructura de una función MDC Manuel Lucena (Dpto. Informática) 4e. Funciones Resumen 25 de septiembre de 2008 6 / 10 Funciones MDC Algoritmos MD5 y SHA-1 Algoritmos MD5 y SHA-1 MD5 I Creado por Ron Rivest. I Genera hashes de 128 bits. I Procesa los mensajes en bloques de 512 bits. I Si el mensaje no es múltiplo de 512 bits, se alarga. I Cuatro rondas, con 16 operaciones cada una. SHA-1 I Desarrollado por la NSA como parte del DSS. I Procede del algoritmo SHA-0 I Genera resúmenes de 160 bits, troceando el mensaje en bloques de 512 bits. I Posee cuatro rondas, con 20 operaciones cada una. Manuel Lucena (Dpto. Informática) 4e. Funciones Resumen Funciones MDC 25 de septiembre de 2008 7 / 10 Seguridad de las funciones MDC Seguridad de las funciones MDC I Tanto MD5 como SHA-1 están en entredicho. I I Alternativas: Familia SHA-2, Whirlpool, ... El NIST ha convocado un proceso de selección de un nuevo algoritmo. I Colisión: par de mensajes (m, m0 ), tal que r (m) = r (m0 ). I Todos los MDC presentan colisiones. Tipos de estrategias para hallar colisiones: I I I De preimagen: A partir de m, se busca un m0 . De colisión: Se buscan pares (m, m0 ) arbitrarios. Los ataques de preimagen son mucho más peligrosos que los de colisión. Manuel Lucena (Dpto. Informática) 4e. Funciones Resumen 25 de septiembre de 2008 8 / 10 Funciones MAC Índice Funciones Resumen Funciones MDC Funciones MAC Manuel Lucena (Dpto. Informática) 4e. Funciones Resumen 25 de septiembre de 2008 9 / 10 Funciones MAC Funciones MAC I Emplean una clave secreta para calcular el resumen. I Permiten verificar tanto la integridad como el origen del mensaje. Tipos: 1. Basados en cifrados por bloques en modo CBC. 2. HMAC: Aplicar un MDC a un mensaje modificado al que se ha añadido la clave. Ejemplo: MD5(k ⊕ opad, MD5(k ⊕ ipad, m)) 3. Basados en generadores de secuencia. Manuel Lucena (Dpto. Informática) 4e. Funciones Resumen 25 de septiembre de 2008 10 / 10 Criptografı́a y Seguridad en Computadores Tema 5. Aplicaciones Criptográficas. 1a Parte: Protocolos Criptográficos Manuel J. Lucena López [email protected] Departamento de Informática Universidad de Jaén 17 de mayo de 2009 Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 1 / 20 17 de mayo de 2009 2 / 20 Protocolos de comunicación Segura Índice Protocolos de comunicación Segura El protocolo IPSec Protocolo SSL Protocolo TLS Protocolo SSH Manuel Lucena (Dpto. Informática) 5a. Protocolos Protocolos de comunicación Segura Protocolos versus Algoritmos Criptográficos I Cada algoritmo criptográfico permite garantizar uno o varios aspectos de seguridad. I Las aplicaciones modernas suelen requerir servicios de seguridad complejos. Un protocolo de seguridad: I I I I Proporciona un mecanismo concreto para usar un algoritmo criptográfico de forma correcta (inicialización, parámetros, modos de operación...). Frecuentemente involucra a más de un algoritmo. No depende de algoritmos en concreto, sino que éstos son intercambiables. Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 3 / 20 17 de mayo de 2009 4 / 20 Protocolos de comunicación Segura Protocolos de comunicación segura Proporcionan servicios de seguridad a diferentes niveles: Manuel Lucena (Dpto. Informática) 5a. Protocolos El protocolo IPSec Índice Protocolos de comunicación Segura El protocolo IPSec Protocolo SSL Protocolo TLS Protocolo SSH Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 5 / 20 El protocolo IPSec IPSec Protocolo IPSec I I Proporciona seguridad a nivel IP. Servicios: I I I Autentificación. Confidencialidad. Permite también gestionar las Claves Públicas. Aplicaciones: I Creación de redes privadas virtuales (VPN). I Acceso remoto seguro a la red de una compañı́a desde cualquier punto de Internet. Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 6 / 20 El protocolo IPSec ¿Cómo trabaja IPSec? Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 7 / 20 El protocolo IPSec Modos de funcionamiento de IPSec Modo Transporte I Proporciona seguridad a protocolos de capas superiores. I Se aplica únicamente a la carga útil (payload) de un paquete IP. Modo Túnel I Proporciona seguridad a nivel IP, encapsulando los paquetes. I Se aplica a todo el paquete, incluida la cabecera. Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 8 / 20 El protocolo IPSec Componentes de IPSec Protocolo ESP I Crea un encapsulado de carga útil de seguridad (ESP). I Soporta cifrado y cifrado+autentificación. Protocolo AH I Define una cabecera de autentificación (AH). I Sólo soporta autentificación. I IPSec también incorpora mecanismos especı́ficos para evitar ataques de repetición. Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 9 / 20 El protocolo IPSec Esquema general de documento IPSec IPSec viene definido por diversos documentos, relacionados entre sı́: Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 10 / 20 El protocolo IPSec Gestión de Claves en IPSec Tipos I Manual: El administrador configura las claves del sistema y añade las de los sistemas con los que se va a comunicar. I Automática: Permite la creación y distribución de claves bajo demanda. Protocolos I Oakley: Protocolo genérico basado en el algoritmo de Diffie-Hellmann. I ISAKMP: No basado en ningún algoritmo. Define los formatos de mensaje para intercambio de claves. Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 11 / 20 El protocolo IPSec Asociaciones de Seguridad (SA) en IPSec Definición de SA Relación unidireccional entre un emisor y un receptor que ofrece servicios de seguridad al tráfico que transporta. I Para un intercambio de datos bidireccional, se usan dos SA. I Una SA puede usar AH o ESP, pero no los dos a la vez. Parámetros que identifican una SA: I I I I Índice de Parámetros de Seguridad (SPI). Secuencia de bits asignada a la SA. Se coloca en las cabeceras AH o ESP. Dirección IP de destino. Identificador del protocolo de seguridad (AH o ESP). Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 12 / 20 El protocolo IPSec Parámetros de una Asociación de Seguridad I Contador de número de secuencia (32 bits). I Desbordamiento del contador de secuencia. I Ventana contra repeticiones. I Información AH (algoritmo empleado, claves, tiempos de vida, etc.) I Información ESP. I Tiempo de vida de la SA. I Modo de protocolo IPSec (túnel, transporte o comodı́n). I MTU del camino (tamaño de datos máximo que puede enviarse sin fragmentación). Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 13 / 20 17 de mayo de 2009 14 / 20 Protocolo SSL Índice Protocolos de comunicación Segura El protocolo IPSec Protocolo SSL Protocolo TLS Protocolo SSH Manuel Lucena (Dpto. Informática) 5a. Protocolos Protocolo SSL Protocolo SSL (Secure Sockets Layer) I Desarrollado por la empresa Netscape. I Se coloca por encima de la capa de transporte. Servicios: I I I Confidencialidad e integridad de la conexión. Autentificación de las entidades de origen/destino. I La capa del emisor fragmenta los mensajes, los comprime, cifra y envı́a. I Los paquetes son recogidos en destino, descifrados, descomprimidos, reensamblados y restituidos al destinatario de forma transparente. Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 15 / 20 Protocolo SSL Comunicación SSL Fase de establecimiento (handshaking) I Los interlocutores se autentifican mutuamente mediante certificados digitales. I Se acuerda qué algoritmos simétricos se emplearán y la longitud de las claves (normalmente, 40 o 128 bits). Fase de transferencia I Se acuerda una clave simétrica común. I Se transfieren los datos propiamente dichos. Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 16 / 20 Protocolo TLS Índice Protocolos de comunicación Segura El protocolo IPSec Protocolo SSL Protocolo TLS Protocolo SSH Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 17 / 20 Protocolo TLS Protocolo TLS (Transport Layer Security) I Basado en la versión 3.0 de SSL, aunque incompatible con el mismo. I Permite establecer comunicaciones seguras, e incluso anónimas. I A diferencia de SSL, puede reutilizar una conexión ya establecida, por lo que no necesita puertos dedicados. I Inmune a ataques de intermediario. Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 18 / 20 Protocolo SSH Índice Protocolos de comunicación Segura El protocolo IPSec Protocolo SSL Protocolo TLS Protocolo SSH Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 19 / 20 Protocolo SSH Protocolo SSH I Originalmente, se trataba de un producto comercial. I Actualmente, mantenido dentro del proyecto OpenBSD. Se ubica como una aplicación más, o sobre la capa de transporte. Desarrollado para proporcionar alternativas seguras a los servicios rlogin, telnet y rsh. En su versión 2, se ha convertido en un estándar de facto. Se emplea prácticamente todos los sistemas operativos *NIX y *BSD. I I I Servicios proporcionados I Acceso a consola (shell). I Copia segura de archivos (scp). I FTP seguro (sftp). I Tunelado de puertos TCP. I ... Manuel Lucena (Dpto. Informática) 5a. Protocolos 17 de mayo de 2009 20 / 20 Criptografı́a y Seguridad en Computadores Tema 5. Aplicaciones Criptográficas. 2a Parte: Autentificación Manuel J. Lucena López [email protected] Departamento de Informática Universidad de Jaén 17 de mayo de 2009 Manuel Lucena (Dpto. Informática) 5b. Autentificación 17 de mayo de 2009 1 / 13 17 de mayo de 2009 2 / 13 Introducción Índice Introducción Firmas Digitales Certificados Digitales Autentificación Mediante Funciones Resumen Manuel Lucena (Dpto. Informática) 5b. Autentificación Introducción Introducción Autentificar: Asegurar la autenticidad de algo. I En Informática, ese algo puede ser: 1. Un mensaje. 2. Un usuario. 3. Un dispositivo. I En función de qué queramos autentificar, las estrategias pueden ser muy diferentes. Manuel Lucena (Dpto. Informática) 5b. Autentificación 17 de mayo de 2009 3 / 13 17 de mayo de 2009 4 / 13 Firmas Digitales Índice Introducción Firmas Digitales Certificados Digitales Autentificación Mediante Funciones Resumen Manuel Lucena (Dpto. Informática) 5b. Autentificación Firmas Digitales Firmas Digitales I Secuencia de bits que se añade a una pieza de información cualquiera, y que puede verificarse de forma independiente del proceso de transmisión. Caracterı́sticas I Indisolublemente ligada al mensaje. I Sólo puede ser generada por el titular legı́timo. I Públicamente verificable. I La forma más común es la combinación de criptografı́a asimétrica con funciones MDC. Manuel Lucena (Dpto. Informática) 5b. Autentificación 17 de mayo de 2009 5 / 13 17 de mayo de 2009 6 / 13 Certificados Digitales Índice Introducción Firmas Digitales Certificados Digitales Autentificación Mediante Funciones Resumen Manuel Lucena (Dpto. Informática) 5b. Autentificación Certificados Digitales Certificados Digitales I Un certificado digital es una clave pública firmada digitalmente por una autoridad de certificación. I Certificados X.509: I I I I Uno de los estándares más extendidos. Sólo define la sintaxis, por lo que no depende de ningún algoritmo. Nombre del certificador, algoritmo de firma, perı́odo de validez, sujeto, clave pública del sujeto, etc. Revocación de certificados: I I Útil para anular claves públicas no válidas (pérdida, robo, etc.) Hacen falta listas de revocación de certificados (CRL). Manuel Lucena (Dpto. Informática) 5b. Autentificación Certificados Digitales 17 de mayo de 2009 7 / 13 Verificación Verificación I I Dos autoridades de certificación pueden estar certificadas por una tercera. Pueden surgir diferentes tipos de infraestructuras (PKI): I I I Jerárquicas. Distribuidas. Hı́bridas. Ejemplo de infraestructura jerárquica. Manuel Lucena (Dpto. Informática) 5b. Autentificación 17 de mayo de 2009 8 / 13 Certificados Digitales Verificación Infraestructuras Jerárquicas vs. Distribuidas Modelo Jerárquico I Estructura en árbol. I Pocos certificadores. Responsabilidad: alta. I Pocos caminos de certificación. I Una clave puede ser confiable o no confiable. I Fácil de justificar la confianza en una clave. Modelo Distribuido I Estructura en grafo. I Muchos certificadores. Responsabilidad: baja. I Múltiples caminos de certificación. I Diferentes grados de confianza para una clave. I Difı́cil calcular y justificar la confianza en una clave. Manuel Lucena (Dpto. Informática) 5b. Autentificación 17 de mayo de 2009 9 / 13 Autentificación Mediante Funciones Resumen Índice Introducción Firmas Digitales Certificados Digitales Autentificación Mediante Funciones Resumen Manuel Lucena (Dpto. Informática) 5b. Autentificación 17 de mayo de 2009 10 / 13 Autentificación Mediante Funciones Resumen Contraseñas Autentificación mediante Contraseñas I Permiten autentificar a un usuario humano, mediante una información (contraseña) que sólo éste conoce. Enfoques: I Almacenar las contraseñas en claro en el sistema. I I Válido para sistemas que tengan baja interacción. Almacenar resúmenes de las contraseñas. I Método usado en la mayorı́a de SS.OO. Manuel Lucena (Dpto. Informática) 5b. Autentificación Autentificación Mediante Funciones Resumen 17 de mayo de 2009 11 / 13 Contraseñas Ataques de diccionario I Un atacante genera un diccionario con posibles contraseñas, y calcula los resúmenes de todas ellas. I Obtiene los resúmenes del sistema objetivo y compara. I Estrategias para dificultar este ataque: I I I I I Añadir sal a las contraseñas. Obliga a recalcular la base de datos. Escoger contraseñas difı́ciles de predecir. Cambiar las contraseñas con frecuencia. No usar la misma contraseña en diferentes lugares. Custodiarlas adecuadamente. Manuel Lucena (Dpto. Informática) 5b. Autentificación 17 de mayo de 2009 12 / 13 Autentificación Mediante Funciones Resumen Autentificación por Desafı́o Autentificación por Desafı́o I Útil para validar dispositivos capaces de almacenar y mantener en secreto una clave secreta. I Puesto que el valor de X no se reutiliza, un ataque de repetición no resulta efectivo. Manuel Lucena (Dpto. Informática) 5b. Autentificación 17 de mayo de 2009 13 / 13