Graph
CMAC

🔐CMAC

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.

Source

Wikipedia

CMAC (Cipher-based Message Authentication Code) is a message authentication code algorithm constructed from a block cipher.

Concise statement of construction and purpose.

Source

OpenSSL

The CMAC MAC uses a block cipher to compute a message authentication code suitable for integrity protection.

Implementation-oriented definition highlighting integrity protection.

Source

MAC Symmetric Block Cipher Algorithms Rijndael CBC-MAC NIST SP 800-38B Integrity Authentication Key Management Cryptographic Primitive

COMPETING TERMS

HMAC

RELATIONS

KNOWLEDGE AREAS

Data Security

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