En informática definimos a una función hash a un algorítmo que permite generar un resúmen que represente de una manera casi unívoca a un archivo o dato.
También se le da el nombre de hash o digest al resultado de esa función.
Estas funciones identifican probabilísticamente a un conjunto de información, dando como resultado un conjunto imagen de tamaño fijo, generalmente menor.
Su propiedad fundamental es que si dos resultado de una misma función diferentes, las entradas que generaron esos resultados también lo son. No obstante, al ser mucho menor el rango posible de claves que el rango posible de objetos, pueden existir claves resultante iguales para objetos diferentes, hecho conocido como colisiones.
Función Hash
Un ejemplo clasico es MD5, desarrollado por Ron Rivest en 1992 y basado en sus predecesores MD4 y MD2 a los que les realizaron mejoras, dando lugar a un algoritmo más seguro, pero más lento.
Para obtener el hash de un texto, podemos hacer la siguiente comprobación utilizando una terminal linux.
$ echo "funcion hash" | md5sum
e3d045ea5b979312cfdb67ec86a824ee -
Desde 2005 ha quedado obsoleto debido a que los estudiantes Xiaoyun Wang, Denggou Feng, Xuelia Lai y Hongbo Yu de la Shandong University (china) anunciaron el descubrimiento de colisiones de hash para esta función.
Si bien en ese momento el ataque solo fue teórico y con un cluster armado para tal fín, más tarde se pudo llevar a cabo en forma práctica. Aún así sigue siendo un algoritmo interesante debido a su sencillez y generalidad.
Otro de los más utilizados es SHA, cuya versión más utilizada y actual estándar es SHA-1, desarrollada en 1994. La familia SHA fue desarrollada por la NSA (National Security Agency) y, actualmente existen cuatro variantes denominadas SHA-2 (SHA-224, SHA-256, SHA-384 y SHA-512).
SHA-1 es similar en funcionamiento a MD5, pero genera un resúmen de 160 bits en tanto que MD5 es de 128 bits.
$ echo "funcion hash" | sha1sum
7408cf6f69972fb44afa70bc350b489749d6cdbe -
$ echo "funcion hash" | sha224sum
2a76fb6601a1874391ecd50c2a2e688f2b03b97c55ee8932af7ff12c -
$ echo "funcion hash" | sha256sum
c39938c55aa4eed98ee1997601e913504c707fdb0b289eabb970b3f417c9a4b1 -
0 comentarios