Anda di halaman 1dari 14

Tema 13

Funciones Hash

Curso de Seguridad Informtica


Ultima actualizacin: 10/02/02
Archivo con 29 diapositivas
Material Docente de
Libre Distribucin

Dr. Jorge Rami Aguirre


Universidad Politcnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informtica y


Criptografa. Se autoriza su uso, reproduccin en computador e impresin en
papel slo para fines docentes, respetando siempre los derechos del autor.
Curso de Seguridad Informtica Jorge Rami Aguirre

Funciones hash
Mensaje = M Funcin Resumen = H(M)
Firma (rbrica): r = EdE{H(M)}
dE es la clave privada del emisor que firmar H(M)
Cmo se comprueba la identidad en destino?
Se descifra la rbrica r con la clave pblica del
emisor eE. Al mensaje en claro recibido M (se
descifra si viene cifrado) se le aplica la misma
funcin hash que en emisin. Si los valores son
iguales, la firma es autntica y el mensaje ntegro:
Calcula: EeE(r) = H(M)
Compara: H(M) = H(M)?
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Qu seguridad nos da
un resumen de k bits?

Tema 13: Funci

Propiedades de las funciones hash


H(M) ser segura si tiene las siguientes caractersticas:
1. Unidireccionalidad.

Conocido un resumen H(M), debe


ser computacionalmente imposible encontrar M a
partir de dicho resumen.

2. Compresin. A partir

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

3. Facilidad de clculo.

Debe ser fcil calcular H(M) a


partir de un mensaje M.

4. Difusin.

El resumen H(M) debe ser una funcin


compleja de todos los bits del mensaje M.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 13: Funci

Colisiones: resistencia dbil y fuerte


Conocido M, ser computacionalmente
imposible encontrar otro M tal que H(M) = H(M). Se
conoce como resistencia dbil a las colisiones.

5. Colisin simple.

Ser computacionalmente difcil


encontrar un par (M, M) de forma que H(M) = H(M).
Se conoce como resistencia fuerte a las colisiones.

6. Colisin fuerte.

Ataque por la paradoja del cumpleaos


Para tener confianza en encontrar dos mensajes con el mismo
resumen H(M) -probabilidad 50%- no habr que buscar en
2n (p.e. 2128), bastar una bsqueda en el espacio 2n/2 (264).
La complejidad algortmica se reduce de forma drstica!

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 13: Funci

La paradoja del cumpleaos


Paradoja del cumpleaos
Problema: Cul ser la confianza (probabilidad mayor que el 50%) de que
en un aula con 365 personas -no se tiene en cuenta el da 29/02 de los aos
bisiestos- dos de ellas al azar cumplan aos en la misma fecha.
Solucin: Se escribe en la pizarra los 365 das del ao y entran al aula de
uno en uno, borrando el da de su cumpleaos de la pizarra. Para alcanzar
esa confianza, basta que entren 23 personas al aula, un valor muy bajo, en
principio inimaginable y de all el nombre de paradoja.
Explicacin: El primero en entrar tendr una probabilidad de que su nmero
no est borrado igual a n/n = 1, el segundo de (n-1)/n, etc. La probabilidad p
de no coincidencia ser igual a p = n!/(n-k)n k. Para k = 23 se tiene p = 0,493
y entonces la probabilidad de coincidencia es 0,507. Interesante ...

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 13: Funci

Algoritmos de resumen (compresin)

MD5: Ron Rivest 1992. Mejoras al MD4 y MD2 (1990), es ms lento


pero con mayor nivel de seguridad. Resumen de 128 bits.
SHA-1: Del NIST, National Institute of Standards and Technology,
1994. Similar a MD5 pero con resumen de 160 bits.
RIPEMD: Comunidad Europea, RACE, 1992. Resumen de 160 bits.
N-Hash: Nippon Telephone and Telegraph, 1990. Resumen de 128
bits.
Snefru: Ralph Merkle, 1990. Resmenes entre 128 y 256 bits. Ha sido
criptoanalizado y es lento.
Tiger: Ross Anderson, Eli Biham, 1996. Resmenes de hasta 192 bits.
Optimizado para mquinas de 64 bits (Alpha).
Panama: John Daemen, Craig Clapp, 1998. Resmenes de 256 bits de
longitud. Trabaja en modo funcin hash o como cifrador de flujo.
Haval: Yuliang Zheng, Josef Pieprzyk y Jennifer Seberry, 1992.
Admite 15 configuraciones diferentes. Hasta 256 bits.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 13: Funci

Esquema de la funcin MD5


Relleno de 1 a 448 bits

Mensaje de K bits

Mensaje

1000... K

L512 bits = N 32 bits


N palabras de 32 bits
512 bits

Y1

ABCD

HMD5

Y2
HMD5

Yq
HMD5

01234567
AA1616 == 01234567
89ABCDEF
BB1616 == 89ABCDEF
FEDCBA98
CC1616 == FEDCBA98
76543210
DD1616 == 76543210

YL-1
HMD5

RESUMEN
de 128 bits

Primer resumen

Curso de Seguridad Informtica.


Jorge Rami Aguirre

K mod 264
(64 bits)

Madrid (Espaa) 2002

Tema 13: Funci

10

Bloque principal de MD5


Qu hacen las funciones F y FF...?

Bloque principal

1er bloque de 512


bits del mensaje M

Vector
inicial

A
B
C
D

Nuevo Vector ABCD


de 128 bits para el
prximo bloque

Vuelta
1

Vuelta
2

Vuelta
3

Vuelta
4

Funciones

Funciones

Funciones

Funciones

F y FF

G y GG

H y HH

I e II

B
C

+
+
+

SUMA MDULO 232

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 13: Funci

11

Funcin de resumen SHA-1


Un resumen de 128 bits tiene una complejidad algortmica de
slo 264, un valor en la actualidad muy comprometido...

La funcin SHA-1, Secure Hash Algorithm, entregar un


resumen de 160 bits una complejidad algortmica de 280.
SHA-1

Vector Inicial :
A = 67452301
C = 98BADCFE D = 10325476

B = EFCDAB89
E = C3D2E1F0

Esta forma de tomar los bits se ver ms adelante


Algoritmo:
Es muy similar a MD5. El vector inicial tiene una palabra ms
de 32 bits (E) por lo que el resumen ser de 160 bits. A cada
bloque de 512 bits del mensaje se le aplicarn 80 vueltas.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 13: Funci

18

Esquema del resumen SHA-1


a

Vector inicial ABCDE

Despus de esta ltima operacin,


se produce el desplazamiento del
registro hacia la derecha

<<< 30
<<< 5
Bloques del texto a partir
del bloque de 16 palabras
Una constante en cada
una de las cuatro vueltas

Vase la prxima diapositiva...

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Funcin
no lineal

Registro de 160 bits


67452301
AA1616 == 67452301
EFCDAB89
BB1616 == EFCDAB89
98BADCFE
CC1616 == 98BADCFE
10325476
DD1616 == 10325476
C3D2E1F0
EE1616 == C3D2E1F0

+
+
+ W
t
+ K
t

Tema 13: Funci

32 bits
32 bits

Suma
mod 232

19

Vueltas en funciones F,G, H e I de SHA-1


(b,c,c,d)
d)
vueltas
vueltastt==00aa19
19
FF(b,
(bAND
ANDc)c)OR
OR((NOT
((NOTb)
b)AND
ANDd)
d)
(b
(b,c,c,d)
d)
vueltas
vueltastt==20
20aa39
39
GG(b,
XORccXOR
XORdd
bbXOR
(b,c,c,d)
d)
vueltas
vueltastt==40
40aa59
59
HH(b,
(bAND
AND c)c) OR
OR (b
(bAND
AND d)
d) OR
OR
(b
ANDd)
d)
(c(cAND
(b,c,c,d)
d)
vueltas
vueltastt==60
60aa79
79
II(b,
XORccXOR
XORdd
bbXOR

Desplazamiento del registro

ea

ba

b
c

dc

d
e

Se repite el proceso con la


funcin F para las restantes 15
palabras de 32 bits del bloque
actual hasta llegar a 20. En
vueltas 2, 3 y 4 se repite el
proceso con funciones G, H e I.

Tenemos 420 = 80 pasos por cada bloque de 512 bits.


Pero ... cmo es posible repetir 80 veces un bloque que slo
cuenta con 16 bloques de texto de 32 bits cada uno?

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 13: Funci

20

Las 80 vueltas de SHA-1


Vector de 160 bits

Cada bloque de 16 palabras del mensaje (M0 ... M15) se


expandir en 80 palabras (W0 ... W79) segn el algoritmo:
Wt = Mt (para t = 0, ..., 15)
Wt = (Wt-3 Wt-8 Wt-14 Wt-16 ) <<<1 (para t = 16, ..., 79)
y adems:

Kt = 5A827999
Kt = 6ED9EBA1
Kt = 8F1BBCDC
Kt = CA62C1D6

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

para t = 0, ..., 19
para t = 20, ..., 39
para t = 40, ..., 59
para t = 60, ..., 79

Tema 13: Funci

21

Algoritmo y desplazamiento en SHA-1


Vector de 160 bits

El algoritmo para cada bloque de 512 bits ser:


Para t = 0 hasta 79 hacer:
TEMP = (a <<<5) + ft(b,c,d) + e + Wt + Kt
a=e
e=d
d=c
c = b <<<30
b=a
a = TEMP

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 13: Funci

22

Comparativa entre MD5 y SHA-1


SHA-1 genera una salida de 160 bits de longitud mientras
que MD5 genera slo 128 bits.
La dificultad de generar un mensaje que tenga un resumen
dado es del orden de 2128 operaciones para MD5 y 2160 para
SHA-1.
La dificultad de generar dos mensajes aleatorios distintos y
que tengan el mismo resumen (ataques basados en paradoja
del cumpleaos) es del orden de 264 operaciones para MD5 y
280 para SHA-1.

Esta diferencia de 16 bits a favor de SHA-1 lo convierte en


ms seguro y resistente a ataques por fuerza bruta que el
algoritmo MD5.
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 13: Funci

23

Anda mungkin juga menyukai