1. Teoría de la información
Manejo de claves
Principios, herramientas y protocolos de criptografía
Yann Frauel – Semestre 2007-1
2. Seguridad de un criptosistema
Todos los elementos deben ser seguros:
➔ Algoritmo
➔ Protocolo
➔ Clave
2do principio de Kerckhoffs: la seguridad no debe
derivarse del secreto del algoritmo, sólo de la clave
¿Cómo medir la seguridad de una clave?
3. 1. Teoría de la información
(Claude Shannon 1948)
4. Teoría de la información
¿Cómo medir la cantidad de información de un mensaje?
Idea 1: longitud del mensaje
Pero comparar:
➔ 110010101110
➔ 439203984738
Idea 2: número de bits necesarios para codificar el
mensaje
➔ binario: 1 bit/carácter
➔ decimal: 4 bits/carácter
➔ letras: 5 bits/carácter
5. Teoría de la información
¿Cómo medir la cantidad de información de un mensaje?
Pero no se usan todas las combinaciones posibles...
Idea 3: número de bits en promedio (fraccional)
Ejemplo: lanzar un dado
Lanzados Combinaciones Bits totales Bits/car.
1 6 3 3.000
2 36 6 3.000
3 216 8 2.667
4 1296 11 2.750
5 7776 13 2.600
200 4.27E+155 517 2.585
6. Teoría de la información
¿Cómo obtener directamente el número de bits
promedio H?
5
4.5
4
3.5
Número de bits
3
2.5
2
1.5
1
0.5
0
4
6
7
14
16
17
24
26
27
2
3
5
8
9
10
11
12
13
15
18
19
20
21
22
23
25
28
29
30
31
32
Número de valores posibles
H = log2(n), n: Número de valores posibles
7. Teoría de la información
¿Qué pasa si no todos los valores
tienen la misma probabilidad?
Ejemplo: Dado de 4 caras
➔ p(0) = 3/4
➔ p(1) = 1/8
➔ p(2) = 1/16
➔ p(3) = 1/16
Cambio de codificación:
➔ 0→0 1 → 10 2 → 110 3 → 111
Número de bits promedio:
➔ H = 3/4 × 1 + 1/8 × 2 + 1/16 × 3 +1/16 × 3 = 11/8 = 1.38 b/c
8. Entropía
Sea una variable aleatoria X
Puede tomar n valores: x1, x2... xn con probabilidades
P( X = xi) = pi
Se define la entropía de X:
n
HX=− ∑ pi log2 pi
i=1
Mide la cantidad de información proveida por X
9. Entropía
Ejemplo 1: evento equiprobable
➔ p1 = p2 = ... = pn = 1/n
➔ H(X) = log2 (n)
➔ Volvemos a encontrar la fórmula intuitiva
➔ Es el valor máximo que se pueda encontrar para n valores
Ejemplo 2: evento seguro
➔ pi =1 y pj = 0 para j ≠ i
➔ H(X) = 0
➔ Es el valor mínimo que se pueda encontrar
La entropía mide la incertidumbre
10. Redundancia
Ejemplo 1: ¿Qué viene después de una letra Q?
Ejemplo 2: ¿Qué significa INST NAC COMPUT
CIENT?
¡Podemos reconstituir más de la mitad del mensaje!
Una parte de la información de un texto normal no
es necesaria, es redundante
En un lenguaje natural, la entropía no es máxima:
➔ frecuencias diferentes para diferentes letras, bigramas...
➔ reglas gramaticales, sintácticas...
→ Los lenguajes naturales tienen mucha redundancia
11. Redundancia
Entropía absoluta por carácter Ha:
➔ es la entropía máxima posible (caracteres equiprobables)
➔ para el alfabeto de 26 letras, H = 4.7 b/c
a
Entropía real por carácter Hr:
➔ es la entropía calculada sobre el lenguaje real
➔ para el inglés o el español, H ~ 1.5 b/c
r
Redundancia por carácter R:
➔ es la diferencia R = Ha – Hr
➔ para el inglés o el español, R ~ 3.2 b/c
12. Distancia de unicidad
Ataque por fuerza bruta: probamos todas las claves
hasta encontrar un texto con sentido
¿Cuántos caracteres necesitamos para reconocer el
texto claro sin ambigüedad?
Entropía del espacio de claves:
➔ H(K) = log2 (número de claves)
Distancia de unicidad:
H K
U=
R
13. Distancia de unicidad
Ejemplo: substitución monoalfabética
Número de claves = números de alfabetos = 26!
log 2 26!
U= =28caracteres
3.2
15. Evolución histórica de las claves
Sin clave (sin parámetro libre): el secreto está en el
algoritmo mismo
➔ Atbash (alfabeto invertido)
➔ César (desplazamiento de 3)
➔ Tritemio (desplazamiento incrementado para cada letra)
Palabra clave
➔ Substitución monoalfabética con alfabeto desordenado
➔ Vigenère
Clave aleatoria
➔ Hill
➔ Máquinas con rotores
➔ Cifrado modernos
16. Claves y contraseñas
Cuando no requiere memorizar: clave
➔ Algoritmos para cifrar
➔ Algoritmos para firmar
Cuando requiere memorizar: contraseña
➔ Autenticación y control de acceso
➔ Aplicar una firma
➔ Descifrar un mensaje, un archivo
17. Claves y contraseñas
Clave = más seguridad
➔ Larga
➔ Aleatoria
Contraseña = más conveniencia
➔ Fácil de memorizar
➔ Fácil de teclear
→ Combinar los dos
18. Claves y contraseñas
Algoritmos simétricos
➔ Contraseña = palabra o frase (tamaño variable)
➔ Se le aplica una función resumen de sentido único
➔ Reducción (o extensión) a un tamaño fijo
Ábrete Sésamo
Contraseña Función resumen Clave
simétrica
La entropía de la clave es reducida
a la entropía de la contraseña
19. Claves y contraseñas
Algoritmos asimétricos
➔ clave privada aleatoria
➔ clave privada almacenada en el disco
➔ clave privada cifrada con un algoritmo simétrico
Ábrete Sésamo
Contraseña Función Clave
resumen simétrica
Clave privada
cifrada
Si el disco es accesible, la seguridad
es la de la contraseña
20. Contraseñas
Seguridad aumenta con la longitud
Datos personales (2do apellido, fecha nacimiento)
➔ Se puede adivinar
Palabra conocida/nombre (flor, planeta, futbolista)
➔ Ataque de diccionario
Generalmente posible encontrar 40 % de las
contraseñas con estos ataques!
Seguridad aumenta con la entropía
21. Contraseñas
Mezclar mayúsculas, minúsculas, dígitos y
caracteres especiales
Fácil de memorizar, sin necesidad de escribirlo
Difícil de adivinar, incluso por una persona cercana
Más de 8 caracteres
Puede ser tecleado rápidamente (evitar espías)
Ej.: Iniciales de una frase:
Creo que Alicia conoció a Bob en Guanajuato; no crees?
→ CqAcaBeG;nc?
22. Contraseñas
Los passwords son como los calzones...
Escógelo misterioso
Entre más largo, mejor
Cámbialo frecuentemente
No lo dejes tirado en cualquier lugar
No lo compartas con tus amigos
23. Claves
Aleatoria (entropía máxima)
Generada con generador aleatorio real o seudo-
aleatorio criptográficamente seguro
Si el algoritmo es ideal, la seguridad depende del
tamaño de la clave (mejor ataque = fuerza bruta)
➔ Clave de n bits: 2n claves posibles (complejidad
exponencial)
➔ No usar clave menor a 128 bits para algoritmos simétricos
Ejemplo: clave DES tiene 56 bits
➔ 1981: máquina de $50 M → 2 días
➔ 1993: máquina de $1 M → 3.5 horas
➔ 1996: NSA → 15 minutos
24. Claves
El tamaño de la clave no es una garantía
Puede haber mejores ataques que fuerza bruta
Ej. 1: Substitución monoalfabética
➔ 26! claves posibles (permutaciones del alfabeto)
➔ 26! = 4.1026 ~ 88 bits
➔ Pero podemos atacar por análisis de frecuencias!
Ej. 2: Algoritmo RSA
➔ Mejor ataque = buscar factorización de la clave pública
➔ clave de 128 bits: se factoriza en 1 s en una laptop!!
➔ No usar clave menor a 1024 bits para algoritmos
asimétricos
25. Respaldo de claves
Problema: perdida de clave
➔ Olvido de la contraseña
➔ Desaparición del creador de la contraseña
➔ Disco borrado
Custodia de clave (key escrow)
➔ Un tercero tiene copia de las claves
➔ También para la policía (ej. clipper para teléfono 1993)
➔ Problema de confianza/seguridad
Secreto compartido
➔ Dar parte de las claves a varias personas
➔ Reconstituir la clave requiere que se junten
26. Expiración de claves
Claves deben tener una vida limitada
➔ limita tiempo/datos para criptoanálisis
➔ limita los datos perdidos si la clave es comprometida
Renovar clave frecuentemente si
➔ es fácil de encontrar (contraseña)
➔ es usada para información importante
Clave privada comprometida
➔ permite leer mensajes (incluso anteriores)
➔ permite robo de identidad
➔ fijar fecha de expiración y/o
➔ preparar certificado de revocación (al generar la clave, en
caso de perdida de la clave privada)
28. Claves de sesión
Problema: la clave debe transmitirse por un canal
seguro
Es difícil renovarla
Solución:
➔ una clave principal (permanente)
➔ claves de sesión generadas para cada nuevo mensaje
➔ la clave principal es poco usada (criptoanálisis difícil)
➔ poca información perdida si clave de sesión comprometida
29. Claves simétricas
Establecer una clave para cada par de usuario
➔ n usuarios: n(n-1)/2 claves
➔ muchas claves, muchos intercambios por canal seguro
30. Claves simétricas
Tercero de confianza: centro de distribución de
claves (KDC)
El KDC tiene las claves principales de todos
El KDC distribuye claves de sesión
A1 A2
Centro de
A6 distribución A3
de claves
A5 A4
33. Intercambio con claves simétricas
Requiere confianza absoluta en el KDC
➔ puede “escuchar” todas las comunicaciones
➔ (puede modificar las comunicaciones)
➔ (puede hacerse pasar por cualquier usuario)
Todas las llaves están comprometidas si el KDC está
comprometido
Todas las comunicaciones están bloqueadas si el
KDC está indisponible
34. Claves asimétricas
Cada usuario tiene su clave privada y su clave
pública
➔ n usuarios: n claves
➔ pocas claves
➔ sólo se requiere transmitir las claves públicas
➔ la clave pública puede ser obtenida del usuario o de un
KDC
➔ no hay problema con atacantes pasivos: no pueden hacer
nada con la clave pública
39. Verificación de claves
Las claves asimétricas no resuelven el problema de
un atacante activo con control completo
Autenticidad de la clave verificada por una firma:
➔ de una Autoridad de Certificación (certificados)
➔ de otros usuarios confiables (PGP)
Hace falta conocer la clave pública del certificador!