NEW
Also known as: CCM
An authenticated encryption mode combining counter mode for confidentiality with CBC-MAC for integrity.
DESCRIPTION
Counter with CBC-MAC (CCM) is an AEAD mode that provides confidentiality and integrity using CTR for encryption and CBC-MAC for authentication. Standardized by NIST and described in RFC 3610, CCM is widely used with AES in constrained and embedded systems. It requires a nonce and supports associated data for header protection. Proper nonce management is critical to security. CCM offers a balance of simplicity and strong security properties when implemented correctly.
ALTERNATIVE DEFINITIONS
NIST
This Recommendation specifies the CCM mode of operation for cryptographic block ciphers. CCM provides both authentication and confidentiality.
Defines CCM formally as an AEAD mode for block ciphers.
IETF RFC 3610
This document specifies the use of the CCM mode with AES. CCM is a generic authenticated encryption block cipher mode.
Focuses on AES usage and generic AEAD properties.
Wikipedia
In cryptography, CCM mode (Counter with CBC-MAC) is an authenticated encryption algorithm designed to provide both encryption and integrity.
Summarizes CCM’s dual goals of encryption and integrity.
RELATED TERMS
Rijndael CTR Mode CBC-MAC Authenticated Encryption Nonce MAC RFC 3610 NIST SP 800-38C Message Integrity
COMPETING TERMS
AES-GCM EAX
RELATIONS
- Narrower: AES-CCMP
KNOWLEDGE AREAS
Data Security Software Engineering Infrastructure
TARGET AUDIENCE
Security Architect Cybersecurity Engineer Software Developer Chief Information Security Officer
EXTERNAL SOURCES
TOP QUESTIONS
When should CCM be used over GCM?
CCM is suitable for constrained devices and environments where its simplicity and performance profile fit. GCM is often preferred for high-throughput systems.
Category: Alternatives
What are the risks of nonce misuse in CCM?
Nonce reuse can catastrophically break confidentiality and integrity. Always ensure unique nonces for each message-key pair.
Category: Risk
Does CCM support associated data?
Yes, CCM authenticates associated data (AAD) without encrypting it, protecting headers or metadata.
Category: Application
What key sizes are common for CCM?
CCM is typically used with AES-128 or AES-256, depending on security requirements and performance considerations.
Category: Requirements
Is CCM standardized?
Yes. NIST SP 800-38C specifies CCM, and RFC 3610 provides guidance for AES-CCM usage.
Category: Overview
How does CCM provide integrity?
It computes a CBC-MAC over the plaintext and associated data, verifying message authenticity upon decryption.
Category: Example
What is a common implementation mistake with CCM?
Incorrect nonce construction or reusing nonces across messages. Use secure counters or randomized nonces with uniqueness guarantees.
Category: Mistakes
How does CCM compare in performance to GCM?
GCM can be faster on platforms with hardware acceleration. CCM is competitive on constrained systems and simpler in some implementations.
Category: Opinion
Where is CCM used in practice?
It appears in wireless standards and embedded systems, including TLS ciphersuites and IoT protocols in certain contexts.
Category: Topic