Existen por fuera de los criptosistemas. Es una terna de algoritmos:

  • Gen (Algoritmo de generación de claves)
  • Mac (Etiquetado):
    • La idea es que sea más chica que el mensaje original
  • Vrfy (Verificación):

De esta forma:

  • La salida de Gen define el espacio de claves.
  • Mac es una función no deterministica
  • Vrfy retorna 0 (invalido) o 1 (valido)
  • Para todo y validos:

Seguridad de un MAC

![[Pruebas de Seguridad#message-authentication-experiment—textmac-forge_a-pi|Message Authentication Experiment ]]

Ataques de Replay

Los MACs no ofrecen protección contra un ataque de replay, donde se repite un mensaje enviado/almacenado anteriormente. Esto debe ser solucionado explícitamente en los protocolos, mediante números de secuencia o timestamps.

CBC-MAC

Podemos construir un MAC a partir de una primitiva de cifrado de bloque: Sea una función pseudoaleatoria.

  • Gen:
  • Mac:
    • Sea , sea
  • Vrfy:

Condición de Infalsificabilidad

Es infalsificable si solo se permiten mensajes de la misma longitud.

Extensiones

Las siguientes extensiones son seguras para mensajes de longitud arbitraria:

  • En vez de utilizar , utilizamos como clave para la función .
    • Computar
    • Calcular ,
  • Computar
  • Utilizar dos claves y : Como esto requiere claves del doble de longitud no se usa mucho.
    • Calcular

WARNING

La variante no es segura

HMAC

Funciones de Hash y MACs

Es posible construir un MAC a partir de una función de Hash. Dado una función de hash libre de colisiones, la función es infalsificable (pasa la prueba MAC-Forge), donde :

  • GEN:
  • MAC: , donde y .

El valor de y no importa, siempre y cuando sean diferentes.

Enlace al original