0%
Inicio 9 Glossary Item 9 Hash
« Back to Glossary Index

Nivel Principiante

Imagina que tienes un mensaje y lo pasas por una máquina que lo convierte en un código único y desordenado, como una huella dactilar. No importa si el mensaje es una sola palabra o un libro entero, el código siempre tendrá el mismo largo. Si cambias tan solo una letra del mensaje original, la huella dactilar (el hash) cambia por completo. Así, puedes saber si alguien ha alterado el mensaje original, porque su huella ya no coincide.

Nivel Intermedio

Un hash es el resultado de una función hash, un algoritmo matemático que toma una entrada de cualquier tamaño (un archivo, un mensaje, una contraseña) y produce una cadena de caracteres de longitud fija. Esta cadena, llamada valor hash o digest, es una representación única de la entrada. Las funciones hash están diseñadas para ser unidireccionales, lo que significa que es extremadamente difícil (casi imposible) revertir el proceso y obtener la entrada original a partir del valor hash.

Las propiedades clave de un hash son:

  • Unicidad: Dos entradas diferentes deben producir valores hash diferentes.
  • Consistencia: La misma entrada siempre producirá el mismo valor hash.
  • Irreversibilidad: No se puede obtener la entrada original a partir del hash.

Los hashes se utilizan para verificar la integridad de los datos, almacenar contraseñas de forma segura y en la tecnología blockchain.

Nivel Avanzado

Técnicamente, una función hash criptográfica es una función determinista que mapea datos de tamaño arbitrario a una cadena de bits de tamaño fijo. Las funciones hash criptográficas (como SHA-256) deben cumplir tres propiedades principales para ser consideradas seguras:

  1. Resistencia a la preimagen (Preimage Resistance): Dado un valor hash h, es computacionalmente inviable encontrar el mensaje original m tal que hash(m) = h.
  2. Resistencia a la segunda preimagen (Second Preimage Resistance): Dado un mensaje original m1, es computacionalmente inviable encontrar un mensaje diferente m2 tal que hash(m1) = hash(m2).
  3. Resistencia a colisiones (Collision Resistance): Es computacionalmente inviable encontrar dos entradas diferentes m1 y m2 tales que hash(m1) = hash(m2).

En la práctica, los hashes se utilizan en diversas aplicaciones:

  • Seguridad de Contraseñas: En lugar de almacenar contraseñas en texto plano, los sistemas almacenan el hash de la contraseña. Cuando un usuario inicia sesión, el sistema calcula el hash de la contraseña introducida y lo compara con el hash almacenado, sin necesidad de conocer la contraseña real. Para evitar los ataques de fuerza bruta con tablas de arco iris, se utiliza el salting, que añade una cadena aleatoria a la contraseña antes de hacer el hash.
  • Integridad de Datos: Un hash puede actuar como una suma de verificación digital para verificar que un archivo no ha sido alterado durante su transferencia.
  • Blockchain: Cada bloque de una cadena de bloques contiene el hash del bloque anterior, lo que crea una cadena de datos inmutable.

El hash es un componente fundamental de la criptografía moderna y un pilar de la seguridad en la web y los sistemas distribuidos.

« Volver al índice del glosario