Authentication Functions
1. Three Tools (beginner toolbox!)
Same job (prove message OK!) three ways: hash (public fingerprint, no key!), MAC (keyed fingerprint, shared secret!), signature (asymmetric seal, private signs!). Pick by: shared key? need court proof?
2. Comparison (exam table — memorize!)
| Hash | MAC | Signature | |
|---|---|---|---|
| Key | none! | symmetric shared! | private signs, public verifies! |
| Gives | integrity | integrity + authenticity | + non-repudiation! |
| Speed | fastest | fast | slowest (100×!) |
| Example | SHA-256(file) | HMAC-SHA256 | RSA-SHA256 sign! |
3. How Each Verifies (one line each!)
hash: send (m, H(m)); Bob recomputes H(m) — match? (Eve fakes both — no source!)
MAC: send (m, MAC_K(m)); Bob recomputes with K — match? (Eve lacks K!)
sign: send (m, Sign_priv(H(m))); Bob checks with public — valid? (only Alice could!)
4. Practice Rule (viva!)
Bulk data + shared key → MAC (HMAC!). Public verification / legal proof → signatures (hash + sign!). Download check → plain hash (HTTPS already authenticates!).
5. Exam Points
- Three-way table + verify steps — 7 marks, very frequent.
- Key-type per tool — 3 marks, favourite one-liner.