← Back to the reading view
Slides · 10 slides
Message authentication codes: HMAC, CMAC, GMAC & Poly1305
The same module told visually, ready to present. Speaker notes carry the full explanation.
Symmetric
Message authentication codes
Proving a message came from someone with the shared key, and wasn't changed on the way
Message authentication codes: HMAC, CMAC, GMAC & Poly1305 · Classical Crypto Today1 / 10
What it proves
Tag, send, recompute, compare
Gives integrity and authenticity, not secrecy or non-repudiation
Message authentication codes: HMAC, CMAC, GMAC & Poly1305 · Classical Crypto Today2 / 10
Hash-based
HMAC: a hash, used twice
The second keyed hash hides the state that length-extension needs
Message authentication codes: HMAC, CMAC, GMAC & Poly1305 · Classical Crypto Today3 / 10
Block-cipher based
CBC-MAC breaks on variable lengths
Message authentication codes: HMAC, CMAC, GMAC & Poly1305 · Classical Crypto Today4 / 10
The repair
CMAC: a secret ending
dbl = shift left one bit; if the top bit was 1, xor 0x87 into the last byte
Message authentication codes: HMAC, CMAC, GMAC & Poly1305 · Classical Crypto Today5 / 10
Polynomial MAC
GMAC: GCM with nothing to encrypt
Message authentication codes: HMAC, CMAC, GMAC & Poly1305 · Classical Crypto Today6 / 10
One-time authenticator
Poly1305
Message authentication codes: HMAC, CMAC, GMAC & Poly1305 · Classical Crypto Today7 / 10
Choosing
Which MAC to reach for
Message authentication codes: HMAC, CMAC, GMAC & Poly1305 · Classical Crypto Today8 / 10
Verification
Getting verification right
Message authentication codes: HMAC, CMAC, GMAC & Poly1305 · Classical Crypto Today9 / 10
Tag length
Every dropped bit doubles the odds
Message authentication codes: HMAC, CMAC, GMAC & Poly1305 · Classical Crypto Today10 / 10
1 / 10
Keys: ← → move, F full screen, G all slides, N notes