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.
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.
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
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.
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 B A XOR B 0 0 0 0 1 1 1 0 1 1 1 0
Rellenos de una sola vez (II)
• El texto resultante no puede descifrarse por:
– Cada texto candidato posible a haber sido cifradotiene 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.
Rellenos de una sola vez (III)
• Ejemplo:
Codificación cifrada (hex) 31 0B 58 01 01 00 0F 1C 01 13 13 44 08
Texto de cifrado E n u n l u g a r d Codificación ASCII (hex) 45 6E 20 75 6E 20 6C 75 67 61 72 20 64 Codificación ASCII (hex) 74 65 78 74 6F 20 63 69 66 72 61 64 6F Texto original t e x t o c i f r a d o
Texto original t e x t o c i f r a d o Codificación ASCII (hex) 74 65 78 74 6F 20 63 69 66 72 61 64 6F
Texto de cifrado E n u n l u g a r d
Codificación ASCII (hex) 45 6E 20 75 6E 20 6C 75 67 61 72 20 64
Criptografía clásica
• Se basa en:
– Algoritmos sencillos. – Claves muy largas.
• Sus técnicas son:
– Cifrado por sustitución. – Cifrado por trasposición.
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.
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.
Cifrado por sustitución (III)
• Teóricamente es seguro, pues existen 26! =
4x10
26posibilidades.
• 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.
Cifrado por sustitución (IV)
• Frecuencia en castellano:
Letra Frecuencia Letra Frecuencia Letra Frecuencia Letra Frecuencia
e 16.78 a 11.96 o 8.69 l 8.37
s 7.88 n 7.01 d 6.87 r 4.94
u 4.80 i 4.15 t 3.31 c 2.92
p 2.76 m 2.12
Digrama Frecuencia Digrama Frecuencia Digrama Frecuencia
de 778 la 460 el 339
en 302 se 119 un 98
no 74 su 64 al 63
es 47
Trigrama Frecuencia Trigrama Frecuencia Trigrama Frecuencia
que 289 los 196 del 156
las 114 por 110 con 82
una 78 mas 36 sus 27
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 Frecuencia Letra Frecuencia Letra Frecuencia Letra Frecuencia
Q 11.85 T 10.43 G 8.06 L 7.58
F 5.21 R 5.21 Z 5.21 K 4.74
O 4.74 E 3.79 H 3.79 S 3.79
X 2.84 C 1.42 D 1.42 J 0.47
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.
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.
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 e s o 3 1 4 2 e n j u n i o t e n e m o s e x a m e n d e a t d x x x • Obtenemos el texto cifrado:
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.
Cifrado por trasposición (III)
N U E J I T N O N M E E S X O E M N A E E T D A X X D X • Reordenar las columnas:– Examinando todos los pares de columnas.
– Buscando la frecuencia de aparición de digramas, trigramas, etc.
N E J U I N O T N E E M S O E X M A E N E D A T X D X X
Cifrado por trasposición (IV)
N E J U E J U N E N J U I N O T N O T I N I O T N E E M E E M N E N E M S O E X O E X S O S E X M A E N A E N M A M E N E D A T D A T E D E A T X D X X X X D X D X X XCriptografía moderna (I)
• Se basa en:
– Algoritmos complicados. – Claves cortas.
• Utiliza dos dispositivos de bloques básicos:
– Cajas P. – Cajas S. Caja P Caja S 3 a 8 8 a 3 Cifrado de producto P1 P2 P3 S1 S2 S3 S4 S5 S6 S7 S8Criptografí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.
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.
Cifrado DES (II)
Transposición inicial Iteración 1 Iteración 2 Iteración 16 Intercambio de 32 bits Transposición inversa 64 bits de texto normalClave de 56 bits.
Li-1 Ri-1
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.
Cifrado DES triple (II)
• Solución: Cifrar 3 veces con DES.
E D E
K1 K2 K1
P C D E D
K1 K2 K1
C 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
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.
Cifrado IDEA (II)
Iteración 1 Iteración 2 Iteración 7 Iteración 8 Transformación 64 bits de texto normal64 bits de texto cifrado
X # # # # X + + # # X + + X K1 K2 K3 K4 K5 K6
Cuatro bloques de entrada de 16 bits
Cuatro bloques de salida de 16 bits Suma módulo 216 de 16 bits
Multiplicación módulo 216+1 de 16 bits
+ X
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.
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.
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.
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.
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.
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.
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)
Carácter Valor P3 P3(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.
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.
Protocolo de autenticación Kerberos
• Todo usuario:
– Se identifica ante Kerberos.
– Acuerda una clave criptográfica K propia para él.
A
B Na, ID(A), ID(B)
Kb(K,L,ID(A)) K(ID(A),Ta) 1 2 3 4 Ka(K,L,Na,ID(B)) Kb(K,L,ID(A)) K(Ta+ )1 Kerberos
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’).
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).
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.
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
Firma de clave secreta
• Todo usuario:
– Se identifica ante la autoridad X.
– Acuerda una clave secreta K propia para él.
A
A, KA(B,RA,t,P)
KB(A,RA,t,P,KX(A,t,P))
B X
• El problema es que X debe leer todos los
mensajes.
Firma de clave pública
• Un usuario utiliza, por ejemplo, RSA y genera una clave pública y una privada.
• 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.
Clave privada de A, DA Clave pública de B, EB Clave privada de B, DB Clave pública de A, EA
Computadora de A Línea de transmisión Computadora de B
P P
EB(DA(P))