Algoritm de autentificare a mesajelor

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 3 martie 2021; verificările necesită 10 modificări .

Algoritm de autentificare a mesajelor (MAA, algoritm de autentificare a mesajelor) - un algoritm pentru verificarea integrității mesajului. A fost dezvoltat de D. W. Davies și D. O. Clayden și publicat în 1983 . Algoritmul asigură integritatea mesajului, dar nu oferă confidențialitate . Puterea algoritmului se bazează pe secretul cheii .

După publicarea sa, algoritmul a atras atenția Comitetului London Clearing Banks și Comitetul tehnic 68 al Organizației Internaționale pentru Standardizare , care l-a acceptat ca unul dintre algoritmii de autentificare a mesajelor aprobați . Algoritmul face parte din ISO 8731-2. Pe computere și stații de lucru , este cu doar 40% mai lent decât MD5 .

Operațiunea algoritmului

Date de intrare
1. Mesaj S — șir de biți cu lungimea de 32L, unde L ia valori de la 0 la 2. Tasta secretă Z cu lungimea de 64 de biți . Cheia constă din două numere de 32 de biți J și K. Date de ieșire de 32lungiCod de autentificare a mesajului 1. Aceste valori se găsesc după cum urmează: 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) La următorul pas al algoritmului, biții „slabi” (adică, egali cu 00x sau FFx ) sunt înlocuiți cu adăugându-le logic la P. Constantele constante A ,B,C,D sunt definite după cum urmează: A <- 0x02040801 B <- 0x00804021 C <- 0xbfef7fdf D <- 0x7dfefbff Bucla principală Iterează peste toate elementele lui Xi (1<=i< =L) și rezultă valorile H1 și H2. La prima etapă a buclei, variabilele H11 și H21 sunt inițializate cu valorile X și respectiv Y.





















Pasul 1.

Rotiți V cu 1 bit spre stânga.
Ki=VxorW.

Pasul 2.

T1= H1i xor Xi;
T2= H2i xor Xi;
M1= ((Kixor T1) sau B) și D
M1= ((Kixor T2) sau A) și C

Pasul 3.

H1(i+1) = (M2 * T1) mod (2³² - 1)
H2(i+1) = (M1 * T2) mod (2³² - 2)

Ca rezultat, obținem valorile lui H1 și H2 egal cu H1l, respectiv H2l.
Codul MAC Coda
este format după cum urmează: H=H1 xor H2.

Literatură

D. W. Davies, D. O. Clayden „Algoritmul de autentificare a mesajelor (MAA) și implementarea sa”
Bart Preneel, Paul C. van Oorschoty „Despre securitatea a doi algoritmi MAC”