¿Qué es un hash, o una función hash?

candado y en letras hash

El hash

Un hash es el resultado de una función hash, la cual es una operación criptográfica que genera identificadores únicos e irrepetibles a partir de una información dada.

Los hashes son una pieza clave en la tecnología blockchain y tienen una amplia utilidad.

 

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

 

  • Una función hash criptográfica se utiliza con fines de seguridad y constituye la columna vertebral de la seguridad criptográfica.
  • Una función hash convierte una entrada aleatoria de datos (claves) en una cadena de bytes con una longitud y estructura fijas (valor hash)
  • El hash de una transacción facilita la identificación de transacciones en la cadena de bloques

 

La función hash

La red de Bitcoin depende de un conjunto de reglas llamado algoritmo de consenso de prueba de trabajo, o proof of work.  Este algoritmo de consenso es un conjunto de reglas que gobierna una red blockchain.

Fuera de las criptomonedas, el uso más común de las funciones hash es el almacenamiento de contraseñas.

Una función matemática se usa para ilustrar una expresión o una relación que involucra una o más variables o conjuntos. En consecuencia, una función relaciona una entrada con una salida.

Un ejemplo de esto sería el tamaño y el precio de las hamburguesas en un restaurante. El costo de una hamburguesa está determinado por su tamaño.

Por tanto, en este caso, el coste es función del tamaño.

Digamos que puedes comprar hamburguesas pequeñas, medianas y grandes y sus respectivos costos son $1.50, $2.50 y $3.50.

Hamburguesas para un ejemplo

La entrada es el tamaño de la hamburguesa.

La salida es el costo de la hamburguesa.

Una función hash convierte una entrada (por ejemplo, texto) en una cadena de bytes con una longitud y estructura fijas. La salida o el valor creado se denomina “valor hash” o “suma de comprobación”. Cualquier valor hash creado a partir de datos utilizando un algoritmo hash específico siempre tiene la misma longitud y es unidireccional: no se puede revertir.

 

El propósito de las funciones hash

 

Las funciones hash se originaron a partir de la necesidad de hacer que el contenido fuera uniforme en longitud, por un lado, y para su uso como identificadores singularmente únicos, por el otro. Los usos típicos de las funciones hash fuera del ámbito de las criptomonedas incluyen:

  • Cálculo de una suma de verificación (breve) para un objeto, como la suma de verificación de un ISBN (Número de libro estándar internacional)
  • Identificar cualquier contenido casi sin ambigüedad pero aún “brevemente”, sin revelar nada sobre el contenido en aplicaciones criptográficas

 

Un poco de historia

El término “función hash” se deriva de la palabra francesa “hacher”, que significa “cortar en pedazos pequeños”, lo que indica cómo una función hash está diseñada para “cortar” los datos. Otro tipo de estructura de datos, una tabla hash, se usa con frecuencia para la detección rápida de dos hashes idénticos cualesquiera (valores hash).

 

Después de que Diffie y Hellman identificaron por primera vez la necesidad de una función hash unidireccional en su artículo seminal de 1976 sobre criptografía de clave pública, durante las siguientes dos décadas los desarrollos en criptografía progresaron rápidamente.

En 1990, el criptógrafo y profesor del MIT, Ronald Rivest, inventó la función hash MD4 y más tarde las funciones MD5 y MD6.

En 1995, la NSA (Agencia de Seguridad Nacional) diseñó el SHA-1 (Secure Hash Algorithm 1) basado en el diseño de Rivest, seguido de la actualización SHA-2 en 2001. SHA-2 es el estándar que inspiró SHA-256, que sirvió como línea de base para el algoritmo de consenso de Bitcoin.

hash

Whitfield Diffie, ex director de Seguridad de Sun Microsystems, y Martin E. Hellman, profesor emérito de Ingeniería Eléctrica en la Universidad Stanford (California, EE.UU.), han recibido el Premio Turing 2015 de la Asociación de los Sistemas Informáticos (ACM, por sus siglas en inglés), el más prestigioso de la informática, por sus contribuciones fundamentales a la criptografía moderna.