This document discusses message authentication techniques. It describes message authentication codes (MACs) which use a secret key to generate a code appended to messages to verify authenticity and integrity. Hash functions can also provide authentication but do not use a secret key. HMAC is introduced as a technique that incorporates a secret key into existing hash functions like SHA-1/2 to create a MAC. Digital signatures, which encrypt a hash of a message with a private key, providing both authentication and non-repudiation, are also discussed.