HMAC hash-are cu cheie pentru autentificarea mesajului, este un mecanizm ce utilizeaza functiile hash in
combinative cu o cheie secreta.
Modul de lucru:
1. Daca lungimea cheiei = b, atunci
= K . Trecem la pasul 4. 2. Daca lungimea cheiei K > b, aplicam functia H pentru cheia K pentru obtinerea sirului de L - bit. Adaugam zerouri in partea dreapta a sirului pentru obtinerea unui sir de b-bit .Trecem la pasul 4. 3. Daca lungimea cheiei K < b adaugam zerouri in partea dreapta a K , pentru obtinerea sirului de b- bit 4. ipad (xor operatie pe bit, SAU - Exclusiv) pentru obtinerea blocului de b-bit . 5. Adunam cu . 6. Aplicam asupra rezultatului din 5. 7. opad pentru obtinerea blocului de b-bit . 8. Adunam rezultatul hash-arii din pasul 6 cu . 9. Aplicam functia pentru fluxul, obtinut la pasul 8 si calculam rezultatul. Exprimarea printr-o singura formula:
Notatii:
b dimensiunea in bit a blocului.
H functia hash. ipad bloc de tip : (0x363636 ... 3636). Se repeta b ori. cheia secreta. - este K dupa prelucrarea necesara si obligatory pentru obtinerea cheiei de b-bit L dimensiunea in bit a blocului datelor de iesire a functiei hash. opad bloc de tipul : (0x5c5c5c ... 5c5c). Se repeta b ori. mesajul transmis , lungimea mesajului este N bit.
Dimensiunea cheiei , trebuie sa fie mai mare sau egala cu
. Trebuie de remarcat ca cheile mai mari de L biti dj nu maresc substantial .