- Message authentication code
-
Contenido
Definición
En criptografía, un Código de Autenticación de Mensaje (a menudo llamado MAC) es una porción de información utilizada para autenticar un mensaje.
Los valores MAC necesitan para su cálculo una clave privada (o simétrica) K, que sólo conozcan remitente y destinatario, pero no los atacantes. Matemáticamente, se define como una función que toma dos argumentos: una clave K de tamaño fijo y un mensaje M de longitud arbitraria. El resultado es un código MAC de longitud fija:
- MAC = CK(M)
donde:
- M es un mensaje de longitud arbitraria
- CK es la función que transforma el mensaje en un valor MAC y que utiliza una clave secreta K como parámetro
- MAC es el valor MAC calculado de longitud fija
Si el valor MAC enviado coincide con el valor que el destinatario calcula, éste puede garantizar que:
- El mensaje no fue alterado
- El mensaje proviene del remitente indicado en el mensaje
- Si el mensaje incluye un número de secuencia, que el mensaje sigue la secuencia correcta
Función MAC ideal
Al igual que una función hash ideal, se define la función MAC ideal como un mapeo aleatorio de todos los posibles valores del mensaje de entrada M en salidas de tamaño de n bits.
Propiedad de seguridad de las funciones MAC
Sea n el tamaño del resultado de la función MAC, y x el grado de incertidumbre, medido en bits, que tiene el atacante sobre el valor de la clave K utilizada en la función CK. Un ataque sobre la función MAC se define como una forma no trivial de distinguir esa función CK de la función CK ideal en menos de 2 min(n, x) pasos.
Tipos de funciones MAC
Actualmente, existen 3 grandes grupos de funciones MAC:
- CBC-MAC: La idea detrás de este algoritmo es la de convertir un algoritmo de cifrado simétrico en una función MAC. El funcionamiento básico consiste en cifrar el mensaje usando un algoritmo en modo CBC y tirar todo el resultado de texto cifrado a excepción del último bloque.
- HMAC: Dado que una función MAC es un mapeo aleatorio, y que las funciones hash se comportan como tales, podemos explotar la idea de utilizar una función hash para implementar una función MAC. La opción más popular hoy en día es la de usar HMAC-SHA-256.
- UMAC: Las funciones UMAC parten de la premisa de que el atacante necesita interactuar con el sistema para comprobar si el resultado MAC que ha generado es válido o no. Es decir, no existe nada parecido a un ataque exhaustivo off-line contra las funciones MAC. Así, argumentan que se puede reducir el resultado a tan solo 64 bits. Sin embargo, no existe un estándar bien definido de funciones MAC como ocurre con las funciones hash, lo que tiene efectos contraproducentes a largo plazo desde el punto de vista de la implementación.
Principio de Horton
El principio de Horton establece que se debe autenticar el significado del mensaje, y no el código del mensaje.
Véase también
Wikimedia foundation. 2010.