HMAC

Le funzioni HMAC sono basate su funzioni hash, e in pratica è una funzione MAC - Message Authentication Codes. La funzione hash deve essere resistente alle collisioni.

HMAC(K, m) = H((Kp XOR opad) || H((Kp XOR ipad) || m))

con K una chiave di lunghezza variabile, e Kp la chiave versione zero-padded. opad e ipad sono costanti molto distanti tra loro in modo da poter usare due chiavi diverse per le due funzioni hash.

Solitamente si mette nel nome anche la funzione hash: HMAC SHA256.

CMAC

CMAC è il successore di CBC-MAC, e quindi si basa su block ciphers.