Criptografía y Seguridad Informática Cifradores Simétricos DES-3DES-AES 1
Síntesis Algoritmos de cifrado que utilizan la misma clave para los procesos de encripción y desencripción E K M = C D K C = M 2
Desafío Shannon (Communication Theory of Secrecy Systems, 1949) Cuál es la forma de evitar que un atacante realice análisis estadístico? Sistema ideal: estadística del texto cifrado debe ser independiente de la clave utilizada Propone dos métodos: Difusión: Se busca que la frecuencia de letras en el texto cifrado sea más parecidas entre sí la relación estadística entre el texto claro y el texto cifrado se complica. Se logra aplicando repetidamente transposiciones de los caracteres del texto original. Efecto avalancha. Confusión: La relación estadística entre el texto cifrado y la clave es compleja. Se logra aplicando un algoritmo complejo de sustitución (cajas S). 3
Criptografía y Seguridad Informática DES Data Encryption Standard 4
Disparador Horst Feistel (IBM) Cómo usar sustitución monoalfabética y obtener un criptosistema aceptable? Incorporación de transposición Cambio de bases númericas que dificultarían el trabajo de un criptoanalista 5
Propuesta Características del sistema: Entrada: 64 bits Operaciones: transposición, división, reemplazo y combinación Rápido utilizando computadora, improbable implementarlo manualmente 6
Proceso Concepción Nombres del sistema: Dataseal, Demon, Lucifer Fue vendido al Lloyd s Bank NSA (National Security Agency) Se incorporan las cajas S (cajas de sustitución) Reducción de la longitud de la clave a 56 bits 7
Estandarización NIST (1973-1974) 1975: Es elegido como estándar nacional para el procesamiento de la información Se registra como D.E.S. (Data Encryption Standard). Las agencias gubernamentales comienzan a utilizarlo. Las empresas comienzan a fabricar chips que cifran DES. 8
Feistel Estructura que propone una secuencia de operaciones de transposición y sustitución sobre un bloque de datos Implementa la secuencia de manera repetitiva, conformado rondas Comprende un algoritmo de generación de clave de ronda a partir de la clave principal 9
Feistel: Estructura 10
Feistel: Ejemplos Blowfish CAST-128 DES 3DES Lucifer RC2 11
Feistel: Parámetros Se pueden implementar múltiples casos con este esquema, variando: Tamaño del bloque de datos Tamaño de la clave Número de rondas Algoritmo de generación de clave de ronda Función de ronda 12
DES: Características Estructura: Red de Feistel Tamaño del bloque: 64 bits Longitud de la clave: 56 bits 16 subclaves de 48 bits Cantidad de cajas S: 8 Tamaño de la caja S: 4 x 16 Cantidad de rondas: 16 13
DES: Esquema 14
DES: Ronda 15
DES: Expansión y Cajas S Resultado de E (expansión) efgh ijkl mnop defghi hijklm lmnopq A cada Caja S se ingresa con 6 bits 2 bits para indicar fila 4 bits para indicar columna 16
DES: Ejemplo Caja S 17
DES: Resumen Cifrador simétrico Por bloques Basado en operaciones simples Estandar adoptado por la industria 18
DES: Modos de Operación ECB: Electronic Codebook CBC: Cipher-Block chaining 19
DES: Modos de Operación OFB: Output feedback CFB: Cipher feedback Los modos de operación de DES pueden extenderse a cualquier cifrador simétrico por bloques 20
DES: Ataques Ataque fuerza bruta Cantidad posible de claves 2 56 7,21 x 10 16 Utilización de ciclos ociosos de procesadores a través de Internet Ataque con máquina Deep Crack (Electronic Frontier Foundation 1998) construida con 1856 chips diseñados a medida. Capaz de testear el espacio completo de claves en 5 días, tardó 56 hs. Costo: $ 250.000 Criptoanálisis lineal Ataque teórico introducido por Mitsuru Matsui, EUROCRYPT 93. Requiere 2 43 textos claros conocidos. Criptoanálisis diferencial Presentado por Eli Biham y Adi Shamir, CRYPTO 90. Requiere 2 47 textos claros elegidos. D Ki C = M 21
DES: Conclusiones Qué tuvo de bueno DES? Qué debilidades se encontraron? Puede identificarse alguna solución? 22
2DES Implementa dos veces el cifrado DES, con distinta clave, conformando una clave de 112 bits E K2 E K1 M = C La forma obvia de atacarlo, probar toda la combinación de claves, pero eso es efectivamente 2 56 veces mas difícil D Kj D Ki C = M 23
2DES: Meet-in-the-middle Ataque que busca colisiones entrando por ambos lados del algoritmo D Ki C = C 1 E Kj M n = C 2 Si encuentra un caso C 1 =C 2, se registra K i K j como posible clave. Se hacen otras pruebas. Se demuestra estadísticamente que apenas crece la complejidad respecto de DES 24
2DES: Conclusiones Prácticamente no incrementa la seguridad respecto de DES No se adoptó su uso 25
Criptografía y Seguridad Informática 3DES Data Encryption Standard 26
3DES Implementa 3 veces el cifrado DES E K3 E K2 E K1 M = C Sigue siendo vulnerable al MITM, pero ahora la mínima dificultad está dada por una etapa 2DES de complejidad 2 112 De esta manera aumenta significativamente la seguridad 27
3DES: Alternativas DES EEE3: Tres encriptaciones DES con tres claves distintas. DES EDE3: Tres operaciones DES con la secuencia cifrar-descifrar-cifrar con tres claves distintas. DES EEE2 Y DES EDE2: Igual que las anteriores pero la primera y tercera operación utilizan la misma clave. 28
3DES: Adopción en EEUU 2002: Exigencia para cajeros automáticos de desplegar equipamiento con soporte de 3DES. 2003: Implementación de nuevos cajeros solamente con 3DES 2005: 100% de los cajeros con soporte de 3DES 2006: Cajeros que no soporten 3DES deben desafectarse 29
Criptografía y Seguridad Informática AES Advanced Encryption Standard 30
AES: Origen DES considerado vulnerable 3DES ineficiente para paquetes chicos Existencia de ataques teóricos 31
AES: Concurso y selección El NIST (instituto de estándares y tecnología USA) realiza un concurso público en 1997 Se aceptaron 15 propuestas en junio 1998 Se acotaron a 5 propuestas en agosto 1999 En octubre de 2000, se selecciona Rijndael ( raindol ) Dr. Rijmen + Dr. Daemen Estandarizado por FIPS (adopción gubernamental en USA) noviembre 2001 32
AES: Requerimientos De clave simétrica 128-bit de datos, 128/192/256-bit de clave. Más rápido que 3DES, superando vulnerabilidades Vida estimada de 20 a 30 años (+ tiempo para archivo) Disponibilidad de la especificación completa Implementaciones en C, Java y VHDL disponibles
AES: Propuestas CAST-256 (Entrust Technologies, Inc.) CRYPTON (Future Systems, Inc.) DEAL (Richard Outerbridge, Lars Knudsen) DFC (CNRS Centre National pour la Recherche Scientifique École Normale Supérieure) E2 (NTT 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) 34
AES: Criterios de análisis Criterio inicial Seguridad esfuerzo en el criptoanálisis Costo computacional Características del algoritmo y de la implementación Criterio Final Seguridad Disponibilidad de implementaciones en HW y SW sencillas Flexibilidad Sin Patentes
AES: Esquema 36
AES: Características Bloque de 128 bits de datos (16 bytes) Tratado como matriz de 4 x 4 bytes Operación simultánea de todos los bytes en cada ronda A diferencia de red de Feistel que opera parcialmente Resistente a ataques conocidos al momento del diseño 37
AES: Matriz de estado Matriz de Estado 4 gupos de 4 bytes 38
AES: Claves y rondas Tiene 128/192/256 bits de clave y 128 bits de datos 39
AES: Algoritmo Ingreso de texto claro y clave Expansión de clave (claves de ronda) Ejecución de rondas Egreso de texto cifrado 40
AES: Expansión de clave Toma la clave de 128 bits (16 bytes) y la expande a 44 words de 32 bits (11 claves de 128 bits, para 10 rondas + la inicial) En los cifrados de 192 y 256 bits expande a 52 y 60 words, implementando 12 y 14 rondas respectivamente 41
AES: Detalle de rondas: Byte Substitution Sustitución byte a byte con una tabla (caja S) de 16x16 bytes resultando en una permutación de los 256 valores de 8 bits 42
AES: Detalle de rondas: Byte Substitution Ejemplo: Si S 1,1 = {53} => S 1,1 = {ed} 43
AES: Detalle de rondas: Shift Rows Desplazamiento circular 44
AES: Detalle de rondas: Mix Columns Cada columna se procesa en forma separada Cada byte se reemplaza por un promedio ponderado de toda la columna 45
AES: Detalle de rondas: Add Round Key Se hace XOR de la matriz de estado con los 128 bits de la clave de ronda 46
AES: Síntesis de una ronda 47
48
AES: Implementación Al trabajar en GF(2 8 ) se puede implementar en CPUs de 8 bits La caja S es una tabla de 256 posiciones Shift rows: Es un corrimiento simple de bytes Add round key: XOR Mix columns: Multiplicacion en GF(2 8 ), algoritmo acelerado Tanto en HW como en SW
AES: Implementación HW Ejemplo: AES-NI Intel Advanced Encryption Standard Instructions https://software.intel.com/en-us/articles/inteladvanced-encryption-standard-instructions-aes-ni Library Description Version supporting AES-NI Open SSL Intel Integrated Performance Primitives (IPP) crypto Microsoft* Cryptography API: Next Generation 1 Open source library implementation of SSL and TLS. Supports several cryptographic functions including AES Extensive library of multicore-ready, highly optimized implementations of several cryptographic algorithms including AES. APIs included with Microsoft* Operating systems provides cryptographic services to applications. Direct support in V1.0 (experimental version) 0.9.8k or later via patch V6.1 or later Windows 7 50
AES: Benchmark AESNI: AES x HW 51
AES: Ataques Criptoanálisis diferencial Ingreso de múltiples textos conocidos, diseñados con pequeños cambios, de manera de estudiar la propagación a la salida. Utilidad teórica. Matemática. Análisis de tiempos ( timing attacks ) Estudio sobre las implementaciones. Análisis de consumo de energía. Tiempos de operaciones no constantes http://cr.yp.to/antiforgery/cachetiming-20050414.pdf 52
Criptografía y Seguridad Informática Síntesis Simétricos 53
Comparativa 54
Conclusiones Casos de uso Qué servicios de seguridad puedo obtener? Cómo determinar las claves a utilizar? Cómo implementar? Confidencialidad Autenticación Cuándo son mas eficientes? 55