Un hash, también llamado a digest, es una serie única de datos. Un hash se crea cuando una colección de información que deseas proteger se ejecuta a través de una función hash. El proceso de crear un hash se llama hashing. El hash resultante es único para el mensaje original y por lo tanto se puede utilizar como firma digital de los mismos.
Desde un hash se crea una firma de identificación de datos que puede ser usada para determinar si un conjunto de datos se ha cambiado, en otras palabras, es posible verificar la integridad de los datos. Por ejemplo, quieres asegurarte de que los documentos financieros que has almacenado no han sido alterados, por lo que creas un hash de los datos correctos conocidos. Ahora, cada vez que desees comprobar los datos, simplemente compruebas los hash de los datos de nuevo y los dos hashes deben coincidir.
Al enviar los datos críticos del mensaje junto con un hash del mensaje suele ser enviado a los destinatarios. Así el destinatario puede verificar que el mensaje no ha sido alterado. Uno de los principales beneficios del hashing es que la integridad de un mensaje se puede comprobar, sin revelar el contenido del mensaje original.
Los valores hash son también llamados funciones hash unidireccionales porque una vez que se crean no se pueden revertir. Esto significa que un hash no se puede descifrar para determinar el contenido del mensaje original. Por lo tanto los hashes sólo se pueden utilizar para comparar datos.
Los valores hash se crean con las funciones hash, que son algoritmos criptográficos. Un algoritmo que se considera seguro no debe crear colisiones, que significa dos conjuntos diferentes de datos creando el mismo valor hash. Además, un algoritmo de control seguro debe crear hashes que tienen la misma longitud sin importar el tamaño de datos que el algoritmo hash. Una de las ventajas de un hash de longitud fija es que otros programas también pueden utilizarlo fácilmente puesto que es coherente.
Dos algoritmos criptográficos comunes son Message Digest (MD) y Secure Hash Algorithm (SHA). El algoritmo Message Digest tiene varias versiones, la versión más actual es el MD5. MD5 es el procedimiento por defecto de Simple Network Management Protocol (SNMP). Sin embargo hay colisiones, y los investigadores han revelado vulnerabilidades en el código MD5 y un algoritmo de cifrado más seguro seria mas recomendado para hash.
Secure Hash Algorithm (SHA), crea un hash más largo que la mayoría de las versiones de MD resultando un código más seguro. En la actualidad no se han encontrado debilidades con la versión más reciente de SHA, SHA-2. Otra versión, SHA-3, está en desarrollo y programada para ser terminada en 2012.
Una aplicación práctica de una función hash, es garantizar que las transmisiones de datos sean correctos. Cuando los paquetes se envían a través de las redes a menudo se producen errores. Muchas veces cuando un programa está disponible en un sitio web para su descarga, una función hash también está disponible para verificar que el archivo descargado es idéntico al archivo en el sitio. Uso de Hashes para comprobar los archivos de los errores es similar a una suma de comprobación o de redundancia cíclica (CRC), que es más corta y menos segura que un hash.