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.
