Se llama hash al número o algoritmo matemático que lo obtiene, de una serie de datos, de forma que es prácticamente único.
Por ejemplo, en nuestro DNI existe uno. Como podemos ver en la figura de la derecha.
Tras calcular la fórmula matemática definida por el gobierno de España.
El número (sin letra) se divide entre 23. El resto de la división se hace corresponder con una letra. En nuestro caso obtenemos el número hash 14 que se hace equivaler a la letra Z.
Si variamos cualquier dígito, variará el resto y por tanto la letra.
Esa letra es el hash que usamos como dígito de control, para comprobar que hemos escrito bien el número. Igual se procede con los números de cuentas corrientes. También tienen su número de control. Al igual, el IBAN comienza con el prefijo de país más un dígito de control de dos cifras.
Sin embargo, existen otros algoritmos más complejos
que pueden generar un código prácticamente sin colisiones,
empleando longitudes más largas de hash.
Entre los algoritmos más conocidos están: SHA1, SHA2, SHA3, MD5, BLAKE2.
Por ejemplo el hash BLAKE2 de la frase
¿Cuáles son los hechos?, de Bertrand Russel es:
6a7a5983daec76d0d8c80e96
ce6a2113042b2244b44e3422
ec3b2414d0d21dca72ac8af0
4b9b94b0d8b64bbcda240282
065830c778a392282cef3177
4f0c5588
.
Este hash tiene un número de posibilidades muy superior al de estrellas del universo, por lo que una colisión es prácticamente imposible.
Si variamos solo una letra de la frase
¿Cuales son los hechos?,
obtenemos el hash siguente:
e6a15a4fdd078ea88ba201fd
9c7871af2035d1f60d9dc98b8
787543392bc819a37286b01383
89b819d9d7285ffe0cb06ad65a
f3cba3b272d8589b3ad733612a5
Como vemos es completamente distinto.
Los números en base Hexadecimal (16) son más fáciles de manejar cuando son cadenas tan largas de dígitos.
Lo que tiene guardado es una tabla de hashes que es lo que compara con el hash de lo que Vd. escribe. De esta forma ni el administrador del sistema puede conocer su contraseña.
Existen casos en los que necesitamos conocer el grado de diferencia de un archivo comparado con otro.
Por ejemplo, si estamos buscando virus en archivos, buscando plagios de fotos o de documentos. De nada nos sirven los hashes, ya que si el el programador de virus, varia ligeramente el código o el plagiador varía levemente la información, el hash arrojaría un número distinto, siendo el mismo virus, foto o documento.
En estos casos usamos fuzzy hashing (en español hash difuso). Consiste en un análisis por fragmentos del archivo u otros medios heurísticos, devolviéndonos el porcentaje de coincidencia con otro archivo.
Se suelen utilizar herramientas como ssdep y sdhash.
Seguridad informática por
juan@segura.pro
está bajo licencia
CC BY-NC-SA 4.0
Propiedad intelectual registrada