U8.3 Funciones HASH

La función hash hace referencia a un tipo de algoritmo que permite resumir y posteriormente identificar de manera íntegra la información contenida en un mensaje, texto, etc. evitando que la información pueda modificarse sin que se modifique de igual modo la función resumen (hash).

funciones hash

 

Una función hash, o función resumen, toma un mensaje como entrada y produce una salida que llamamos código hash, o resultado hash, o valor hash, o simplemente hash. La idea básica de las funciones criptográficas hash es que los valores hash obtenidos con ellas sirven como una imagen representativa y compactada de una cadena de entrada, y pueden usarse como un posible identificador único de esa cadena de entrada: ese valor hash obtenido del mensaje de entrada suele llamarse resumen del mensaje o huella digital del mensaje.
Las funciones hash se emplean en criptografía junto con los criptosistemas de firma digital para otorgar integridad a los datos. A la hora de firmar digitalmente un documento o mensaje, es práctica habitual hacer la firma sobre la huella digital del mensaje y no sobre la totalidad del mensaje a firmar.

Características principales

  •  Es unidireccional, ya que sólo funciona en la dirección empleada inicialmente. Esto implica que una vez aplicado el algoritmo a la información, y obtenido el resumen; la persona que tenga en su poder este resumen no va a poder obtener la información inicial, aunque conozca la función hash que se utilizó para obtenerla.
  • Los caracteres de la información original sobre la que se aplica el algoritmo hash, son determinantes para crear el resumen. Si varía cualquier carácter, varía el resumen final.
  • Es de tamaño estándar, independientemente de la información sobre la que es aplicado.

MD5
El algoritmo MD5 fue desarrollado por Ron Rivest en 1992 en el MIT con la finalidad de robustecer el MD4 y a la fecha se trata del algoritmo hash de mayor uso en el mundo (ampliamente documentado en el RFC 1321), entre las aplicaciones más recurrentes están la autenticación en el protocolo SSL y la firma digital en PGP.
MD5 procesa mensajes de cualquier longitud (longitud variable) y procesa bloques uniformes de 512 bits a la vez, hasta concluir con el mensaje total a fin de entregar a la salida un bloque "resumen" de 128 bits (longitud fija).


SHA-1
La familia SHA (Secure Hash Algorithm) es un sistema de funciones hash criptográficas relacionadas de la Agencia de Seguridad Nacional de los Estados Unidos y publicadas por el National Institute of Standards and Technology (NIST). El primer miembro de la familia fue publicado en 1993 es oficialmente llamado SHA. Sin embargo, hoy día, no oficialmente se le llama SHA-0 para evitar confusiones con sus sucesores. Dos años más tarde el primer sucesor de SHA fue publicado con el nombre de SHA-1. Existen cuatro variantes más que se han publicado desde entonces cuyas diferencias se basan en un diseño algo modificado y rangos de salida incrementados: SHA-224, SHA-256, SHA-384, y SHA-512 (llamándose SHA-2 a todos ellos).
SHA-1 ha sido examinado muy de cerca por la comunidad criptográfica pública, y no se ha encontrado ningún ataque efectivo. No obstante, en el año 2004, un número de ataques significativos fueron divulgados sobre funciones criptográficas de hash con una estructura similar a SHA-1; lo que ha planteado dudas sobre la seguridad a largo plazo de SHA-1.
SHA-0 y SHA-1 producen una salida resumen de 160 bits de un mensaje que puede tener un tamaño máximo de 264 bits, y se basa en principios similares a los usados por el profesor Ronald L. Rivest del MIT en el diseño de los algoritmos de resumen de mensaje MD4 y MD5. Las mayores longitudes de hash suponen una mayor seguridad, por lo que SHA es más efectivo que MD5.