Algoritmo de autenticación de mensajes (MAA, algoritmo de autenticación de mensajes): un algoritmo para verificar la integridad del mensaje. Fue desarrollado por D. W. Davies y D. O. Clayden y publicado en 1983 . El algoritmo proporciona integridad al mensaje pero no proporciona confidencialidad . La fuerza del algoritmo se basa en el secreto de la clave .
Tras su publicación, el algoritmo llamó la atención del Comité de los London Clearing Banks y del Comité Técnico 68 de la Organización Internacional de Normalización , que lo aceptó como uno de los algoritmos de autenticación de mensajes aprobados . El algoritmo es parte de ISO 8731-2. En PC y estaciones de trabajo , es solo un 40 % más lento que MD5 .
Datos de entrada
1. Mensaje S: cadena de bits de longitud 32L, donde L toma valores de 0 a
2. Clave secreta Z de longitud 64 bits . La clave consta de dos números de 32 bits J y K. Datos de
salida de longitud32 bitsCódigo de autenticación del mensaje
1. Estos valores se encuentran de la siguiente manera:
1. X<- [ mod (2³² - 1)] xor [ mod (2³² - 2)]
2. Y<- [ mod (2³² - 1) xor mod (2³² - 2) ]*( 1+p)² mod (2³² - 2)
3. V<- [ mod (2³² - 1)] xor [ mod (2³² - 2)]
4. W<- [ mod (2³² - 1) xor mod (2³² - 2)]*(1+p)² mod (2³² - 2)
5. S<- [ mod (2³² - 1)] xor [ mod (2³² - 2)]
6. T<- [ mod (2³² - 1) xor mod (2³² - 2)]*(1+p)² mod (2³² - 2)
En el siguiente paso del algoritmo, los bits "débiles" (es decir, igual a 00x o FFx ) se reemplazan por añadiéndolas lógicamente a P. Constantes
Las constantes A ,B,C,D se definen de la siguiente manera:
A <- 0x02040801
B <- 0x00804021
C <- 0xbfef7fdf
D <- 0x7dfefbff Ciclo principal Itera
sobre todos los elementos de Xi (1<=i< =L) y da como resultado los valores H1 y H2. En el primer paso del bucle, las variables H11 y H21 se inicializan con los valores X e Y, respectivamente.
Gire V 1 bit a la izquierda.
Ki=VxorW.
T1= H1i xor Xi;
T2= H2i xor Xi;
M1= ((Kixor T1) o B) y D
M1= ((Kixor T2) o A) y C
H1(i+1) = (M2 * T1) mod (2³² - 1)
H2(i+1) = (M1 * T2) mod (2³² - 2)
Como resultado, obtenemos los valores de H1 y H2 igual a H1l y H2l, respectivamente.
El código Coda
MAC se forma de la siguiente manera: H=H1 xor H2.
D. W. Davies, D. O. Clayden "El algoritmo del autenticador de mensajes (MAA) y su implementación"
Bart Preneel, Paul C. van Oorschoty "Sobre la seguridad de dos algoritmos MAC"