Saltar al contenido

Qué es un Hash

Qué es un Hash

¿Qué es un Hash?

La palabra “Hash” es un verbo inglés que traducido al español significa cortar o moler, pero en el contexto de una función criptográfica significa función hash o resumen criptográfico.

Un hash se utiliza en lo que se denomina funciones de hash criptográfico o funciones unidireccionales en el área de la criptografía. Este tipo de función se caracteriza por el cumplimiento de propiedades que la hacen apta para su uso en sistemas que dependen de la criptografía para proporcionar seguridad. Como todos los datos informáticos, los hashes no son grandes, y normalmente se escriben en sistemas hexadecimales (números entre 0 y 9 y letras entre A y F).

Orígenes del término Hash

El término hash proviene, aparentemente, de la analogía con el significado estándar (en inglés) de esta palabra en el mundo real: cut and mix. Donald Knuth cree que el empleado de IBM H. P. Luhn fue el primero en utilizar el concepto en un memorándum fechado en enero de 1953. Su uso masivo sólo ocurrió después de 10 años.

Qué es un Hash

Propiedades de un hash

La calidad de una función de resumen se define sobre la base de la satisfacción de ciertas propiedades deseables en el contexto en el que se utilizará.

Bajo costo

El cálculo del valor hash requiere poco coste (computacional, memoria, etc.).

Compresión

Una función hash comprime los datos si puede asignar un dominio con datos muy grandes a datos de menor tamaño.

Uniformes

Se dice que una función de resumen es uniforme cuando, para una clave elegida al azar, también es probable que tenga un cierto valor de resumen, independientemente de cualquier otro elemento.

Para una función H hash uniforme de tipo H: {0.1} m → {0.1} n, es decir:

  1. Las cadenas se construyen en un alfabeto de 2 símbolos (alfabeto binario).
  2. El dominio es el conjunto de cadenas de longitud m
  3. El intervalo es el conjunto de cadenas de longitud n
  4. podemos decir que para cada resumen corresponde a mensajes de 2m-n y que la probabilidad de que dos mensajes den como resultado la misma salida es de 2-n

Para los algoritmos de búsqueda, si todas las entradas son igualmente probables, se buscará en esta propiedad para minimizar el número de colisiones, ya que cuantas más colisiones haya, mayor será el tiempo de ejecución de la búsqueda.

Qué es un Hash

Rango variable

En algunas funciones de resumen, el rango de valores de resumen puede variar con el tiempo. Ejemplo: funciones hash utilizadas para tablas de resumen que necesitan ser ampliadas. En tales casos, a la función hash se le debe dar un parámetro que le permita saber en qué intervalo la ejecución se mueve para encontrar el valor de resumen.

Inyectividad y función hash perfecta

Se dice que la función de resumen es una función de inyección cuando cada dato de entrada se asigna a un valor de resumen diferente. En este caso, se dice que la función de resumen es perfecta. Para que esto ocurra, la cardinalidad del conjunto de dominios debe ser menor o igual que la cardinalidad del conjunto de imágenes. Normalmente, sólo se proporcionan las funciones de hash perfectas cuando se predefinen las entradas. Ejemplo: mapee los días del año en números del 1 al 366 de acuerdo con el orden de aparición.