¿Cuáles son las características de las funciones hash que permiten su uso en firmas digitales?
Todas las funciones hash tienen la siguiente característica básica: si dos valores hash son diferentes (según la misma función), entonces las entradas originales de los dos valores hash también son diferentes. La razón es que la función hash tiene un resultado determinista. Pero por otro lado, la entrada y la salida de la función hash no están en correspondencia uno a uno. Si dos valores hash son iguales, los dos valores de entrada. Es probable que sean iguales, pero no pueden estar absolutamente seguros de que los dos sean iguales. Ingrese algunos datos para calcular el valor hash y luego cambie parcialmente el valor de entrada. Una función hash con fuertes propiedades de ofuscación producirá un valor hash completamente diferente. .
Las funciones Hash típicas tienen un dominio infinito, como cadenas de bytes de longitud arbitraria, y rangos de valores limitados, como cadenas de bits de longitud fija. En algunos casos, las funciones hash se pueden diseñar para que tengan el mismo tamaño. dominio y correspondencia uno a uno entre rangos. Una función hash uno a uno también se denomina permutación. La reversibilidad se puede obtener utilizando una serie de operaciones de "mezcla" reversibles en los valores de entrada. El objetivo de construir una función hash es distribuir las direcciones hash lo más uniformemente posible en el espacio hash y al mismo tiempo hacer que el cálculo sea lo más simple posible para ahorrar tiempo de cálculo. El método de utilizar la palabra clave K en sí o la palabra clave más una constante numérica C como dirección hash, la función hash correspondiente: h(K)=K C La función hash unidireccional es un algoritmo para el cifrado/codificación de datos
Las funciones hash unidireccionales se utilizan generalmente para generar resúmenes de mensajes, cifrado de claves, etc. Las más comunes son:
MD5 (Algoritmo 5 de resumen de mensajes): es un método desarrollado por RSA Data Security Company MD5, un algoritmo hash unidireccional, se usa ampliamente y puede usarse para cifrar bloques de datos de diferentes longitudes en un valor de 128 bits;