CRIPTOGRAFÍA SIMÉTRICA
DESARROLLO Módulo II: criptografía simétrica y asimétrica Criptografía simétrica y asimétrica. Criptosistemas simétricos: históricos y actuales. Principales cifradores de bloque y fluo. Modos operativos. Secreto perfecto y one-time pad. Historia de la criptografía asimétrica. Protocolo de Diffie y Hellman para el intercambio de claves. Criptosistemas RSA y ElGamal. Encripción y firma digital. Comparaciones de seguridad entre cifradores simétricos y de clave pública. 2
ENCRIPCIÓN SIMÉTRICA ESTAMOS HABLANDO DE CRIPTOGRAFÍA #@Y6&(*-+W3! G&%;{I8=U 3
BLOCK & STREAM CIPHERS BLOCK (bloque) 0000 0000 000 00 0000 0000 STREAM (fluo) 0 0 0.. XOR (key Bit) 0 0.. 4
DES 56-bits Es el algoritmo simétrico más famoso y usado del mundo Es el algoritmo simétrico más estudiado del mundo y hoy día sirve una importante función didáctica residual Es el algoritmo simétrico más atacado del mundo Basado en las Caas de Feistel (Difusión+Confusión) Nace como estándar NIST en 975 Muere en 998: CRACKING DES EFF Foundation O Reilly (998) (Quiebre en 72Hs en Workstation) Oficialmente reemplazado en 200 por el AES (NIST) (Rindael) 28/92/256 bits 5
Desarrollado por IBM, publicado el 7/3/75 en el Federal Register del National Bureau of Standards de los Estados Unidos (por error, pues la National Security Agency creía que se podía implementar únicamente porhardware, y la publicación permitió desarrollar software). Adoptado como estándar para aplicaciones no clasificadas el 5//77. Revisado cada 5 años. La última vez fue en Enero de 994 y se lo renovó hasta 998. Hoy día cumple una importante función didáctica como arquetipo de primitiva simétrica y por ese motivo lo estudiaremos en detalle. 6
Descripto en el Federal Information Processing Standards Publication 46 del 5//77. DES encripta un vector x de 64 bits usando una clave K de 56 bits, obteniendo un vector encriptado de longitud 64. Descripción n general El algoritmo consta de tres etapas:. Dado un texto plano x, se construye un vector binario (bitstring) x 0 = IP(x) = L 0 R 0, donde IP es una permutación fia inicial, L 0 consta de los primeros 32 bits de x 0 y R 0 de los últimos 32 bits 2. Se calculan 6 iteraciones de una cierta función, y LiRi para i 6 de acuerdo a la regla L i = R i R i = L i f ( R i, K i ) 7
PLANO 64 bits 64 bits 64 bits + 56 bits CLAVE 64 bits CIFRADO 8 bytes x (7 bits útiles + bit paridad impar) 8
f será descripta luego y K,..., K6 son strings de longitud 48 calculados como una función de K (De hecho cada K i es una selección permutada de bits de K) 3) Se aplica la permutación inversa IP al bitstring L o sea que y = IP 6 R ( L 6 6 R obteniendo el 6 ) texto cifrado y 9
X 0 IP L 0 R 0 bloque 64 texto plano 32 + 32 FEISTEL BOX i=,6 L i =R i- R i =L i- f (R i-, K i ) y 0 IP - L 6 R 6 bloque 64 32 + 32 texto cifrado 0
Un ciclo (round) de encripción de DES FEISTEL BOX L i- R i- f K i XOR L i R i
La función f tiene dos argumentos: A un bitstring de longitud 32 J un bitstring de longitud 48 y el resultado es un bitstring de longitud 32 Se eecutan los siguientes pasos: ) Se expande el primer argumento A a un bitstring de longitud 48 según una función de expansión fia E(A) que consiste de los 32 bits de A permutados de una cierta manera y 6 de ellos que aparecen duplicados. 2) Se calcula E( A) J y se escribe el resultado como la concatenación de ocho strings de seis bits B = B B 2B3B4B5B6 B7B8 2
FUNCION f R i- E K i 32 32 48 48 B B B B B B B B 2 3 4 5 6 7 8 8 x 6 b b 2 b 3 b 4 b 5 b 6 b b 6 : puntero de fila b 2 b 3 b 4 b 5 : puntero de columna 3
3) El próximo paso utiliza ocho S-boxes, donde cada S i es una matriz de 4x6 cuyos elementos son enteros de 0 a 5. Dado un string de longitud 6, por eemplo B = b b b b b 2 3 4 5b6 Se calcula S B del modo siguiente: los bits b b 6 determinan la representación binaria de una fila r de S (0 r 3) y b2b3b4 b5 de la columna Entonces S B c de S (0 c 5). se define como el elemento S en binario como un string de 4 bits Por a dos lo tanto resultado cada bitstrings S puede pensarse un string de longitud cuatro determinan la representación binaria como ( r, c) escrito una función que tiene como uno de longitud dos y otro de longitud cuatro y da como argumentos Así, escribimos C = S B, 8 4
FUNCION f (R i-, K i ) R i- E K i 32 32 48 48 B B B B B B B B 8 x 6 S-BOX S S S S S S S S 4x6x4 bits C C C C C C C C 32 = 8 x 4 2 3 4 5 6 7 8 5
4) El bitstring C = CC2C3C 4C5C6C7C8 de longitud 32 se lo permuta de acuerdo a una permutación fia P y se define : P( C) = f ( A, J ) La permutación IP 58 50 42 34 26 8 0 2 60 52 44 36 28 20 2 4 62 54 46 38 30 22 4 6 64 56 48 40 32 24 6 8 57 49 4 33 25 7 9 59 5 43 35 27 9 3 6 53 45 37 29 2 3 5 63 55 47 39 3 23 5 7 El bit 50 de x es el segundo bit de IP(x), etc. 6
La permutación inversa IP - 4 0 8 4 8 6 5 6 2 4 6 4 3 2 3 9 7 4 7 5 5 5 2 3 6 3 3 3 8 6 4 6 4 5 4 2 2 6 2 3 0 3 7 5 4 5 3 5 3 2 6 2 9 3 6 4 4 4 2 5 2 2 0 6 0 2 8 3 5 3 4 3 5 9 5 9 2 7 3 4 2 4 2 0 5 0 8 5 8 2 6 3 3 4 9 4 9 7 5 7 2 5 7
La función de expansión E se define mediante la siguiente tabla 32 2 3 4 5 4 5 6 7 8 9 8 9 0 2 3 2 3 4 5 6 7 6 7 8 9 20 2 20 2 22 23 24 25 24 25 26 27 28 29 28 29 30 3 32 8
La S box número 4 4 3 2 5 8 3 0 6 2 5 9 0 7 0 5 7 4 4 2 3 0 6 2 9 5 3 8 4 4 3 3 6 2 5 2 9 7 3 0 5 0 5 2 8 2 4 9 7 5 3 4 0 0 6 3 9
Finalmente hay que describir el cálculo de los K i a partir de la llave K. Esta llave es un bit string de 64 bits, de los cuales 56 constituyen la clave misma y los otros 8 son bits de paridad para la detección de posibles errores (los bits en las posiciones 8, 6, 24, 32, 40, 48, 56, 64 se definen de modo tal que cada byte contenga un número impar de unos. Por lo tanto, si hay un error se puede detectar en cual de los bytes ocurrió. Estos bits de paridad NO SE TOMAN EN CUENTA en el cálculo de los K i (se llama el key schedule) ) Dada una llave K de 64 bits, descartar los bits de paridad y permutar los restantes bits de K según una permutación fia PC - Escribiremos PC de PC 2) Calcular ( K) y D C D K para i =,...,6 i i i = = = 0 - (K) = C 0 D donde C de los últimos 28 bits. LS ( C LS ( D i PC i 2 i i ) ) ( C D i i ) 0 ( LS i 0 se compone los otros casos. PC de los primeros 28 es un corrimiento cíclico a la izquierda de una o dos posiciones según el valor de i, bits una posición si i =,2,9 o6 y dos posiciones en -2 es otra perm utación fia) 20
Reduce a 56 bits K 64 PC- C 0 D 0 bloque 64 Clave original Permutacióncompresion Nº 28 + 28 Key Schedule i=,6 C i =LS i ( C i- ) D i =LS i ( D i- ) K i =PC-2( C i D i ) Permutación-compresion Nº2 Reduce a 48 bits Rotación circular izq ( ) si i {,2,9,6} (2 ) caso contrario 2
La permutación PC - 57 49 4 33 25 7 9 58 50 42 34 26 8 0 2 59 5 43 35 27 9 3 60 52 44 36 63 55 47 39 3 23 5 7 62 54 46 38 30 22 4 6 6 53 45 37 29 2 3 5 28 20 2 4 22
La permutación PC -2 4 7 24 5 3 28 5 6 2 0 23 9 2 4 26 8 6 7 27 20 3 2 4 52 3 37 47 55 30 40 5 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 23
Veamos ahora como resulta el key schedule. Cada round usa una llave de 48 bits compuesta de 48 bits de la llave K. Los elementos en las siguientes matrices muestran cuales son los bits de K usados en cada round. Rounds y 2 0 5 34 60 49 7 33 57 2 9 9 42 3 35 26 25 44 58 59 36 27 8 4 22 28 39 54 37 4 47 30 5 53 23 29 6 2 38 63 5 20 45 4 3 62 55 3 2 43 26 52 4 9 25 49 59 34 60 27 8 7 36 50 5 58 57 9 0 33 4 20 3 46 29 63 39 22 28 45 5 2 53 3 30 55 7 2 37 6 5 54 47 23 24
La desencripción se realiza usando el mismo algoritmo, tomando y = IP ( L R6 ) 6 como input, y usando a las llaves K 6,..., K en orden inverso Los corrimientos a la izquierda ahora se realizan a la derecha para desencriptar 25
Reprint from Secure Network Communication Andreas Steffen Zürcher Hochschule WinterThur - 2002 26
Algunos estándars importantes basados en DES: ANSI s Financial Institution Retail Security Working Group desarrolló un estándar para la administración y seguridad de PINs (ANSI X9.8) (American National Standard for Personal Information Number (PIN) Management and Security, American Bankers Association, 982. ANSI X9.9, American National Standard for Retail Message Authentication, American Bankers Association, 985. La ANSI s Financial Institution Wholesale Security Working Group desarrolló sus propios estándares como: Distribución de claves: ANSI X9.24, 988 Autenticación de mensaes: ANSI X9.9, 986 Encripción: ANSI X9.23 Autenticación personal y de nodos: ANSI X9.26 27
Claves débiles Debido a la forma como la clave inicial K es modificada para calcular las subclaves para cada round de DES, ciertas claves iniciales son DEBILES. Ver: ) D.W.Davies, Some regular properties of the DES,Advances in Cryptology: Proceedings of Crypto 82, Plenum Press, 983, pp. 89-96 2) M.E.Hellmann, R.Merkle, et al, Results of an initial attempt to cryptanalize the NBS Data Encryption Standard, Technical Report SEL 76-042, Information Systems Lab, Department of Electrical Engineering, Stanford University, 976. Recordemos que la llave inicial se divide en dos partes, y cada una de ellas se procesa por separado. Lo más trivial: si cada mitad consiste solo de ceros o unos, entonces la llave usada para cada ciclo del algoritmo es siempre IGUAL. Además, hay llaves semidébiles que en vez de generar 6 subllaves distintas sólo generan DOS, y otras sólo generan CUATRO. Hay gente que opina que la probabilidad de encontrarlas es baa pues hay 72.057.594.037.927.936 claves distintas, pero al mismo tiempo eso se puede controlar matemáticamente para evitar quiebres de la seguridad. 28
3 DES (y otros) W.Tuchmann propuso en 979 (revista IEEE Spectrum) la idea de encriptar tres veces con dos claves. Sea M el mensae (texto plano), y C El esquema es el siguiente : C = M = E k D ( D k k2 ( E k2 ( E k ( D ( M ))) k ( C))) el texto cifrado. Esto se denomina el encrypt-decrypt-encrypt mode (EDE) X9.7, 985, American Bankers Association. También la norma ISO 8732. Obviamente si la clave usual tiene n bits, este esquema usa 2n bits (por ello el 3DES usa 2 = 56x2 bits de clave doble o 68 bits si las tres son diferentes) Existen muchísimas variantes, como 3DES con tres claves distintas recién mencionado, usar diferentes vectores de inicialización IV en cada paso, etc. 29
La estructura algebraica Si DES fuese algebraicamente cerrado, entonces para cualquier par de claves K y K2 existiría siempre K3 tal que Ek ( E ( M )) = Ek ( M ) En otras palabras,la operación de encripción con DES sería un grupo y no se aumentaría la compleidad de un ataque por usar dos claves. Pero DES no es un grupo. Ver : K.W.Camp bell and M.J.Wiener, "DES is not a Group", Advances Crypto 92 Proceedings, Springer - Verlag, pp. 52-520. 2 k 3 in Cryptology, 30
La longitud de clave El diseño original de IBM tenía una clave de 2 bits, pero el estándar se publicó usando solo 56 bits. Hellman propuso lo siguiente: tomar un texto plano fio y encriptarlo con las 2 56 claves posibles. Para quebrar una clave desconocida el espía solo tiene que hacer que encripten ese texto plano y comparar el resultado con esas encripciones. Se calculó que dicha computadora costaría U$S 5.000.000 Ya en 993 se habían diseñado computadoras para quebrar claves de 56 bits en unos 20 minutos por menos de U$S.000.000. Hoy día se quiebra en horas por Hardware que cuesta sólo algunos miles de dólares. El criptoanálisis diferencial En 990, dos matemáticos israelíes, Eli Biham y Adi Shamir introdueron el criptoanálisis diferencial. La idea es usar pares de textos planos con ciertas diferencias y se analiza la evolución de las mismas a medida que se eecutan las rondas de DES. Este tema será explicado en una clase posterior. 3
El número de rounds Porqué se usan 6 rounds? Luego de 5 rounds todos los bits del texto cifrado son una función de todos los bits tanto del texto plano como de la llave K (se llama el efecto avalancha). Porqué entonces no parar luego de un número de rounds mayor o igual a 5? A través de los años los DES con un número reducido de rounds fueron sucesivamente quebrados. El DES con 3 o 4 rounds se quebró en 982, con 6 rounds en 985, y el criptoanálisis diferencial muestra que si el número de rondas es menor que 6 entonces un ataque con texto plano conocido es más eficiente que el ataque por fuerza bruta. Por eso se usaron 6! 32
La controversia acerca del algoritmo DES Cuando se presentó DES hubo numerosas críticas. Una obeción es acerca de las S-boxes. Todos los cálculos en DES son lineales, excepto a los que involucran a las S-boxes, o sea que calcular el XOR de dos outputs es lo mismo que formar el XOR de dos inputs y luego calcular el output. Sin embargo los criterios de diseño de las S-boxes no son completamente conocidos. Diversos autores sugirieron que podría haber trapdoors que permiten a la NSA (National Security Agency) desencriptar mensaes. Obviamente esta afirmación no se puede refutar, pero tampoco hay pruebas de que las trapdoors existen. La NSA aseguró en 976 que se usaron las siguientes propiedades como criterios de diseño: P0) cada fila de cada S-box es una permutación de los enteros 0,...,5 P) Ninguna S-box es una función lineal de los inputs P2) Si se cambia un bit de entrada a una S-box cambian al menos 2 bits a la salida. P3) Para cualquier S - box y cualquier input x (bitstring de longitud 6), S( x) y S( x difieren en por lo menos 2 bits 0000) 33
Hay dos propiedades adicionales debidas a la NSA: P5) Para cualquier S - box, si { 0,} P4) Para cualquier S - box, input x, y para todo e, f S( x) S( x ef se fia un bit de input, y miramos el valor de un bit fio de output, el número de inputs para el cual ese bit de output es 0 será "cercano" al número de inputs para el cual ese bit de output es. 00) Hay más criterios? 34
Modos de operación de los métodos por bloques ECB : Electronic Code Book Mode Input: una clave K de de k bits y x,,x t bloques de n bits Encripción: c = E K (x ) Desencripción: x = E K - (c ) 35
PLANO 64 bits 64 bits 64 bits CLAVE CLAVE CLAVE 64 bits 64 bits 64 bits CIFRADO 36
Propiedades del modo ECB ) Bloques de texto plano idénticos producen con la misma clave bloques cifrados iguales 2) Los bloques se encriptan por separado, o sea que no hay dependencias funcionales entre ellos 3) Propagación de errores: un error en un bloque cifrado solamente afecta al bloque descifrado correspondiente 37
CBC Input :Clave K de k bits, IV de n bits, bloque x,..., x t. Encripción : c 0 IV. Para t, c E k ( c x ) 2. Desen cripción : Para t, x c E K ( c ) 38
64 bits I.V. PLANO 64 bits 64 bits 64 bits CLAVE CLAVE CLAVE CIFRADO 64 bits 64 bits 64 bits 39
Propiedades del modo CBC ) idénticos bloques de texto plano producen con la misma clave K y el mismo IV idénticos resultados. Obviamente si se cambia K o IV, los resultados son distintos 2) Dependencias: la desencripción correcta de un bloque solamente es posible si los bloque precedentes han sido correctamente desencriptados. 3) Propagación de errores: un error de un bit en un bloque cifrado afecta el descifrado de dicho bloque y el siguiente. El descifrado del bloque siguiente tiene errores EXACTAMENTE en los bits donde el bloque cifrado anterior los tenía 4) Recuperación de errores: Si hay un error en c() pero no en c(+), entonces c(+2) se desencripta correctamente 40
CFB Input : Clave K de k bits, bloques de texto plano de r bits cada uno con r n y un vector IV de inicialización de n bits Encripción : I IV Para u ( a) O E ( I ) (cifrado) (b) t (c) c (d) I + x K t r. I los r bits comenzando de la izquierda de O 2 (transmitir el bloque cifrado c + c mod(2 n ) (corre c x,..., x al lado derecho del registro) u de r bits) Desencripción : I x c t IV Para u calcular 4
N bits I.V. I.V. k bits CLAVE N bits CLAVE CLAVE PLANO PLANO PLANO r bits CIFRADO CIFRADO CIFRADO 42
Propiedades del modo CFB ) si cambia IV, textos planos idénticos producen diferente resultados 2) dependencias: cada bloque cifrado depende del texto plano correspondiente y de los PRECEDENTES. La desencripción correcta de un bloque cifrado depende de que los anteriores hayan sido correctamente recuperados 3) Propagación de errores: un error en uno o más bits de un bloque cifrado afecta a los [n/k] siguientes o sea hasta que el bloque equivocado se elimina del registro de corrimiento 4) Recuperación de errores: requiere [n/k] bloques para recuperarse de un error 43
OFB Input :clave K de k bits, vector IV de n bits, bloques de texto plano x,..., x (a) O (b) t (c) c (d) I + u Encripción : I E x ( r n) K O ( I t IV. los r bits de la izquierda de O Para u, dado x ) (update para el próximo block) (el de la izquierda debe ser ) Desencripción : I x c t IV.Para u, dado c 44
N bits I.V. I.V. k bits CLAVE N bits CLAVE CLAVE PLANO PLANO PLANO r bits CIFRADO CIFRADO CIFRADO 45
Propiedades del modo OFB ) Como en los modos CBC y CFB, al cambiar IV cambia el resultado 2) Dependencias: la secuencia de claves no depende del texto plano 3) Propagación de errores: un error en el bloque cifrado c() afecta el descifrado del bit correspondiente (produce el complemento) 4) Recuperación de errores: el modo OFB se recupera de errores en los bits, pero no de su pérdida pues pierde la sincronización de la secuencia de claves de desencripción. 46
OFB con feedback de r bits Como I de + el 2 modo r. I desplazami ento. + t OFB pero mod(2 o sea desplazand o el output t n ) reemplazan do al lado I + derecho O del por registro 47
Estos cuatro modos tienen ventaas y desventaas. En los modos ECB y OFB un cambio en un bloque de texto plano solo produce cambios en el correspondiente bloque cifrado, sin afectar a los otros. Y esto a veces es deseable, por eemplo OFB se usa en transmisiones satelitales. Por otra parte si hay un cambio en un bloque del texto plano, los modos CBC y CFB no solo se altera el bloque correspondiente, sino también los subsiguientes. Por lo tanto son muy útiles para problemas de autenticación (MAC). Por eemplo: Veamos como usar CBC como MAC. Comenzamos con IV como vector nulo, calculamos los bloques cifrados y,..., y con la llave K usando el modo CBC y definimos el MAC como y. n El emisor transmite la sucesión de bloques de texto plano x MAC. El receptor reconstruye la sucesión y y verifica que MAC = y n.,..., y n,..., x unto con el usando la clave secreta n n K 48
Cómo combinar autenticidad y confidencialidad? El emisor usa una clave K y define sucesión x controla que n+ = y,..., y x MAC que se encripta con una clave K n+ n+. para calcular un MAC para El receptor desencripta dicha sucesión con K es el MAC para x,..., x n 2 x con la clave K,..., x produciendo la. n 2 y Más adelante veremos una solución asimétrica más eficiente con este mismo obetivo. 49
TEORIA DE LA INFORMACION SECRETO PERFECTO Shannon demostró que la condición necesaria para que un criptosistema sea de SECRETO PERFECTO o de confidencialidad total, es que la incertidumbre de la clave sea infinita (o sea que nunca se repita) E: One-Time-Pad: Criptosistema de Vernam (XOR) con clave aleatoria infinita 50
0 0 ONE-TIME PAD 0 XOR 0 0 0 0 0. 0 0 0 0 0 0 0. 5
SEGURIDAD INCONDICIONAL CRIPTOSISTEMA (P,C,K,E,D) quiebre imposible El único sistema conocido que posee seguridad incondicional es el one-time pad y esto es aprovechado hoy día por la criptografía cuántica es inquebrable aún con recursos computacionales ilimitados (por eemplo con computadoras cuánticas) Los fundamentos: uso de claves de uso único (redundancia cero) 52