Lo Esencial Acerca de La Función Hash

La función hash es un valor calculado de acuerdo al número básico del algoritmo. El número original no puede ser decidido si no conoces toda la información para su creación. Esta clave para encriptar transacciones no puede ser deducida o encontrada. Su algoritmo es tan complicado, que incluso las computadoras de última generación no lo pueden encriptar. Para más información acerca de su integridad, lee este artículo en inglés.

¿Cómo funciona?

La función hash más utilizada y famosa es la familia SHA (su nombre completo en inglés es Secure Hash Algorithm). El número después de SHA indica la longitud del hash que esta función genera. Por lo tanto SHA-256 genera un hash de 256 bits, SHA-384 de 384 bis, etc. Veamos un ejemplo específico, en donde crearemos una huella digital para las palabras hash y hesh. Aquí, utilizaremos el parámetro MD5:

  • MD5 (hash) = 0800FC577294C34E0B28AD2839435945
  • MD5 (hesh) = AD8E9EC499F16542D9AC8873DDEF9AFE

Podemos ver que el resultado de arriba tiene 32 caracteres de longitud. Solamente cambiando una letra (a por e) se genera una cadena completamente diferente. Es importante notar que el hash es representada por una notación hexadecimal. Solo necesitamos 4 bis (2^4=16) para representar un carácter en forma 0123456789ABCDEF. Si multiplicamos el hash 32 por el número de bits (4), obtenemos 128 bits. Si conocemos la longitud del hash, podríamos deducir qué algoritmo fue utilizado.

Uso práctico de la función hash

En práctica, ambas características de las funciones son utilizadas. Es posible crear hash únicos y relativamente cortos para textos largos, y que el texto original no pueda ser obtenido del hash. La función puede ser utilizada para revisar la integridad de la información y guardar una contraseña. En el primer caso, el hash es calculado para que la información esté guardada en un lugar seguro, y que al momento que necesitemos verificarla no haya cambiado. Si el hash de entrada y salida no coinciden, es claro que la integridad de los datos ha sido comprometida. En el segundo caso, el usuario introduce su contraseña, la función se calcula para el usuario, y después el hash se guarda en el sistema. La ventaja es que no se puede encontrar qué contraseña fue introducida por el usuario a través del hash.

Más usos para el usuario cotidiano

Otro caso es cuando alguien descargue software de un servidor, y registra el hash correspondiente al archivo descargado. Si el usuario está haciendo la descarga de una fuente de poca confianza, el usuario debería obtener siempre el hash del fabricante original del software, y después de descargarlo, calcular el hash y compararlos. Podría suceder que la persona que provee la descarga haya añadido código malicioso. Este es un caso frecuente en redes P2P. Si revisas el hash que has generado contra el encontrado en el servidor donde has descargado el archivo, puede que también te engañen, pues al no ser el hash original del fabricante, el sitio de descargas genera un hash nuevo.

Otro caso es si quieres verificar la integridad de los archivos en tu computadora o en el servidor. Para este propósito, existen programas que revisan la integridad utilizando un hash para cada uno de los archivos en línea y comparándolos con los valores previos que se crean inmediatamente después de la instalación.