24 / 736HASH

Hash

huella criptográfica

Una huella digital breve que permite comparar datos y detectar cambios.

Un hash es el resultado de un cálculo sobre datos, como un archivo o una transacción de Bitcoin. Los mismos datos y el mismo procedimiento producen la misma huella. Un hash criptográfico busca dificultar que se encuentren otros datos con el mismo resultado o una entrada adecuada para un resultado dado. No es una copia cifrada de los datos.

Usted descarga un instalador. Su editor ha publicado una huella de control y usted calcula la de su copia con el mismo algoritmo. Si difieren, los datos no son iguales: el archivo podría estar dañado, sustituido o modificado. Coincidir con una huella fiable, en cambio, ofrece una gran seguridad de tener la copia correcta. No hace falta comparar todo el archivo a mano. SHA-256, por ejemplo, genera un resultado de 256 bits, normalmente escrito con 64 caracteres hexadecimales, tanto para un mensaje breve como para un archivo grande. [1] [3]

La clave es de dónde procede la huella de referencia. Si un atacante sustituye en una web el archivo y su hash publicado, ambos coincidirán. Calcular un hash no exige una clave secreta: cualquiera puede hacerlo con datos públicos. Por eso no equivale a una firma digital, mediante la cual el titular de una clave acredita datos. Al verificar Bitcoin Core se comprueba el hash del archivo, pero también las firmas de la lista de huellas y la fiabilidad de las claves firmantes. Un hash solo no demuestra autoría, seguridad del programa ni veracidad de un documento. [3]

El cálculo del hash no tiene un paso inverso llamado «descifrar». El resultado de longitud fija no contiene todo el archivo, por lo que no sirve como copia de seguridad. Pero tampoco significa que oculte de forma segura cualquier entrada. Si se calcula el hash de una contraseña corta y común, un atacante puede probar contraseñas probables y comparar sus huellas. No necesita invertir la función: basta con adivinar la entrada. Un hash rápido por sí solo no sustituye una contraseña fuerte ni un método diseñado para almacenar contraseñas de forma segura. [1] [5]

En una búsqueda de preimage se parte de una huella dada y se intenta encontrar datos que la produzcan. En una colisión basta encontrar dos entradas distintas cualesquiera con el mismo hash. Las colisiones existen matemáticamente porque hay más entradas posibles que resultados de longitud fija. La seguridad criptográfica consiste en que encontrarlas no sea viable en la práctica, no en que sean imposibles. Además, «hash» no designa un único algoritmo: no todas las funciones hash están pensadas para la seguridad criptográfica. [1]

Bitcoin usa hashes para identificar transacciones, enlazar bloques y verificar el trabajo de minería. Pero la receta cambia según el caso. El hash de una cabecera aplica SHA-256 dos veces; HASH160 combina SHA-256 con RIPEMD-160. Un tagged hash separa además los distintos usos mediante una etiqueta. Para verificar un resultado se necesita tanto el algoritmo correcto como los bytes exactos de entrada, las unidades básicas de datos. El texto «61» contiene bytes distintos del único byte de valor hexadecimal 61, que representa la letra a en ASCII. Calcular el hash de la representación mostrada en lugar de los datos es, por tanto, otro cálculo. [2] [4]

Para obtener la imagen más completa, lee esta entrada junto con SHA-256, Proof of Work, Block Header, Transacción, Merkle Tree, Bitcoin. También enlazan con esta entrada SHA-256, Nonce, HTLC, Hashcash.

DOC · 001NIST FIPS 180-4: Secure Hash StandardFuente primaria DOC · 002Bitcoin Core v29.0: hash constructionsFuente primaria DOC · 003Bitcoin Core: Verify your downloadFuente primaria DOC · 004BIP340: tagged hashesFuente primaria DOC · 005NIST SP800-63B: Password verifiersFuente primaria
Revisado: Fuentes primero · No es asesoramiento financiero