Criptografía Simétrica Moderna Principio de Kerckhoff (1883) El criptosistema y el algoritmo de cifrado deben ser de conocimiento público, sólo la clave debe permanecer secreta Aplicaciones telemáticas de alta velocidad Confusión y difusión Seguridad por oscuridad/ocultación
Criptografía Simétrica Moderna Cifrado en flujo Alta velocidad de cifrado, no propaga errores Se cifra bit a bit Baja difusión, vulnerable a alteraciones Cifrado en bloque Se divide el texto en bloques de tamaño fijo. Si faltan caracteres, se debe añadir un relleno. ECB, CBC, CFB, OFB, etc. Redes de Feistel, DES, 3DES, AES
Criptografía Simétrica Moderna Cj = EK(Mj) ECB (Electronic Code Book) Cuando se cifra un bloque con cierto valor, siempre se obtendrá el mismo resultado Si varios bloques se envían por un canal inseguro, se pueden perder bloques sin ser detectados o pueden ser capturados y enviados mas tarde Mj = DK(Cj) CIFRADO DE BLOQUES Clave Texto Plano Texto Cifrado . . . http://www.maths.usyd.edu.au/u/kohel/tch/MATH3024/Lectures/lectures_05.pdf
Criptografía Simétrica Moderna Cj = EK(Cj−1 ⊕ Mj). CBC (Cipher Block Chaining Mode) Vector de inicialización: Número aleatorio que puede ser conocido públicamente Último bloque MAC Mj = Cj−1 ⊕ DK(Cj). CIFRADO DE BLOQUES Clave Texto Plano Texto Cifrado . . . Vector de inicialización
Criptografía Simétrica Moderna CFB (Cipher Feedback mode) Cj = Mj ⊕ Lr(EK(Ij)) Mj = Cj ⊕ Lr(EK(Ij)) CIFRADO DE BLOQUES Clave Vector de inicialización Texto Cifrado . . . Texto plano
Criptografía Simétrica Moderna OFB (Output Feedback mode) Cj = Mj ⊕ Lr(Ij) Mj = Cj ⊕ Lr(Ij) CIFRADO DE BLOQUES Clave Vector de inicialización Texto Cifrado . . . Texto plano
Criptografía Simétrica Moderna CTR (Counter) Vector de Inicialización Vector de Inicialización . . . CIFRADO DE BLOQUES CIFRADO DE BLOQUES Clave Clave Texto Plano Texto Plano http://www.maths.usyd.edu.au/u/kohel/tch/MATH3024/Lectures/lectures_05.pdf Texto Cifrado Texto Cifrado
Criptografía Simétrica Moderna Cj = EK(Cj−1 ⊕ Mj ⊕ Mj-1). PCBC (Propagating CBC) Kerberos V4 Mj = Mj−1 ⊕ Cj−1 ⊕DK(Cj). CIFRADO DE BLOQUES Clave Texto Plano Texto Cifrado . . . Vector de inicialización
Redes de Feistel PI f K1 K2 K16 PI-1 . Texto cifrado Texto claro La entrada se divide en dos bloques de igual tamaño (64-256) Claves de (56-256 bits) Número de rondas 10-16 En cada ciclo se aplica una función hash (f) al bloque derecho Con el resultado se realiza un XOR con el bloque izquierdo Los bloques se intercambian
Redes de Feistel Permutación Mensaje: COLOMBIA ES PASION DE VERDAD Si=x+3 mod 27 Pi=2301 C=LDPEORFRRQVLSDHVDGUGYHGH Primera ronda M1= C O L M B I A E S P N D V R S1= F R O M B I A H V S D N G Y P1= O R F M B I A S D H V N Y G Segunda ronda M2= M B I A O R F S N D H V Y G S2= P E L D O R F V Q S H U G Y P2= L D P E O R F Q V S H G U Y
Redes de Feistel Expansión, permutación: Operaciones lineales Operaciones de corte de bits: XOR, AND, OR, NOT LUCIFER 1971Feistel, clave de 128, bloques de 64 bits 1973 NBS (National Bureau of Standards) 1976, DESTuchman-Meyer, clave de 56 Bits, bloques de 64 . La unidad básica es el bit
DES (Data Encryption Standard) Texto claro 64 bits PI L0 R0 32 bits 32 bits Diseñado por IBM y NSA, estándar de 1973-2000 Bloques de 64 bits 16 Iteraciones tipo Feistel Clave de 56 bits, divididos en 7 bloques de 8 bits y un bit de paridad (256 claves posibles ) f K1 48 bits L1 =R0 R1 =L0 f(R0, K1) f K2 L15=R14 K16 L16 =R15 R16 =L15 f(R15, K16) . R15 =L14 f(R14, K15) PI-1 Texto cifrado
Sustitución/Elección Cajas S Permutación/Expansor Clave: 64 bits (8, 16…64 paridad) Permutación 64 bits Li-1 Ri-1 32 bits Ci-1:28b Di-1:28b 56 bits Ri 32 bits Li Sustitución/Elección Cajas S Permutación/Expansor Permutación P 48 bits 32 bits Rotación izq. 57 49 41 33 25 17 9 1 58 50 42 34 18 10 2 59 51 43 27 19 11 3 60 52 36 63 55 47 39 31 23 15 7 62 54 45 38 30 22 14 6 61 53 37 29 21 13 5 28 20 12 4 Permutación/Reducción PC2 Ki 56 bits Ki 48 bits Ci Di 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 Ki 48 bits 16 7 20 21 29 12 28 17 1 15 23 25 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 32 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 25 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 53 46 42 50 36 29 32 32 bits S1 S2 S3 S4 S5 S6 S7 S8 Li = Ri-1 Ri = Li-1, F(Ri-1,Ki)
DES-S-Cajas 011011 011011 011011 S1 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 00 100 101 01 110 10 11 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 00 100 101 01 110 10 11 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 00 100 101 01 110 10 11 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 . 0101 S8 . . . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
DES-Permutaciones Permutación Inicial Posición 40 1 2 3 4 5 6 7 8 58 50 42 34 26 18 10 60 52 44 36 28 20 12 62 54 46 38 30 22 14 64 56 48 40 32 24 16 57 49 41 33 25 17 9 59 51 43 35 27 19 11 61 53 45 37 29 21 13 63 55 47 39 31 23 15 Posición 40 Permutación Final: P-1 1 2 3 4 5 6 7 8 40 48 16 56 24 64 32 39 47 15 55 23 63 31 38 46 14 54 22 62 30 37 45 13 53 21 61 29 36 44 12 52 20 60 28 35 43 11 51 19 59 27 34 42 10 50 18 58 26 33 41 9 49 17 57 25
TDES-3DES 15 rondas Tres cifrados DES mediante dos claves de 56 bits Requiere mas recursos Longitud efectiva de la clave: 112 bits IDEA (International Data Encryption Algorithm), 1991 Mensaje Clave 1 Mensaje cifrado 1 Clave 2 Mensaje cifrado 1 Clave 1 Mensaje cifrado 1
Algoritmo Rijndael AES (Advanced Encryption Standard) 1997-NISTConvocatoria para definir un nuevo estándar Vincent Rijmen y Joan Daemen2001 Bloques de datos de 128 bits Claves de 128, 192, y 256 bits Cifrado: n+1 rondas (n=10,12 ó 14) AES (Advanced Encryption Standard) Unidad de procesamiento básica: 1 Byte Las subclaves se derivan de la clave de cifrado Distribución de claves? Confidencialidad entre varias entidades comunicantes?
Funciones Hash Representación condensada de un mensaje Dado m, es fácil calcular r(m) Funciones unidireccionales SHA (Secure Hash Algorithm) NIST MD5 (128 bits) SHA-0 (160 bits) Mensaje 264-1 bits SHA-1 (160 bits), SHA-2 (224, 256, 384, 512 bits) SHA-384, SHA-512 Mensaje 2128 -1 bits SHA3-224 (Keccak ), SHA3-256, SHA3-384, and SHA3-512 ∞
Hash y MAC Autenticación de origen Integridad del mensaje Función Hash Función MAC Clave Hash MAC Autenticación de origen Integridad del mensaje CBC-MAC, CMAC (Mensajes de longitud fija) PMAC (Paralelizable) HMAC UMAC Universal (aleatorio) Etc.
Reto 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 8 9 0 1 2 4 5 6 7 8
Funciones Hash MD5 (Message Digest) Huella: 128 bits Procesa bloques de 512 bits Pasos: Bits de relleno: Hasta que la longitud del mensaje sea congruente con 448 modulo 512 (10000…) El mensaje se representa con bloques de 64 bits Se usa un buffer de 4 palabras para calcular el resumen del mensaje. Se definen 4 funciones auxiliares A: 01 23 45 67 B: 89 ab cd ef C: fe dc ba 98 D: 76 54 32 10 Procesamiento del mensaje en bloques de 16 palabras F(X,Y,Z) = XY v not(X) Z H(X,Y,Z) = X xor Y xor Z G(X,Y,Z) = XZ v Y not(Z) I(X,Y,Z) = Y xor (X v not(Z)) Salida A B C D
Referencias Stallings, William. “Cryptography and network security principles and practice”. Ed. Pearson/Prentice Hall. 680 p. ISBN: 0131873164. 2006. Carracedo Gallardo, Just. “Seguridad en redes telemáticas”. ISBN: 84-481-4157-1, Ed. McGraw Hill. 2004. Buchmann, Johannes. “Introduction to Cryptography”. Ed. Springer. ISBN: 038721156X. 2004 Ramió Aguirre, Jorge. “Seguridad Informática y Criptografía”, Material docente de libre distribución. Universidad Politécnica de Madrid, España. 2005. http://www.cs.virginia.edu/jillcrypto/introduction.pdf http://www.petitcolas.net/fabien/steganography/mp3stego/ http://www.monticello.org/gallery/innovations/wheelcipher.html http://www.cryptomuseum.com/crypto/index.htm http://www.itl.nist.gov/fipspubs/fip46-2.htm http://www.simonsingh.net/ http://www.ridex.co.uk/cryptology/#_Toc439908853 http://practicalcryptography.com/ciphers/polybius-square-cipher/ http://www.cs.bham.ac.uk/~mdr/teaching/modules/security/lectures/symmetric-key.html http://www.iaik.tugraz.at/content/research/krypto/AES/index.php
Referencias http://criptosec.unizar.es/doc/tema_c3_criptosec.pdf http://www.cryptogram.org/cipher_types.html http://www.ietf.org/rfc/rfc1321.txt http://csrc.nist.gov/archive/aes/index.html http://aes.evolsystem.cl/default.aspx http://csrc.nist.gov/groups/ST/toolkit/block_ciphers.html Fuster Sabater, Amparo, “Criptografía, protección de datos y aplicaciones: guía para estudiantes y profesionales ”. Ed. Alfa Omega-Rama. ISBN: 9788499641362. 2012. http://criptosec.unizar.es/doc/tema_c3_criptosec.pdf