NEW
Also known as: Cipher-based Message Authentication Code
A symmetric-key message authentication code constructed from a block cipher to ensure message integrity and authenticity.
DESCRIPTION
CMAC derives a message authentication code from a block cipher (often AES) using subkeys and defined processing to resist forgery. It standardizes MAC computation independent of hash functions, unlike HMAC. NIST SP 800-38B specifies CMAC’s algorithm and security properties. Typical use cases include protocol message integrity, storage authentication, and embedded systems. Proper key management and nonce handling are essential.
ALTERNATIVE DEFINITIONS
NIST
The Cipher-based Message Authentication Code (CMAC) is a message authentication code algorithm based on a block cipher.
Authoritative specification defining CMAC as block cipher-based MAC.
Wikipedia
CMAC (Cipher-based Message Authentication Code) is a message authentication code algorithm constructed from a block cipher.
Concise statement of construction and purpose.
OpenSSL
The CMAC MAC uses a block cipher to compute a message authentication code suitable for integrity protection.
Implementation-oriented definition highlighting integrity protection.
RELATED TERMS
MAC Symmetric Block Cipher Algorithms Rijndael CBC-MAC NIST SP 800-38B Integrity Authentication Key Management Cryptographic Primitive
COMPETING TERMS
RELATIONS
- Broader: MAC
KNOWLEDGE AREAS
TARGET AUDIENCE
Cybersecurity Engineer Chief Information Security Officer Security Architect Software Developer
EXTERNAL SOURCES
- Wikipedia - CMAC
- NIST - Official CMAC mode specification
- OpenSSL - CMAC usage in OpenSSL
- IETF - AES-CMAC algorithm RFC 4493
TOP QUESTIONS
When should CMAC be used?
Use CMAC when a block cipher (e.g., AES) is available and a standardized MAC is needed for message integrity.
Category: Requirements
How does CMAC differ from HMAC?
CMAC uses a block cipher; HMAC uses a hash function. Choice depends on available primitives and performance needs.
Category: Alternatives
What is a common mistake with CMAC?
Reusing keys improperly or mismanaging nonces/subkeys can weaken integrity guarantees.
Category: Mistakes
What risks arise from incorrect CMAC implementation?
Vulnerabilities enable forgery or replay attacks, compromising authentication of messages or transactions.
Category: Risk
How is CMAC standardized?
NIST SP 800-38B specifies CMAC; IETF RFC 4493 details AES-CMAC.
Category: Requirements
How to validate CMAC outputs?
Use test vectors from standards, verify across implementations, and perform negative tests.
Category: Testing
What is currently a hot topic around CMAC?
Hardware acceleration of AES-CMAC and protocols selecting MACs based on post-quantum considerations.
Category: Topic
Where is CMAC commonly applied?
Embedded systems, storage integrity, and network protocols needing efficient symmetric authentication.
Category: Example
Who specifies CMAC?
NIST publishes the CMAC recommendation in SP 800-38B.
Category: Origin