Una función criptográfica hash (usualmente conocida como “hash”) es
un algoritmo matemático que transforma cualquier bloque arbitrario de
datos en una nueva serie de caracteres con una longitud fija.
Independientemente de la longitud de los datos de entrada, el valor hash
de salida tendrá siempre la misma longitud.
Según un generador online de hash SHA-1, (SHA-1 es una de las funciones hash más ampliamente utilizadas en la informática, junto con MD 5 y SHA-2) el hash para “brain” (cerebro), siempre según el generador online de hash SHA-1, es: 8b9248a4e0b64bbccf82e7723a3734279bf9bbc4.
Te darás cuenta de que todos los hashes aquí tienen 40 caracteres de
longitud. Si
ingresamos todas las palabras que ya llevamos escritas, el hash resultante es de 40 caracteres. Si quisieras, podrías
resumir las obras completas de William Shakespeare con SHA-1 y el hash
resultante seguiría siendo de 40 caracteres. Por otra parte, no existen
dos entradas que produzcan el mismo hash de salida.
¿Para qué se utilizan los valores hash?
La forma más común del hash tiene que ver con las
contraseñas. Por ejemplo, si alguna vez olvidas tu contraseña de algún
servicio en línea, probablemente tengas que resetearla. Cuando se
restablece una contraseña, por lo general no recibes una clave en texto
plano. Eso es debido a que los servicio en línea no almacenan las
contraseñas en texto plano, sino que las almacenan bajo el valor hash de
la contraseña. De hecho, el servicio (a menos que utilices una
contraseña demasiado simple, que haga que el valor hash sea ampliamente
conocido) no tiene idea de cuál es la contraseña real.
Por tanto, si recibes una contraseña en texto plano,
quiere decir que el servicio en línea que estás utilizando no está
haciendo un hashing de tu contraseña.
Se pueden crear hash para contraseñas y archivos
multimedia. La función hash también es utilizada por empresas de
antivirus como Kaspersky Lab, que utilizan las funciones criptográficas
hash para detectar malware.
Tal y como las compañías discográficas y cinematográficas crean
listas negras de hash para proteger sus datos, también existen listas de
hash de malware y muchas de ellas son de acceso público. Estas listas, o
firmas de malware (como también se las conoce), están conformadas por
valores hash de las piezas de malware o de algunas partes pequeñas y
reconocibles de estas piezas. Por un lado, si un usuario detecta una
archivo sospechoso, puede consultar en las bases de datos públicas y, de
esta forma, sabrá si se trata o no de un archivo malicioso. Por el
otro, los productos antivirus detectan y bloquean los malware comparando
los hash con sus propias bases de datos y con las públicas.
Por otra parte, las funciones criptográficas hash se utilizan también
para asegurar la “integridad de los mensajes”. En pocas palabras, para
estar seguros de que algunas comunicaciones o archivos no fueron
alterados de alguna forma, se pueden examinar los hash creados antes y
después de la transmisión de los datos. Si los dos hash son idénticos,
significa que no ha habido ninguna alteración.
> no existen dos entradas que produzcan el mismo hash de salida
ResponderEliminarEso es falso, y es un error de concepto grave. Hay solo 2^128 valores de hash posibles (en el caso de MD5), mientras que la cantidad de entradas es practicamente ilimitada. Hay coincidencias, inevitablemente.
Lo que tiene una buena funcion de hash es que esas coincidencias ("colisiones") no pueden encontrarse de una manera eficiente.