Professional Documents
Culture Documents
Captulo 15
Funciones Hash en Criptografa
Seguridad Informtica y Criptografa
Ultima actualizacin del archivo: 01/03/06
Este archivo tiene: 34 diapositivas
v 4.1
Material Docente de
Libre Distribucin
Este archivo forma parte de un curso completo sobre Seguridad Informtica y Criptografa. Se autoriza el uso,
reproduccin en computador y su impresin en papel, slo con fines docentes y/o personales, respetando los
crditos del autor. Queda prohibida su comercializacin, excepto la edicin en venta en el Departamento de
Publicaciones de la Escuela Universitaria de Informtica de la Universidad Politcnica de Madrid, Espaa.
Curso de Seguridad Informtica y Criptografa JRA
Pgina 711
Pgina 712
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 (si
viniese cifrado, se descifra) 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)?
Jorge Rami Aguirre
Qu seguridad nos da
un resumen de k bits?
Pgina 713
Pgina 714
Pgina 715
Pgina 716
Pgina 717
Pgina 718
Pgina 719
Etapas de MD5
Bloques funcionales de MD5
a) Aadir bits para congruencia mdulo 512, reservando los
ltimos 64 bits para un indicador de longitud.
b) Aadir indicacin de la longitud del mensaje en los 64 bits
reservados para ello.
c) Inicializar el vector ABCD de claves con un valor que no
es secreto.
d) Procesar bloques de 512 bits, entregando una salida de 128
bits que formarn nuevamente el vector ABCD.
e) Obtener el resumen de los ltimos 128 bits.
http://www.faqs.org/rfcs/rfc1321.html
Jorge Rami Aguirre
Pgina 720
Mensaje de K bits
MENSAJE
K mod 264
(64 bits)
1000... K
A16
B16
C16
D16
512 bits
ABCD
=
=
=
=
01234567
89ABCDEF
FEDCBA98
76543210
Y1
Y2
Yq
YL-1
HMD5
HMD5
HMD5
HMD5
RESUMEN
de 128 bits
Primer resumen
Pgina 721
Bloque principal
A
B
C
D
Vuelta
1
Vuelta
2
Vuelta
3
Vuelta
4
Funciones
Funciones
Funciones
Funciones
F y FF
G y GG
H y HH
I e II
+
Jorge Rami Aguirre
B
C
+
+
Pgina 722
=
=
=
=
01234567
89ABCDEF
FEDCBA98
76543210
d
128 bits
funcin no lineal
x, y, z b, c, d
F (x, y, z)
(x AND y) OR (NOT x AND z)
G (x, y, z)
(x AND z) OR (y AND NOT z)
H (x, y, z)
x XOR y XOR z
I (x, y, z)
y XOR (x OR NOT z)
Jorge Rami Aguirre
F (b, c, d)
(b AND c) OR (NOT b AND d)
G (b, c, d)
(b AND d) OR (c AND NOT d)
H (b, c, d)
b XOR c XOR d
I (b, c, d)
c XOR (b OR NOT d)
Pgina 723
da
ba
bc
dc
funcin no lineal
+
sj bits a la
izquierda
32 bits
Mj
32 bits
tj
<<< sj
+
Suma
mod 232
Pgina 724
Funciones no lineales
en cada vuelta
1 Vuelta:
FF(a,b,c,d,Mj,tj,s) a = b + ((a + F(b,c,d) + Mj + tj) <<< s)
2 Vuelta:
GG(a,b,c,d,Mj,tj,s) a = b + ((a + G(b,c,d) + Mj + tj) <<< s)
3 Vuelta:
HH(a,b,c,d,Mj,tj,s) a = b + ((a + H(b,c,d) + Mj + tj) <<< s)
4 Vuelta:
a = b + ((a + I(b,c,d) + Mj + tj) <<< s)
II(a,b,c,d,Mj,tj,s)
Jorge Rami Aguirre
Pgina 725
Pgina 726
Segunda vuelta
Primera vuelta
Pgina 727
Cuarta vuelta
Tercera vuelta
Pgina 728
Pgina 729
=
=
=
=
=
67452301
EFCDAB89
98BADCFE
10325476
C3D2E1F0
<<< 30
<<< 5
+
+
c
Funcin
no lineal
Wt
32 bits
Kt
32 bits
Suma
mod 232
Pgina 730
F (b, c, d) vueltas t = 0 a 19
(b AND c) OR ((NOT b) AND d)
G (b, c, d) vueltas t = 20 a 39
b XOR c XOR d
H (b, c, d) vueltas t = 40 a 59
(b AND c) OR (b AND d) OR
(c AND d)
I (b, c, d) vueltas t = 60 a 79
b XOR c XOR d
ea
ba
bc
dc
de
Pgina 731
Kt = 5A827999
Kt = 6ED9EBA1
Kt = 8F1BBCDC
Kt = CA62C1D6
para t = 0, ..., 19
para t = 20, ..., 39
para t = 40, ..., 59
para t = 60, ..., 79
Pgina 732
Pgina 733
Pgina 734
Pgina 735
A
B
C
D
=
=
=
=
01234567
89ABCDEF
FEDCBA98
76543210
(MD5)
(MD5)
(MD5)
(MD5)
67452301
EFCDAB89
98BADCFE
10325476
(SHA-1)
(SHA-1)
(SHA-1)
(SHA-1)
Pgina 736
Pgina 737
76 54 32 10
67 45 23 01
Pgina 738
Pgina 739
Pgina 740
Cuestiones y ejercicios
1. Qu propiedades debe tener una funcin hash para que su uso en
criptografa sea de inters? Vale cualquier funcin reductora?
2. Por qu prospera un ataque basado en la paradoja del cumpleaos
con un tiempo significativamente menor que un ataque elemental?
3. Se va a aplicar la funcin MD5 a un mensaje de longitud 250 bytes.
Cmo se rellena y cmo queda el ltimo bloque?
4. Por qu razn decimos que la funcin SHA-1 es actualmente un
estndar ms seguro que la funcin MD5? Es seguro hoy SHA-1?
5. Cmo puede la funcin SHA-1 hacer 80 vueltas con bloques de 32
bits partiendo de un bloque de texto o mensaje de slo 512 bits?
6. Qu funcin hash es ms rpida, MD5 o SHA-1? Por qu?
7. Si en un mensaje cambiamos un bit, en cunto debera cambiar su
hash aproximadamente con respecto a su resumen anterior?
Jorge Rami Aguirre
Pgina 741
3.
4.
http://www.criptored.upm.es/software/sw_m001h.htm
Pgina 742
6.
7.
8.
Pgina 743
10.
11.
12.
13.