CyberSec4you: Tu escudo en el mundo digital

🔐 Hash y HMAC en Criptografía.

Cuando escuchamos el término hash, muchas veces lo asociamos con un conjunto de caracteres aleatorios. Sin embargo, en criptografía, un hash es mucho más que eso.

Edwin Guajala

10/21/20252 min read

🔐 Hash y HMAC en Criptografía: más allá de los números aleatorios

Cuando escuchamos el término hash, muchas veces lo asociamos con un conjunto de caracteres aleatorios. Sin embargo, en criptografía, un hash es mucho más que eso:
es el resultado de aplicar una función matemática determinista que transforma una entrada (texto, archivo, mensaje, etc.) en una salida de longitud fija, normalmente representada en formato hexadecimal.

La propiedad clave de esta función es que es unidireccional:
una vez obtenido el hash, no existe una forma práctica de recuperar la información original.

⚙️ ¿Cómo funciona una función hash criptográfica?

1️ Compresión irreversible:
La función toma una entrada de cualquier tamaño y la “condensa” en un bloque de longitud fija (por ejemplo, 256 bits para SHA-256).
A diferencia de la compresión tradicional, esta transformación no es reversible: no se puede reconstruir el original a partir del hash.

2️ Dominio y rango:
En términos matemáticos, el dominio representa todas las posibles entradas, mientras que el rango son todas las posibles salidas.
Dado que el rango es mucho menor que el dominio, es inevitable la existencia teórica de colisiones, es decir, que dos entradas distintas produzcan el mismo hash.

3️ Resistencia a colisiones:
Una buena función hash hace que encontrar dos entradas diferentes con el mismo resultado sea computacionalmente inviable.

4️ Resistencia a pre-imágenes:
Dado un hash, debe ser prácticamente imposible encontrar una entrada que lo haya generado.

🧩 ¿Por qué los hashes son esenciales en criptografía?

Los hashes son la base de la integridad de los datos.
Permiten verificar si una información ha sido alterada durante su transmisión o almacenamiento.

📦 Ejemplo:
Si Alice publica un software y comparte su hash oficial, Bob puede descargar el archivo, calcular su hash localmente y comparar ambos.
Si los valores coinciden, puede estar seguro de que el archivo no ha sido modificado por terceros.

Esta propiedad es la razón por la que los hashes se usan en:

  • Firmas digitales 🖋️

  • Certificados y autenticación 🔏

  • Blockchain y verificación de integridad de archivos ⛓️

🔑 Más allá del hash: autenticación con HMAC

Las funciones de hash convencionales (como SHA-256 o SHA-3) garantizan integridad, pero no autenticidad.
Cualquiera podría generar el mismo hash si conoce el contenido.
Aquí entra en juego HMAC (Hash-based Message Authentication Code).

🧠 HMAC combina:

  • Una función hash (como SHA-256)

  • Una clave secreta compartida

De esta forma, el resultado no solo depende del contenido, sino también de la clave.
Esto asegura que solo quien posea la clave secreta pueda generar o verificar el hash, añadiendo autenticación y protección frente a modificaciones no autorizadas.

📘 Ejemplo:
Si Alice envía un archivo a Bob y ambos comparten una clave secreta, puede generar un HMAC del archivo.
Cuando Bob lo recibe, calcula el HMAC con la misma clave.
Si ambos coinciden, sabe que el archivo proviene de Alice y no ha sido alterado.