Una función hash criptográfica ( CHF ) es un algoritmo matemático que asigna datos de un tamaño arbitrario (a menudo denominado "mensaje") a una matriz de bits de un tamaño fijo (el "valor hash", "hash" o "resumen del mensaje" ). Es una función unidireccional , es decir, una función para la cual es prácticamente inviable invertir o invertir el cómputo. [1] Idealmente, la única forma de encontrar un mensaje que produzca un hash dado es intentar una búsqueda de fuerza bruta de posibles entradas para ver si producen una coincidencia, o usar una tabla arcoíris de hash coincidentes. Las funciones hash criptográficas son una herramienta básica de la criptografía moderna.
Una función hash criptográfica debe ser determinista , lo que significa que el mismo mensaje siempre da como resultado el mismo hash. Idealmente, también debería tener las siguientes propiedades:
Las funciones hash criptográficas tienen muchas aplicaciones de seguridad de la información , especialmente en firmas digitales , códigos de autenticación de mensajes (MAC) y otras formas de autenticación . También se pueden utilizar como funciones hash ordinarias , para indexar datos en tablas hash , para la toma de huellas dactilares , para detectar datos duplicados o identificar archivos de forma única, y como sumas de comprobación para detectar daños accidentales en los datos. De hecho, en contextos de seguridad de la información, los valores hash criptográficos a veces se denominan huellas dactilares ( digitales ) , sumas de verificación o simplemente valores hash ., aunque todos estos términos representan funciones más generales con propiedades y propósitos bastante diferentes. [3]
La mayoría de las funciones hash criptográficas están diseñadas para tomar una cadena de cualquier longitud como entrada y producir un valor hash de longitud fija.
Una función hash criptográfica debe ser capaz de soportar todos los tipos conocidos de ataques criptoanalíticos . En criptografía teórica, el nivel de seguridad de una función hash criptográfica se ha definido utilizando las siguientes propiedades:
La resistencia a la colisión implica una segunda resistencia previa a la imagen, pero no implica una resistencia previa a la imagen. [5] La suposición más débil siempre se prefiere en la criptografía teórica, pero en la práctica, una función hash que solo es resistente a una segunda imagen previa se considera insegura y, por lo tanto, no se recomienda para aplicaciones reales.