Subido por Javier Gimenez Campos

cripto transp

Anuncio
Criptografı́a y Seguridad
Manuel J. Lucena López
[email protected]
Departamento de Informática
Universidad de Jaén
25 de febrero de 2010
Manuel Lucena (Dpto. Informática)
Criptografı́a y Seguridad
25 de febrero de 2010
1 / 11
Datos de la Asignatura
I
Nombre: Criptografı́a y Seguridad.
I
Código: 5265.
I
Titulación: Ingenierı́a Técnica en Informática de Gestión (1997).
I
Carácter: Optativo.
I
Curso: 3o .
I
Cuatrimestre: 2o .
I
Créditos LRU: 3 teóricos y 3 prácticos.
I
Créditos ECTS: 2.4 teóricos y 2.4 prácticos.
Manuel Lucena (Dpto. Informática)
Criptografı́a y Seguridad
25 de febrero de 2010
2 / 11
Datos del Profesorado
I
Profesor: Manuel J. Lucena López.
I
e-mail: [email protected]
I
Despacho: A3-112.
I
Teléfono: 953 21 28 86
I
Web: http://wwwdi.ujaen.es/∼mlucena
Tutorı́as:
I
Lunes, de 10:30 a 12:30.
I
Jueves, de 10:30 a 12:30.
I
Viernes, de 11:30 a 13:30.
Manuel Lucena (Dpto. Informática)
Criptografı́a y Seguridad
25 de febrero de 2010
3 / 11
Objetivos
I
Conocer las principales bases teóricas de la Criptografı́a.
I
Diferenciar entre Criptografı́a Simétrica y Asimétrica.
I
Conocer la estructura, propiedades y ámbito de aplicación de los
principales algoritmos criptográficos.
I
Identificar los principales riesgos de seguridad de un sistema
informático.
Manuel Lucena (Dpto. Informática)
Criptografı́a y Seguridad
25 de febrero de 2010
4 / 11
Programa de la Asignatura
Programa Teórico:
1. Introducción.
2. Conceptos Básicos sobre Criptografı́a.
3. Bases Teóricas de la Criptografı́a.
4. Algoritmos Criptográficos.
5. Aplicaciones Criptográficas.
Programa Práctico:
I
Trabajo de carácter práctico, grupos de 3 a 5 personas.
Manuel Lucena (Dpto. Informática)
Criptografı́a y Seguridad
25 de febrero de 2010
5 / 11
Criterios de Evaluación
I
Teorı́a (60 %) y Prácticas (40 %).
I
I
I
Teorı́a: Examen escrito.
I
I
I
Se considera como presentado si se hace el examen o se entregan las
prácticas.
Si se aprueba una parte y otra no, se guarda la nota hasta septiembre.
30 preguntas objetivas (50 %).
6 preguntas de respuesta breve, a elegir 5 (50 %).
Prácticas:
I
I
I
I
Reuniones periódicas de seguimiento, al menos 4.
Tema libre, acordado por escrito con el profesor.
Entrega de memoria, código fuente, ejecutables, etc.
Exposición al final del cuatrimestre.
Manuel Lucena (Dpto. Informática)
Criptografı́a y Seguridad
25 de febrero de 2010
6 / 11
Memoria de Prácticas
I
Se entregará en formato CD:
I
I
I
I
Rotular en el disco el curso académico, número de grupo, nombres de
los integrantes, tı́tulo de la aplicación y nombre de la asignatura.
Organizar en carpetas. No usar espacios, tildes, etc. en los nombres de
carpetas/archivos.
Documentos en formatos estándar: pdf, OpenDocument, html, etc.
Elementos:
I
I
I
I
I
I
Índice de contenidos.
Descripción de los detalles de implementación y de las decisiones de
diseño tomadas.
Documentación relativa a los algoritmos que se implementen.
Guı́a breve del código fuente.
Descripción de la estructura de directorios, propósito de cada archivo.
Manual de usuario de la aplicación.
Manuel Lucena (Dpto. Informática)
Criptografı́a y Seguridad
25 de febrero de 2010
7 / 11
Calificación de las prácticas
Se valorarán los siguentes elementos, con los siguientes pesos relativos:
I Relativos a la aplicación:
I
I
I
I
Calidad del código fuente (legibilidad, diseño, etc.): 2.
Correcto funcionamiento: 2.
Aspecto visual y usabilidad de la aplicación: 1.
Relativos a la documentación:
I
I
I
I
Aspecto general (limpieza, orden, claridad): 1.
Índice (presencia, claridad y utilidad de éste): 1.
Manual (claridad, organización, completitud): 2.
Discusión crı́tica de todos los aspectos relevantes: 2.
Manuel Lucena (Dpto. Informática)
Criptografı́a y Seguridad
25 de febrero de 2010
8 / 11
Bibliografı́a
Básica:
I
M. Lucena, Criptografı́a y Seguridad en Computadores, 4o Edición.
I
Alfred J. Menezes, Paul C. Van Oorschot y Scott A. Vanstone.
Handbook of Applied Cryptography. CRC Press 1996.
Complementaria:
I
P. Caballero, Introducción a la Criptografı́a, 2o edición. RA-MA.
I
B. Schneier, Applied Cryptography. Second Edition. J. Wiley & Sons.
I
William Stallings, Fundamentos de Seguridad en Redes. Aplicaciones
y Estándares, 2o ed. Pearson Educación, 2003.
Manuel Lucena (Dpto. Informática)
Criptografı́a y Seguridad
25 de febrero de 2010
9 / 11
Otros datos
Horarios:
I
Teorı́a: Jueves, de 12:30 a 13:30, y viernes, de 13:30 a 14:30.
I
Prácticas: Martes de 10:30 a 12:30 y de 12:30 a 14:30.
Aulas:
I
Teorı́a: Aula 2, edificio A-4.
I
Prácticas: Laboratorio 2 (dependencia 174, edificio A-3).
Manuel Lucena (Dpto. Informática)
Criptografı́a y Seguridad
25 de febrero de 2010
10 / 11
Más información en:
http://wwwdi.ujaen.es/∼mlucena
Manuel Lucena (Dpto. Informática)
Criptografı́a y Seguridad
25 de febrero de 2010
11 / 11
Criptografı́a y Seguridad en Computadores
Tema 1. Introducción
Manuel J. Lucena López
[email protected]
Departamento de Informática
Universidad de Jaén
17 de septiembre de 2008
Manuel Lucena (Dpto. Informática)
1. Introducción
17 de septiembre de 2008
1/6
¿Qué es la Criptografı́a?
Definición (Diccionario de la Real Academia):
“Arte de escribir con clave secreta o de un modo enigmático”
I
I
La necesidad de transmitir información corre paralela con la de
protegerla.
Hace años que dejó de ser un considerada un arte.
Conjunto de técnicas que tratan sobre la protección —ocultamiento frente
a observadores no autorizados— de la información.
I
Disciplinas: Teorı́a de la Información, Teorı́a de Números,
Complejidad Algorı́tmica, etc.
Manuel Lucena (Dpto. Informática)
1. Introducción
17 de septiembre de 2008
2/6
Objetivo de la Criptografı́a
Protección de la Información
I
Alterar la información para que aquellos que pretendan recuperarla sin
la debida autorización, se enfrenten a un problema intratable.
I
La autorización suele ser una pieza de información llamada clave.
Preservación de la Integridad de la Información
I
Detección de posibles alteraciones.
I
Certificación del origen de la misma =⇒ Firma Digital.
Manuel Lucena (Dpto. Informática)
1. Introducción
17 de septiembre de 2008
3/6
Historia de la Criptografı́a
I
La Criptografı́a nace con la escritura.
I
I
I
I
La Criptografı́a moderna, como la Informática, nace en la II Guerra
Mundial.
I
I
I
Referencias desde varios siglos antes de Jesucristo.
Tradicionalmente, los cifrados se hacı́an a mano.
Los intentos de descifrado también se hacı́an a mano.
Cifrados Enigma y de Lorenz.
Proyecto Colossus.
La Criptografı́a militar ha estado por delante de la Criptografı́a civil
durante décadas.
Manuel Lucena (Dpto. Informática)
1. Introducción
17 de septiembre de 2008
4/6
¿Qué no es Criptografı́a?
Seguridad a través de la oscuridad
I
Si mantenemos en secreto nuestras técnicas de cifrado, serán más
seguras. Falso.
I
Cualquier persona o equipo es capaz de diseñar un sistema que él
mismo no sea capaz de romper.
I
Es necesario que las técnicas de cifrado sean conocidas.
I
Al atacante hay que suponerle un conocimiento completo del sistema.
I
Desconfiar de soluciones secretas o milagrosas...
Manuel Lucena (Dpto. Informática)
1. Introducción
17 de septiembre de 2008
5/6
Números Grandes
I Probabilidad de ser fulminado por un rayo (por dı́a): 1 entre 9.000.000.000 (233 ).
I Probabilidad de ganar la Loterı́a Primitiva: 1 entre 13.983.816 (223 ).
I Probabilidad de ganar la Primitiva y caer fulminado por un rayo el mismo dı́a: 1 entre 256 .
I Edad del Planeta Tierra: 109 (230 ) años.
I Edad del Universo: 1010 (234 ) años.
I Un año: 244 millonésimas de segundo.
I Número de átomos en el Planeta Tierra: 1051 (2170 ).
I Número de átomos en la Vı́a Láctea: 1067 (2223 ).
I Número de átomos en el Universo (excl. materia oscura): 1077 (2255 ).
Manuel Lucena (Dpto. Informática)
1. Introducción
17 de septiembre de 2008
6/6
Criptografı́a y Seguridad en Computadores
Tema 2. Conceptos Básicos
Manuel J. Lucena López
[email protected]
Departamento de Informática
Universidad de Jaén
19 de marzo de 2010
Manuel Lucena (Dpto. Informática)
2. Conceptos Básicos
19 de marzo de 2010
1 / 13
19 de marzo de 2010
2 / 13
Criptosistema
Índice
Criptosistema
Esteganografı́a
Criptoanálisis
Seguridad en Sistemas Informáticos
Manuel Lucena (Dpto. Informática)
2. Conceptos Básicos
Criptosistema
Definición de Criptosistema
Criptosistema:
Quı́ntupla (M, C , K , E , D), donde:
I
M: Conjunto de todos los posibles mensajes sin cifrar.
I
C : Conjunto de todos los posibles mensajes cifrados, o criptogramas.
I
K : Conjunto de claves que se pueden emplear en el criptosistema.
I
E : Conjunto de transformaciones de cifrado. Existe una
transformación diferente Ek para cada valor posible de la clave k.
I
D: Conjunto de transformaciones de descifrado.
I
Todo criptosistema ha de cumplir:
Dk (Ek (m)) = m
Manuel Lucena (Dpto. Informática)
2. Conceptos Básicos
Criptosistema
19 de marzo de 2010
3 / 13
Tipos de Criptosistemas
Tipos de Criptosistemas
Simétricos (o de llave privada)
I
Emplean la misma clave k tanto para cifrar como para descifrar.
I
Problema: distribución de claves.
Asimétricos (o de llave pública)
I
Emplean una doble clave (kp , kP ).
I
kp se conoce como clave privada y kP se conoce como clave pública.
I
Una de ellas sirve para cifrar, y la otra para descifrar.
I
No solo permiten cifrar la información, sino firmarla digitalmente.
Manuel Lucena (Dpto. Informática)
2. Conceptos Básicos
19 de marzo de 2010
4 / 13
Criptosistema
Claves Débiles
Claves Débiles
En un criptosistema, puede haber elementos de K que produzcan
transformaciones de cifrado fáciles de romper.
I
No es algo necesariamente malo. Muchos criptosistemas poseen
claves débiles.
I
Es difı́cil demostrar que un criptosistema no tiene claves débiles.
I
Suelen ser muy pocas en relación con el número total de posibles
claves.
I
Lo ideal es conocerlas y evitarlas.
Manuel Lucena (Dpto. Informática)
2. Conceptos Básicos
19 de marzo de 2010
5 / 13
19 de marzo de 2010
6 / 13
Esteganografı́a
Índice
Criptosistema
Esteganografı́a
Criptoanálisis
Seguridad en Sistemas Informáticos
Manuel Lucena (Dpto. Informática)
2. Conceptos Básicos
Esteganografı́a
Esteganografı́a
Consiste en ocultar en el interior de una información, aparentemente
inocua, otro tipo de información (cifrada o no).
I
Tanto o más antigua que la propia Criptografı́a.
I
Permite burlar sistemas de censura, en los que el atacante se limita a
destruir el mensaje si lo considera sospechoso.
I
Con la enorme cantidad de datos que nos rodean, la esteganografı́a
adquiere un potencial prácticamente ilimitado.
Manuel Lucena (Dpto. Informática)
2. Conceptos Básicos
19 de marzo de 2010
7 / 13
19 de marzo de 2010
8 / 13
Criptoanálisis
Índice
Criptosistema
Esteganografı́a
Criptoanálisis
Seguridad en Sistemas Informáticos
Manuel Lucena (Dpto. Informática)
2. Conceptos Básicos
Criptoanálisis
Criptoanálisis
Consiste en descifrar uno o más mensajes sin conocer la clave
correspondiente (romper el criptosistema).
I
Posibilidades:
I
I
I
Descifrar mensajes sin hacer uso de la clave.
Recuperar la clave a partir de un número de mensajes cifrados.
No se considera criptoanálisis:
I
I
Probar todas las posibles claves (fuerza bruta).
Descubrir el algoritmo de cifrado, cuando este era secreto.
Ataque
Un ataque es cualquier técnica que nos permite romper un criptosistema
más rápido que mediante la fuerza bruta.
Manuel Lucena (Dpto. Informática)
2. Conceptos Básicos
19 de marzo de 2010
9 / 13
Criptoanálisis
Compromiso entre Criptosistema y Criptoanálisis
Prácticamente todos los criptosistemas pueden ser rotos con el suficiente
esfuerzo computacional.
I
Cuanto más complejo es un algoritmo de cifrado, más costosa es su
implantación.
I
No es lo mismo proteger una información efı́mera, que otra a más
largo plazo.
I
Se busca un compromiso entre el coste (económico, computacional,
de almacenamiento...) del criptosistema y el coste necesario para
romperlo.
I
Hoy dı́a disponemos de algoritmos cuyo coste de rotura excede al de
la capacidad de cómputo existente en el planeta.
Manuel Lucena (Dpto. Informática)
2. Conceptos Básicos
19 de marzo de 2010
10 / 13
Seguridad en Sistemas Informáticos
Índice
Criptosistema
Esteganografı́a
Criptoanálisis
Seguridad en Sistemas Informáticos
Manuel Lucena (Dpto. Informática)
2. Conceptos Básicos
19 de marzo de 2010
11 / 13
Seguridad en Sistemas Informáticos
Seguridad
I
La seguridad de la información es mucho más compleja que el simple
uso de técnicas de cifrado.
I
Los escenarios y requerimientos variarán en función de que la
computadora se encuentre aislada o interconectada, sea fija o portátil,
etc.
Algunas cuestiones de Seguridad:
I
Seguridad fı́sica.
I
Seguridad de los canales de comunicaciones.
I
Control de acceso a los datos.
I
Autentificación.
I
No repudio.
I
Anonimato.
Manuel Lucena (Dpto. Informática)
2. Conceptos Básicos
19 de marzo de 2010
12 / 13
Seguridad en Sistemas Informáticos
Tipos de Autentificación
Autentificar: comprobar la autenticidad de algo.
I
Una pieza de información (un mensaje).
I
Un usuario (contraseña).
I
Un dispositivo.
Manuel Lucena (Dpto. Informática)
2. Conceptos Básicos
19 de marzo de 2010
13 / 13
Criptografı́a y Seguridad en Computadores
Tema 3. Bases Teóricas de la Criptografı́a
Manuel J. Lucena López
[email protected]
Departamento de Informática
Universidad de Jaén
19 de marzo de 2010
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
1 / 41
19 de marzo de 2010
2 / 41
Teorı́a de la Información
Índice
Teorı́a de la Información
Complejidad Algorı́tmica
Aritmética Modular
Curvas Elı́pticas
Números Aleatorios
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Teorı́a de la Información
Cantidad de Información
Cantidad de Información de un Suceso
La observación de un suceso aumenta nuestro conocimiento sobre el
universo, es decir proporciona información.
Ejemplo
I
Una bolsa con nueve bolas negras y una blanca.
I
Sacamos una bola blanca, ¿Cuánta información aporta ese suceso?
I
¿Y si ahora sacamos una bola negra?
I
El primer suceso aporta mucha información, porque era muy poco
probable.
El segundo suceso no aporta ninguna información, porque ya
sabı́amos lo que iba a ocurrir.
I
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Teorı́a de la Información
19 de marzo de 2010
3 / 41
Cantidad de Información
Cantidad de Información de un Suceso
Caracterı́sticas de cantidad de Información
I
Es mayor cuanto menos probable es el suceso en cuestión.
I
Es siempre mayor o igual que cero.
I
Siendo V una variable aleatoria, xi un suceso y P(xi ) su probabilidad
asociada, la Cantidad de Información de xi se define como:
Ii = − log2 (P(xi ))
I
Si P(xi ) = 1 −→ Ii = 0.
I
Si P(xi ) = 0 −→ Ii = ∞.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
4 / 41
Teorı́a de la Información
Entropı́a
Entropı́a
Definición
Suma ponderada de las cantidades de información de todos los posibles
estados de una variable aleatoria V :
P
H(V ) = − ni=1 P(xi ) log2 [P(xi )]
Propiedades
1. 0 ≤ H(V ) ≤ log2 N
2. H(V ) = 0 ⇐⇒ ∃i tal que P(xi ) = 1 y P(xj ) = 0 ∀j 6= i
3. H(x1 , x2 . . . xn ) = H(x1 , x2 . . . xn , xn+1 ) si P(xn+1 ) = 0
I
I
I
Se mide en bits.
La entropı́a de una variable aleatoria es el no medio de dı́gitos binarios
necesario para codificar cada uno de sus estados.
Proporciona el lı́mite teórico de compresión de la información.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Teorı́a de la Información
19 de marzo de 2010
5 / 41
Entropı́a
Entropı́a
Ejemplos:
I
Moneda al aire:
1
1
1
1
H(M) − [ log2 ( ) + log2 ( )] = 1 bit
2
2
2
2
I
Moneda trucada (60 % cara, 40 % cruz):
H(Mt ) = −(0,6 log2 (0,6) + 0,4 log2 (0,4)) = 0,970 bits
I
Bolsa con nueve bolas negras y una blanca:
H(B) = −(0,9 log2 (0,9) + 0,1 log2 (0,1)) = 0,468 bits
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
6 / 41
Teorı́a de la Información
Entropı́a Condicionada
Entropı́a Condicionada
I
Entropı́a de una distribución conjunta de dos variables (X , Y ):
H(X , Y ) = −
n X
m
X
P(xi , yj ) log2 (P(xi , yj ))
i=1 j=1
I
Entropı́a de la distribución de X condicionada a un valor de Y :
H(X /Y = yj ) = −
n
X
P(xi /yj ) log2 (P(xi /yj ))
i=1
I
Entropı́a Condicionada de X sobre Y :
H(X /Y ) = −
n X
m
X
P(xi , yj ) log2 (P(xi /yj ))
i=1 j=1
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Teorı́a de la Información
19 de marzo de 2010
7 / 41
Entropı́a Condicionada
Propiedades de la Entropı́a Condicionada
Ley de Entropı́as Totales
H(X , Y ) = H(X ) + H(Y /X )
I
Si X e Y son variables independientes:
H(X , Y ) = H(X ) + H(Y )
Teorema de Disminución de la Entropı́a
La entropı́a de una variable X condicionada por otra Y es menor o igual a
la entropı́a de X , alcanzándose la igualdad si y sólo si las variables X e Y
son independientes.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
8 / 41
Teorı́a de la Información
Cantidad de Información entre dos Variables
Cantidad de Información entre dos Variables
La cantidad de información que la variable X contiene sobre Y se define
como:
I (X , Y ) = H(Y ) − H(Y /X )
I
Al medir la incertidumbre sobre Y , puede que obtengamos valores
distintos según conozcamos el valor de X o no.
I
Si conocemos X , puede que la incertidumbre de Y no varı́e, o que
disminuya.
I
Esa posible disminución de incertidumbre (entropı́a), es la cantidad de
información entre X e Y .
Propiedades:
I
1. I (X , Y ) = I (Y , X )
2. I (X , Y ) ≥ 0
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Teorı́a de la Información
19 de marzo de 2010
9 / 41
Criptosistema Seguro de Shannon
Criptosistema Seguro de Shannon
I
Criptosistema que cumple: I (C , M) = 0
I
I
C : Variable aleatoria que representa el criptograma enviado.
M: Variable aleatoria que representa el mensaje en claro.
I
Conocer el valor concreto de C (el criptograma) no modifica la
incertidumbre sobre el texto en claro al que corresponde.
I
Imposible de romper, incluso disponiendo de capacidades de cómputo
(memoria y procesamiento) infinitas.
I
No suelen resultar prácticos: la clave debe ser al menos tan larga
como el mensaje.
I
Ejemplo: One-time pads (cuadernos de un solo uso), empleados en la
I Guerra Mundial.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
10 / 41
Teorı́a de la Información
Redundancia
Redundancia
LPT
D M CS
S P RT C L R
I
El mensaje puede reconstruirse con facilidad.
I
La información que falta puede recuperarse de los sı́mbolos que
quedan.
I
Esto implica que los sı́mbolos transportan información repetida:
redundancia.
I
Los lenguajes humanos son redundantes.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Teorı́a de la Información
19 de marzo de 2010
11 / 41
Redundancia
Medidas de Redundancia
I
Índice de un lenguaje para mensajes de longitud k:
rk =
I
Hk (M)
k
Índice absoluto de un lenguaje de m sı́mbolos:
log2 (mk )
k log2 (m)
R=
=
= log2 m
k
k
I
Redundancia de un lenguaje:
D =R −r
I
Índice de redundancia:
I =
Manuel Lucena (Dpto. Informática)
D
R
3. Bases Teóricas
19 de marzo de 2010
12 / 41
Teorı́a de la Información
Desinformación y Distancia de Unicidad
Desinformación y Distancia de Unicidad
Desinformación
Entropı́a condicionada del conjunto M de posibles mensajes sobre el
conjunto C de posibles criptogramas.
I
I
I
Es máxima, H(M/C ) = H(M), para criptosistemas seguros de
Shannon.
Si H(M/C ) = 0, conocer un criptograma reduce nuestra
incertidumbre sobre el mensaje a cero (lo podemos recuperar).
También sobre K como H(K /C ): conocimiento que ganamos sobre la
clave k conocido el criptograma c.
Distancia de unicidad
Cantidad de texto cifrado que reduce la incertidumbre sobre K a cero.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Teorı́a de la Información
19 de marzo de 2010
13 / 41
Confusión y Difusión
Confusión y Difusión
Confusión
I
Oculta la relación entre c y m.
I
Operación básica: sustitución.
Difusión
I
Diluye la redundancia del texto claro repartiéndola a lo largo del texto
cifrado.
I
Operación básica: transposición.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
14 / 41
Complejidad Algorı́tmica
Índice
Teorı́a de la Información
Complejidad Algorı́tmica
Aritmética Modular
Curvas Elı́pticas
Números Aleatorios
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
15 / 41
Complejidad Algorı́tmica
Complejidad Algorı́tmica
Algoritmo
Secuencia finita y ordenada de instrucciones elementales que, dados los
valores de entrada de un problema, en algún momento finaliza y devuelve
la solución.
Complejidad Algorı́tmica
Permite medir el esfuerzo computacional para resolver un problema,
independientemente de la máquina que empleemos para ello.
I
Tres alternativas: mejor caso, caso promedio y peor caso.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
16 / 41
Complejidad Algorı́tmica
Clases de Complejidad
I
Clase P: Problemas de decisión que pueden ser resueltos en tiempo
polinomial.
I
Clase NP: Problemas para los que una respuesta afirmativa puede ser
verificada en tiempo polinomial, a partir de un certificado.
I
Clase co-NP: Problemas para los que una respuesta negativa puede
ser verificada en tiempo polinomial, a partir de un certificado.
I
La clase NPC es un subconjunto de NP, en el que todos sus
elementos pueden reducirse unos a otros.
I
Los problemas NP-duros son la versión computacional de los
problemas de la clase NPC. Ejemplo: problema de la mochila.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
17 / 41
19 de marzo de 2010
18 / 41
Complejidad Algorı́tmica
Clases de Complejidad
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Complejidad Algorı́tmica
Algoritmos Probabilı́sticos
Algoritmos Probabilı́sticos
I
Son algoritmos que dan una respuesta, pero con una probabilidad de
error.
I
Para algunos problemas, son mucho más rápidos que los algoritmos
deterministas.
I
Tienen sus propias clases de complejidad.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
19 / 41
19 de marzo de 2010
20 / 41
Aritmética Modular
Índice
Teorı́a de la Información
Complejidad Algorı́tmica
Aritmética Modular
Curvas Elı́pticas
Números Aleatorios
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Aritmética Modular
Definición
Definición de Aritmética Modular
Dados tres números a, b, n ∈ N, decimos que a es congruente con b
módulo n, y se escribe:
a ≡ b (mód n)
si cumplen:
a = b + kn, para algún k ∈ Z
I
Zn contiene los números que van de 0 a n − 1.
I
Propiedades para la suma: asociativa, conmutativa, elemento neutro y
elemento simétrico.
I
Propiedades para el producto: asociativa, conmutativa y elemento
neutro.
I
Zn con la operación suma es un grupo conmutativo.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Aritmética Modular
19 de marzo de 2010
21 / 41
Inversas en aritmética modular
Inversas en Zn
Existencia
I
a tiene inversa módulo n solo si a y n son primos entre sı́.
I
Si n es primo, Zn tiene estructura de cuerpo, ya que todos sus
elementos tienen inversa excepto el cero.
Función de Euler φ(n)
I
Indica cuántos números menores que n son primos relativos con n.
Teoremas:
I
Si mcd(a, n) = 1, entonces aφ(n) ≡ 1
(mód n).
I
(de Fermat): Si p es primo, ap−1 ≡ 1
(mód p).
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
22 / 41
Aritmética Modular
Inversas en aritmética modular
Cálculo de Inversas y Teorema Chino del Resto
Cálculo de Inversas
1. Usar la función de Euler φ(n).
2. Usar el algoritmo extendido de Euclides, ya que:
I
I
En el último paso, 1 = nui + avi .
En consecuencia, avi ≡ 1 (mód n).
Teorema Chino del Resto
I
Dada una serie de ecuaciones en congruencias módulo p1 , p2 , ..., pr ,
siendo los pi primos relativos, de la forma:
x ≡ xi
I
(mód pi )
Si n = p1 · p2 · ... · pr , todas las ecuaciones tienen una única solución
común en [0, n − 1].
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Aritmética Modular
19 de marzo de 2010
23 / 41
Exponenciación y Logaritmos Discretos
Exponenciación y Logaritmos Discretos
Algoritmo rápido de exponenciación
I
Permite calcular potencias de forma eficiente.
Logaritmos Discretos
I
Problema inverso a la exponenciación. Dados a,b y n, encontrar c tal
que:
a ≡ b c (mód n).
I
Es un problema computacionalmente difı́cil de resolver.
Problema de Diffie-Hellman
I
Dados α, αa y αb , encontrar αab .
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
24 / 41
Aritmética Modular
Factorización
Factorización
I
Problema inverso al de la multiplicación.
I
También es un problema difı́cil.
I
Algoritmos de factorización:
I
I
I
Método de Fermat.
Método p − 1.
Métodos cuadráticos. Se basan en la ecuación:
x2 ≡ y2
(mód n).
Por tanto, n|(x + y )(x − y ), por lo que n ha de tener factores comunes
con (x + y ) y (x − y ).
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Aritmética Modular
19 de marzo de 2010
25 / 41
Tests de primalidad
Tests de primalidad
I
Para saber si un número es primo, basta con intentar factorizarlo, lo
cual es muy ineficiente.
I
¿Cómo saber si un número es primo?
I
Algoritmos probabilı́sticos:
I
I
I
Devuelven verdadero o falso con una probabilidad de fallo.
Lehmann (50 %), Rabin-Miller (25 %).
Ejecutándolos varias veces, la probabilidad de fallo se reduce
exponencialmente.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
26 / 41
Aritmética Modular
Anillos de Polinomios
Anillos de Polinomios
Definición:
I
Sea R un anillo conmutativo. Un polinomio con variable x sobre R se
define como:
f (x) = an x n + an−1 x n−1 + ... + a1 x + a0
con ai ∈ R.
I
El conjunto de polinomios R[x] tiene estructura de anillo conmutativo.
I
Los polinomios pueden ser descompuestos como productos de otros
polinomios.
I
Los polinomios irreducibles son análogos a los números primos.
I
Podemos definir clases de equivalencia módulo f (x), análogas a los
conjuntos Zn .
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Aritmética Modular
19 de marzo de 2010
27 / 41
Anillos de Polinomios
Polinomios en Zn
I
Podemos definir polinomios con coeficientes en Zn , particularmente
en Z2 :
I
I
I
I
Los polinomios pueden representarse mediante secuencias de bits.
Las sumas son operaciones or-exclusivo.
Los productos son desplazamientos y sumas.
Resultan muy eficientes para implementaciones hardware.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
28 / 41
Curvas Elı́pticas
Índice
Teorı́a de la Información
Complejidad Algorı́tmica
Aritmética Modular
Curvas Elı́pticas
Números Aleatorios
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Curvas Elı́pticas
19 de marzo de 2010
29 / 41
Curvas Elı́pticas en R
Curvas Elı́pticas en R
Definición:
Una curva elı́ptica sobre R es el conjunto de los puntos del plano (x, y )
que cumplen la ecuación:
y 2 = x 3 + ax + b
a)
b)
y 2 = x 3 − 5x + 1
Manuel Lucena (Dpto. Informática)
y 2 = x 3 − 3x + 4
3. Bases Teóricas
19 de marzo de 2010
30 / 41
Curvas Elı́pticas
Curvas Elı́pticas en R
Grupo de Curva Elı́ptica E (R)
Compuesto por todos los puntos de la curva, más un punto O, situado en
el infinito.
I
Definiremos una operación suma con las siguientes propiedades:
I
I
I
r + O = O + r = r (elemento neutro).
∀r, ∃s tal que r + s = O (elemento simétrico).
Sumar un punto p consigo mismo k veces ⇒ multiplicar p por el
entero k.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Curvas Elı́pticas
19 de marzo de 2010
31 / 41
Curvas Elı́pticas en R
Interpretación Gráfica de la Suma en E (R)
Sumar r y s:
Sumar p consigo mismo:
-t
-t
p
s
r
t
t
a)
Manuel Lucena (Dpto. Informática)
b)
3. Bases Teóricas
19 de marzo de 2010
32 / 41
Curvas Elı́pticas
Curvas elı́pticas en otros conjuntos
Curvas elı́pticas en otros conjuntos
En GF (n)
y 2 ≡ x 3 + ax + b
(mód n)
I
No tienen representación gráfica.
I
La suma se efectúa mediante las expresiones analı́ticas.
En GF (2n )
y 2 + xy ≡ x 3 + ax + b
I
(mód p(x))
En este caso, el conjunto base está compuesto por polinomios con
coeficientes en Z2 .
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Curvas Elı́pticas
19 de marzo de 2010
33 / 41
Logaritmos Discretos en Curvas Elı́pticas
Problema de los Logaritmos Discretos en Curvas Elı́pticas
I
Sea p un punto de una curva elı́ptica.
I
Sea hpi el conjunto {O, p, 2p, 3p,. . . }.
I
Para todo q ∈ hpi, debe existir un entero k tal que
kp = q
Problema de los Logaritmos Discretos en Curvas Elı́pticas
I
Hallar k ∈ N tal que q = kp.
I
Es un problema difı́cil, apto para su uso en Criptografı́a.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
34 / 41
Números Aleatorios
Índice
Teorı́a de la Información
Complejidad Algorı́tmica
Aritmética Modular
Curvas Elı́pticas
Números Aleatorios
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
35 / 41
Números Aleatorios
Importancia de los Números Aleatorios en Criptografı́a
Es fundamental poder generar valores impredecibles y sin relación
estadı́stica entre ellos.
I
Claves de sesión.
I
Números primos para las claves privadas.
I
...
Generadores tradicionales
I
Generan secuencias que superan los test estadı́sticos de aleatoriedad.
I
Son predecibles. ⇐ Inadmisible
I
Son reproducibles. ⇐ Inadmisible
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
36 / 41
Números Aleatorios
Generadores aleatorios
Secuencias Pseudoaleatorias
Secuencias Estadı́sticamente Aleatorias
I
Pasan los tests estadı́sticos de aleatoriedad.
I
Predecibles y reproducibles a partir de porciones pequeñas de la
secuencia.
Secuencias Criptográficamente Aleatorias
I
Calcular el siguiente valor de la secuencia a partir de una porción
arbitraria de la misma resulta intratable.
I
Usan información secreta de inicialización y estado.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Números Aleatorios
19 de marzo de 2010
37 / 41
Generadores aleatorios
Secuencias Aleatorias
Una secuencia es totalmente aleatoria si no puede reproducirse de manera
fiable.
I
I
Una computadora es determinista (predecible).
Fuentes externas de aleatoriedad:
I
I
I
I
I
I
Conversores A/D (tarjetas de sonido).
Actividad de dispositivos externos (disco duro).
Actividad del usuario.
Dispositivos hardware especı́ficamente diseñados.
...
Podemos mezclar varias fuentes externas de aleatoriedad.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
38 / 41
Números Aleatorios
Generadores aleatorios
Clasificación de las secuencias aleatorias
Secuencias Aleatorias
(no reproducibles)
Secuencias Pseudoaleatorias
(reproducibles)
Secuencias
Criptográficamente
Aleatorias
Secuencias
Estadísticamente
Aleatorias
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
Números Aleatorios
19 de marzo de 2010
39 / 41
Generadores aleatorios
Eliminación del Sesgo
I
Normalmente, p(1) = 0,5 + d y p(0) = 0,5 − d.
Mediante bits de paridad
I
I
Agrupar la secuencia de n en n bits y tomar la paridad.
log2 (2)
, el sesgo resultante es inferior a .
Si n >
log2 (2d)
Método de Von Neumann
I
Agrupar los bits de dos en dos. Descartar los pares 00 y 11.
I
Asignar un 1 al par 10 y un 0 al par 01.
I
Los bits de la salida son equiprobables.
Funciones resumen
I
Conociendo la entropı́a de la secuencia original.
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
40 / 41
Números Aleatorios
Generadores aleatorios
Generadores Aleatorios
X9.17
I
A partir de una semilla s0 , los valores gi de la secuencia se calculan:
gn = DES(k, DES(k, t) ⊕ sn )
sn+1 = DES(k, DES(k, t) ⊕ gn )
Blum Blum Shub
I
Sean p y q números primos tales que p ≡ 3(mód 4) y q ≡ 3(mód 4),
y n = p · q:
s0 = (x 2 )(mód n)
si+1 = (si2 )(mód n)
Manuel Lucena (Dpto. Informática)
3. Bases Teóricas
19 de marzo de 2010
41 / 41
Criptografı́a y Seguridad en Computadores
Tema 4. Algoritmos Criptográficos
1a Parte: Criptografı́a Clásica
Manuel J. Lucena López
[email protected]
Departamento de Informática
Universidad de Jaén
19 de marzo de 2010
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
19 de marzo de 2010
1 / 19
19 de marzo de 2010
2 / 19
Introducción
Índice
Introducción
Cifrados de Sustitución
Cifrados de Transposición
Máquinas de Rotores
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
Introducción
La Criptografı́a Clásica
I
Abarca desde los inicios de la escritura hasta la II Guerra Mundial.
Caracterı́sticas
I
Comprende técnicas de cifrado que pueden ser ejecutadas a mano.
I
Considerada en ocasiones como un pasatiempo o un reto intelectual.
I
Sus algoritmos pueden romperse con recursos computacionales
relativamente modestos, según los estándares actuales.
I
Empleada por Julio César, Leonardo Da Vinci, Edgar Allan Poe,
Arthur Conan Doyle, Francis Bacon, etc.
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
19 de marzo de 2010
3 / 19
19 de marzo de 2010
4 / 19
Cifrados de Sustitución
Índice
Introducción
Cifrados de Sustitución
Cifrados de Transposición
Máquinas de Rotores
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
Cifrados de Sustitución
Cifrados de Sustitución
I
Se basan en cambiar unos sı́mbolos del alfabeto por otros: confusión.
Tipos
I
Monoalfabéticos: la sustitución es siempre la misma, a lo largo de
todo el texto.
I
Polialfabéticos: la sustitución de cada sı́mbolo depende de su posición
en el texto claro.
Dispositivo de cifrado monoalfabético empleado por el
Ejército Confederado de los EE.UU.
Manuel Lucena (Dpto. Informática)
Cifrado monoalfabético dibujado por Conan Doyle para
The adventure of the dancing men.
4a. Criptografı́a Clásica
Cifrados de Sustitución
19 de marzo de 2010
5 / 19
Cifrados Monoalfabéticos
Cifrados Monoalfabéticos
Algoritmo de César
I
Cada sı́mbolo c del criptograma se calcula a partir de cada sı́mbolo m
del mensaje original según la función: c = (m + 3) mód 26.
I
El conjunto K de claves tiene un único elemento.
Sustitución afı́n
I
Función de cifrado para un alfabeto de N sı́mbolos:
E(a,b) (m) = (a · m + b) mód N.
I
Dos parámetros: a y b.
I
Si a = 1 y b = 3, tenemos el algoritmo de César.
Cifrado Monoalfabético General
I
La transformación es arbitraria.
I
Tenemos N! posibles claves.
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
19 de marzo de 2010
6 / 19
Cifrados de Sustitución
Cifrados Monoalfabéticos
Criptoanálisis de Cifrados Monoalfabéticos
I
Las propiedades estadı́sticas del texto claro se conservan en el
criptograma.
I
Las letras más frecuentes en el criptograma corresponderán con los
sı́mbolos más frecuentes del idioma original.
I
Basta con emparejar el histograma de frecuencias del criptograma con
el del idioma original.
Distancia de Unicidad
S=
H(K )
log2 (N!)
=
D
D
I
D: redundancia del lenguaje empleado en el mensaje original.
I
N: es el número de sı́mbolos del lenguaje.
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
Cifrados de Sustitución
19 de marzo de 2010
7 / 19
Cifrados Polialfabéticos
Cifrados Polialfabéticos
I
Se basan en una aplicación cı́clica de d cifrados monoalfabéticos
diferentes.
Cifrado de Vigenère
I
Clave: K = {k0 , k1 , . . . kd−1 }.
I
Función de cifrado: Ek (mi ) = mi + k(i
mód d)
(mód n)
Criptoanálisis
I
I
Conociendo el valor de d, aplicamos análisis de frecuencias a cada
subconjunto de los sı́mbolos del mensaje por separado.
Para conocer d, aplicamos el método de Kasiski.
1. Buscar subcadenas repetidas de tres o más sı́mbolos.
2. Medir las distancias si que las separan.
3. d: máximo común divisor de los si .
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
19 de marzo de 2010
8 / 19
Cifrados de Sustitución
Cifrados de Sustitución Homofónica
Cifrados de Sustitución Homofónica
Caracterı́sticas
I
Hacen corresponder a un sı́mbolo del texto claro varios sı́mbolos
posibles del texto cifrado, de forma aleatoria.
I
Tratan de aplanar el histograma de frecuencias, dificultando el
criptoanálisis.
I
En la práctica, reducen o eliminan la redundancia del mensaje cifrado,
al hacer todos sus sı́mbolos equiprobables.
Inconvenientes
I
Necesitamos un alfabeto de salida mayor que el de entrada.
I
Es difı́cil conseguir un histograma totalmente plano.
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
19 de marzo de 2010
9 / 19
Cifrados de Transposición
Índice
Introducción
Cifrados de Sustitución
Cifrados de Transposición
Máquinas de Rotores
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
19 de marzo de 2010
10 / 19
Cifrados de Transposición
Cifrados de Transposición
I
Se basan en cambiar de lugar los sı́mbolos del mensaje: difusión.
I
Ejemplo: el Escitalo.
I
Normalmente, se toma el mensaje en bloques de n sı́mbolos y se
reordena de alguna forma.
I
Texto claro: El perro de San Roque no tiene
rabo.
I
Clave: {3, 2, 5, 1, 4}.
I
Texto cifrado: “ Osonealr r irednu eoere et p
aqonb”.
Manuel Lucena (Dpto. Informática)
1
E
R
E
E
T
4a. Criptografı́a Clásica
Cifrados de Transposición
2
L
R
R
I
R
3
O
S
O
N
E
A
4
P
A
Q
O
N
B
5
E
D
N
U
E
O
19 de marzo de 2010
11 / 19
Criptoanálisis de los cifrados de Transposición
Criptoanálisis de los cifrados de Transposición
I
Las frecuencias relativas de los sı́mbolos se conservan. El enfoque
empleado en los cifrados de sustitución no sirve.
I
Podemos analizar las frecuencias de pares y tripletas de sı́mbolos.
I
Muchos pares y ternas de sı́mbolos nunca aparecen en los lenguajes
humanos.
I
Conociendo el valor de n, tenemos n! posibles claves.
I
Aplicaremos un enfoque basado en la fuerza bruta.
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
19 de marzo de 2010
12 / 19
Máquinas de Rotores
Índice
Introducción
Cifrados de Sustitución
Cifrados de Transposición
Máquinas de Rotores
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
Máquinas de Rotores
19 de marzo de 2010
13 / 19
La Máquina Enigma
La Máquina Enigma
I
Inventada en 1923 por Arthur Scherbius.
I
Adoptada por el ejército del III Reich durante la II Guerra Mundial.
I
La clave viene dada por la posición inicial de una serie de rotores.
Máquina Enigma
Manuel Lucena (Dpto. Informática)
Rotor de una Enigma
4a. Criptografı́a Clásica
19 de marzo de 2010
14 / 19
Máquinas de Rotores
La Máquina Enigma
Funcionamiento de Enigma
I
Tres rotores móviles.
I
Un reflector.
I
Rotores y reflector llevan contactos
internamente.
I
Al pulsar una tecla, se forma un circuito
que ilumina una letra.
I
Los rotores giran tras cada pulsación.
I
La posición no se repite hasta haber
tecleado 263 = 17,576 caracteres.
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
Máquinas de Rotores
19 de marzo de 2010
15 / 19
La Máquina Enigma
Mejoras a Enigma
I
Se hicieron diversas mejoras: aumento del número de rotores, rotores
intercambiables, etc.
I
El clavijero o stecker:
Detalle del clavijero (stecker).
I
Intercambia hasta diez caracteres antes y después de los rotores.
I
Aumenta hasta 1017 el número de posibles claves.
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
19 de marzo de 2010
16 / 19
Máquinas de Rotores
La Máquina Enigma
La Bomba de Turing
I
Ideada por Alan Turing, basándose en el ciclómetro
de Rejewsky, Rózycki y Zygalski
I
Formada por muchas máquinas Enigma
encadenadas, lo que anulaba el stecker.
I
Necesitaba del empleo de pivotes.
Enigma no puede codificar una letra en sı́ misma.
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
Máquinas de Rotores
19 de marzo de 2010
17 / 19
La Máquina Enigma
Consideraciones Teóricas sobre Enigma
I
Un rotor es una permutación π del alfabeto de entrada.
I
Todas las letras tienen imagen, y no puede haber dos letras con la
misma imagen.
I
La permutación π3 asociada al reflector cumple que π3 = π3−1 .
I
Permutación que produce la máquina:
πtotal = hπ0 , π1 , π2 , π3 , π2−1 , π1−1 , π0−1 i
Otras máquinas de Rotores
I
Purple, Sigaba, etc.
Manuel Lucena (Dpto. Informática)
4a. Criptografı́a Clásica
19 de marzo de 2010
18 / 19
Máquinas de Rotores
El cifrado de Lorenz
El Cifrado de Lorenz
I
I
I
I
Se hacı́a con la máquina SZ40, más compleja que Enigma.
Permitı́a codificar teletipos.
Simulaba un cifrado seguro de Shannon.
Roto por Colossus, el primer ordenador programable, diseñado por el
Dr. Tommy Flowers.
Máquina de Lorenz
Manuel Lucena (Dpto. Informática)
Colossus
4a. Criptografı́a Clásica
19 de marzo de 2010
19 / 19
Criptografı́a y Seguridad en Computadores
Tema 4. Algoritmos Criptográficos
2a Parte: Cifrados por Bloques
Manuel J. Lucena López
[email protected]
Departamento de Informática
Universidad de Jaén
20 de abril de 2009
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
1 / 28
20 de abril de 2009
2 / 28
Introducción
Índice
Introducción
El algoritmo DES
El algoritmo IDEA
Algoritmo AES
Modos de Operación
Criptoanálisis
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
Introducción
Introducción
Algoritmos de Cifrado por Bloques
Dividen el mensaje en bloques de igual tamaño, y los cifran por separado.
I
Para hacer un buen sistema de cifrado, la sustitución serı́a suficiente.
I
Sin embargo, codificar tablas de sustitución grandes es complicado.
I
En la práctica, se mezclan operaciones de sustitución con otras de
transposición.
Cifrado de Producto
I
Combinación más o menos compleja de operaciones simples de
sustitución y transposición.
I
Estructura denominada red de sustitución-permutación.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
Introducción
20 de abril de 2009
3 / 28
20 de abril de 2009
4 / 28
Redes de Feistel
Redes de Feistel
I
Dividen el bloque en dos mitades, L y
R.
I
Combinan los bloques con una serie de
valores Ki , empleando una función
arbitraria f .
I
Para descifrar, basta emplear la misma
red, invirtiendo el orden de los Ki .
I
Muchos algoritmos usan esta
estructura: DES, Lucifer, FEAL,
CAST, Blowfish, etc.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
Introducción
Cifrados con estructura de Grupo
Cifrados con estructura de Grupo
Definición:
I
Decimos que un cifrado tiene estructura de grupo si:
∀ k1 , k2 , M
∃ k3
tal que
Ek2 (Ek1 (M)) = Ek3 (M)
I
No es una propiedad deseable.
I
Generalmente, resulta muy difı́cil demostrar que un algoritmo posee
(o carece de) esta estructura.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
Introducción
20 de abril de 2009
5 / 28
S-Cajas
S-Cajas
I
Son la unidad básica de sustitución.
I
Una S-Caja de m × n bits tiene m bits de entrada y n bits de salida.
I
m puede ser menor, mayor o igual que n.
Ejemplos de S-Caja individual y de agrupación de S-Cajas.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
6 / 28
El algoritmo DES
Índice
Introducción
El algoritmo DES
El algoritmo IDEA
Algoritmo AES
Modos de Operación
Criptoanálisis
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
7 / 28
El algoritmo DES
El algoritmo DES
I
DES: Data Encryption Standard.
I
Estándar para documentos no clasificados en EE.UU. desde 1976
hasta finales de los 90.
I
Longitud de bloque: 64 bits. Longitud efectiva de clave: 56 bits.
I
Estructura: Red de Feistel con 16 rondas.
I
Una permutación inicial y otra final, inversa de la primera.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
8 / 28
El algoritmo DES
Función f de DES
Esquema de la función f en DES.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
9 / 28
El algoritmo DES
Generación de los valores Ki
Generación de los Ki en DES.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
10 / 28
El algoritmo DES
Claves débiles en DES
Claves débiles en DES
I
Claves débiles: Todos los Ki son iguales ⇒ Ek (Ek (M)) = M.
I
Claves semidébiles: Generan secuencias con solo dos valores distintos
de Ki .
Claves Débiles
Clave
Clave tras EP1
0101010101010101
0000000 0000000
1F1F1F1F0E0E0E0E
0000000 FFFFFFF
E0E0E0E0F1F1F1F1
FFFFFFF 0000000
FEFEFEFEFEFEFEFE
FFFFFFF FFFFFFF
Manuel Lucena (Dpto. Informática)
Claves Semidébiles
Clave
Clave tras EP1
01FE01FE01FE01FE
AAAAAAA AAAAAAA
FE01FE01FE01FE01
5555555 5555555
1FE01FE00EF10EF1
AAAAAAA 5555555
E01FE01FF10EF10E
5555555 AAAAAAA
01E001E001F101F1
AAAAAAA 0000000
E001E001F101F101
5555555 0000000
1FFE1FFE0EFE0EFE
AAAAAAA FFFFFFF
FE1FFE1FFE0EFE0E
5555555 FFFFFFF
011F011F010E010E
0000000 AAAAAAA
1F011F010E010E01
0000000 5555555
E0FEE0FEF1FEF1FE
FFFFFFF AAAAAAA
FEE0FEE0FEF1FEF1
FFFFFFF 5555555
4b. Cifrados por Bloques
El algoritmo DES
20 de abril de 2009
11 / 28
Variantes de DES
Variantes de DES
DES múltiple:
I
Se aplica el algoritmo DES varias veces sobre el mismo bloque.
I
Funciona porque DES no tiene estructura de grupo.
I
Ejemplo: C = Ek1 (Ek−1
(Ek1 (M)))
2
I
Longitud efectiva de clave: hasta 168 bits.
I
Esta estrategia se puede aplicar a cualquier algoritmo.
DES con subclaves independientes:
I
Permite claves de hasta 16 × 48 = 768 bits.
I
En la práctica, no es mucho más difı́cil de criptoanalizar que DES
estándar.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
12 / 28
El algoritmo DES
Variantes de DES
Variantes de DES
DES generalizado:
I
Se emplea una red de Feistel generalizada, que divide el bloque en n
trozos de 32 bits.
I
No mejora sustancialmente la seguridad.
DES con S-Cajas alternativas:
I
Modificando las S-Cajas.
I
Cuando se desarrolló el criptoanálisis diferencial, a inicios de los 90, se
descubrió que las S-Cajas de DES son resistentes frente a este ataque.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
13 / 28
20 de abril de 2009
14 / 28
El algoritmo IDEA
Índice
Introducción
El algoritmo DES
El algoritmo IDEA
Algoritmo AES
Modos de Operación
Criptoanálisis
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
El algoritmo IDEA
El algoritmo IDEA
I
International Data Encryption Algorithm.
I
Desarrollado en 1992.
I
Bloque: 64 bits. Clave: 128 bits.
I
Optimizado para su implementación en microprocesadores modernos.
Se basa en las siguientes operaciones:
I
I
I
I
XOR.
Suma módulo 216 .
Producto módulo 216 + 1.
I
En este caso, 216 se representa con el cero.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
El algoritmo IDEA
20 de abril de 2009
15 / 28
Estructura de IDEA
Estructura de IDEA
I
I
Se divide el bloque en cuatro partes de 16 bits: X1 , X2 , X3 y X4 .
Se calculan 52 subclaves:
I
I
Las 8 primeras dividiendo la clave en 8 trozos de 16 bits.
El resto, desplazando 25 bits sucesivamente y volviendo a dividir.
I
Cifrado: se aplican las 52 subclaves en 8 rondas.
I
Descifrado: se aplican los opuestos o inversas en distinto orden, con el
mismo algoritmo.
Ronda
1
2
3
4
5
6
7
8
Final
Z1
Z7
Z13
Z19
Z25
Z31
Z37
Z43
Z49
Z2
Z8
Z14
Z20
Z26
Z32
Z38
Z44
Z50
Subclaves de Cifrado
Z3
Z4
Z5
Z9
Z10
Z11
Z15
Z16
Z17
Z21
Z22
Z23
Z27
Z28
Z29
Z33
Z34
Z35
Z39
Z40
Z41
Z45
Z46
Z47
Z51
Z52
Manuel Lucena (Dpto. Informática)
Z6
Z12
Z18
Z24
Z30
Z36
Z42
Z48
−1
Z49
−1
Z43
−1
Z37
−1
Z31
−1
Z25
−1
Z19
−1
Z13
Z7−1
Z1−1
4b. Cifrados por Bloques
Subclaves de Descifrado
−1
−Z50
−Z51
Z52
Z47
−1
−Z45
−Z44
Z46
Z41
−1
−Z39
−Z38
Z40
Z35
−1
−Z33
−Z32
Z34
Z29
−1
−Z27
−Z26
Z28
Z23
−1
−Z21
−Z20
Z22
Z17
−1
−Z15
−Z14
Z16
Z11
−1
−Z9
−Z8
Z10
Z5
−Z2
−Z3
Z4−1
Z48
Z42
Z36
Z30
Z24
Z18
Z12
Z6
20 de abril de 2009
16 / 28
Algoritmo AES
Índice
Introducción
El algoritmo DES
El algoritmo IDEA
Algoritmo AES
Modos de Operación
Criptoanálisis
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
Algoritmo AES
20 de abril de 2009
17 / 28
Introducción
Algoritmo AES
I
También conocido como Rijndael.
I
Adoptado por el NIST como sucesor de AES.
I
Tamaño de bloque y clave variables, entre 128 y 256 bits.
I
Usa una S-Caja 8 × 8, calculada empleando GF (28 ).
Estructura
I
I
Diseñado expresamente para resistir a los criptoanálisis lineal y
diferencial.
Cada ronda: cuatro funciones invertibles, organizadas en tres capas:
1. Mezcla Lineal: DesplazarFila y MezclarColumnas.
2. Capa no Lineal: S-Caja 8 × 8 (función ByteSub).
3. Adición de clave: Or-exclusivo.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
18 / 28
Algoritmo AES
Elementos de AES
Elementos de AES
I
Estado (S): Matriz de bytes de cuatro filas, y Nb columnas.
I
Clave (Ki ): Matriz de bytes de cuatro filas, y Nk columnas.
Rondas:
I
1.
2.
3.
4.
S
S
S
S
←−ByteSub(S)
←−DesplazarFila(S)
←−MezclarColumnas(S)
←− Ki ⊕ S
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
Algoritmo AES
20 de abril de 2009
19 / 28
Elementos de AES
Funciones DesplazarFila y MezclarColumnas
S
Cada columna se considera un polinomio con coeficientes en GF (28 ).
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
20 / 28
Algoritmo AES
Elementos de AES
Cifrado y Descifrado en AES
Cifrado:
I
Se aplican las rondas con una serie de Ki generados a partir de K .
Descifrado:
I
Se aplican las inversas de todas las funciones, en orden inverso, con
los Ki también en orden inverso.
Cálculo de las subclaves Ki
I
Función de expansión + Función de selección.
I
Se emplea la aritmética en GF (28 ).
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
21 / 28
20 de abril de 2009
22 / 28
Modos de Operación
Índice
Introducción
El algoritmo DES
El algoritmo IDEA
Algoritmo AES
Modos de Operación
Criptoanálisis
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
Modos de Operación
Modos de Operación
I
Un mensaje tı́pico es más largo que un bloque.
I
Si el mensaje no ocupa un número exacto de bloques, hay que rellenar
el último (padding):
I
Cifrar cada bloque de forma independiente no es siempre lo mejor.
I
Hay diversas estrategias, llamadas Modos de Operación.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
Modos de Operación
20 de abril de 2009
23 / 28
Modo ECB
Modo ECB
Modo ECB (Electronic Code Book)
I
Cada bloque se cifra de forma independiente.
I
Interesante para cifrar ficheros de acceso aleatorio.
I
Un atacante puede realizar inserciones, sustituciones, permutaciones y
eliminaciones.
I
Pueden detectarse patrones repetitivos en el mensaje.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
24 / 28
Modos de Operación
Modo CBC
Modo CBC
Modo CBC (Cipher Block Chaining Mode)
I
Los bloques están encadenados. Se usa un vector de inicialización.
I
Dos mensajes que difieran en un bit se cifran igual hasta el bloque en
el que esté ese bit.
I
Si falla el descifrado de un bloque, se pierde el siguiente.
I
Impide eliminaciones, inserciones, permutaciones y sustituciones.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
Modos de Operación
20 de abril de 2009
25 / 28
Modo CFB
Modo CFB
Modo CFB (Cihper-Feedback)
I
Cada bloque se cifra y se combina con el siguiente bloque del mensaje
original.
I
En el cifrado, cada bloque afecta a todos los siguientes.
I
Si se produce un error en el descifrado, tiene alcance limitado.
I
Puesto que el paso final es un XOR entre Mi y Ci , éste puede hacerse
a trozos.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
26 / 28
Criptoanálisis
Índice
Introducción
El algoritmo DES
El algoritmo IDEA
Algoritmo AES
Modos de Operación
Criptoanálisis
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
27 / 28
Criptoanálisis
Criptoanálisis de cifrados por bloques
Criptoanálisis Diferencial
I
Se calculan pares de mensajes que difieren en un bit.
I
Se estudian cómo se propagan esas diferencias a lo largo de las rondas
del algoritmo en cuestión, para una clave dada.
I
Cifrando pares de mensajes y observando sus diferencias, se asignan
probabilidades a las distintas claves, hasta dar con la correcta.
Criptoanálisis Lineal
I
Se toman algunos bits del texto claro, algunos del texto cifrado
asociado, y se hace un or-exclusivo entre todos ellos.
I
El resultado será 0 o 1 con probabilidad próxima a 1/2, variando el
resto de bits del texto claro.
I
Si hay un sesgo, puede explotarse para ganar conocimiento sobre la
clave de cifrado.
Manuel Lucena (Dpto. Informática)
4b. Cifrados por Bloques
20 de abril de 2009
28 / 28
Criptografı́a y Seguridad en Computadores
Tema 4. Algoritmos de Cifrado.
3a Parte: Cifrados de Flujo
Manuel J. Lucena López
[email protected]
Departamento de Informática
Universidad de Jaén
4 de mayo de 2010
Manuel Lucena (Dpto. Informática)
4c. Cifrados de Flujo
4 de mayo de 2010
1 / 11
4 de mayo de 2010
2 / 11
Introducción
Índice
Introducción
Tipos de Generadores de Secuencia
Registros de Desplazamiento Retroalimentados
Otros Generadores de Secuencia
Manuel Lucena (Dpto. Informática)
4c. Cifrados de Flujo
Introducción
Los Cifrados de Flujo
I
Tratan de imitar el cifrado de Vernam, que es Seguro de Shannon.
I
Generan una secuencia de longitud igual al mensaje, y la combinan
con éste.
ci = mi ⊕ oi
I
El destinatario regenera la secuencia a partir de la misma semilla y
recupera el mensaje original.
I
El generador de secuencia debe ser criptográficamente aleatorio.
El estudio de los cifrados de flujo se reduce al estudio de los generadores
de secuencia.
Manuel Lucena (Dpto. Informática)
4c. Cifrados de Flujo
4 de mayo de 2010
3 / 11
4 de mayo de 2010
4 / 11
Tipos de Generadores de Secuencia
Índice
Introducción
Tipos de Generadores de Secuencia
Registros de Desplazamiento Retroalimentados
Otros Generadores de Secuencia
Manuel Lucena (Dpto. Informática)
4c. Cifrados de Flujo
Tipos de Generadores de Secuencia
Generadores Sı́ncronos
I
La secuencia es generada de forma independiente del texto claro y del
texto cifrado.
I
El texto cifrado se obtiene combinando la secuencia con el texto
claro, mediante una función reversible w .
si+1 = g (si , k),
Manuel Lucena (Dpto. Informática)
oi = h(si , k),
4c. Cifrados de Flujo
ci = w (mi , oi )
4 de mayo de 2010
5 / 11
Tipos de Generadores de Secuencia
Generadores Ası́ncronos
I
La salida del generador es el mensaje cifrado.
I
Se usan los valores anteriores del texto cifrado para generar los
siguientes valores de la secuencia.
oi = h(k, ci−t , ci−t+1 , . . . , ci−1 ),
Manuel Lucena (Dpto. Informática)
4c. Cifrados de Flujo
ci = w (oi , mi )
4 de mayo de 2010
6 / 11
Registros de Desplazamiento Retroalimentados
Índice
Introducción
Tipos de Generadores de Secuencia
Registros de Desplazamiento Retroalimentados
Otros Generadores de Secuencia
Manuel Lucena (Dpto. Informática)
4c. Cifrados de Flujo
4 de mayo de 2010
7 / 11
Registros de Desplazamiento Retroalimentados
Registros de Desplazamiento Retroalimentados
I
I
Compuestos por un conjunto de L estados {S0 , S1 , ...SL−1 }.
Cada Si almacena un bit.
I
En cada paso, los registros se desplazan, siendo S0 el bit que sale. El
nuevo SL−1 es una función de los Si en el paso anterior.
I
Pueden ser lineales o no lineales, según sea la función que se aplique
a los Si .
Manuel Lucena (Dpto. Informática)
4c. Cifrados de Flujo
4 de mayo de 2010
8 / 11
Otros Generadores de Secuencia
Índice
Introducción
Tipos de Generadores de Secuencia
Registros de Desplazamiento Retroalimentados
Otros Generadores de Secuencia
Manuel Lucena (Dpto. Informática)
4c. Cifrados de Flujo
Otros Generadores de Secuencia
4 de mayo de 2010
9 / 11
Cifrados por Bloques en modo OFB
Cifrados por Bloques en modo OFB
I
El modo de operación OFB (Ouput-Feedback) genera secuencias
criptográficamente aleatorias.
I
Válido para construir cifrados de flujo sı́ncronos.
Manuel Lucena (Dpto. Informática)
4c. Cifrados de Flujo
4 de mayo de 2010
10 / 11
Otros Generadores de Secuencia
Algoritmos especı́ficos
Algoritmos de generación de secuencia
RC4
I
Desarrollado por Rivest en 1987.
I
Emplea una S-caja 8 × 8 dinámica.
I
Genera una secuencia de bytes con claves de hasta 2048 bits.
SEAL
I
Rogaway y Coppersmith (1993).
I
Extremadamente rápido.
I
Define una familia de funciones pseudoaleatorias, que combina para
generar la secuencia.
I
Tiene una fase de cálculo previa compleja, basada en SHA.
Manuel Lucena (Dpto. Informática)
4c. Cifrados de Flujo
4 de mayo de 2010
11 / 11
Criptografı́a y Seguridad en Computadores
Tema 4. Algoritmos de Cifrado.
4a Parte: Cifrados Asimétricos
Manuel J. Lucena López
[email protected]
Departamento de Informática
Universidad de Jaén
6 de mayo de 2010
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
6 de mayo de 2010
1 / 21
6 de mayo de 2010
2 / 21
Introducción
Índice
Introducción
Ataque de intermediario
Algoritmo RSA
Otros Algoritmos Asimétricos
Criptografı́a Asimétrica de Curva Elı́ptica
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
Introducción
La Criptografı́a Asimétrica
I
I
Introducida por Diffie y Hellman a mediados de los 70.
Las claves no son únicas, sino que forman pares.
I
I
I
El más extendido es RSA.
I
I
I
Si una cifra, a otra descifra, y viceversa.
Una se hace pública, y la otra se mantiene en secreto.
Rivest, Shamir y Adleman (1977).
Las longitudes tı́picas de clave que se consideran seguras son mucho
mayores que las de los algoritmos simétricos.
Sus algoritmos son más lentos que los simétricos.
I
Métodos de cifrado hı́bridos.
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
Introducción
6 de mayo de 2010
3 / 21
Problemas de la Criptografı́a Simétrica
Problemas de la Criptografı́a Simétrica
Número de claves necesarias
I
Con n interlocutores, son necesarias
n2 −n
2
claves diferentes.
Distribución de claves
I
Para generar un canal seguro de comunicaciones, se emplea una clave
simétrica.
I
Para distribuir la clave, es necesario tener un canal seguro de
comunicaciones.
Problema del huevo y la gallina.
I
La Criptografı́a asimétrica permite resolver estos problemas.
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
6 de mayo de 2010
4 / 21
Introducción
Aplicaciones
Aplicaciones de la Criptografı́a Asimétrica
Cifrado tradicional:
I
La clave pública del destinatario se usa para cifrar.
I
Problema de la distribución de claves: Resuelto.
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
Introducción
6 de mayo de 2010
5 / 21
6 de mayo de 2010
6 / 21
Aplicaciones
Aplicaciones de la Criptografı́a Asimétrica
Autentificación:
I
La clave privada del remitente se usa para cifrar.
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
Ataque de intermediario
Índice
Introducción
Ataque de intermediario
Algoritmo RSA
Otros Algoritmos Asimétricos
Criptografı́a Asimétrica de Curva Elı́ptica
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
6 de mayo de 2010
7 / 21
Ataque de intermediario
Ataques de intermediario
I
Un atacante C se sitúa entre A y B.
I
C roba la clave pública de B y la sustituye por la suya.
I
Cuando A quiere enviar un mensaje, emplea la clave de C, en lugar de
la de B.
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
6 de mayo de 2010
8 / 21
Ataque de intermediario
¿Cómo evitar los ataques de intermediario?
I
Resulta imposible.
I
Se pueden reducir riesgos, si una entidad de confianza firma las claves
públicas ⇒ Certificado Digital.
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
6 de mayo de 2010
9 / 21
Algoritmo RSA
Índice
Introducción
Ataque de intermediario
Algoritmo RSA
Otros Algoritmos Asimétricos
Criptografı́a Asimétrica de Curva Elı́ptica
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
6 de mayo de 2010
10 / 21
Algoritmo RSA
El algoritmo RSA
I
Desarrollado por R. Rivest, A. Shamir y L. Adleman (1977).
I
Uno de los más sencillos, seguros y fáciles de entender.
I
Se apoya en el Logaritmo Discreto y en la dificultad para factorizar
números enteros.
Generación de claves
I
I
I
I
I
n = p · q, con p, q primos.
e, primo relativo con (p − 1)(q − 1).
d ≡ e −1 (mód (p − 1)(q − 1)).
Clave pública: KP = (e, n).
Clave privada: Kp = (d, n).
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
Algoritmo RSA
6 de mayo de 2010
11 / 21
Cifrado y descifrado en RSA
Cifrado y descifrado en RSA
I
Cifrado: c = me (mód n).
I
Descifrado: m = c d (mód n).
I
Justificación:
c d = (me )d = med = mk(p−1)(q−1)+1 = (mk )(p−1)(q−1) · m
cd ≡ m
I
I
(mód n)
Factorización: Para conocer d a partir de (e, n), deberá factorizar n.
Logaritmo Discreto: Podemos cifrar un m arbitrario y obtener
c = me . Luego,
d = logc (m)
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
6 de mayo de 2010
12 / 21
Algoritmo RSA
Seguridad de RSA
Seguridad de RSA
I
Resolviendo la factorización o el logaritmo discreto, RSA quedarı́a
roto.
I
No está demostrado que no exista otro método para romper RSA, sin
necesidad de factorizar o resolver logaritmos.
I
Puede plantearse un ataque a la función φ(n).
I
Si p o q no son primos, el algoritmo no funciona.
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
Algoritmo RSA
6 de mayo de 2010
13 / 21
Vulnerabilidades de RSA
Vulnerabilidades de RSA
I
RSA puede resultar vulnerable si se emplea mal.
Posibles problemas:
I
I
Posee claves débiles:
me ≡ m
La longitud de clave puede ser un problema.
I
I
(mód n)
Cada vez se necesitan claves más largas.
Ataque de texto claro escogido:
I
I
Generamos m1 y m2 y pedimos a alguien que los firme.
El mensaje m = m1 · m2 quedará también firmado.
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
6 de mayo de 2010
14 / 21
Algoritmo RSA
Vulnerabilidades de RSA
Vulnerabilidades de RSA
Posibles Problemas:
I
Ataques de módulo común:
I
I
I
Ataques de exponente bajo:
I
I
I
No se debe generar más de un par de claves para un valor concreto de
p, q.
Un mismo mensaje m cifrado con dos claves e1 y e2 , puede ser
recuperado.
Un mismo m cifrado con tres claves distintas, en las que e = 3, puede
recuperarse.
Se evitan rellenando m con información aleatoria.
Firmar y codificar:
I
Nunca firmar un mensaje después de cifrarlo.
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
6 de mayo de 2010
15 / 21
6 de mayo de 2010
16 / 21
Otros Algoritmos Asimétricos
Índice
Introducción
Ataque de intermediario
Algoritmo RSA
Otros Algoritmos Asimétricos
Criptografı́a Asimétrica de Curva Elı́ptica
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
Otros Algoritmos Asimétricos
Algoritmo de Diffie-Hellman
El Algoritmo de Diffie-Hellman
I
Propuesto en 1976 por W. Diffie y M. Hellman.
I
Descubierto algunos años antes por los servicios de inteligencia
británicos (Malcolm J. Williamson), pero mantenido en secreto.
I
Permite acordar una información secreta por dos interlocutores no
autentificados.
Descripción
I
Interlocutores: A y B.
I
Información pública: p primo y α generador de Z∗p .
Algoritmo:
I
1.
2.
3.
4.
A
B
B
A
genera un valor x aleatorio, y envı́a a B: αx (mód p).
genera un valor y aleatorio, y envı́a a A: αy (mód p).
calcula K = (αx )y (mód p).
calcula K = (αy )x (mód p).
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
Otros Algoritmos Asimétricos
6 de mayo de 2010
17 / 21
Algoritmos de ElGamal y Rabin
Algoritmos de ElGamal y Rabin
Algoritmo de ElGamal
I
Diseñado inicialmente para firma digital, y extendido posteriormente
para cifrado.
I
El tamaño del mensaje firmado o cifrado es aproximadamente el doble
que el del mensaje original.
Algoritmo de Rabin
I
Basado en el problema del residuo cuadrático.
I
El cifrado es muy simple: c = m2 (mód n).
I
El descifrado es más complejo. Se generan cuatro mensajes y hay que
decidir cuál es el bueno.
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
6 de mayo de 2010
18 / 21
Otros Algoritmos Asimétricos
Algoritmo DSA
Algoritmo DSA
Digital Signature Algorithm
I
Propuesto por el NIST en 1991.
I
Variante del algoritmo de ElGamal.
I
Solo para generar y verificar firmas digitales.
I
Forma parte del protocolo DSS (Digital Signature Standard).
I
Diseñado para funcionar en conjunción con SHA-1.
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
6 de mayo de 2010
19 / 21
6 de mayo de 2010
20 / 21
Criptografı́a Asimétrica de Curva Elı́ptica
Índice
Introducción
Ataque de intermediario
Algoritmo RSA
Otros Algoritmos Asimétricos
Criptografı́a Asimétrica de Curva Elı́ptica
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
Criptografı́a Asimétrica de Curva Elı́ptica
Criptografı́a Asimétrica de Curva Elı́ptica
I
Adapta los algoritmos asimétricos al dominio de las curvas elı́pticas.
I
Reformula los algoritmos para convertir los problemas en Zn en
problemas análogos en curvas elı́pticas finitas.
I
Casi todos los algoritmos asimétricos poseen una versión de curva
elı́ptica.
Cifrado de ElGamal sobre Curvas Elı́pticas
I
Sea p un punto de una curva elı́ptica.
I
Sea n el cardinal de hpi. Tomamos un entero x entre 1 y n − 1.
I
y = p x es sustituido por y = xp.
I
a = p k es sustituido por a = kp.
I
...
Manuel Lucena (Dpto. Informática)
4d. Cifrados Asimétricos
6 de mayo de 2010
21 / 21
Criptografı́a y Seguridad en Computadores
Tema 4. Algoritmos de Cifrado.
5a Parte: Funciones Resumen
Manuel J. Lucena López
[email protected]
Departamento de Informática
Universidad de Jaén
25 de septiembre de 2008
Manuel Lucena (Dpto. Informática)
4e. Funciones Resumen
25 de septiembre de 2008
1 / 10
25 de septiembre de 2008
2 / 10
Funciones Resumen
Índice
Funciones Resumen
Funciones MDC
Funciones MAC
Manuel Lucena (Dpto. Informática)
4e. Funciones Resumen
Funciones Resumen
Funciones Resumen
I
Útiles para verificar la integridad de los datos.
I
A partir de un mensaje de longitud arbitraria, generan resúmenes
(hashes) de longitud fija.
I
Se produce una pérdida de información en el proceso, por lo que son
funciones irreversibles.
Tipos:
I
I
I
MAC: Emplean una clave para calcular la signatura.
MDC: No hacen uso de ninguna clave.
Manuel Lucena (Dpto. Informática)
4e. Funciones Resumen
Funciones Resumen
25 de septiembre de 2008
3 / 10
Propiedades
Propiedades de las Funciones Resumen
1. r (m) es de longitud fija, independientemente de la longitud de m.
2. Dado m, es fácil calcular r (m).
3. Dado m, resulta imposible obtener un m0 tal que r (m0 ) = r (m).
I
La idea es que cada mensaje tenga asociado un valor de r (m).
I
Aunque en teorı́a deben existir infinitos valores de m para un r (m),
debe ser muy difı́cil encontrarlos.
Propiedad adicional:
I
I
Debe ser difı́cil encontrar un par (m, m0 ) tal que r (m) = r (m0 ).
Manuel Lucena (Dpto. Informática)
4e. Funciones Resumen
25 de septiembre de 2008
4 / 10
Funciones MDC
Índice
Funciones Resumen
Funciones MDC
Funciones MAC
Manuel Lucena (Dpto. Informática)
4e. Funciones Resumen
Funciones MDC
25 de septiembre de 2008
5 / 10
Estructura
Estructura de una Función MDC
I
Se basan en funciones de compresión.
I
El mensaje se trocea en bloques de igual tamaño.
I
De forma iterativa, los bloques se van combinando con los resultados
anteriores.
Estructura de una función MDC
Manuel Lucena (Dpto. Informática)
4e. Funciones Resumen
25 de septiembre de 2008
6 / 10
Funciones MDC
Algoritmos MD5 y SHA-1
Algoritmos MD5 y SHA-1
MD5
I
Creado por Ron Rivest.
I
Genera hashes de 128 bits.
I
Procesa los mensajes en bloques de 512 bits.
I
Si el mensaje no es múltiplo de 512 bits, se alarga.
I
Cuatro rondas, con 16 operaciones cada una.
SHA-1
I
Desarrollado por la NSA como parte del DSS.
I
Procede del algoritmo SHA-0
I
Genera resúmenes de 160 bits, troceando el mensaje en bloques de
512 bits.
I
Posee cuatro rondas, con 20 operaciones cada una.
Manuel Lucena (Dpto. Informática)
4e. Funciones Resumen
Funciones MDC
25 de septiembre de 2008
7 / 10
Seguridad de las funciones MDC
Seguridad de las funciones MDC
I
Tanto MD5 como SHA-1 están en entredicho.
I
I
Alternativas: Familia SHA-2, Whirlpool, ...
El NIST ha convocado un proceso de selección de un nuevo algoritmo.
I
Colisión: par de mensajes (m, m0 ), tal que r (m) = r (m0 ).
I
Todos los MDC presentan colisiones.
Tipos de estrategias para hallar colisiones:
I
I
I
De preimagen: A partir de m, se busca un m0 .
De colisión: Se buscan pares (m, m0 ) arbitrarios.
Los ataques de preimagen son mucho más peligrosos que los de colisión.
Manuel Lucena (Dpto. Informática)
4e. Funciones Resumen
25 de septiembre de 2008
8 / 10
Funciones MAC
Índice
Funciones Resumen
Funciones MDC
Funciones MAC
Manuel Lucena (Dpto. Informática)
4e. Funciones Resumen
25 de septiembre de 2008
9 / 10
Funciones MAC
Funciones MAC
I
Emplean una clave secreta para calcular el resumen.
I
Permiten verificar tanto la integridad como el origen del mensaje.
Tipos:
1. Basados en cifrados por bloques en modo CBC.
2. HMAC: Aplicar un MDC a un mensaje modificado al que se ha
añadido la clave. Ejemplo:
MD5(k ⊕ opad, MD5(k ⊕ ipad, m))
3. Basados en generadores de secuencia.
Manuel Lucena (Dpto. Informática)
4e. Funciones Resumen
25 de septiembre de 2008
10 / 10
Criptografı́a y Seguridad en Computadores
Tema 5. Aplicaciones Criptográficas.
1a Parte: Protocolos Criptográficos
Manuel J. Lucena López
[email protected]
Departamento de Informática
Universidad de Jaén
17 de mayo de 2009
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
1 / 20
17 de mayo de 2009
2 / 20
Protocolos de comunicación Segura
Índice
Protocolos de comunicación Segura
El protocolo IPSec
Protocolo SSL
Protocolo TLS
Protocolo SSH
Manuel Lucena (Dpto. Informática)
5a. Protocolos
Protocolos de comunicación Segura
Protocolos versus Algoritmos Criptográficos
I
Cada algoritmo criptográfico permite garantizar uno o varios aspectos
de seguridad.
I
Las aplicaciones modernas suelen requerir servicios de seguridad
complejos.
Un protocolo de seguridad:
I
I
I
I
Proporciona un mecanismo concreto para usar un algoritmo
criptográfico de forma correcta (inicialización, parámetros, modos de
operación...).
Frecuentemente involucra a más de un algoritmo.
No depende de algoritmos en concreto, sino que éstos son
intercambiables.
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
3 / 20
17 de mayo de 2009
4 / 20
Protocolos de comunicación Segura
Protocolos de comunicación segura
Proporcionan servicios de seguridad a diferentes niveles:
Manuel Lucena (Dpto. Informática)
5a. Protocolos
El protocolo IPSec
Índice
Protocolos de comunicación Segura
El protocolo IPSec
Protocolo SSL
Protocolo TLS
Protocolo SSH
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
5 / 20
El protocolo IPSec
IPSec
Protocolo IPSec
I
I
Proporciona seguridad a nivel IP.
Servicios:
I
I
I
Autentificación.
Confidencialidad.
Permite también gestionar las Claves Públicas.
Aplicaciones:
I
Creación de redes privadas virtuales (VPN).
I
Acceso remoto seguro a la red de una compañı́a desde cualquier
punto de Internet.
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
6 / 20
El protocolo IPSec
¿Cómo trabaja IPSec?
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
7 / 20
El protocolo IPSec
Modos de funcionamiento de IPSec
Modo Transporte
I
Proporciona seguridad a protocolos de capas superiores.
I
Se aplica únicamente a la carga útil (payload) de un paquete IP.
Modo Túnel
I
Proporciona seguridad a nivel IP, encapsulando los paquetes.
I
Se aplica a todo el paquete, incluida la cabecera.
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
8 / 20
El protocolo IPSec
Componentes de IPSec
Protocolo ESP
I
Crea un encapsulado de carga útil de seguridad (ESP).
I
Soporta cifrado y cifrado+autentificación.
Protocolo AH
I
Define una cabecera de autentificación (AH).
I
Sólo soporta autentificación.
I
IPSec también incorpora mecanismos especı́ficos para evitar ataques
de repetición.
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
9 / 20
El protocolo IPSec
Esquema general de documento IPSec
IPSec viene definido por diversos documentos, relacionados entre sı́:
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
10 / 20
El protocolo IPSec
Gestión de Claves en IPSec
Tipos
I
Manual: El administrador configura las claves del sistema y añade las
de los sistemas con los que se va a comunicar.
I
Automática: Permite la creación y distribución de claves bajo
demanda.
Protocolos
I
Oakley: Protocolo genérico basado en el algoritmo de Diffie-Hellmann.
I
ISAKMP: No basado en ningún algoritmo. Define los formatos de
mensaje para intercambio de claves.
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
11 / 20
El protocolo IPSec
Asociaciones de Seguridad (SA) en IPSec
Definición de SA
Relación unidireccional entre un emisor y un receptor que ofrece servicios
de seguridad al tráfico que transporta.
I
Para un intercambio de datos bidireccional, se usan dos SA.
I
Una SA puede usar AH o ESP, pero no los dos a la vez.
Parámetros que identifican una SA:
I
I
I
I
Índice de Parámetros de Seguridad (SPI). Secuencia de bits asignada a
la SA. Se coloca en las cabeceras AH o ESP.
Dirección IP de destino.
Identificador del protocolo de seguridad (AH o ESP).
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
12 / 20
El protocolo IPSec
Parámetros de una Asociación de Seguridad
I
Contador de número de secuencia (32 bits).
I
Desbordamiento del contador de secuencia.
I
Ventana contra repeticiones.
I
Información AH (algoritmo empleado, claves, tiempos de vida, etc.)
I
Información ESP.
I
Tiempo de vida de la SA.
I
Modo de protocolo IPSec (túnel, transporte o comodı́n).
I
MTU del camino (tamaño de datos máximo que puede enviarse sin
fragmentación).
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
13 / 20
17 de mayo de 2009
14 / 20
Protocolo SSL
Índice
Protocolos de comunicación Segura
El protocolo IPSec
Protocolo SSL
Protocolo TLS
Protocolo SSH
Manuel Lucena (Dpto. Informática)
5a. Protocolos
Protocolo SSL
Protocolo SSL (Secure Sockets Layer)
I
Desarrollado por la empresa Netscape.
I
Se coloca por encima de la capa de transporte.
Servicios:
I
I
I
Confidencialidad e integridad de la conexión.
Autentificación de las entidades de origen/destino.
I
La capa del emisor fragmenta los mensajes, los comprime, cifra y
envı́a.
I
Los paquetes son recogidos en destino, descifrados, descomprimidos,
reensamblados y restituidos al destinatario de forma transparente.
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
15 / 20
Protocolo SSL
Comunicación SSL
Fase de establecimiento (handshaking)
I
Los interlocutores se autentifican mutuamente mediante certificados
digitales.
I
Se acuerda qué algoritmos simétricos se emplearán y la longitud de
las claves (normalmente, 40 o 128 bits).
Fase de transferencia
I
Se acuerda una clave simétrica común.
I
Se transfieren los datos propiamente dichos.
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
16 / 20
Protocolo TLS
Índice
Protocolos de comunicación Segura
El protocolo IPSec
Protocolo SSL
Protocolo TLS
Protocolo SSH
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
17 / 20
Protocolo TLS
Protocolo TLS (Transport Layer Security)
I
Basado en la versión 3.0 de SSL, aunque incompatible con el mismo.
I
Permite establecer comunicaciones seguras, e incluso anónimas.
I
A diferencia de SSL, puede reutilizar una conexión ya establecida, por
lo que no necesita puertos dedicados.
I
Inmune a ataques de intermediario.
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
18 / 20
Protocolo SSH
Índice
Protocolos de comunicación Segura
El protocolo IPSec
Protocolo SSL
Protocolo TLS
Protocolo SSH
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
19 / 20
Protocolo SSH
Protocolo SSH
I
Originalmente, se trataba de un producto comercial.
I
Actualmente, mantenido dentro del proyecto OpenBSD.
Se ubica como una aplicación más, o sobre la capa de transporte.
Desarrollado para proporcionar alternativas seguras a los servicios
rlogin, telnet y rsh.
En su versión 2, se ha convertido en un estándar de facto. Se emplea
prácticamente todos los sistemas operativos *NIX y *BSD.
I
I
I
Servicios proporcionados
I
Acceso a consola (shell).
I
Copia segura de archivos (scp).
I
FTP seguro (sftp).
I
Tunelado de puertos TCP.
I
...
Manuel Lucena (Dpto. Informática)
5a. Protocolos
17 de mayo de 2009
20 / 20
Criptografı́a y Seguridad en Computadores
Tema 5. Aplicaciones Criptográficas.
2a Parte: Autentificación
Manuel J. Lucena López
[email protected]
Departamento de Informática
Universidad de Jaén
17 de mayo de 2009
Manuel Lucena (Dpto. Informática)
5b. Autentificación
17 de mayo de 2009
1 / 13
17 de mayo de 2009
2 / 13
Introducción
Índice
Introducción
Firmas Digitales
Certificados Digitales
Autentificación Mediante Funciones Resumen
Manuel Lucena (Dpto. Informática)
5b. Autentificación
Introducción
Introducción
Autentificar: Asegurar la autenticidad de algo.
I
En Informática, ese algo puede ser:
1. Un mensaje.
2. Un usuario.
3. Un dispositivo.
I
En función de qué queramos autentificar, las estrategias pueden ser
muy diferentes.
Manuel Lucena (Dpto. Informática)
5b. Autentificación
17 de mayo de 2009
3 / 13
17 de mayo de 2009
4 / 13
Firmas Digitales
Índice
Introducción
Firmas Digitales
Certificados Digitales
Autentificación Mediante Funciones Resumen
Manuel Lucena (Dpto. Informática)
5b. Autentificación
Firmas Digitales
Firmas Digitales
I
Secuencia de bits que se añade a una pieza de información cualquiera,
y que puede verificarse de forma independiente del proceso de
transmisión.
Caracterı́sticas
I
Indisolublemente ligada al mensaje.
I
Sólo puede ser generada por el titular legı́timo.
I
Públicamente verificable.
I
La forma más común es la combinación de criptografı́a asimétrica con
funciones MDC.
Manuel Lucena (Dpto. Informática)
5b. Autentificación
17 de mayo de 2009
5 / 13
17 de mayo de 2009
6 / 13
Certificados Digitales
Índice
Introducción
Firmas Digitales
Certificados Digitales
Autentificación Mediante Funciones Resumen
Manuel Lucena (Dpto. Informática)
5b. Autentificación
Certificados Digitales
Certificados Digitales
I
Un certificado digital es una clave pública firmada digitalmente por
una autoridad de certificación.
I
Certificados X.509:
I
I
I
I
Uno de los estándares más extendidos.
Sólo define la sintaxis, por lo que no depende de ningún algoritmo.
Nombre del certificador, algoritmo de firma, perı́odo de validez, sujeto,
clave pública del sujeto, etc.
Revocación de certificados:
I
I
Útil para anular claves públicas no válidas (pérdida, robo, etc.)
Hacen falta listas de revocación de certificados (CRL).
Manuel Lucena (Dpto. Informática)
5b. Autentificación
Certificados Digitales
17 de mayo de 2009
7 / 13
Verificación
Verificación
I
I
Dos autoridades de certificación pueden estar certificadas por una
tercera.
Pueden surgir diferentes tipos de infraestructuras (PKI):
I
I
I
Jerárquicas.
Distribuidas.
Hı́bridas.
Ejemplo de infraestructura jerárquica.
Manuel Lucena (Dpto. Informática)
5b. Autentificación
17 de mayo de 2009
8 / 13
Certificados Digitales
Verificación
Infraestructuras Jerárquicas vs. Distribuidas
Modelo Jerárquico
I
Estructura en árbol.
I
Pocos certificadores. Responsabilidad: alta.
I
Pocos caminos de certificación.
I
Una clave puede ser confiable o no confiable.
I
Fácil de justificar la confianza en una clave.
Modelo Distribuido
I
Estructura en grafo.
I
Muchos certificadores. Responsabilidad: baja.
I
Múltiples caminos de certificación.
I
Diferentes grados de confianza para una clave.
I
Difı́cil calcular y justificar la confianza en una clave.
Manuel Lucena (Dpto. Informática)
5b. Autentificación
17 de mayo de 2009
9 / 13
Autentificación Mediante Funciones Resumen
Índice
Introducción
Firmas Digitales
Certificados Digitales
Autentificación Mediante Funciones Resumen
Manuel Lucena (Dpto. Informática)
5b. Autentificación
17 de mayo de 2009
10 / 13
Autentificación Mediante Funciones Resumen
Contraseñas
Autentificación mediante Contraseñas
I
Permiten autentificar a un usuario humano, mediante una información
(contraseña) que sólo éste conoce.
Enfoques:
I
Almacenar las contraseñas en claro en el sistema.
I
I
Válido para sistemas que tengan baja interacción.
Almacenar resúmenes de las contraseñas.
I
Método usado en la mayorı́a de SS.OO.
Manuel Lucena (Dpto. Informática)
5b. Autentificación
Autentificación Mediante Funciones Resumen
17 de mayo de 2009
11 / 13
Contraseñas
Ataques de diccionario
I
Un atacante genera un diccionario con posibles contraseñas, y calcula
los resúmenes de todas ellas.
I
Obtiene los resúmenes del sistema objetivo y compara.
I
Estrategias para dificultar este ataque:
I
I
I
I
I
Añadir sal a las contraseñas. Obliga a recalcular la base de datos.
Escoger contraseñas difı́ciles de predecir.
Cambiar las contraseñas con frecuencia.
No usar la misma contraseña en diferentes lugares.
Custodiarlas adecuadamente.
Manuel Lucena (Dpto. Informática)
5b. Autentificación
17 de mayo de 2009
12 / 13
Autentificación Mediante Funciones Resumen
Autentificación por Desafı́o
Autentificación por Desafı́o
I
Útil para validar dispositivos capaces de almacenar y mantener en
secreto una clave secreta.
I
Puesto que el valor de X no se reutiliza, un ataque de repetición no
resulta efectivo.
Manuel Lucena (Dpto. Informática)
5b. Autentificación
17 de mayo de 2009
13 / 13
Descargar