Algoritmo de autenticación de mensajes

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 3 de marzo de 2021; las comprobaciones requieren 10 ediciones .

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 .

Operación del algoritmo

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.





















Paso 1.

Gire V 1 bit a la izquierda.
Ki=VxorW.

Paso 2.

T1= H1i xor Xi;
T2= H2i xor Xi;
M1= ((Kixor T1) o B) y D
M1= ((Kixor T2) o A) y C

Paso 3.

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.

Literatura

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"