¿Cuál es la diferencia entre la función hash y una función hash con clave en el camino?


Respuesta 1:

Permítanme comenzar con algunas definiciones básicas que aclararán cualquier ambigüedad.

Función hash: es una función matemática que toma una entrada de longitud variable y genera una salida de longitud fija. Puede o no ser unidireccional, dependiendo de la función hash utilizada, se puede revertir o al menos se pueden generar las posibles entradas.

Función hash criptográfica: una función hash criptográfica es una categoría especial de función hash que tiene dos propiedades:

  1. Unidireccional: dado un valor hash, debería ser computacionalmente inviable calcular la entrada Resistente a la colisión: la viabilidad de generar dos entradas de manera que produzcan el mismo valor hash debería ser computacionalmente inviable de lograr.

Cuando digo computacionalmente inviable, quiero decir que puede ser teóricamente posible, pero inviable de lograr en escenarios de la vida real.

Ahora los hash se clasifican como MDC y MAC. Los MDC (Códigos de detección de manipulación o Códigos de detección de modificación) aseguran que un mensaje no haya sido alterado, mientras está en tránsito. El atacante puede ser intencional, por un atacante o involuntario por canales ruidosos. Por lo tanto, aseguran la integridad del mensaje.

Los MAC (Códigos de autenticación de mensajes) también conocidos como funciones hash con clave son básicamente una forma de hacer que un valor hash dependa de una clave secreta, junto con el mensaje de entrada.

En pocas palabras, en lugar de dar solo una entrada (mensaje), ahora estamos obligados a dar dos entradas (mensaje y una clave secreta). Aseguran la integridad y la autenticidad del mensaje.

Los MAC pueden implementarse de dos maneras: MAC basados ​​en hash (HMAC) o MAC basados ​​en cifrado (CMAC). Los CMAC pueden usar cualquier algoritmo de cifrado (prominentemente RSA, Triple DES, Rabin) junto con cualquier algoritmo hash (SHA-256, MD5).

Espero que esto aclare tu duda


Respuesta 2:

Todas las funciones de Hash, por su definición, son estrictamente de un sentido. Eso significa que dada la salida de hash, no son reconvertibles a su forma original una vez hash. Esto proporciona un mensaje de autenticidad a la transacción. Cualquier alteración del mensaje se identifica debidamente cuando se compara con el código hash.

El hash con clave está encriptando el código hash generado anteriormente con la clave privada para proporcionar también la autenticación del remitente. Actúa como la firma del remitente. Por lo tanto, el hash con clave tiene autenticación de remitente y mensaje, sello distintivo de una transacción segura.