Más colisiones MD5: otra demostración práctica
Según leo en el blog de Bruce Schneier, dos investigadores del CITS (Instituto para la Criptología y la Seguridad en TI) han presentado un nuevo ejemplo prático de colisiones en la función de hash MD5.
En el artículo, dichos investigadores ponen como ejemplo dos ficheros Postscript con diferente contenido, siendo sin embargo idéntico el hash MD5 para dichos ficheros...
El tema de las colisiones en funciones hash (y en concreto MD5) no es ni mucho menos nuevo y tiene una importante repercusión en el mundo de la criptografía, dado que dichas funciones son usadas en firmas digitales. En anteriores artículos de Kriptópolis ya se había hablado sobre este tema, e invito a todos los lectores a dedicar unos minutos a su lectura:
- SHA-1 y las "colisiones de cumpleaños" (Arturo Quirantes, 02/03/2005)
- MD5, un juguete al alcance de un portátil (Reverendo, 10/03/2005)
(Recomiendo en especial el comentario de Fernando Acero al respecto con su magnífica explicación acerca de un ejemplo de colisión en certificados digitales) - No es un buen momento para la firma electrónica y el voto electrónico (Fernando Acero, 13/03/2005)
En mi modesta opinión, este tipo de estudios y ejemplos no hacen más que poner de manifiesto la necesidad de encaminarnos hacia nuevos algoritmos hash de un mayor tamaño y que nos provean de una mayor seguridad a la hora de comprobar la integridad de los datos. Al igual que se hizo con AES, creo que resultaría interesante realizar un concurso abierto en busca de un nuevo estándar, en este caso en búsqueda de una función hash. Hasta ese momento siempre nos quedarán GNU/Tiger y las variantes de SHA SHA-224, SHA-256, SHA-384 y SHA-512, a las que se dispone a abrazar PGP.
Enlaces de interés:
- More MD5 Collisions, Bruce Schneier 10/06/2005
- Attacking Hash Functions by Poisoned Messages "The Story of Alice and her Boss", Magnus Daum y Stefan Lucks 08/06/2005
- Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD, Xiaoyun Wang, Dengguo Feng, Xuejia Lai y Hongbo Yu 16/08/2004
- Practical Attacks on Digital Signatures Using MD5 Message Digest, Ondrej Mikle 02/12/2004
- MD5 to be considered harmful someday (PDF), Dan Kaminsky 06/12/2004

- 6559 lecturas
Twitter

Comentar un sistema para solucionarlo
Supongamos que tenemos un documento t, al cual se le aplica el hash MD5 o cualquier otro.
x = h(t)
pero tenemos otro documento t' que también tiene el mismo hash
x = h(t').
La solución que propongo es aplicar el hash de nuevo al resultado obtenido del hash más el documento original y tener una dupla de resumen
[x,y] = [h(t) ,g(t+h(t))]
[x,z] = [h(t'),g(t'+h(t'))]
Donde x = y, pero y != z.
Con este sistema en principio en más dificil se produzca una colisión doble tanto en x como en y, dupla que conforma el resumen.
Simplemente es una idea, no conozco los procesos de resumen y no puedo decir a ciencia cierta que esto no tenga un problema grave de ataque.