Introducción a la criptografía Introducción (I) • Inicialmente la seguridad no fue un problema tenido en cuenta en las redes de ordenadores. • Sin embargo, en la actualidad las redes transportan información sensible como: – Operaciones bancarias. – Compras (tarjetas de crédito). – Etc. • Es necesario por tanto resolver la seguridad de las redes. Adquisición y Tratamiento de Datos 1 Introducción a la criptografía Introducción (II) • Existen cuatro áreas de seguridad interrelacionadas: – El secreto. • Mantener la información fuera del alcance de los no autorizados. – La validación de identificación. • Asegurar la identidad del otro lado del canal de comunicación. – El control de integridad. • Asegurar que los mensajes recibidos no han sido manipulados por el camino. – El no repudio. • Firmar un mensaje de igual forma que se firma un documento. Adquisición y Tratamiento de Datos 2 Introducción a la criptografía Secreto (I) • El secreto en la red y en las comunicaciones esta ligado al cifrado (codificación) de los mensajes. • En el cifrado: – Los mensajes a cifrar se conocen como texto normal – Se transforman mediante una función parametrizada por una clave. – El texto que se obtiene se conoce como texto cifrado. – La transmisión se realiza mediante el texto cifrado. – Si un intruso captura el texto cifrado no puede descifrarlo al no conocer el algoritmo y/o la clave. • La persona que descifra mensajes sin conocer la clave se llama criptoanalista y a la técnica se la llama criptoanálisis. Adquisición y Tratamiento de Datos 3 Introducción a la criptografía Secreto (II) • A partir de ahora: – C=Ek(P): El cifrado del texto P con el algoritmo E utilizando la clave k da el texto cifrado C. – P=Dk(C): El descifrado del texto C con el algoritmo D utilizando la clave k da el texto normal P. – Por tanto Dk(Ek(P))=P • En la actualidad se supone que el secreto debe mantenerse si un criptoanalista conoce E (y D si es distinta) y no conoce la clave k. Adquisición y Tratamiento de Datos 4 Introducción a la criptografía Rellenos de una sola vez (I) • Un cifrado inviolable se conoce desde hace tiempo: Los rellenos de una sola vez. – Se escoge una cadena de bits al azar como clave. – Se traduce el texto a su ASCII. – Se realiza la operación lógica XOR, bit a bit entre la clave y el texto. A 0 0 1 1 Adquisición y Tratamiento de Datos B 0 1 0 1 A XOR B 0 1 1 0 5 Introducción a la criptografía Rellenos de una sola vez (II) • El texto resultante no puede descifrarse por: – Cada texto candidato posible a haber sido cifrado tiene la misma probabilidad. – El texto cifrado no proporciona al criptoanalista ninguna información: • Cada letra. • Digrama: Combinación de dos letras. • Trigrama: Combinación de tres letras. – Aparecen con igual frecuencia. • Su problema es que solo puede cifrarse la longitud de la clave como máximo. Adquisición y Tratamiento de Datos 6 Introducción a la criptografía Rellenos de una sola vez (III) • Ejemplo: Texto original Codificación ASCII (hex) Texto de cifrado Codificación ASCII (hex) Codificación cifrada (hex) t 74 E 45 31 e 65 n 6E 0B x 78 Codificación cifrada (hex) Texto de cifrado Codificación ASCII (hex) Codificación ASCII (hex) Texto original 31 E 45 74 t 0B n 6E 65 e 58 Adquisición y Tratamiento de Datos 20 58 20 78 x t 74 u 75 01 o 6F n 6E 01 01 u 75 74 t 01 n 6E 6F o 20 20 00 00 20 20 c 63 l 6C 0F i 69 u 75 1C f 66 g 67 01 0F l 6C 63 c 1C u 75 69 i 01 g 67 66 f r 72 a 61 13 13 a 61 72 r a 61 r 72 13 13 r 72 61 a d 64 20 44 44 20 64 d o 6F d 64 08 08 d 64 6F o 7 Introducción a la criptografía Criptografía clásica • Se basa en: – Algoritmos sencillos. – Claves muy largas. • Sus técnicas son: – Cifrado por sustitución. – Cifrado por trasposición. Adquisición y Tratamiento de Datos 8 Introducción a la criptografía Cifrado por sustitución (I) • Se basa en: – Sustituir cada letra o grupo de letras por otra letra o grupo de letras. • Uno de los más antiguos conocidos. Cifrado de Cesar. – Cambiar la a por la D, la b por la E, etc. – La palabra ataque se convierte en DWDTXH. • Una generalización mínima es cambiar la letra por la situada k posiciones, con lo que k es la clave de cifrado. Adquisición y Tratamiento de Datos 9 Introducción a la criptografía Cifrado por sustitución (II) • Generalización del cifrado por sustitución: – Establecer una correspondencia biunívoca entre las letras del alfabeto y cualquier permutación de las mismas. • Ejemplo: a b c d e f g h i j k l m n o p q r s t u v w x y z Q W E R T Y U I O P A S D F G H J K L Z X C V B N M • Este sistema se llama sustitución monoalfabética. • La clave es la cadena de 26 letras por la que se sustituyen las letras del alfabeto. Adquisición y Tratamiento de Datos 10 Introducción a la criptografía Cifrado por sustitución (III) • Teóricamente es seguro, pues existen 26! = 4x1026 posibilidades. • Puede descifrarse utilizando las propiedades estadísticas de los lenguajes naturales. • En cada lenguaje existen una letras, digramas, trigramas, etc., más frecuentes. • Analizando el texto se pueden buscar esas ocurrencias y encontrar la clave sin necesidad de buscar todas las posibilidades. Adquisición y Tratamiento de Datos 11 Introducción a la criptografía Cifrado por sustitución (IV) • Frecuencia en castellano: Letra e s u p Frecuencia 16.78 7.88 4.80 2.76 Digrama de en no es Trigrama que las una han Letra a n i m Frecuencia 778 302 74 47 Frecuencia 289 114 78 19 Frecuencia 11.96 7.01 4.15 2.12 Digrama la se su Frecuencia 460 119 64 Trigrama los por mas Adquisición y Tratamiento de Datos Letra o d t Frecuencia 8.69 6.87 3.31 Digrama el un al Frecuencia 196 110 36 Letra Frecuencia l 8.37 r 4.94 c 2.92 Frecuencia 339 98 63 Trigrama del con sus Frecuencia 156 82 27 12 Introducción a la criptografía Cifrado por sustitución (V) • Texto a descifrar: Q DTRORQ JXT SGL QHXFZTL RT ZTGKOQ, TFXFEOQRGL RT HKQEZOEQL, TZE., LTQF TSQWGKQRGL, LT EGSGEQKQF TF TS EGKKTLHGFROTFZT QHQKZQRG. HQKQ CTK SGL XSZODGL RGEXDTFZGL HXTLZGL TF SQ HQUOFQ COLOZQ TS QHQKZQRG RT QCOLGL. • Frecuencia de aparición de las letras: Letra Q F O X U Frecuencia 11.85 5.21 4.74 2.84 0.47 Letra T R E C W Adquisición y Tratamiento de Datos Frecuencia 10.43 5.21 3.79 1.42 0.47 Letra G Z H D Frecuencia 8.06 5.21 3.79 1.42 Letra L K S J Frecuencia 7.58 4.74 3.79 0.47 13 Introducción a la criptografía Cifrado por sustitución (VI) • Texto cifrado. Q DTRORQ JXT SGL QHXFZTL RT ZTGKOQ, TFXFEOQRGL RT HKQEZOEQL, TZE., LTQF TSQWGKQRGL, LT EGSGEQKQF TF TS EGKKTLHGFROTFZT QHQKZQRG. HQKQ CTK SGL XSZODGL RGEXDTFZGL HXTLZGL TF SQ HQUOFQ COLOZQ TS QHQKZQRG RT QCOLGL. • Analizando frecuencias y digramas T es e y Q es a. a DeRORa JXe SGL aHXFZeL Re ZeGKOa, eFXFEOaRGL Re HKaEZOEaL, eZE., LeaF eSaWGKaRGL, Le EGSGEaKaF eF eS EGKKeLHGFROeFZe aHaKZaRG. HaKa CeK SGL XSZODGL RGEXDeFZGL HXeLZGL eF Sa HaUOFa COLOZa eS aHaKZaRG Re aCOLGL. • Analizando el digrama Re con de, R es d. a DedOda JXe SGL aHXFZeL de ZeGKOa, eFXFEOadGL de HKaEZOEaL, eZE., LeaF eSaWGKadGL, Le EGSGEaKaF eF eS EGKKeLHGFdOeFZe aHaKZadG. HaKa CeK SGL XSZODGL dGEXDeFZGL HXeLZGL eF Sa HaUOFa COLOZa eS aHaKZadG de aCOLGL. • Analizando el trigrama JXe con que, J es q y X es u. a DedOda que SGL aHuFZeL de ZeGKOa, eFuFEOadGL de HKaEZOEaL, eZE., LeaF eSaWGKadGL, Le EGSGEaKaF eF eS EGKKeLHGFdOeFZe aHaKZadG. HaKa CeK SGL uSZODGL dGEuDeFZGL HueLZGL eF Sa HaUOFa COLOZa eS aHaKZadG de aCOLGL. Adquisición y Tratamiento de Datos 14 Introducción a la criptografía Cifrado por sustitución (VII) • Analizando el trigrama SGL con los, S es l, G es o y L es s. a DedOda que los aHuFZes de ZeoKOa, eFuFEOados de HKaEZOEas, eZE., seaF elaWoKados, se EoloEaKaF eF el EoKKesHoFdOeFZe aHaKZado. HaKa CeK los ulZODos doEuDeFZos HuesZos eF la HaUOFa COsOZa el aHaKZado de aCOsos. • Analizando el digrama eF con en, F es n. a DedOda que los aHunZes de ZeoKOa, enunEOados de HKaEZOEas, eZE., sean elaWoKados, se EoloEaKan en el EoKKesHondOenZe aHaKZado. HaKa CeK los ulZODos doEuDenZos HuesZos en la HaUOna COsOZa el aHaKZado de aCOsos. • Con el texto legible, Z es t, O es i, H es p, E es c y K es r. a Dedida que los apuntes de teoria, enunciados de practicas, etc., sean elaWorados, se colocaran en el correspondiente apartado. para Cer los ultiDos docuDentos puestos en la paUina Cisita el apartado de aCisos. • Analizando las palabras reconocibles D es m, etc. a medida que los apuntes de teoria, enunciados de practicas, etc., sean elaborados, se colocaran en el correspondiente apartado. para ver los ultimos documentos puestos en la pagina visita el apartado de avisos. Adquisición y Tratamiento de Datos 15 Introducción a la criptografía Cifrado por trasposición (I) • Se basa en: – Reordenar las letras del texto en función de una clave. – Un ejemplo es la trasposición columnar: • Una clave indica el orden en que se alteran las columnas del texto. • Ejemplo: en junio tenemos examen de atd • Utilizando como clave la palabra peso: p 3 e n e o a d d e 1 n i n s m e x s 4 j o e e e a x o 2 u t m x n t x • Obtenemos el texto cifrado: NINSMEXUTMXNTXENEOADDJOEEEAX Adquisición y Tratamiento de Datos 16 Introducción a la criptografía Cifrado por trasposición (II) • Para descifrarlo: – Se comprueba que la frecuencia de las letras es la adecuada al idioma. – Se intenta obtener el número de columnas existentes: • Adivinar una posible palabra existente en el texto y buscar su aparición: • JUNIO: – 2 columnas: JNO y UI. – 3 columnas: JI. – 4 columnas: JO. • Encontramos JO: Cuatro columnas. Adquisición y Tratamiento de Datos 17 Introducción a la criptografía Cifrado por trasposición (III) N I N S M E X U T M X N T X E N E O A D D J O E E E A X • Reordenar las columnas: – Examinando todos los pares de columnas. – Buscando la frecuencia de aparición de digramas, trigramas, etc. N I N S M E X Adquisición y Tratamiento de Datos E N E O A D D J O E E E A X U T M X N T X 18 Introducción a la criptografía Cifrado por trasposición (IV) N I N S M E X E N E O A D D Adquisición y Tratamiento de Datos J O E E E A X U T M X N T X E N E O A D X J O E E E A X U T M X N T D N I N S M E X E N E O A D D N I N S M E X J O E E E A X U T M X N T X 19 Introducción a la criptografía Criptografía moderna (I) • Se basa en: – Algoritmos complicados. – Claves cortas. • Utiliza dos dispositivos de bloques básicos: – Cajas P. – Cajas S. Caja P Cifrado de producto Caja S 3a8 Adquisición y Tratamiento de Datos 8a3 S1 S5 S2 S6 P1 P2 P3 S3 S7 S4 S8 20 Introducción a la criptografía Criptografía moderna (II) • Se divide en: – Clave privada: • La clave de cifrado y descifrado es la misma (o se deriva una de otra). • Debe mantenerse en secreto. – Clave pública. • La clave de cifrado y descifrado son distintas. • Puede hacerse pública la clave de cifrado mientras se mantenga en secreto la clave de descifrado. Adquisición y Tratamiento de Datos 21 Introducción a la criptografía Cifrado DES (I) • Fue desarrollado a principios de los 70. • Se basa en el algoritmo Lucifer de IBM de 112 bits de clave. • Utiliza una clave de 56 bits. • Se desarrollo para poder ser implementado en un circuito electrónico de los años 70. • El texto normal se cifra en bloques de 64 bits, utilizando los 56 bits de clave dando un texto cifrado de 64 bits. Adquisición y Tratamiento de Datos 22 Introducción a la criptografía Cifrado DES (II) 64 bits de texto normal Li-1 Ri-1 Transposición inicial Iteración 1 Clave de 56 bits. Li-1 op f(Ri-1,Ki) Iteración 2 Iteración 16 Intercambio de 32 bits Transposición inversa 64 bits de texto cifrado Adquisición y Tratamiento de Datos 32 bits Li 32 bits Ri 23 Introducción a la criptografía Cifrado DES triple (I) • La velocidad de los circuitos electrónicos actuales: – Permite descifrar el algoritmo DES probando las claves. • Los ordenadores actuales: – Pueden descifrar el algoritmo en un tiempo razonable. • El algoritmo DES no es seguro. Adquisición y Tratamiento de Datos 24 Introducción a la criptografía Cifrado DES triple (II) • Solución: Cifrar 3 veces con DES. P K1 K2 K1 E D E C C K1 K2 K1 D E D P • Se utilizan dos claves de 56 bits. • Se utiliza EDE en lugar de EEE porque: – Da igual utilizar la función en cifrado o descifrado, la seguridad es la misma. – Permite utilizar dos claves K1 y K2, y haciendo K1=K2 tenemos el algoritmo DES. Adquisición y Tratamiento de Datos 25 Introducción a la criptografía Cifrado IDEA (I) • Utiliza una clave de 128 bits. – La clave genera 52 subclaves de 16 bits. • 6 para cada una de las 8 iteraciones. • 4 para la transformación final. • Cifra en bloques de 64 bits como DES. • Utiliza aritmética de 16 bits sin signo. – Fácilmente implementable en computadores. Adquisición y Tratamiento de Datos 26 Introducción a la criptografía Cifrado IDEA (II) Cuatro bloques de entrada de 16 bits 64 bits de texto normal K1 X K2 + K3 + # # X + + X K4 X Iteración 1 K5 Iteración 2 Iteración 7 # # K6 # # Iteración 8 Cuatro bloques de salida de 16 bits Transformación + Suma módulo 216 de 16 bits X Multiplicación módulo 216+1 de 16 bits # OR EXCLUSIVO de 16 bits 64 bits de texto cifrado Adquisición y Tratamiento de Datos 27 Introducción a la criptografía Cifrado AES (I) • En 1997 se propuso el desarrollo de un nuevo algoritmo de cifrado: AES. • AES es: – Público. – Utiliza criptografía de clave simétrica con bloques de 128 bits. – Permite claves de 128, 192 y 256 bits. – Puede ser implementado por software o hardware. Adquisición y Tratamiento de Datos 28 Introducción a la criptografía Cifrado AES (II) • AES opera en matrices de datos de 4x4 realizando: – Una sustitución no lineal de cada byte de la matriz por otro byte de acuerdo a una tabla. – Una transposición donde las filas son rotadas. – Un mezclado de columnas con otras mediante una transformación lineal. – Una combinación del resultado con la clave. • AES utiliza: – – – – 10 rondas para claves de 128 bits. 12 rondas para claves de 192 bits. 14 rondas para claves de 256 bits. Una ronda final donde el mezclado de columnas se sustituye por otra combinación del resultado con la clave. Adquisición y Tratamiento de Datos 29 Introducción a la criptografía Cifrado RSA (I) • En 1976, investigadores de Stanford propusieron una clase nueva de criptosistema: – Las claves de cifrado y descifrado eran diferentes. – El algoritmo de cifrado, con clave E y el de descifrado, con clave D, debían cumplir: • D(E(P))=P • Es difícil deducir D de E. • E no puede descifrarse mediante prueba. Adquisición y Tratamiento de Datos 30 Introducción a la criptografía Cifrado RSA (II) • El funcionamiento es el siguiente: – Tenemos dos algoritmos E y D que cumplen lo anterior. – A escoge una clave de cifrado EA y de descifrado DA. – B escoge otra clave de cifrado EB y de descifrado DB. – E, D, EA y EB son públicos. • A quiere enviar un mensaje P a B: – Con EB calcula EB(P) y lo envía a B. – B lo recibe y calcula DB(EB(P)) y obtiene P. – Nadie más que B puede descifrar el mensaje. • Un algoritmo que cumple la propiedad propuesta es el RSA. Adquisición y Tratamiento de Datos 31 Introducción a la criptografía Cifrado RSA (III) • El RSA se basa en: – Escoger dos números primos grandes p y q mayores de 10100. – Calcular n=p*q y z=(p-1)*(q-1). – Seleccionar un primo d respecto a z (un número sin factores comunes con z). – Encontrar e tal que (e*d)%z = 1. – El texto se cifra en bloques de k bits de forma que 0<2k<n. – Para cifrar calculamos C=Pe%n. – Para descifrar calculamos P=Cd%n. Adquisición y Tratamiento de Datos 32 Introducción a la criptografía Cifrado RSA (IV) • La parte pública de la clave es (e,n). • La parte privada de la clave es (d,n). • La dificultad consiste en factorizar números grandes como n. – Si se factoriza n se puede obtener z, y con z y e se obtiene d mediante el algoritmo de Euclides. – En la actualidad, suponiendo un tiempo de instrucción de 1 nanosegundo, se requieren 4 millones de años para factorizar un número de 200 dígitos. Adquisición y Tratamiento de Datos 33 Introducción a la criptografía Cifrado RSA (V) • Ejemplo: – Tomemos p=3 y q=11, entonces n=33 y z=20. – Tomemos d=7, entonces (7*e)%20=1 -> e=3. Texto original (P) Cifrado (C) Texto descifrado (P) 3 3 Carácter Valor P P (mod 33) C7 C7(mod 33) Carácter e 5 125 26 8031810176 5 e n 14 2744 5 78125 14 n r 19 6859 28 13492928512 19 r i 9 729 3 2187 9 i q 18 5832 24 4586471424 18 q u 22 10648 22 2494357888 22 u e 5 125 26 8031810176 5 e • Ejemplo de sustitución monoalfabética pues p y q son muy pequeños. • Si p y q son del orden de 10100, el bloque de cifrado es de 664 bits. Adquisición y Tratamiento de Datos 34 Introducción a la criptografía Validación de identificación • Permite que dos personas Alfa y Beta comprueben que el otro es quién dice ser. • El procedimiento general es: – Alfa y Beta intercambian mensajes: • Entre ellos. • Con un centro de distribución de claves. – Al final del proceso Alfa esta seguro que habla con Beta y viceversa. – Poseen una clave secreta de cifrado para intercambiar los mensajes. – Un intruso Gamma, no puede interferir el proceso y suplantar a Alfa o Beta o capturar la clave secreta de cifrado. Adquisición y Tratamiento de Datos 35 Introducción a la criptografía Protocolo de autenticación Kerberos • Todo usuario: – Se identifica ante Kerberos. – Acuerda una clave criptográfica K propia para él. 1 Na, ID(A), ID(B) Kerberos 2 Ka(K,L,Na,ID(B)) Kb(K,L,ID(A)) A 3 4 Kb(K,L,ID(A)) K(ID(A),Ta) B K(Ta+1) Adquisición y Tratamiento de Datos 36 Introducción a la criptografía Compendios de mensajes • Permiten comprobar la validez de un mensaje. • La idea general es utilizar una función de dispersión unidireccional que cumpla: – Dado P es fácil calcular MD(P). – Dado MD(P) no es posible obtener P. – No es posible encontrar P<>P’ tal que MD(P)=MD(P’). • Por ello la dispersión debe ser como mínimo de 128 bits. Adquisición y Tratamiento de Datos 37 Introducción a la criptografía Compendio MD5 • Es la quinta función de una serie de funciones de dispersión diseñadas por Ron Rivest. • El algoritmo es: – Se coge el mensaje original P y se rellena hasta que su tamaño sea 448 módulo 512. – Se añade la longitud del mensaje como un entero de 64 bits, con lo que la longitud final es múltiplo de 512 bits. – Se inicializa un buffer de 128 bits con un valor fijo. – Se toma el mensaje en bloques de 512 bits y se mezclan con el buffer actual de 128 bits junto con una tabla construida a partir de la función seno. – Cuando se acaban los bloques el valor del buffer es el MD5 del mensaje original, MD5(P). Adquisición y Tratamiento de Datos 38 Introducción a la criptografía Compendio SHA • Fue desarrollado por la NSA. • El algoritmo es: – Se coge el mensaje original P y se rellena hasta que su tamaño sea 448 módulo 512. – Se añade la longitud del mensaje como un entero de 64 bits, con lo que la longitud final es múltiplo de 512 bits. – Se inicializa un buffer de 160 bits con un valor fijo. – Se toma el mensaje en bloques de 512 bits y se mezclan con el buffer actual de 160 bits: • Utiliza 80 rondas para cada bloque de entrada. • Cada 20 rondas modifica las funciones de mezcla del bloque y del buffer. – Cuando se acaban los bloques el valor del buffer es el SHA del mensaje original, SHA(P). Adquisición y Tratamiento de Datos 39 Introducción a la criptografía Firma digital • Una firma digital debe cumplir: – El receptor pueda verificar la identidad del emisor. • Una computadora de un banco necesita saber que la otra computadora es quién dice ser. – El emisor no pueda repudiar el mensaje enviado. • Si se compra una tonelada de oro y cae el precio, el cliente puede decir que el no mando comprar la tonelada de oro. – El receptor no pueda confeccionar el mensaje. • Si se compra una tonelada de oro y sube el precio, el banco puede decir que el cliente solo pidió un kilo de oro. Adquisición y Tratamiento de Datos 40 Introducción a la criptografía Firma de clave secreta • Todo usuario: – Se identifica ante la autoridad X. – Acuerda una clave secreta K propia para él. A, KA(B,RA,t,P) A X B KB(A,RA,t,P,KX(A,t,P)) • El problema es que X debe leer todos los mensajes. Adquisición y Tratamiento de Datos 41 Introducción a la criptografía Firma de clave pública • Un usuario utiliza, por ejemplo, RSA y genera una clave pública y una privada. Computadora de A P Clave privada de A, DA Línea de transmisión Clave pública de B, EB DA(P) Computadora de B Clave privada de B, DB EB(DA(P)) Clave pública de A, EA P DA(P) • Problemas: – A puede decir que le han robado su clave privada DA. – A puede cambiar las claves y entonces lo que ya ha firmado no es valido. – Se requiere una autoridad que controle estos casos. Adquisición y Tratamiento de Datos 42