This document discusses message authentication codes (MACs) based on hash functions and block ciphers. It describes Hash-based MACs (HMAC) which uses a cryptographic hash function combined with a secret key to authenticate messages. HMAC provides integrity and authentication using public/private keys. The document also covers MACs based on block ciphers, specifically the Data Authentication Algorithm (DAA) which is based on DES-CBC, and Cipher-based MAC (CMAC) which fixes security issues with CBC-MAC and can use existing encryption functions to resist attacks. CMAC chains the cipher and XORs the message blocks to generate the authentication tag.