2010-05-14 86 views

Respuesta

45

La principal diferencia es conceptual: mientras hashes se utilizan para garantizar la integridad de los datos, un MAC integridad y autenticación garantías.

Esto significa que un código hash se genera ciegamente del mensaje sin ningún tipo de entrada externa: lo que obtienes es algo que se puede usar para verificar si el mensaje sufrió alguna alteración durante su viaje.

Un MAC en su lugar usa una clave privada como semilla de la función hash que utiliza al generar el código: esto debería asegurar al receptor que, no solo el mensaje no se ha modificado, sino también quién lo envió es lo que estaban esperando: de lo contrario, un atacante no podría conocer la clave privada utilizada para generar el código.

según la Wikipedia que tienen que:

Mientras funciones MAC son similares a las funciones hash criptográficas, que poseen diferentes requisitos de seguridad. Para que se considere seguro, una función MAC debe resistir la falsificación existencial bajo los ataques de texto plano elegidos. Esto significa que incluso si un atacante tiene acceso a un oráculo que posee la clave secreta y genera MAC para los mensajes de la elección del atacante, el atacante no puede adivinar el MAC para otros mensajes sin realizar cantidades imposibles de cálculo.

Por supuesto, aunque sus similitudes, se implementan de una manera diferente: por lo general, un algoritmo de generación MAC se basa en un algoritmo de generación de código hash con la extensión que le importa usar una clave privada.

+3

Lo siento, ¿qué significa que 'incluso si un atacante tiene acceso a un oráculo que posee la clave secreta y genera MAC para los mensajes de elección del atacante, ** el atacante no puede adivinar el MAC para otros mensajes ** ¿? Si un atacante tiene acceso a un oráculo que posee la clave secreta, también puede generar MAC para otros mensajes, enviándolos como una entrada al oráculo, ¿no es así? – tonix

+0

@tonix Esta frase solo se usa para definir una función MAC segura. Este escenario hipotético es el peor caso de un escenario más realista, en la que el atacante podría observa múltiples pares de texto plano-MAC, y luego tratar de forjar/adivinar el MAC de un mensaje que el atacante quiere enviar. – ZillGate

+0

Algunas otras personas han cambiado estas definiciones: una función hash no proporciona integridad, mientras que la autenticación es lo que ahora llamamos la integridad (cf. crypto.stanford.edu/~dabo/cryptobook). Este cambio es para mejor imo –

15

Un hash es una función que produce un resumen de un mensaje. Un hash criptográficamente seguro es para el que es computacionalmente inviable generar un mensaje con un resumen dado. Por sí solo, un hash de un mensaje no proporciona información sobre el remitente de un mensaje dado. Si puede comunicar de forma segura el hash de un mensaje, puede usarse para verificar que un mensaje grande se haya recibido correctamente sobre un transporte no seguro.

Un código de autenticación de mensaje es una forma de combinar una clave secreta compartida con un mensaje para que el destinatario del mensaje pueda autenticar que el remitente del mensaje tiene la clave secreta compartida y el que no lo hace saber que la clave secreta podría haber enviado o alterado el mensaje.

Un HMAC es un código de autenticación de mensajes basado en hash. Por lo general, esto implica aplicar una función hash una o más veces a algún tipo de combinación del secreto compartido y el mensaje. HMAC generalmente refiere el algoritmo documentado en RFC 2104 o FIPS-198.

Un MAC no encripta el mensaje para que el mensaje sea en texto plano. No revela la clave secreta, por lo que se puede enviar un MAC a través del canal abierto sin comprometer la clave.

-6
  1. Las funciones hash utilizan la criptografía asimétrica, mientras que MAC utiliza la criptografía simétrica.
  2. Las funciones de hash criptográficas no siempre son MAC, pero MAC puede ser una función de hash criptográfica (funciones de hash con clave).
  3. Las funciones hash proporcionan no repudio, donde MAC do No proporciona servicios de no-re
+3

(1) Las funciones hash no necesariamente utilizan claves en absoluto, permiten simétricas o asimétricas los solos. (3) está incompleto y de atrás hacia adelante. -1 – EJP

3

Básicamente la diferencia principal está MAC utiliza una clave privada y el hash no utiliza ninguna tecla. Debido a eso, MAC nos permite lograr la autenticación.

2

HASH FUNCTION: Función que asigna un mensaje de cualquier longitud en un valor hash de longitud fija, que sirve como autenticador.

MAC: una función del mensaje y una clave secreta que produce un valor de longitud fija que sirve como autenticador.

+0

El uso de la palabra "autenticador" en su definición de "Función Hash" es engañoso. El SHA (algoritmo de hash asegurado) por sí solo no se utiliza para la autenticidad. Se usa para verificar la integridad de los datos. –

8

Encontré esto al punto respuesta de otro foro.

Estos tipos de criptografía primitiva se pueden distinguir por los objetivos de seguridad que cumplen (en el protocolo simple de "adjuntar a un mensaje"):

Integridad: ¿Puede el destinatario estar seguro de que el mensaje no tiene ha sido modificado accidentalmente?

Autenticación: ¿Puede el destinatario estar seguro de que el mensaje proviene del remitente?

No repudio: Si el destinatario transfiere el mensaje y la prueba a un tercero, ¿puede el tercero confiar en que el mensaje se originó en el remitente? (Tenga en cuenta que estoy hablando de no repudio en el sentido criptográfico, no en el sentido legal.) También es importante esta pregunta:

Claves: ¿La primitiva requerir una clave secreta compartida o pública-privada pares de llaves? Creo que la respuesta corta se explica mejor con una tabla:

Cryptographic primitive | Hash | MAC | Digital 
Security Goal   |  |   | signature 
------------------------+------+-----------+------------- 
Integrity    | Yes | Yes | Yes 
Authentication   | No | Yes | Yes 
Non-repudiation   | No | No  | Yes 
------------------------+------+-----------+------------- 
Kind of keys   | none | symmetric | asymmetric 
         |  | keys | keys 

Recuerde que la autenticación sin confianza en las claves utilizadas es inútil. Para las firmas digitales, un destinatario debe estar seguro de que la clave de verificación en realidad pertenece al remitente. Para los MAC, un destinatario debe estar seguro de que la clave simétrica compartida solo se ha compartido con el remitente.

Click here for more info

+0

Algunas otras personas ahora han cambiado estas definiciones: una función hash no proporciona integridad, mientras que la autenticación es lo que ahora llamamos integridad (consulte https://crypto.stanford.edu/~dabo/cryptobook/). Este cambio es para el mejor imo. –

2

Un hash es un resumen o una huella digital de un mensaje y no proporcionar ni la integridad ni la autenticación en sí, ya que es susceptible al ataque man-in-the-middle. Supongamos que A quiere enviar un mensaje M, combinado con hash H de M, a B. En su lugar, C captura el mensaje y genera el Mensaje M2 y el hash H2 de M2, y lo envía a B. Ahora B, de ninguna manera puede verificar si esto es el mensaje original de A o no. Sin embargo, el hash se puede usar de otras formas para lograr integridad y autenticación, como MAC.

Un MAC que también es un resumen del mensaje proporciona Integridad y Autenticación. MAC se puede calcular de muchas maneras. El método más simple es usar una función hash con dos entradas, el mensaje y una clave secreta compartida. El uso de la clave secreta compartida agrega la capacidad de autenticación al MAC y, por lo tanto, proporciona integridad y autenticación. Sin embargo, MAC aún no proporciona el no repudio, ya que cualquiera de las partes que tienen la clave secreta compartida puede producir el mensaje y MAC. Aquí viene la firma digital y la criptografía de clave pública en acción.

+0

El mensaje y el MAC se comparten durante la mensajería, pero ¿cómo se comparten las claves compartidas para volver a generar el MAC? Si las claves se comparten a través de mensajes, ¿no puede el intermediario usar la clave y el generador de MAC para cambiar el mensaje y pasar al receptor? – Bsienn

+0

@Bsienn clave compartida se genera utilizando criptografía de clave pública, y no se comparte directamente (a través de mensajes sin formato) por los usuarios. –

Cuestiones relacionadas