Pasar al contenido principal

Hash

Se utiliza la palabra hash, a secas, para denominar comúnmente al resultado de una función hash, que es una de las funciones criptográficas más importantes en el mundo de la informática. Estas funciones transforman cualquier bloque arbitrario de datos en una nueva serie de caracteres, única, y con una longitud fija, sin importar la cantidad de datos iniciales introducidos en la función. 

Esta técnica sirve para comprobar la integridad de los archivos al intercambiarlos, es decir, para poder asegurar que algunas comunicaciones o archivos no fueron alterados en modo alguno. Esto es posible comparando el hash original antes del envío con el que se obtiene tras la transmisión de los datos. Si los dos hashes son idénticos, se puede aseverar que no ha habido alteración alguna.

Adicionalmente, los hashes se utilizan para almacenar contraseñas de forma segura, también en las firmas de documentos electrónicos y son una parte fundamental en el modelo blockchain para el almacenamiento de información en la generación de criptomonedas. 

Se considera que el término hash surgió por primera vez en los años 50, aunque no fue hasta el inicio de la década de los 60 cuando apareció la primera función hash. En 1961, Wesley Peterson creó la función Cyclic Redundancy Check (Comprobación de Redundancia Cíclica) con el fin de comprobar si los datos transmitidos en redes y en sistema de almacenamiento digital eran correctos. Fácil de implementar y muy rápida, ganó gran aceptación y, hoy día, es un estándar industrial. Con la evolución de la informática y de las computadoras y con el paso de los años se han ido generando nuevas funciones con mayores y mejores características que la inicial.

Las funciones hash trabajan mediante una serie de complejos procesos matemáticos y lógicos. Estos procesos se integran en un software con el fin de poder ser utilizado desde una computadora. Así, se podrá tomar cualquier serie de datos, introducirlos en la función y procesarlos para obtener una cadena de caracteres de longitud fija y única para los datos introducidos. Conviene señalar que es prácticamente imposible realizar el proceso inverso, es decir, no se pueden obtener los datos originales desde un hash ya formado, ya que el proceso de creación de hashes es de un solo sentido.

Algunas de las funciones hash que se más comúnmente se utilizan en la actualidad serían:

  • MD: Es un de las primeras funciones hash creadas y sus siglas MD son un acrónimo de Message Digest Algorithm. La versión MD2 fue generada en 1989, y adquirió gran importancia en la seguridad de Internet. Evolucionó hasta MD5, que sigue siendo utilizada en entornos en los que la seguridad no es una alta prioridad.

    Ejemplo: C0r4z0N → c1025547bad76f49c6373510dafbc650 (MD5)

    COr4z0N → a23fec2291f6d075b7ca3ae31aaa1da3

  • RIPEMD: Es una función hash creada por el proyecto europeo RIPE NCC (Réseaux IP Européens Network Coordination Centre) en el año de 1992. Su principal función era la de sustituir al estándar del momento, la función hash MD4. En la actualidad aún se considera muy seguro, especialmente en sus versiones RIPEMD-160, RIPEMD-256 y RIPEMD-320.

    Ejemplo: C0r4z0N → d8579f636b24ef281e72651d024f09489705943b (RIPEMD-160)

    Cor4z0N → 57be2a5922d353d5ffa4b5112a87759689fc8b85

  •  SHA: el estándar actual de hashes criptográficos y sus siglas son un acrónimo de Secure Hash Algorithm. Fue creada por la NSA en 1993. SHA, y sus funciones derivadas, están consideradas como las funciones hash más seguras hasta el momento.

    Ejemplo: C0r4z0N → c54da4c0463951750c5517ae7627b7cc8fd4912ec327083f96eeb650858f9027 (SHA-256)

    Cor4z0N → ebaaa7bd6160c7930734e86c392fc086159069a59d54a3d8ec2e4f476eb7f9f2