CRIPTOGRAFÍA 5º CURSO DE INGENIERÍA INFORMÁTICA Criptografía simétrica E.T.S.I. Informática Universidad de Sevilla Curso 2007/2008
CRIPTOSISTEMAS SIMÉTRICOS Simétríco clave secreta compartida por Mensaje en claro Cifrado Mensaje cifrado Descifrado El emisor y el receptor deben conocer la clave Mensaje en claro Todos los sistemas clásicos de cifrado son. Una pregunta para responder más adelante: puede ser de otra manera?
VENTAJAS E INCONVENIENTES por Ventajas La seguridad depende sólo del secreto de la clave. Son muy rápidos. Los sistemas con un gran espacio de claves son muy seguros. Inconvenientes Es complicado establecer un sistema de distribución y gestión de claves eficiente entre emisor y receptor. Carecen de firma digital y de otros servicios.
CIFRADO POR BLOQUES por Modo de operación: se divide el mensaje en de tamaño fijo, y se realizan sobre cada uno operaciones para aumentar la confusión (sustituciones) y la difusión (transposiciones). Dos modos principales: Modo ECB (Electronic Codebook) El más natural: se divide el texto en claro en del tamaño adecuado y se cifran todos ellos empleando la misma clave. Permite cifrar los por separado. Facilidad de paralelización. Modo CBC (Cipher Book Chaining Mode) Mecanismo de retroalimentación: el cifrado de los anteriores condiciona el cifrado del actual. Es común hacer XOR entre el bloque a cifrar y el último criptograma obtenido (para el primer bloque, se emplea un vector de inicialización que deberá ser conocido por ambos interlocutores).
CIFRADO PRODUCTO por Un cifrado producto re realiza aplicando dos cifrados consecutivamente: T = Texto en claro K T = T cifrado con K En los cifrados modernos se utilizan productos para conseguir algoritmos fuertes mediante sustituciones (con tablas pequeñas) y permutaciones, realizándo varios ciclos. con estructura de grupo: más débiles. K T = T cifrado con K
CIFRADOS POR BLOQUES por Cifrado: MENSAJE (N bits) BLOQUE A (N/2) BLOQUE B (N/2) F, k i X i A X i B X i 1. Cada bloque se divide en dos partes iguales que se combinan con XOR. 2. El resultado se cifra usando una clave y una función de un solo sentido (muy difícil de invertir sin conocer la clave) 3. El cifrado se combina de nuevo mediante XOR con los dos originales.
CIFRADOS POR BLOQUES Descifrado: Cifrado genérico por A X i B X i A B A X i X i F, k i X i B X i X i 1. Los cifrados se combinan con XOR. 2. Se aplica la función de un solo sentido con la clave. 3. El cifrado se combina de nuevo mediante XOR con los dos cifrados y se obtiene el bloque original. A B
CIFRADOS POR BLOQUES por Observaciones: El descifrado es igual que el cifrado, y esto es independiente de la función usada, que no tiene que ser involutiva. Las operaciones usadas son muy sencillas (la complejidad viene de la función). El esquema anterior es válido para todos los modos de operación. Puede ser fácilmente modificado para permitir flexibilidad y para introducir asimetrías (por ejemplo en los cifrados basados en redes de Feistel).
CIFRADOS POR BLOQUES por Redes de Feistel: H. Feistel (IBM): inventó en 1971 el algoritmo LUCIFER, utilizado por el Reino Unido y en 1974 propuesto a la NSA como estándar, dando origen al. 1. Cada bloque de N bits se divide en dos mitades. 2. Una mitad se cifra usando una clave y una función de un solo sentido (muy difícil de invertir sin conocer la clave) 3. En cada iteración se intercambian las dos mitades. 4. El proceso se repite varias veces.
ALGUNOS CIFRADOS POR BLOQUES Cifrado genérico por Tipo Feistel. Ha sido durante mucho tiempo el estándar y aún se seguirá usando algún tiempo, sobre todo en servicios bancarios. Es bastante sencillo Su variante Triple es actualmente un estándar en comercio electrónico. Es un algoritmo muy seguro, que nunca ha sido roto. Hace uso de aritmética en cuerpos finitos, adelantándose a los algoritmos más actuales. De amplia utilización en PGP. Rijndael () Es el estándar actual. Utiliza aritmética de cuerpos finitos y operaciones en distintos grupos algebraicos.
por Historia: 1973: En EEUU la NBS (National Bureaux of Standards) convocó un concurso público para buscar un algoritmo criptográfico estándar. 1974: La NSA (National Security Agency) declaró desierto el primer concurso y refinando las especificaciones eligió una variante de Lucifer que llamó (Data Encryption Standard). 1976: se adoptó como estándar y se autorizó su uso en las comunicaciones no clasificadas del gobierno. Durante más de 25 años ha sido el estándar para bancos y comercio electrónico.
Especificaciones del concurso : El nivel de seguridad computacional debe ser alto. El algoritmo debe ser fácil de entender y deberá estar especificado en todos sus detalles. La seguridad del sistema no debe verse afectada por la publicación y divulgación del algoritmo. Debe estar disponible para cualquier usuario. Deberá poder usarse en diferentes aplicaciones. Fácil implementación en hardware. Debe incorporar capacidades de validación. Debe ser exportable. Pero
por Secreto: En realidad la NSA quería que los detalles fuesen secretos. Limitaciones legales: La NSA impuso una limitación en la longitud de la clave: los 128 bits de Lucifer se quedaron en 64 (que son 56 efectivos ya que al ser datos de 8 bits, se conoce el bit de paridad). Así el espacio de claves es pequeño: 2 56 7,2 10 16. Claves débiles: Existen familias de claves llamadas débiles y semidébiles que deben ser evitadas.
por no es un grupo. Triple se beneficia de ello: Se usan 2 claves : k 1 y k 2 y se hace un producto de tres cifrados : Texto en claro Cifrado con k 1 Descifrado con k 2 Cifrado con k 1 Texto cifrado Bastante seguro por el tamaño efectivo de su clave: 112 bits. Sigue siendo válido actualmente. Es el propuesto en SET y se encuentra como una opción en PGP.
por La historia de como estándar: Se adoptó como estándar en 1976. El NIST lo certificó en 1987 y 1993. En esos años se estandarizó como algoritmo de cifrado. Usado sobre todo en el cifrado de la información de transacciones entre un cajero y el banco. En 1997 NIST no certificó y convocó un concurso internacional para buscar un nuevo estándar mundial denominado (Advanced Encryption Standard). Entre 1997 y 1999 se enfrentó a tres desafíos conocidos como Challenge impulsados por la compañía RSA.
por Challenge I (29 de enero de 1997): Se rompe en 96 días con 80.000 de ordenadores en Internet que evalúan 7.000 millones de clave por segundo. Hubo que recorrer el 25% del espacio de claves. Challenge II-1 (13 de enero de 1998): Se rompe en 39 días con un ataque distribuido (distributed.net) que llega a evaluar 34.000 millones de claves por segundo y recorre el 88% del espacio de claves. Challenge II-2 (13 de julio de 1998): Electronic Frontier Foundation (EFF) crea el Cracker con una inversión de 200.000$ y en 56 horas rompió la clave evaluando 90.000 millones de claves por segundo.
Challenge III: por El último desafío propuesto por RSA mostró la capacidad de un ataque distribuido: usando los tiempos muertos de procesador de máquinas conectadas a Internet que con un programa cliente trabajaban en una parte del espacio de claves. 18 de enero de 1999: union de la máquina Cracker y distributed.net con 100.000 ordenadores conectados en Internet y rompen la clave en 22 horas, evaluando 245.000 millones de claves por segundo tras recorrer el 22% del espacio de claves. Pero
, actualmente: por En 1998 la NSA seguía declarando que era seguro, que romperlo era demasiado costoso incluso para grandes organizaciones. En realidad el problema de no es de diseño, sino que su clave se hizo muy corta. sigue siendo hoy día muy utilizado en aplicaciones (por ejemplo cajeros automáticos). Hay mucha resistencia a abandonarlo porque ha sobrevivido mucho tiempo. Se prefieren variantes antes que confiar en algoritmos nuevos y para permitir aprovechar las implementaciones por hardware existentes de.
por Historia: En 1997 el NIST (National Institute of Standards and Technology, antes NBS) no certificó y convocó un concurso público para un nuevo estándar: (Advanced Encryption Standard). Ganó el algoritmo RIJNDAEL (Vincent Rijmen y Joan Daemen, Bélgica) que desde el año 2000 es el nuevo estándar de cifrado del siglo XXI. Es de libre distribución, disponible desde finales del año 2001. El proceso completo de selección, revisión y estudio de todos los candidatos del concurso fue público y abierto. Prácticamente por primera vez, participó toda la comunidad criptográfica mundial. Esto hace que Rijndael sea muy digno de confianza.
20 de Agosto de 1998:15 algoritmos admitidos: CAST-256 (Entrust Technologies, Inc.) CRYPTON (Future Systems, Inc.) DEAL (Richard Outerbridge, Lars Knudsen) DFC (Centre National pour la Recherche Scientifique Ecole Normale Superieure) E2 (Nippon Telegraph and Telephone Corporation) FROG (TecApro International, S.A.) HPC (Rich Schroeppel) LOKI97 (Lawrie Brown, Josef Pieprzyk, Jennifer Seberry) MAGENTA (Deutsche Telekom AG) MARS (IBM) RC6 (RSA Laboratories) RIJNDAEL (John Daemen, Vincent Rijmen) SAFER+ (Cylink Corporation) SERPENT (Ross Anderson, Eli Biham, Lars Knudsen) TWOFISH (Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson)
2 de Octubre de 2000. 5 finalistas: por MARS: RC6: RIJNDAEL: SERPENT: TWOFISH: 13 votos 23 votos 86 votos 59 votos 31 votos
por Características: No es de tipo Feistel. Muy adaptado para los procesadores de 8 bits usados en tarjetas inteligentes y arquitecturas de 32 bits. Tamaño de clave y de bloque variables: 128, 192 y 256 bits (independientemente). Usa aritmética de polinomios sobre cuerpos de Galois, que se traducen en operaciones modulares a nivel de byte y de palabras de 4 bytes. Número de etapas flexible según necesidades. Utiliza un conjunto de S-Boxes con valores precalculados para facilitar los cálculos aritméticos. Rijndael es más versátil que la versión estandarizada.
por opera modificando de 128 bits representados en una matriz de 4 4 bytes, que llama estado. Cada ronda (excepto la última) consiste en cuatro pasos: AddRoundKey SubBytes MixColumns ShiftRows La ronda final reemplaza la fase MixColumns por otra instancia de AddRoundKey.
por 1. SubBytes - Sustitución de bits: Sustitución no lineal donde cada byte del estado es reemplazado con otro según una tabla:
por 2. ShiftRows Desplazamiento de filas: Los bytes de cada fila del estado se rotan de manera cíclica hacia la izquierda un número de lugares diferente para cada fila.
por 3. MixColumns Mezcla de columnas: Cada columna del estado se multiplica por un polinomio constante c(x). Así se mezclan los 4 bytes de la columna con una transformación lineal.
por 4. AddRoundKey - Cálculo de las subclaves: Cada byte del estado se combina mediante XOR con una subclave. Las subclaves se derivan de la clave de cifrado usando un proceso iterativo.
por Características: Para muchos, uno de los cifrados en bloque más seguros que existen. Usa de 64 bits y claves de 128 bits. Realiza 8 transformaciones idénticas (cada una llamada un ronda) y una transformación de salida (llamada media ronda). El proceso para cifrar y descifrar es similar. Gran parte de la seguridad de deriva de la mezcla de operaciones de distintos grupos que no conmutan entre ellas: XOR, suma módulo 2 16, y producto módulo 2 16 +1.
por Historia: 1990: Xuejia Lai y James Massey (Swiss Federal Institute of Technology) proponen el PES (Proposed Encryption Standard). 1991: los avances en el criptoanálisis diferencial hacen necesario introducir mejoras y lo modifican creando el IPES (Improved Proposed Encryption Standard). 1992: los autores incluyen nuevas mejoras y proponen finalmente el algoritmo (International Data Encryption Algorithm). 1999: el algoritmo demuestra ser mucho más seguro que y sus derivados y se comienza a usar en el sistema PGP, lo que hizo que tuviera muchos usuarios.
por Una idea de cómo es una ronda de : XOR Multiplicación módulo 2 16 +1 Suma módulo 2 16
Seguridad: por ha resultado inmune ante un criptoanálisis diferencial (sus autores conocían esta debilidad de ) y a los criptoanálisis lineales. Joan Daemen descubrió en 1992 una clase de claves débiles, las que responden al esquema 0000 0000 0*00 0000 0000 000* **** *000 que un atacante podría identificar en un ataque con texto en claro elegido (las posiciones * pueden ser cualquier dígito hexadecimal). La probabilidad de que se usen esas claves débiles es 2-96 y además se pueden eliminar en el diseño. Actualmente no se conoce todavía ningún ataque contra que haya tenido éxito.
OTROS CIFRADOS SIMÉTRICOS por Alg. Bl. Clave Rondas Comentario Loki 64 64 16 Australia. Tipo. RC2 64 Var. 18 Usado en navegadores. Propietario y secreto, pero revelado en Internet. CAST 64 64 8 Tipo Feistel. Usado en PGP. Blowfish 64 Var. 16 Predecesor de Twofish, finalista en el concurso. Lucifer 128 128 16 España. Similar a Rijndael. Debilidades detectadas. Skipjack 64 80 32 Secreto. Sólo en hardware. Obligado por la NSA para relaciones comerciales. Chip CLIPPER. Con puerta trasera.