5º curso de ingeniería informática escuela técnica...

Post on 19-Mar-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

00. Introducción

Criptografía5º Curso de Ingeniería Informática

Escuela Técnica Superior de Ingeniería InformáticaUniversidad de Sevilla

Necesidad de la seguridad• Siempre hay oponentes.• Un remedio seguro: no tener secretos. ¿Y

si no es posible?.• Existencia de datos sensibles. • Necesidad de la seguridad.

Conceptos de seguridad

o Ataques de seguridad– Acciones que comprometen la seguridad de la

información.

o Mecanismos de seguridad– Procedimientos diseñados para detectar o prevenir

un ataque, o para recuperar la información tras un ataque.

o Servicios de seguridad– Servicios que hacen uso de varios mecanismos de

seguridad para proteger la información.

Servicios de seguridad (I)

o Privacidad– un adversario no debe poder acceder al contenido de la

información.

o Integridad– el usuario de la información debe poder verificar que ésta no ha

sido alterada por agentes no autorizados.

o Autenticación– el usuario de la información debe convencerse a sí mismo de

que ésta ha sido originada por agentes autorizados.

o Firma– el usuario de la información debe poder convencer a otros de

que ésta ha sido originada por agentes autorizados.

Servicios de seguridad (II)

o No repudio– El autor de la información no puede negar que él la

ha originado. El receptor de una información no puede negar que lo ha recibido.

o Control de acceso– El acceso a la información está controlado por el

sistema, que sólo lo permita a agentes autorizados.

o Disponibilidad– La información está disponible para los agentes

autorizados cuando éstos la solicitan.

Ataques

• Ataques pasivos: el oponente intenta sólo obtener la información sin intención de modificarla.• Difíciles de detectar.• Mecanismos de prevención, más que de detección.

• Ataques activos: el oponente no sólo pretende obtener la información sino también modificarla.• Difíciles de prevenir.• Fáciles de detectar.• Mecanismos de detección y recuperación.

Ataques pasivos (I)

• Obtención de la información:

Ataques pasivos (II)

• Análisis del tráfico:

Ataques activos (I)

• Suplantación de identidad:

Ataques activos (II)

• Repetición:

Ataques activos (III)

• Modificación:

Ataques activos (IV)

• Interrupción del servicio:

Servicios de seguridad (I)• Autenticación:

– Autenticación de entidades origen/destino.Intenta asegurar que un agente no está realizando

una suplantación o una repetición no autorizada de una conexión anterior.

– Autenticación del origen de los datos.Corrobora la fuente de una unidad de datos. Este

tipo de servicio admite aplicaciones como el correo electrónico, donde no hay interacciones previas entre los agentes que se comunican.

Servicios de seguridad (II)• Control de acceso:

Capacidad de controlar el acceso a los sistemas y a la información, permitiéndolo sólo a los agentes autorizados.

• Confidencialidad:Protección de la información ante ataques

pasivos. • Integridad:

Protección de la información ante ataques activos. Debe proteger utilidades de recuperación.

Servicios de seguridad (III)• No repudio:

Capacidad de evitar que el emisor o el receptor de la información nieguen sus respectivos papeles en la comunicación.

• Disponibilidad:Capacidad que tiene un sistema de estar

accesible y utilizable a petición de un agente autorizado.

Servicios y ataques• Autenticación de las entidades origen/destino

– Suplantación.• Autenticación del origen de los datos

– Suplantación.• Control de acceso

– Suplantación.• Confidencialidad

– Obtención del contenido del mensaje.• Confidencialidad del flujo de tráfico

– Análisis del tráfico.• Integridad de los datos

– Repetición.– Modificación de mensajes.

• No repudio• Disponibilidad

– Interrupción del servicio.

Mecanismos de seguridad (I)EspecíficosPueden ser incorporados en alguna capa de protocolo.

– Cifrado.– Firma digital.– Control de acceso.– Integridad de los datos.– Intercambio de autentificación.– Relleno del tráfico.– Control de enrutamiento.– Notarización.

Mecanismos de seguridad (II)GeneralesNo están incorporados en ninguna capa de protocolo.

– Funcionalidad fiable.– Etiquetas de seguridad.– Detección de acciones.– Informes para auditorías de seguridad.– Recuperación de la seguridad.

Criptografía• Herramienta básica en todos los servicios de

seguridad.• Seguridad de las comunicaciones en presencia

de adversarios.• Estudio de las técnicas matemáticas

relacionadas con la seguridad de la información, confidencialidad, integridad de datos, autentificación y reconocimiento del origen de los datos.

Terminología• Correcto:

– Cifrar, descifrar, codificar, descodificar…

• Incorrecto:– Encriptar, desencriptar, criptografiar,

decodificar…

• Codificar y cifrar.– Codificar

• Su objetivo es representar la información.

– Cifrar• Su objetivo es proteger la información.

Elementos de un criptosistema

• Texto claroLa información antes de cifrar.

• Texto cifradoLa información después de cifrar.

• Algoritmo de cifradoRealiza las transformaciones necesarias en el texto claro para obtener el texto cifrado.

• Algoritmo de descifradoRealiza las transformaciones necesarias en el texto cifrado paraobtener el texto claro.

• ClavesConjunto de datos que utilizan los algoritmos de cifrado y descifrado.

Cifrar y descifrar

Criptoanálisis• Descifrado:

Recuperación del texto en claro a partir del texto cifrado por parte de un agente autorizado.

• Criptoanálisis:Recuperación del texto en claro y/o las claves por

parte de un agente no autorizado.

Tipos de ataques (I)

Información del criptoanalistaTipo

•Algoritmo de cifrado.•Texto cifrado a romper.•Texto en claro elegido por el criptoanalista y el correspondiente texto cifrado.

3. Texto cifrado elegido

•Algoritmo de cifrado.•Texto cifrado a romper.•Una o más parejas de texto claro/texto cifrado.

2. Texto claro conocido

•Algoritmo de cifrado.•Texto cifrado a romper.

1. Sólo texto cifrado

Tipos de ataques (II)

Información del criptoanalistaTipo

•Algoritmo de cifrado.•Texto cifrado a romper.•El criptoanalista tiene acceso a la maquinaria de cifrado y puede generar todas las parejas que desee de texto claro/texto cifrado con la misma clave que el que quiere romper.

5. Texto elegido

•Algoritmo de cifrado.•Texto cifrado a romper.•Texto cifrado elegido por el criptoanalista y el correspondiente texto claro.

4. Texto cifrado elegido

Seguridad computacionalUn sistema se considera computacionalmente

seguro si cumple alguna de las condiciones siguientes:– El coste del criptoanálisis excede el valor de la

información obtenida.– El tiempo necesario para el criptoanálisis excede el

tiempo de vida útil de la información.

Pruebas de seguridadPara que podamos decidir si un criptosistema es

seguro debemos someterlo a suficientespruebas. En estas pruebas debemos suponer que el oponente:– Conoce el criptosistema utilizado.– Conoce la naturaleza del texto en claro (sabe qué

busca).– Si encuentra el texto en claro, sabe que lo ha

encontrado.– Tiene capacidad suficiente.– Tiene suficientes recursos.

01. Fundamentos

Criptografía5º Curso de Ingeniería Informática

Escuela Técnica Superior de Ingeniería InformáticaUniversidad de Sevilla

� Alfabeto: cada letra se representa por un número de 0 a 27.

� Desplazamiento: se suman cíclicamente los correspondientes valores

Desplazamiento (I)

��������������������������

ZYXWVUTSRQPOÑN

��������������������������

MLKJIHGFEDCBA�

��������

B=V+G

Primera referencia documentada: Julio César (Siglo I AC)

Desplazamiento (II)� Texto claro:

Se cifra en bloques de � carácter.� Texto cifrado:

El resultado de cifrar cada carácter es otro carácter.

� Clave:Un entero entre � y �� (un carácter no blanco).

� Cifrado:Cada carácter se desplaza posiciones:

� ����

� Descifrado:Cada carácter cifrado se desplaza � posiciones:

� ����

� Ejemplo:

� Seguridad:o Espacio de claves muy pequeño: un ataque de fuerza

bruta es fácil de realizar.o La longitud del texto, la frecuencia de los caracteres y

sus repeticiones en el texto claro se conservan en el texto cifrado.

o Basta conocer un carácter y su cifrado para obtener la clave.

Desplazamiento (III)

dwdtxhcdñcdodphfhuATAQUE AL AMANECER��� �

Afín (I)� Texto claro:

Se cifra en bloques de � carácter.

� Texto cifrado:El resultado de cifrar cada carácter es otro carácter.

� Clave:Dos enteros ���� �� entre � y ���, con a primo con n.(n = número de caracteres en el alfabeto.)

� Transformación de cifrado:� �� � ���

� Transformación de descifrado:� ���� ���� ��

(��� designa el inverso de � en �� )

� Ejemplo:� Alfabeto de �� caracteres

� Clave: � � ��, � � �

� Seguridad:� Espacio de claves muy pequeño: un ataque de fuerza bruta es fácil

de realizar.� La longitud del texto, la frecuencia de los caracteres y sus

repeticiones en el texto claro se conservan en el texto cifrado.� Conociendo dos caracteres y sus cifrados es muy posible obtener

la clave.

Afín (II)

q!qpmncq,cqfqtn-n3ATAQUE AL AMANECER������

�abcdefghijklmnñopqrstuvwxyzç0123456789@(){}<>=+-*/%&ºª,;.:¿?¡!'

Sustitución (I)

� Texto claro:

Se cifra en bloques de 1 carácter.� Texto cifrado:

El resultado de cifrar cada carácter es otro carácter.� Clave:

Una permutación αααα del alfabeto.

� Cifrado: � � αααα ���� Descifrado: � � αααα ������

En uso hasta tiempos modernos.

Todos los criptosistemas que cifran en bloques de 1 carácter siguiendo una regla fija son un caso particular de éste.

Sustitución (II)� Seguridad:

� El espacio de claves es muy grande, por lo que no es viable un ataque de fuerza bruta.

� La longitud del texto, la frecuencia de los caracteres y sus repeticiones en el texto claro se conservan en el texto cifrado.

� Como la clave es difícil de recordar, a menudo se utilizan reglas mnemotécnicas, con lo que se disminuye el tamaño del espacio de claves y se vuelve posible un ataque de fuerza bruta.

Sustitución (III)� Criptoanálisis:

� La longitud del texto, la frecuencia de los caracteres y sus repeticiones en el texto claro se conservan en el texto cifrado.

� Si tenemos suficiente texto cifrado es posible romper el criptosistema mediante un ataque de texto cifrado conocido.

� Técnica basada en el análisis de las frecuencias de los caracteres en el texto cifrado.

� Primera referencia escrita de este criptoanálisis debida a Al-Kindi (Iraq 801-873).

Sustitución (IV)• Un acertijo atribuido

(en broma) a Leonardo da Vinci.

• Primera idea de secreto perfecto. A B

C D E F B DG D E B

F D G C D AB F B

D H D AI J J K

AB CDEFBD GDEB FDGCDA BFB DH DA

IJJK

Sustitución (V)• Plano del tesoro del capitán Kidd (de Edgar Allan Poe

“El escarabajo de oro”):

53±±+305))6*;4826)4±.)4±);8o6*;48+8æ6o))85;1±(;:±*8+83(88)5*+;46(;88*96*?;8)*±(;485);5*+2:*±(;4956*2(5*--4)8æ8*;4069285);)6+8)4±±;1(±9;48081;8:8±1;48+85;4)485+528806*81(±9;48;(88;4(±?34;48)4±161;:188;±?;

Transposición (I)• En los cifrados por transposición se reordena el texto en claro

(nótese que en las sustituciones se reordena el alfabeto).• Los caracteres del texto cifrado son los mismos que en el texto en

claro.• Ejemplo 1. Se escribe en filas y se lee por columnas:

uncifradousandotransposicinnsimpleconnuevecolumnasxxxx

uunnn unsss nmcapiunin omeaf dspvsroile xatce cxdricoxoa oolx

Transposición (II)• Ejemplo 2. La escítala:

Transposición (III)• Ejemplo 3. Camino:

LAOSNAOVDRCNNAVNTUMCEOLOITCESENIONPOMCELCIECNNIOSUAS

NTESA USOIN NCEIC LCALA OSNAO VDRCN ICMOP NOINE SEVNT UMCEO LO

(Cuatro carriles y camino espiral en sentido contrario a las agujas del reloj, empezando por la esquina inferior derecha)

• Ejemplo 4. Transposición de columnas:– Igual que el primero, pero el orden de las letras de una palabra

clave determina el orden de las columnas.

Transposición (IV)• Criptoanálisis:

– Detección de anagramas.

– Análisis de frecuencias.

• Combinado con sustitución se vuelve mucho más fuerte:– La sustitución rompe los anagramas.

– La transposición rompe la aparición de palabras reconocibles del texto en claro.

���������������� ����� Cantidad de información de un mensaje:

��������������� ����������������������������������������������������������������������������������� ��������������������������������������������

� Secreto de un criptosistema:������������������������ ����������������������������������

� Secreto perfecto:������������� ������������������������������������������

�����������������������������������������������������

� Difusión:����������������������������������������� �������������������

��������������� ���������������� ������������������������!������������������������

� Confusión:�������������������������������������� ��������"��������

������������#����������������������� ������������������������������������������������������!��������������#�����������������

Vigenère (I)

� Cifrado polialfabético.� Clave:

Una cadena � de � caracteres. � Texto claro:

Se cifra en bloques de � caracteres. � Texto cifrado:

El resultado de cifrar cada bloque es otro bloque del mismo tamaño.

Publicado en 1585. En uso hasta tiempos modernos.

Vigenère (II)� Cifrado:

El bloque de texto en claro �� � �� produce el bloque�� � �� haciendo

�� � �� � ����

� Descifrado:

El bloque de texto cifrado �� � �� se descifra en el texto en claro �� � �� mediante

�� � �� � ����

Vigenère (III)� Seguridad:

� Considerado indescifrable hasta 1861 (aunque se usó mucho tiempo después ����).

� Espacio de claves muy grande. No es viable un ataque de fuerza bruta.

� Resistente al análisis de

frecuencias.� Muy débil ante un ataque de texto

cifrado conocido. Basta conocer un fragmento del texto claro correspondiente.

Vigenère (IV)� Criptoanálisis

� Tres etapas:� Determinación de la longitud de la clave.� Reducción a un cifrado por desplazamiento.� Determinación de la clave.

� Herramientas� Test de Kasiski.� Índice de coincidencia.� Índice de coincidencia de dos textos.

Test de Kasiski� La incidencia de las coincidencias

� Segmentos repetidos de texto claro cifrados con la misma parte de la clave dan lugar a segmentos iguales de texto cifrado.

� Gran número de estas coincidencias ocurrirán entre segmentos iguales separados una distancia múltiplo de la longitud de la clave.

� Kasiski propone buscar coincidencias de grupos de � o � caracteres para minimizar las colisiones debidas al azar.

� Método:1. Obtenemos la lista de las distancias entre bloques coincidentes.

2. La mayoría de esos números son múltiplos de cierto número �.3. Si el texto es suficientemente largo debe haber pocas distancias no

múltiplos de �: las descartamos atribuyéndolas al azar.4. El máximo común divisor de los números resultantes es la longitud de

la clave.

Índice de coincidencia (I)� Índice de coincidencia de un texto

Alfabeto de � caracteres: ����� ���� , texto de longitud �.

� Si llamamos � al número de veces que aparece en el texto el carácter � , y ! es la probabilidad de que al elegir en el texto un carácter sea � , entonces ! � � / ��y

Probabilidad de que eligiendo al azar dos caracteres del texto, éstos sean el mismo carácter.

Índice de coincidencia (II)� Invariante por sustitución (y en particular,

por desplazamiento).� Texto aleatorio suficientemente grande:

� IC de texto normal en distintos idiomas:

���������������������������������

RusoAlemánItalianoFrancésInglésEspañol

Índice de coincidencia (III)� Índice de coincidencia de dos textos

� Alfabeto de � caracteres: ����� ���� , dos textos de longitudes ��y �"

� Si llamamos � , ! y �" , !" las frecuencias y probabilidades en cada texto, entonces

Probabilidad de que eligiendo al azar dos caracteres, uno en cada texto, éstos sean el mismo carácter.

Índice de coincidencia (IV)

� Si a dos textos se les aplica la misma sustitución, el ICM no varía.

� Si dos textos se desplazan lo mismo, el ICM no varía.

� Si a dos textos se les aplica distinto desplazamiento, el ICM es completamente diferente del de los textos originales.

Criptoanálisis de Vigenère1. Estimamos es IC esperado en el texto en claro.

2. Mediante el test de Kasiski, encontramos #, la longitud de la clave.

3. Dividimos el texto cifrado en � columnas ��������#�� y calculamos el IC de cada una, que debe ser similar al estimado.

4. Para cada columna � con ���������#��, probamos todos los posibles desplazamientos di hasta que el ICM de � " � � �� y de � sea el esperado y sustituimos la columna � con la � "$

5. Ahora tenemos un texto cifrado por un desplazamiento simple. Con un análisis de frecuencias o por fuerza bruta encontramos este desplazamiento �� y desciframos el texto.

6. La clave es entonces ���������# siendo � ���� �� .

XOR simple (I)

� Cifrado polialfabético.� Clave:

Una cadena k de n caracteres. � Texto claro:

Se cifra en bloques de n caracteres. � Texto cifrado:

El resultado de cifrar cada bloque es otro bloque del mismo tamaño.

Variante de Vigenère

XOR simple (II)� Cifrado:

El bloque de texto en claro x1 … xn produce el bloquey1 … yn haciendo

yj = xj ⊕⊕⊕⊕ k[j]

� Descifrado:El bloque de texto cifrado y1 … yn se descifra en el texto en claro x1 … xn mediante

xj = yj ⊕⊕⊕⊕ k[j]

XOR simple (III)� Seguridad:

� Aunque se rompe igual que el de Vigenère, hay quien lo usa incluso en nuestros días. ����

� Espacio de claves muy grande. No es viable un ataque de fuerza bruta.

� Resistente al análisis de frecuencias.� Muy débil ante un ataque de texto cifrado conocido. Basta

conocer un fragmento del texto claro correspondiente.

XOR simple (IV)� Criptoanálisis

� Tres etapas:� Determinación de la longitud de la clave.� Reducción a un cifrado por desplazamiento.� Determinación de la clave.

� Herramientas� Test de Kasiski.� Índice de coincidencia.� Índice de coincidencia de dos textos.

� ¡Igual que el de Vigènere!

���������������

� XOR simple o Vigenère en el que:� La clave se genera aleatoriamente.� La clave es tan larga como el texto en claro.� La clave se usa una sola vez (para cada texto en claro se genera una

clave nueva).

� Tiene secreto perfecto.a1ofkgdygfñuvñjox1p88ç3o1qnykp¡7qmn(ihqnCon dos claves diferentes puede corresponderse con:� LANZAMIENTO DE MISILES A LAS 16:00 HORAS� NO REGAR LAS PLANTAS MIENTRAS SEA DE DIA

� Problemas:� Generación de claves verdaderamente aleatorias.� Distribución de claves.

������������������

• El cifrado en flujo se aplica sobre textos formados por letras combinándolas con un flujo de bits secretos (secuencia cifrante) mediante un operador XOR:

�������������������

• Condiciones para una buena secuencia cifrante:– Período:

La clave deberá ser tanto o más larga que el mensaje. En la práctica se usará una semilla de unos 120 a 250 bits para generar períodos superiores a 1035.

– Distribución de bits:Distribución uniforme de unos y ceros que represente una

secuencia pseudoaleatoria.

– Rachas de dígitos: uno o más bits entre dos bits distintos.

– Función de Autocorrelación Fuera de Fase AC(k): desplazamiento de k bits sobre la misma secuencia S.

��������������������

Ejemplos:• Generador de congruencia lineal:

•Problemas:

� Generadores con registros de desplazamiento

� Realimentados linealmente: LFSR.

� Realimentados no linealmente: NLFSR.

02. Cifrado clásico

Criptografía5º Curso de Ingeniería Informática

Escuela Técnica Superior de Ingeniería InformáticaUniversidad de Sevilla

Vigenère (I)

� Cifrado polialfabético.� Clave:

Una cadena � de � caracteres. � Texto claro:

Se cifra en bloques de � caracteres. � Texto cifrado:

El resultado de cifrar cada bloque es otro bloque del mismo tamaño.

Publicado en 1585. En uso hasta tiempos modernos.

Vigenère (II)� Cifrado:

El bloque de texto en claro �� � �� produce el bloque�� � �� haciendo

�� � �� � ����

� Descifrado:

El bloque de texto cifrado �� � �� se descifra en el texto en claro �� � �� mediante

�� � �� � ����

Vigenère (III)� Seguridad:

� Considerado indescifrable hasta 1861 (aunque se usó mucho tiempo después ����).

� Espacio de claves muy grande. No es viable un ataque de fuerza bruta.

� Resistente al análisis de

frecuencias.� Muy débil ante un ataque de texto

cifrado conocido. Basta conocer un fragmento del texto claro correspondiente.

Vigenère (IV)� Criptoanálisis

� Tres etapas:� Determinación de la longitud de la clave.� Reducción a un cifrado por desplazamiento.� Determinación de la clave.

� Herramientas� Test de Kasiski.� Índice de coincidencia.� Índice de coincidencia de dos textos.

Test de Kasiski� La incidencia de las coincidencias

� Segmentos repetidos de texto claro cifrados con la misma parte de la clave dan lugar a segmentos iguales de texto cifrado.

� Gran número de estas coincidencias ocurrirán entre segmentos iguales separados una distancia múltiplo de la longitud de la clave.

� Kasiski propone buscar coincidencias de grupos de � o � caracteres para minimizar las colisiones debidas al azar.

� Método:1. Obtenemos la lista de las distancias entre bloques coincidentes.

2. La mayoría de esos números son múltiplos de cierto número �.3. Si el texto es suficientemente largo debe haber pocas distancias no

múltiplos de �: las descartamos atribuyéndolas al azar.4. El máximo común divisor de los números resultantes es la longitud de

la clave.

Índice de coincidencia (I)� Índice de coincidencia de un texto

Alfabeto de � caracteres: ����� ���� , texto de longitud �.

� Si llamamos � al número de veces que aparece en el texto el carácter � , y ! es la probabilidad de que al elegir en el texto un carácter sea � , entonces ! � � / ��y

Probabilidad de que eligiendo al azar dos caracteres del texto, éstos sean el mismo carácter.

Índice de coincidencia (II)� Invariante por sustitución (y en particular,

por desplazamiento).� Texto aleatorio suficientemente grande:

� IC de texto normal en distintos idiomas:

���������������������������������

RusoAlemánItalianoFrancésInglésEspañol

Índice de coincidencia (III)� Índice de coincidencia de dos textos

� Alfabeto de � caracteres: ����� ���� , dos textos de longitudes ��y �"

� Si llamamos � , ! y �" , !" las frecuencias y probabilidades en cada texto, entonces

Probabilidad de que eligiendo al azar dos caracteres, uno en cada texto, éstos sean el mismo carácter.

Índice de coincidencia (IV)

� Si a dos textos se les aplica la misma sustitución, el ICM no varía.

� Si dos textos se desplazan lo mismo, el ICM no varía.

� Si a dos textos se les aplica distinto desplazamiento, el ICM es completamente diferente del de los textos originales.

Criptoanálisis de Vigenère1. Estimamos es IC esperado en el texto en claro.

2. Mediante el test de Kasiski, encontramos #, la longitud de la clave.

3. Dividimos el texto cifrado en � columnas ��������#�� y calculamos el IC de cada una, que debe ser similar al estimado.

4. Para cada columna � con ���������#��, probamos todos los posibles desplazamientos di hasta que el ICM de � " � � �� y de � sea el esperado y sustituimos la columna � con la � "$

5. Ahora tenemos un texto cifrado por un desplazamiento simple. Con un análisis de frecuencias o por fuerza bruta encontramos este desplazamiento �� y desciframos el texto.

6. La clave es entonces ���������# siendo � ���� �� .

XOR simple (I)

� Cifrado polialfabético.� Clave:

Una cadena k de n caracteres. � Texto claro:

Se cifra en bloques de n caracteres. � Texto cifrado:

El resultado de cifrar cada bloque es otro bloque del mismo tamaño.

Variante de Vigenère

XOR simple (II)� Cifrado:

El bloque de texto en claro x1 … xn produce el bloquey1 … yn haciendo

yj = xj ⊕⊕⊕⊕ k[j]

� Descifrado:El bloque de texto cifrado y1 … yn se descifra en el texto en claro x1 … xn mediante

xj = yj ⊕⊕⊕⊕ k[j]

XOR simple (III)� Seguridad:

� Aunque se rompe igual que el de Vigenère, hay quien lo usa incluso en nuestros días. ����

� Espacio de claves muy grande. No es viable un ataque de fuerza bruta.

� Resistente al análisis de frecuencias.� Muy débil ante un ataque de texto cifrado conocido. Basta

conocer un fragmento del texto claro correspondiente.

XOR simple (IV)� Criptoanálisis

� Tres etapas:� Determinación de la longitud de la clave.� Reducción a un cifrado por desplazamiento.� Determinación de la clave.

� Herramientas� Test de Kasiski.� Índice de coincidencia.� Índice de coincidencia de dos textos.

� ¡Igual que el de Vigènere!

���������������

� XOR simple o Vigenère en el que:� La clave se genera aleatoriamente.� La clave es tan larga como el texto en claro.� La clave se usa una sola vez (para cada texto en claro se genera una

clave nueva).� Tiene secreto perfecto.

para el mismo texto cifradoa1ofkgdygfñuvñjox1p88ç3o1qnykp¡7qmn(ihqn:� si se descifra con la clave m210jjm2ir2urjj0ojw)3h3p11ñnkñ11ñon3xzry se obtiene el texto en claro NO REGAR LAS PLANTAS MIENTRAS SEA DE DIA.

� Si se descifra con la clave notn·eigjnbv1fpvko*8p)tog0z2p)4rmj>ilzñ se obtiene el texto en claro LANZAMIENTO DE MISILES A LAS 16:00 HORAS

� Problemas:� Generación de claves verdaderamente aleatorias.� Distribución de claves.

������������������

• El cifrado en flujo se aplica sobre textos formados por letras combinándolas con un flujo de bits secretos (secuencia cifrante) mediante un operador XOR:

�������������������

• Condiciones para una buena secuencia cifrante:– Período:

La clave deberá ser tanto o más larga que el mensaje. En la práctica se usará una semilla de unos 120 a 250 bits para generar períodos superiores a 1035.

– Distribución de bits:Distribución uniforme de unos y ceros que represente una

secuencia pseudoaleatoria.

– Rachas de dígitos: uno o más bits entre dos bits distintos.

– Función de Autocorrelación Fuera de Fase AC(k): desplazamiento de k bits sobre la misma secuencia S.

��������������������

Ejemplos:• Generador de congruencia lineal:

•Problemas:

� Generadores con registros de desplazamiento

� Realimentados linealmente: LFSR.

� Realimentados no linealmente: NLFSR.

03. Conceptos sobre aritmética.

Criptografía5º Curso de Ingeniería Informática

Escuela Técnica Superior de Ingeniería InformáticaUniversidad de Sevilla

Aritmética básica en Zn�∈+=⇔−⇔≡ λλ ����� � ���������

���� ������ ���������������������� ����� ��������������� ����������� ������ ����� ������� ��

� ������� ��� ���� ��� ��� �� ��������!��������� ����� �"������ � �� ����������������������������������������� �������� �� �� ����� ��� ���

����� �#$�� �#

����� ��$�� ��

>⇔≡≠∃=⇔≡=∃ −

�� ������

�� �������

���� �������� ��� ����% ��!�����"

&�� �'�''���� ��&�� �(� (� ≡≠≡≡

Algoritmo de Euclides

## ���� +=

)*� � �����������������+������������,���� ��������������,���,������������������� ������

�#� ���� +='�'# ���� +=

��� ++− += ���� ����

#�� += +− ��� ���

�� �� ��� ==

���� ���� += −− �'���

����

����

����

−=��

����

−−

'�

�#

���

����

����

����

−=��

����

� −

++ �

��

��

� �

�� �

�#

���

����

����

����

−=��

����

��

## �

�#

���

����

����

����

�=��

����

βα���

�� βα +=

Algoritmo de Euclides

(&'(-��'-.# +⋅=/���������������������������0�1 �� ��� ��'(-�'-.#

�'-.#�'(-� = �

&'(&2'(- +⋅=

��&'�(& +⋅=

�#��'&' +⋅=

��#��� +⋅=

#��#�# +⋅=��#��� =⋅−

�&'���&���'&'���� =⋅−⋅⇔=⋅−⋅−

�&'((&&�&'�&'�(&�& =⋅−⋅⇔=⋅−⋅−⋅

�'(-((&'&�(&2'(-�((&& =⋅−⋅⇔=⋅−⋅−⋅

⇔=⋅−⋅−⋅ �'(-('(-��'-.#�'& �'(-'2-'-.#'& =⋅−⋅

Ecuaciones diofánticas��� ����� ���� ���� ���������� � =⇔≡

3�� ������4������������ �,������������ �"

3������4�� ��� ��������� �����������

������ ���� � ��� �

��

����� =≡⇔≡

5������ �6������� �����+������4������������,������"

����� ���� � �� ��

��

����� =≡⇔≡

������������ ⊥∀≡⇔≡ ��� ���� �

�∈∀+≡⇔≡ λλ ��� ���� � ���������3������4�� ��� ��������� �������������������!�����

Ecuaciones diofánticas'�''#����(7(�22��22'#�� �'(7( =≡�

'-.#�� ��'(-�22'#�� �'(7( ≡⇔≡ ��

'-.#�� ���(&'(-��'-.#�� ��'(-'-.#��

≡−≡⋅⇔≡⊥

���

'-.#�� ����7&(&�7&'-.#�� ���(&'-.#�7&

⋅−≡⋅⇔−≡⊥

��

'-.#�� �.&-�7'-.#�� ���(&'-.#�7&

≡⇔−≡⊥

��

'-.#�� �.&--'-�7-'-'-.#�� �.&-�7'-.#-'-

⋅≡⋅⇔≡⊥

��

'-.#�� �'2#&'-.#�� �'�-7�&'-.#.&-

≡⇔≡⊥

��

Ecuaciones diofánticas'�''#����(7(�22��22'#�� �'(7( =≡�

'-.#�� ��'(-�22'#�� �'(7( ≡⇔≡ ��

'-.#�� �'-.#&�'(-'-.#�� ��'(- ⋅+≡⇔≡ ��

'-.#�� �'-.#�-.&-�7'-.#�� �.&-�7 ⋅+≡⇔≡ ��

'-.#�� �'2#&≡�

Teorema chino del resto (TCR)

5������������� ���� ���������8 � ����� ����+��999��

�� � �� ��� ≡

�� � �� ��� ≡� �� �

���

��� �

��

��� ββ ++≡⇔ �

���

��

��� ≤≤+= ������������ βα

: �� 4������������ ��� ���� �������� ��� ��� �,��%������ �� � �� ������ ��� �� ������� � ������ ��� ������ ��� ��� �;�������������� ��� ��� <������4������� ������������� ���������������0�1 ���

Teorema chino del resto (TCR)

��

≡≡≡

���� �=

7�� �&

-�� �2

.7&�� �&'-.&(�=--'&77�2 ≡⋅−⋅+⋅⋅+⋅⋅≡�

������� ���� ��>������ ��� �.7&

)*� � ��"

7�---'�7-- ⋅−⋅=�⊥

-�(77��-77 ⋅−⋅=�⊥

��'&.&(���.& ⋅+⋅−=�⊥

Teorema chino del resto (TCR)

��

≡≡≡

���� �=

7�� �&

-�� �2

������� ���� ��>������ ��� �.7&

)*� � �'"

�∈+=�≡ λλ���=���� �= ��

7�� �'7�� �('7�� �&��=7'

≡�≡�≡+⊥

λλλ

-�� �&-�� �277&# ≡�≡+ µµ�∈+=++=� µµµ �77&#7'���=�

�∈+=++=� ννν �.7&&'--&�77&#�

.7&�� �&'-≡�

TCR Generalizado5������������� � �������������������� ���������8�

�� � �� ��� ≡

�� � �� ��� ≡�

: ��4���������������������������������,��% ���! ���� ���%��� ����� �� ����� ������������ �������?������������������ ����� ��� �� ��!��� ����6���������������������� �� ���� �� !��� ����� ��� ����� ���� ���� ������ ����� ��� � ���� � �������� �%�� ��6��@��� ��?��� ����������������

A����� � ���� �� ��� �� � � � ��� ���������� ���� � ��� � ���� � ����������� ������� ��� �������%���B��������� ����>������ ��� � � ���999���

TCR Generalizado

(�� �&≡�.�� �2≡�7�� �-≡�

(�� �&≡�

7�� �-≡�

&�� �'

'�� ��

≡≡�

&�� ��≡� �

contradicción

Teorema de Euler�� �����6�����������������3��� � ���� � ≡⊥ φ

�� ��������� ���5� � ������ � ≡�⊥= −

C���� ��� ��������"������������>��� �������������� ��� ��<������������������������������� ������ ��� ��� ����� ����6�����

�����

���� ���������������

�������������

���

���� −−=

−=⊥⋅=

−−�

��

�������

���

������

�� ���φφ

φφφ

Inversos en Zn

C ������������������������� ����������� � �

D�� �,��������� � �

B�� �������������������0�1 �� ������+�������

�� ���� ��� � −− ≡ φ

Cuerpo finito GF(28)• Sus elementos son polinomios de grado menor o igual

que 7 módulo un polinomio irreducible, por ejemplo m(x) = x8+x4+x3+x+1

(de modo similar a como se hace en aritmética modular).

• Representamos sus elementos por bytes:b7b6b5b4b3b2b1b0

equivale al polinomiob7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x+b0

• Suma y resta:– Son iguales y se hacen mediante un XOR (suma en Z2) en los

correspondientes coeficientes (o sea, bit a bit).

Producto en GF(28)• Se multiplican los polinomios del modo habitual (con

las operaciones de los coeficientes en Z2) y el producto es el resto de dividir el resultado entre m(x).

• Método computacional:– Multiplicar por x un polinomio representado por un byte b se

hace mediante:

– Se multiplica por un polinomio cualquiera mediante llamadas a xtime y sumas.

Inversos en GF(28)

Algoritmo extendido de Euclides

Tabla de inversos

04. Criptografía simétrica moderna

Criptografía5º Curso de Ingeniería Informática

Escuela Técnica Superior de Ingeniería InformáticaUniversidad de Sevilla

Cifrar y descifrar

Cifrado simétrico

Mensaje en claro

Mensaje en claro

Cifrado descifrado

Clave secreta compartida

Ventajas e inconvenientes• Ventajas

– El emisor y el receptor comparten una misma clave.– La seguridad depende sólo del secreto de la clave.– La velocidad de cifra es muy alta y los sistemas con

un espacio de clave grande son muy seguros.

• Inconvenientes– Es imposible establecer un sistema de distribución y

gestión de claves eficiente entre emisor y receptor.– Carecen de una firma digital en sentido amplio.

E /�� ����?� 6������F�?������8��� �.(�*���������,����% ���� ����������

E B������% ����!���� ������������ ����C��������!8���������,������

E 5�������1��� ������ ����� ��������,��G� � � �� ����������������?� 6��������������������������,����������� ����������� ������ ��6�����������������������,�������

H ����C������"���,��� ���I0)�������4 ���� ��J:ICBD���� ����1 ������ ���@ ��-#��B����4 ���� �!��������1�� �� �����D��� �J��� ��B���7-(����� � ��������F5K�� � ����%���������������@ ����% ��4������/B5�

Cifrado tipo Feistel

)BF5KLB��F�?���

0�MNJB�K 0�MNJB�0

⊕ ⊕

CJF:IOF��

F$'F$'

G�

P�

K�⊕ P� 0�⊕ P�

⊕ ⊕

CJF:IOF��G�

P�

K 0

K�⊕ P� 0�⊕ P�

3���� �6���Q�⊕ P��⊕ P� +�Q

Cifrado simétrico genérico

• Lucifer: algoritmo original tipo Feistel que dará lugar al DES. • DES: algoritmo tipo Feistel que se convirtió en estándar

durante casi treinta años. Hoy es vulnerable por su longitud de clave.

• Loki: algoritmo australiano similar al DES, tipo Feistel.• RC2: algoritmo propuesto por Ron Rivest y que se incluye en

navegadores de Internet desde 1999.• CAST: algoritmo tipo Feistel que se ofrece como cifrador por

defecto en últimas versiones de PGP.• Blowfish: algoritmo tipo Feistel propuesto por Bruce Schneier.• IDEA: algoritmo europeo usado en el correo electrónico PGP.• Skipjack: propuesta de nuevo estándar en USA a finales de

los 90 para comunicaciones oficiales (tiene puerta trasera).• RIJNDAEL: nuevo estándar mundial desde octubre de 2000.

Algunos criptosistemas

El concurso AES• Estándar de Cifrado Avanzado (AES).

– Estándar previo DES: Frágil por su pequeño espacio de claves. – Concurso público para evitar desconfianzas.

• Requisitos de los algoritmos:– El algoritmo debe ser público.– Debe ser un algoritmo de cifrado en bloque simétrico.– La longitud de la clave debe ser como mínimo 128 bits.– Su diseño debe permitir aumentar la longitud de la clave según las

necesidades.– Debe ser implementable tanto en HW como en SW.

• Factores a juzgar:– Seguridad.– Eficiencia computacional.– Requisitos de memoria.– Simplicidad de diseño.– Flexibilidad.

El ganador: Rijndael• Desde el 2 de octubre de 2000.

– Diseñado por Joan Daemen (especialista en seguridad electrónica bancaria) y Vicent Rijmen(matemático de la Universidad de Lovaina).

• Utiliza mecanismos diseñados para prevenir los modernos ataques de criptoanálisis.

• Utiliza aritmética de cuerpos de Galois; en particular GF(28) con un polinomio irreducible concreto.

RijnDael (I)• Criptosistema simétrico, en el que se cifran

bloques de tamaño fijo.

• Claves de longitud (en bytes) múltiplo de 4 que se dividen en subclaves.

• Opera a nivel de byte, interpretando cada bytecomo un elemento del cuerpo GF(28) descrito anteriormente.

• Utiliza registros de 32 bits, considerándolos polinomios de grado menor que 4 con coeficientes que son a su vez polinomios en GF(28).

RijnDael (II)• Utiliza varias rondas en cada una de las cuáles se usa

como entrada la salida de la anterior.Cada ronda aplica a su entrada 4 funciones matemáticas invertibles.

• La salida de cada ronda se denomina estado y consiste en una matriz rectangular de 4 filas y número de columnas = tamaño del bloque / 32.El estado tras la última ronda es el bloque cifrado.

• El número de rondas recomendado es función de los tamaño de los bloques y de la clave. La clave se representa como una matriz de bytes de 4 filas y número de columnas = tamaño de la clave / 32. Se generan subclaves para cada ronda.

RijnDael (III)• En cada ronda la matriz de estado sufre

4 transformaciones utilizando operaciones aritméticas y considerando cada byte un elemento en GF(28):

– ByteSub: sustitución. Cada byte se sustituye por su inverso multiplicativo (excepto el 0) y luego se le aplica una transformación afín.

– ShiftRow: Rota a la izquierda las filas de la matriz de estado. Favorece un alto nivel de difusión.

– MixColumn: permite la mezcla de los bytesde una misma columna. Favorece un alto nivel de difusión.

– AddRoundKey: aplica a la matriz de estado una operación XOR con la subclave correspondiente a cada ronda.

• Se emplean tablas precalculadas (S-boxes) para facilitar la programación de las operaciones aritméticas.

Seguridad de RijnDael• Ataque de fuerza bruta sobre un texto cifrado:

– Con claves de N bits y bloques de B bits habría que probar 2NBcombinaciones, lo que resulta computacionalmente intratable.

– Además, aparecerían muchas parejas clave/texto en claro que darían el mismo texto cifrado.

• Ataque con texto en claro conocido:– Como antes habría que probar 2N claves, lo que es de hecho

impracticable.• Otros ataques:

– Por diseño, se anulan los ataques más sofisticados, que sólo mencionaremos:• Criptoanálisis lineal, criptoanálisis diferencial, diferencial truncado,

ataques de interpolación, ataques de cuadrados.

• Ataques algebraicos:– Se han publicado distintos ataques que se basan en la estructura

algebraica que utiliza el algoritmo. Ninguno de ellos ha resultado practicable, pero abren una línea de estudio novedosa.

05. Criptografía de clave pública

Criptografía5º Curso de Ingeniería Informática

Escuela Técnica Superior de Ingeniería InformáticaUniversidad de Sevilla

• Cifrado con clave pública• Ventajas e inconvenientes• RSA• ElGamal clásico• ElGamal elíptico• Comparativa

���������

• Primeramente propuesto por Diffie y Hellman en 1.976.

����������� ������ ��

• Algoritmos basados en funciones matemáticasy no en operaciones sobre patrones de bits.

• Es asimétrica, implica el uso de dos claves. Éste hecho posee importantes consecuencias en los ámbitos de la confidencialidad, distribución de claves y la autentificación.

• Concepto de función de un solo sentido.

������������������� ��• Problema del Logaritmo Discreto (PLD)

Dado hallar �� � ��� �= �� �� 4 ��� �=

• Para que PLD sea difícil de resolver:–� debe dar lugar a muchas potencias distintas–� debe ser un número primo fuerte

�� � ��� ��

� ≡

�� � ���� ���� ���

� ≡≡

�� � ��� ��

� ≡

• Intercambio de clave, conocido (�,�):– A toma �R��R��� y envía a B

– B toma �R��R��� y envía a A

– Clave común:

������������������� ��

�� � ��� ��

� ≡

�� � ���� ���� ���

� ≡≡

�� � ��� ��

� ≡

• Intercambio de clave, conocido (�,�):– A toma �R��R��� y envía a B

– B toma �R��R��� y envía a A

– Clave común:

2-�(.�'��-� ==== �� ����

-��� ��.7.�-��� �.�'�

-��� �7'� 2-(.

2-

(.

≡≡��

≡≡≡≡

������������������� ��• Problema del Logaritmo Discreto (PLD)

Dado hallar �� � ��� �= �� �� 4 ��� �=

• Para que PLD sea difícil de resolver:–� debe dar lugar a muchas potencias distintas–� debe ser un número primo fuerte

Un elemento � se denomina primitivo o generador de un grupo ���9 si sus potencias generan todo el grupo

Un primo � se dice fuerte si es de la forma

Para ciertos primos grandes �, � y �

�� ⋅=− α� �� ⋅=− β� �� ⋅=+ γ�

�������������������

������������ ����������� �����������������

�������������� �����

������� ����������

������ ������� ������� �����

�������������������������������������������������������

������

�������� ��������������

S���'��T� −= �� ��

������ ��

�� �=−

S���'��TS�����T �''# −===>=< − ��

��� �ααααα

�� ���

���

≡−

α

�������������������'&'�= ⋅=

S�=��'��TS�����T ��7

�-'#�� ===>=< �ααααα

S�=��'��T��7 ��7 �== ��

������-��--�

��=�����=�=�

7=-.2(&'�

.

7

�--��-������

�=���=�=�=�=��=

�=�-�.�2�(�&�'���#

.

7

�����������������������

���� ����� �� ���!����� ��������

�������������� ������������������������������� ����

�������R�R��� �������

������������������������������

���������� ������������������������������������������

�������������� �����������

�������������������������������������������

�' +⋅= �� �

�� �� ��� ≡ �� ��' �� �� −≡

(

&

(

��−

����������� �������� ���! ���������������

���"��#����$%���

�����������������������

�������"����!����� ���������������

������������ ������

������������������� ������ �����'���� �����U�#

����������� ����� ���������������������������

������ ����

[ ] #

' ��������'��� �' ��������� ≥+−−

%����������&'(��!��������������#����$%���

#����������������� ���������f() es una función de un solo sentido si:

1. Dado cualquier y es computacionalmente imposible hallar x tal que f(x)=y.

2. Existe una función h y una información secreta s tal que conocidos s e y:

– es fácil de calcular h(s, y).

– f(h(s, y)) = y.

La información s se denomina puerta trasera.

Tras un criptosistema asimétrico siempre hayuna función de un solo sentido con puerta trasera

Se traduce en que descifrar resulta imposible...

...si no se conoce la puerta trasera

� ������ ��!��������������

1.Cada usuario genera una pareja de claves para el cifrado y el descifrado de mensajes.

2. Cada usuario da a conocer su clave pública.

3. Si un usuario A quiere enviar un mensaje a B, cifra el mensaje usando la clave pública de B.

4. Cuando B recibe el mensaje, lo descifra usando su clave privada. Ningún otro receptor puede descifrar el mensaje pues sólo B conoce su clave privada.

Es débil por suplantación

� ������ ��!��������������

�!"#�$%= �#"!

�$&=

' �

(�!"($% V�!"

�$%

��������������������������������������������1.Cada usuario genera una pareja de claves para

el cifrado y el descifrado de mensajes.

2. Cada usuario da a conocer su clave pública.

3. Si un usuario A quiere enviar un mensaje a B, cifra el mensaje doblemente, primero usando su clave privada y después la pública de B.

4. B descifra el mensaje usando primero su clave privada y después la pública de A. Ningún otro receptor puede descifrar el mensaje pues sólo B conoce su clave privada. El mensaje procede de A: lo autentifica el uso de su clave pública.

�����������������������

' � '�

�� !""#'� $&$%= �� #""!

�' $&$%=

$���%������������������) $���%�* $��&�� ��!����� �������'������ ���(

* )�����(

* *������������ ������ ����������������� ���(

) ��������������* +�����(

* )�� ������������������������� ��!�������������

�������������,����(

* ���-�� ��������� ���������'�.�(

)/

"������������ ���

0( )��� ��������������������������������������

�������1��(�)��'�����2��3�1�4 2�5��063 5��06

7( )��� ����� ���������4 ,����� �� ��1����������� ������ ������������������3 � �����4���0(�

8( � ������ ��! 5�1��6(�� �������!��(

��� �

�����

� �

���

���

φφ

−≡−−=⊥

=

)/

������,���������

) +��������,�������������������������������������

����������������������������"�����������9 ���-

) ��������������: ���� �������,� �����������������:� �������-

) ����������, �����������: ����������������������������,� �������-

�� ���� ≡

� �

≡≡−

�� �

�� ��� �

��� �

��� �

��

�����

( ) �� ���� ������� �� ≡⋅≡≡≡ + φφ

)/

���������� ���������&���

�������������+�� ��������#'

�+�

������ ������ �� ������# �����

�+�' �� � �

����+� ����������+�9 � �� � �

������

��������+� �� � �

( ) ( ) #

#

�''#

#

� ''��

�����

��

−−=�++= −

)/

(-.�'=.- ⋅=⋅== ���

'-.#(..#����� =⋅=−−= ���φ'2#&'-.#�� �'(-'(- � ≡≡�= −

'#=2'=.-�� ��2-2�2-2 '(- ≡≡�= #!

�2-2'=.-�� �'#=2'#=2 '2#& ≡≡�= !#

� �

≡≡

≡ ≡'((-�� ��-

2#.��� ���'=.-�� �'#=2

�7

(&

'2#&)#&

"���

!

�2-2�#�.�'(�&(-2# ≡−⋅⋅+⋅⋅≡!

��&(-�#.�(-.� =⋅+⋅−�⊥�����

)���������� )/E � ��� ��������������������.�����������/

������������� ���������� ����

) ����/�������"���"���������$&����$&�������

��������������������������"���������������

�������"������ �������� �������� ���������

) +����������������� ����� ���������������

��� ���������������,������������������

)���������� )/E � ��� ��������������������.�����������/

������������� ���������� ����

Factorización de Fermat

'�

'���������'' ��

���

�������−=+==−�=

Idea: buscar ���� con �'��+�' para �'W�

��'�&(7��'�=-7 == ��

.7&&2# ' =−�= ��� �&''&2� ' =−�= ���

&#-�&7-(2&2' ' ==�=−�= �����

)���������� )/) ����/�������"���"���������$&����$&�������

��������������������������"���������������

�������"������ �������� �������� ���������

�� ��������������5�� � γγ γ−≡−−= �� �

Es evidente que �<�(�), pues ��� y ��� son ambos pares, por lo que � diferirá en general de . Pero

�� �

�� �

�� ��� � �!

!�!

!�!�# "���

"���

��

�≡

��

≡≡γ

γγ

��

���

� −≤≤+=

γγ γ

γ�

��� #������������ ��

)���������� )/) ����/�������"���"���������$&����$&�������

��������������������������"���������������

�������"������ �������� �������� ���������

'�#('�-#���(&�-��&#2&�5�� ===== � ��� γ

�('�#

�#&&#2&#�'�#�#&�

"�����!��� �����,%�����:��,��

=���

��

� −≤≤+= ���

�2-&'7(#�� ��2-'7(#&#2&��2- � ≡≡∃�=⊥= − φ�#&'�#�� ��2-'�#�2- � ≡≡∃�=⊥= −

γγ

&#(&�'=&&�'.'&�'(�&�''#&��77&��-=&

��2-&��&.&���2&�7(&�-&&�2'&�&�&��#&

)���������� )/) +����������������� ����� ���������������

��� ���������������,������������������

� �

≡≡

≡≡−

�� �

�� ��� �

��� �

��� �

�!!

�!!�!!

������������������������������+� 0� � �1������

�.����������&2���������� ��������� ������ ���

!

� �� �!!

���!�������������X��

�������������������� −−+⋅−−+≡

)���������� )/) +����������������� ����� ���������������

��� ���������������,������������������

� �

≡≡

≡≡�7�� �

'7�� �22��� �

�&

�&

�&

!!

!!!!

�&���7�'7�22��5�� ==== ���

S'=��-��'���#T'7�� ��& =⇔≡ !!!

S�=��'����=�-���#T�7�� ��& =⇔≡ !!!

����������������� ���������������'�'=+2�� ���� ���

�����4����������� ���������������'��=+-�� ���� ���

��������� �������4�����������29-+&2�� ���� ���

S22#�2&7�2'��2#2�(7(�(7&�(-.�(.(�(.&�(&.�(�=�(#-�(#.�&.#�&(7�&&�

�'-=�'-&�''#�'#'��7���(2��((��&&���2�==�=-�-2�2=�2-�(.�&#��'���#T

/������� )/) �-� ���! �����������������������������,��

� ����������������"����� �������������

����������������,��� �����������

) #����;���� ����

) ��< ���� ��! ��������.��������� ���

����������!�+!� �� � �

Curvas elípticas

Curvas elípticas

Suma de puntos

Suma de puntos

Sobre un cuerpo finito

ECC

ECC

Cifrado ECC

Descifrado ECC

Tamaños de claves

06. Funciones resumen

Criptografía5ºCurso de Ingeniería Informática

Escuela Técnica Superior de Ingeniería InformáticaUniversidad de Sevilla

• Funciones resumen• Colisiones• Tamaño del resumen• Algunas funciones resumen• Autenticación

Contenido

Funciones resumenUna función resumen recibe como entrada un bloque de

información arbitrario M y devuelve un valor H(M) llamado resumen. Se considera segura si tiene las siguientes características:

1. Unidireccionalidad. Conocido un resumen H(M), debe ser computacionalmente imposible encontrar M a partir de dicho resumen.

2. Compresión. A partir de un mensaje de cualquier longitud, el resumen H(M) debe tener una longitud fija. Lo normal es que la longitud de H(M) sea menor.

3. Facilidad de cálculo. Debe ser fácil calcular H(M) a partir de un mensaje M.

4. Difusión. El resumen H(M) debe ser una función compleja de todos los bits del mensaje M. Si se modifica un bit del mensaje M, H(M) debería cambiar aproximadamente la mitad de sus bits.

Colisiones• Colisión simple. Conocido M, debe ser

computacionalmente imposible encontrar otro M’tal que H(M) = H(M’). Se conoce como resistencia débil a las colisiones.

• Colisión fuerte. Debe ser computacionalmente imposible encontrar un par (M, M’) de forma que H(M) = H(M’). Se conoce como resistencia fuerte a las colisiones.

5. Resistente a colisiones.

Tamaño del resumen

•La paradoja del cumpleañosCon 23 personas la probabilidad de que dos tengan el mismo cumpleaños es mayor que 0,5.

•Tamaño del resumenMínimo 128 bits.

Funciones resumen• MD5: Ron Rivest 1992. Mejoras al MD4 y MD2 (1990), es más lento

pero con mayor nivel de seguridad. Resumen de 128 bits.• SHA-1: Del NIST, National Institute of Standards and Technology,

1994. Similar a MD5 pero con resumen de 160 bits. Existen otras nuevas propuestas conocidas como SHA-256 y SHA-512.

• RIPEMD: Comunidad Europea, RACE, 1992. Resumen de 160 bits.• N-Hash: Nippon Telephone and Telegraph, 1990. Resumen: 128 bits.• Snefru: Ralph Merkle, 1990. Resúmenes entre 128 y 256 bits. Ha sido

criptoanalizado y es lento.• Tiger: Ross Anderson, Eli Biham, 1996. Resúmenes de hasta 192 bits.

Optimizado para máquinas de 64 bits (Alpha).• Panama: John Daemen, Craig Clapp, 1998. Resúmenes de 256 bits de

longitud. Trabaja en modo función hash o como cifrador de flujo.• Haval: Yuliang Zheng, Josef Pieprzyk y Jennifer Seberry, 1992. Admite

15 configuraciones diferentes. Hasta 256 bits.

Autenticación• Planteamiento ingenuo: Se envían en claro el usuario y la

contraseña y se comprueban en el servidor.• Pueden ser interceptadas. • Pueden ser origen de ataques inesperados.

• Soluciones:• Análisis de la entrada.• Cifrado de la comunicación.• Uso de funciones resumen�

07. Mecanismos de seguridad

Criptografía5ºCurso de Ingeniería Informática

Escuela Técnica Superior de Ingeniería InformáticaUniversidad de Sevilla

Autenticación con clave pública

Firma digital

Firma digital

Claves de sesión

¿Cómo sabemos que la clave que estamos usando es verdaderamente la del destinatario?

Certificados y PKI

� ���������� ���������������������������������������������������������������������������������������������������������������������������������������������

� � !� !��������������������������������"#����$��#��� �%!�������������&��'��������#�������������(�����)��������������*�����%����������������������������������������������������������������������%���������������������������!��������

D�������6��������!���� �����

���,�����,����������K:

Y���� �

FZ ��������K�4 ����

3��%���� �

K�� ���������:����!����� �I���� �������,�����1

:���������������,�����1

F �?������������� K�4 ����

3��%���� �

:��,���>?���������������

C�����������K:

I�����!���� ��������4 ����

3��8 � ����,�����1

:��,���>?�����6������!����

Formato del certificado X.509

Generación de certificados

Uso de certificados

• Autenticación

• Firma

• Conexión segura

08. Servicios de seguridad

Criptografía5ºCurso de Ingeniería Informática

Escuela Técnica Superior de Ingeniería InformáticaUniversidad de Sevilla

Correo seguro

�������������� ��������� ��������� �� ����� �������������� ����� ����������� �����������

A comienzos de los años 90 hacen su aparición los principales sistemas de correo electrónico seguro: � PEM (Private Enhanced Mail)� PGP (Pretty Good Privacy)� S/MIME

• Es una propuesta de la IETF Internet Engineering TaskForce en 1985. El documento técnico se publica en 1993.

• Las especificaciones técnicas están en las RFCsRequest For Comments números 1421, 1422, 1423 y 1424.

• Se usa conjuntamente con el protocolo SMTP Simple Mail Internet Protocol.

• Cifrado de la información: DES modo CBC.• Generación y gestión de claves: RSA de 508 a 1024

bits. Estructura de certificados según la norma X.509.• Clave de sesión: DES modo ECB, TripleDES-EDE.• Firma digital: RSA, MD2, MD5.

Private Enhanced Mail PEM

Servicios de seguridad de PEM

• Servicios de seguridad contemplados:– Autenticación del origen.– Confidencialidad.– Integridad del mensaje.– No repudio del origen cuando se utiliza gestión de

clave con algoritmo de clave asimétrica.• Servicios de seguridad no contemplados:

– Control de acceso.– Confidencialidad del tráfico de mensajes.– No repudio del mensaje por parte del receptor.

PGP• Philip Zimmermann publicó la versión 1.0 de PGP en

1991 con mínimos requisitos de hardware y software.• En 1992 aparece la versión 2.0 en la que ya participan

programadores de todo el mundo. Su código se escribe fuera de USA para evitar las leyes restrictivas respecto al software criptográfico y sus problemas legales.

• En 1993 aparece la versión 2.3a muy popular en sitios FTP y válida para varias plataformas de sistemas operativos.

• En 1994 participa en el proyecto el MassachusettsInstitute of Technology MIT y aparecen las versiones 2.4, 2.5 y 2.6.

• La versión 2.6.3i se populariza a nivel mundial.

Algoritmos usados en PGP

• Divide el criptograma final en bloques de menos de 50.000 bytes para su correcta transmisión en Internet y su recuperación.

Segmentación

• Permite transmitir el mensaje a todo tipo de aplicaciones e-mail. Convierte los octetos en caracteres imprimibles.

Base-64Compatibilidad e-mail

• La función hash MD5 genera un resumen de 128 bits, que representa al mensaje en claro completo, y que se cifra en RSA con la clave privada del emisor. Se añade al mensaje enviado.

MD5, RSAFirma Digital

• Cifra la clave de sesión IDEA con la clave pública del destinatario con RSA y la añade en el criptograma.

IDEA, RSAIntercambio de claves

• Cifra el mensaje con una clave de sesión de 128 bits (única) generada en el emisor de forma aleatoria.

IDEACifrado Convencional

• Genera una clave pública y otra privada, encontrando dos números primos muy grandes. El valor privado se guarda cifrado con IDEA usando como clave un resumen MD5 de la frase de paso secreta.

RSA, MD5Generación de claves

• Se comprime el mensaje en claro y la firma para almacenarlo o transmitirlo.

ZIPCompresión

Versiones de PGP•La mítica versión de PGP 2.6.3 del MIT se convirtiórápidamente en el software de libre distribución más popular en el mundo de los PCs y especialmente en entornos de correo electrónico: usa cifra y firma con criptografía calificada como fuerte.•Las versiones en entorno Windows a través de NetworkAssociates presentan opciones avanzadas, servicios de red para seguimiento de paquetes y autenticación mediante Autoridades de Certificación. •Existe una versión libre para usos no comerciales �. •Las versiones 5 y 6 tuvieron su código fuente abierto, en la 7 el código deja de ser público � y la nueva versión 8.0 (diciembre 2002) ahora con PGP Corporation ha liberado otra vez el código.

Las nuevas versiones de PGP• Generación de claves

• RSA: 1.024, 1.536, 2.048 bits• Diffie y Hellman: 1.024, 1.536, 2.048, 3.072, 4.096 bits

• Firma digital• DSS Digital Signature Standard 1.024 bits

• Cifrado• CAST, IDEA, TripleDES, AES, Twofish

• Resumen• SHA-1 (160 bits) y MD5 (128 bits)

Algunas versiones de PGPDesde la versión 5.0 hasta la actual 8.0 en febrero de 2003 los esquemas de cifra y firma digital han cambiado muy poco aunque presentan mayores prestaciones. No obstante, recuerde que algunas prestaciones sólo estarán activadas en versiones comerciales.

�������� �������� ������

)=���>

• S/MIME es la extensión de seguridad del estándar MIME de correo.Para exponer MIME es necesario recordar las definiciones delRFC-822 en que está basado.

• RFC-822 permanece como estándar del correo para texto en Internet .En su contexto los mensajes poseen un sobre y un contenido .El sobre posee la información para la transmisión y la entrega .El contenido es el objeto a ser entregado . Contiene un conjunto decampos de cabecera que permiten crear el sobre .Un mensaje consiste en un conjunto de líneas de cabecera , unalínea en blanco ( separación ) y el texto del mensaje .La cabecera está formada por palabras clave ( from, to, date, ... )seguidas de :, y los argumentos .

)=���>

• S/MIME es la extensión de seguridad del estándar MIME de correo.Para exponer MIME es necesario recordar las definiciones delRFC-822 en que está basado.

• RFC-822 permanece como estándar del correo para texto en Internet .En su contexto los mensajes poseen un sobre y un contenido .El sobre posee la información para la transmisión y la entrega .El contenido es el objeto a ser entregado . Contiene un conjunto decampos de cabecera que permiten crear el sobre .Un mensaje consiste en un conjunto de líneas de cabecera , unalínea en blanco ( separación ) y el texto del mensaje .La cabecera está formada por palabras clave ( from , to , date , ... )seguidas de : , y los argumentos .

)=���>

En general, se puede decir que la funcionalidad de S/MIME es similar a la de PGP. Los dos permiten cifrar y/o firmar mensajes.

S/MIME proporciona las siguientes FUNCIONES:• DATOS ENVUELTOS : consiste en el cifrado del contenido de cualquier tipo y en cifrar las claves de cifrado para uno o más receptores. • DATOS FIRMADOS : el resumen del contenido se cifra con la clave

privada del emisor . El contenido y la firma se codifican en base-64. Un mensaje firmado necesita que el receptor tenga S/MIME instalado.

• FIRMA DATOS CLAROS : El contenido se mantiene en claro. Sólo la firma se codifica en base-64. El receptor sin S/MIME puede ver el mensaje pero no verificar la firma.

• DATOS FIRMADOS Y ENVUELTOS : es la concatenación de los anteriores.

Certificados y S/MIMES/MIME usa certificados de clave pública de acuerdo con la versión 3 de X.509El esquema de administración de claves es mezcla entre PGP y X.509. Losusuarios deben mantener listas de certificados y revocaciones de suscorresponsales

Funciones:• GENERACIÓN DE CLAVES . DEBE ser capaz de generar pares DSS y

Diffie-Hellman. PUEDE ser capaz de generar pares RSA ( 768-1024 ). DEBE generar los pares a partir de una fuente aleatoria bien protegida

• REGISTRO. La clave pública de usuario debe registrase en una autoridad de certificación que pueda emitir un certificado

• ALMACÉN Y RECUPERACIÓN DE CERTIFICADOS. El usuario debe usar una lista de certificados de corresponsales para comprobar firmas entrantes y cifrar mensajes salientes. La autoridad de certificación más utilizada es VeriSign.

SSL

– Estándar de facto propuesto por Netscape y ampliamente disponible en navegadores y servidores Web

– Protocolo cliente-servidor que negocia el establecimiento de canales virtuales seguros:

• autenticación de una o ambas partes• establecimiento de una clave de sesión para cifrado del canal

(confidencialidad)• acuerdo de un mecanismo de garantía de integridad

– El canal establecido sirve para cualquier intercambio cliente-servidor

SET

– Estándar privado propuesto por VISA-MasterCarden cuyo diseño hay involucrados muchos de los grandes: IBM, Tandem, Microsoft, GTE, …

– Es una aplicación distribuida (titular, comercio, centro autorizador y autoridad(es) de certificación) que en particular usa canales virtuales seguros:

• confidenciales• con garantía de integridad• previa autenticación de [casi] todas las partes

– Sirve para pagos con tarjetas de plástico

Comparación SSL y SET

– Técnicamente no se pueden comparar:• SSL es un nivel de transporte: uso genérico• SET es una aplicación: uso específico

– En la práctica:• el comercio electrónico seguro se está realizando

sobre SSL• se propone implantar SET

SSLtransporte horizontal genérico

SE

Tap

licac

ión

vert

ical

esp

ecífi

ca

Compatibilidad de SSL y SET

1. Los datos de la aplicación SET pueden circular por canales SSL para mayor seguridad

• mayor seguridad sicológica• más robusto frente a posibles debilidades que puedan

aparecer(es mucho más improbable que se descubra una debilidad que afecte simultáneamente a ambos)

2. SSL aporta seguridad donde SET termina• envíos del comercio al titular• todos los intercambios previos y posteriores a la fase de

pago

Ventajas de SET

1. Permite al cliente autenticar que el comerciante se encuentra autorizado para aceptar tarjetas de pago de forma segura y realizar transacciones económicas a través de Internet.

2. Permite al vendedor autenticar la tarjeta de pago usada por el cliente en la transacción.

3. Cada una de las informaciones involucradas en la transacción (datos de pago, de cobro, mercancía o servicios comprados y dirección de entrega de los mismos) es leída únicamente por el destinatario previsto (vendedor o banco).

Instalación de SSL

• Internet Information Server

Configure SSL on Your Website with IIS.htm

• ApacheApache-SSL.htm

Auditorías de seguridad

• Microsoft Baseline Security Analyzer

Microsoft Baseline Security Analyzer V1_2.htm

• Otras herramientasTop 75 Network Security Tools.htm

top related