Pericia Informática
Criptografía Asimétrica
Funciones hash
Susel Fernández Melián
Contenidos
2
Criptografía asimétrica
Características
Cifrado y firma digital
Algoritmo RSA
Funciones hash
Motivación y definición
Características
Aplicaciones
Motivación. Criptografía Asimétrica
3
Problema de la criptografía simétrica:
Compartir de manera segura la clave
secreta
Clave de Clave de
K cifrado K descifrado
Texto cifrado
E(K,m)
texto claro Algoritmo Algoritmo
m Cifrado Descifrado.
Texto claro
m=D(K,E(K,m))
Criptografía Asimétrica
4
Clave de Clave de
K cifrado de descifrado
K de Bob
A
Alice Texto cifrado B
Algoritmo E(KA,m) Algoritmo
texto claro
m Cifrado Descifrado. Texto claro
m=D(KB,E(Ka,m))
Criptografía asimétrica (de clave pública): KA!=KB
Una clave pública (puede tenerla cualquiera).
Una clave privada (que tengo que proteger).
5
Criptografía de Clave Pública
Funcionamiento
El emisor emplea la clave pública del receptor para cifrar
El receptor emplea su clave privada para descifrar
Las claves son complementarias: Si cifro con la
pública, descifro con la privada y viceversa.
Generación de la pareja de claves
Se basa en funciones trampa de un único sentido
◼ Fácil calcularlas en una dirección, pero difícil hacerlo en la otra
◼ Por ejemplo: dados p y q, es fácil calcular su producto n=pq
pero, dado n, es difícil determinar p y q
6
Criptografía de Clave Pública
Importante: Si se cifra con la clave pública, se descifra
con la clave privada y viceversa.
Cifrado
Ciframos utilizando la clave pública del receptor
El receptor puede recuperar el mensaje usando su clave privada
Firma digital
Firmamos cuando ciframos con nuestra clave privada
Cualquiera puede verificar la firma descifrando con nuestra clave
pública
Sólo nosotros hemos podido firmar
Versión digital de la firma manuscrita (más o menos ☺)
7
RSA
Inventado por Rivest, Shamir y Adleman (MIT)
RSA es el patron de oro de la criptografía de clave pública
Sean p y q dos primos grandes
Sea N = pq
Elijamos e primo relativo con (p−1)(q−1)
Obtenemos d tal que ed mod (p−1)(q−1) = 1
ed-1 →divide de forma exacta a (p−1)(q−1)
La clave pública es (N,e)
La clave privada es d (secreto)
RSA
8
Para cifrar un mensaje M se calcula:
C = Me mod N
Para descifrar un criptograma C se calcula:
M = Cd mod N
Nótese que tanto e como N son valores públicos
Si Trudy puede factorizar N, puede usar e para
determinar d, dado que ed mod (p−1)(q−1) = 1
→ Factorizar N rompe RSA
9
Ejemplo RSA
Ejemplo de RSA (de bolsillo)
Seleccionamos dos primos p = 11, q = 3
Por tanto, N = pq = 33 y (p − 1)(q − 1) = 20
Seleccionamos e = 3 (primo relativo con 20)
Encontrar d tal que ed mod 20 = 1, determinamos
que d = 7
Clave pública: (N, e) = (33, 3)
Clave privada: d = 7
10
Ejemplo RSA
Clave pública de Alice: (N, e) = (33, 3)
Clave privada de Alice: d = 7
Supongamos que Bob quiere enviar a Alice un mensaje:
M=8
El criptograma C se calcula como:
C = Me mod N = 83 = 512 mod 33 = 17
Alice descifra C para recuperar el mensaje M como:
M = Cd mod N = 177 mod 33= 410,338,673 mod 33
= 12,434,505 33 + 8 = 8
11
RSA aspectos prácticos
N debe ser suficientemente grande para que no se
pueda factorizar → como mínimo 2048 bits
Se puede hacer búsqueda exhaustiva contra el
mensaje en claro (si el número de mensajes es
pequeño):
Conozco C = Me mod N
Conozco N,e (Clave pública)
Pruebo con los posibles valores de M hasta encontrar
uno que al cifrarlo coincida con C.
Solución: añadir relleno (padding) a M antes de cifrar.
Usos de la Criptografía de Clave Pública
12
Confidencialidad
Cifrando con la clave pública del otro
La firma digital proporciona integridad y no
repudio
No es posible proporcionar no repudio con clave
simétrica
13
No repudio en criptografía simétrica
Alice solicita 100 acciones a Bob
Los precios de la acción caen y Alice afirma que ella no
solicitó la compra
¿Puede Bob demostrar que Alice ordenó la compra?
¡No! Dado que Bob también conoce la clave simétrica,
él podría haber falsificado el mensaje
Problema: Bob sabe que Alice solicitó la compra, pero no
puede probarlo
No repudio en criptografía asimétrica
14
Alice solicita 100 acciones a Bob
Alice firma la petición con su clave privada
Los precios de la acción caen y Alice afirma que ella no
solicitó la compra
¿Puede Bob demostrar que Alice ordenó la compra?
¡Sí!Sólo alguien que tuviera la clave privada de Alice
podría haber firmado esa petición
El no repudio asume que la clave privada de Alice no ha
sido robada
Notación
15
Firma del mensaje M con la clave privada de Alice:
[M]Alice
Cifrado del mensaje M con la clave pública de Alice:
{M}Alice
Por tanto,
{[M]Alice}Alice = M
[{M}Alice]Alice = M
Confidencialidad y No Repudio
16
¿Podemos conseguir confidencialidad y no
repudio con la criptografía de clave pública?
Alice envía un mensaje a Bob
Firmado y cifrado {[M]Alice}Bob
Cifrado y firmado [{M}Bob]Alice
Firmar y Cifrar
17
❑ M = “I love you”
{[M]Alice}Bob {[M]Alice}Charlie
Alice Bob Charlie
Cifrar y Firmar
18
❑ M = “My theory, which is mine….”
[{M}Bob]Alice [{M}Bob]Charlie
Alice Charlie Bob
19
Clave simétrica vs Clave asimétrica
Clave simétrica. Ventajas:
Velocidad
Clave asimétrica. Ventajas:
Firmas (no repudio)
No hay secretos compartidos
Motivación de las funciones hash
20
Integridad
Supongamos que Alice firma M
Alice envía M y S = [M]Alice a Bob
Bob verifica que M = {S}Alice
Si M es grande, [M]Alice es costoso de calcular y de
enviar
Supongamos que Alice firma h(M), donde h(M) es de
menor tamaño que M
Alice envía M y S = [h(M)]Alice a Bob
Bob verifica que h(M) = {S}Alice
21
Motivación de las funciones hash
De este modo, Alice firma h(M)
Alice calcula S = [h(M)]Alice
Alice envía (M, S) a Bob
Bob verifica que h(M) = {S}Alice
¡h no puede ser cualquier función!
Supongamos que un atacante encuentra un M’tal que:
h(M) = h(M’)
El atacante podría reemplazar (M, S) por (M’, S)
¿Detectaría Bob esta falsificación?
◼ No, puesto que h(M’) = h(M) = {S}Alice
Integridad. Función Hash Criptográfica
22
Una función hash criptográfica es algoritmo
matemático que transforma cualquier bloque
arbitrario de datos en una cadena alfanumérica de
caracteres con una longitud fija y que lo identifica de
manera única.
Función Hash Criptográfica
23
Propiedades que debe cumplir una función hash
criptográfica h(x):
Compresión ⎯ la longitud de salida debe ser pequeña.
Salida de longitud fija independientemente de la entrada.
Tomado de: [Link]
Función Hash Criptográfica
24
Propiedades que debe cumplir una función hash
criptográfica h(x):
Eficiencia ⎯ h(x) debe ser fácil de calcular para
cualquier x
◼ El coste computacional de calcular el hash debe ser menor que
el coste de cifrar el mensaje completo con la clave privada
(firmar)
Función Hash Criptográfica
25
Propiedades que debe cumplir una función hash
criptográfica h(x):
Único sentido ⎯ dado un valor y no es posible
encontrar un x tal que h(x) = y
Función Hash Criptográfica
26
Propiedades que debe cumplir una función hash
criptográfica h(x):
Resistencia ante colisiones
◼ Dados x y h(x), no debe ser computacionalmente posible
encontrar un y x tal que h(y) = h(x)
◼ Computacionalmente imposible encontrar un x e y, con x y
tal que h(x) = h(y)
◼ No es que no existan colisiones. Existen, pero la idea es que
sea difícil encontrar alguna.
27
Hash no Criptográfico
Suponga un mensaje X = (X0,X1,X2,…,Xn-1), donde cada Xi es
un byte
Definimos h(X) como:
h(X) = X0+X1+X2+…+Xn-1
¿Es un hash criptográfico seguro?
Ejemplo: X = (10101010, 00001111)
El hash sería h(X) = 10111001
Pero, Y = (00001111, 10101010) produce un h(X) = h(Y)
Es fácil encontrar colisiones, por tanto no es seguro
Funciones hash criptográficas
28
MD5 ⎯ inventado por Ron Rivest
Salida de 128 bits
Es posible encontrar colisiones en MD5:
◼ [Link]
No debe usarse: [Link]
SHA-1 ⎯ Estándar del gobierno de EEUU
Salida de 160 bits
No debe usarse tampoco:
◼ [Link]
Otras: SHA-2 (256/224 y 512/384), Tiger, SHA-3 (3-10-12)
Diseño de Funciones Hash Criptográficas
29
Se busca tanto seguridad como eficiencia
Si es más costoso calcular h(M) que firmar M, entonces
el hash no tendría sentido
Propiedad deseada: efecto avalancha
No correlación entre entrada y salida del algoritmo
◼ Cualquier cambio pequeño en la entrada debería producir un
gran cambio en la salida
◼ El cambio de un bit a la entrada debería afectar a la salida de
igual manera que el cambio en varios bits
30
Usos de Hash
Integridad de mensajes
Enviar el mensaje y su hash.
“Huella digital” de datos
Detección de robo de propiedad intelectual.
Autenticación
No se almacenan las contraseñas en texto plano (el
servicio no conoce la contraseña, solo tiene el hash).
Detección de malware
Listas negras públicas de hashes (firmas) de malware.
Uso del hash en análisis forense.
31
Asegurar la no manipulación de la evidencia
digital
Mediante las funciones hash aplicadas a las evidencias.
Las
evidencias originales deben ser clonadas y se debe
poder verificar:
◼ Que la copia coincide con el original
◼ Que la evidencia se mantiene inalterable durante el proceso de
análisis forense.
Garantizaque otro experto pueda reproducir el análisis en
condiciones objetivas.
Herramientas para calcular hash.
32
[Link]
[Link]
Pericia Informática
Criptografía Asimétrica
Funciones hash
Susel Fernández Melián