Counter Mode with Cipher Block Chaining Message Authentication Code Protocol (CCMP) is an encryption protocol based on the U.S. federal government's Advanced Encryption Standard (AES) algorithm and uses the Counter Mode with CBC-MAC (CCM) mode of operation.
CCMP replaces Rivest Cipher 4 used in Wired Equivalent Privacy (WEP) and Temporal Key Integrity Protocol (TKIP). It was introduced with the Wi-Fi Protected Access 2 (WPA2) wireless security standard.
CCMP forms part of the 802.11i standard for wireless local area networks (WLANs). It implements amended standards to the original 802.11 standard. This protocol was developed by the 802.11i task group in response to the growth of WLAN and the need for more secure encryption protocols. CCMP was developed to address the vulnerabilities of the existing WEP protocol.
CCMP uses the AES cipher to encrypt sensitive data. It employs 128-bit keys and a 48-bit initialization vector (IV), also known as a CCM nonce block, to detect replays and minimize vulnerability to replay attacks.
The two main components of CCMP are Counter Mode and CBC-MAC. The Counter Mode component provides data privacy, while CBC-MAC provides data integrity and authentication. CCM is a generic authenticated encryption block cipher mode, meaning it can be used with any block-oriented encryption algorithm.
The following are the core characteristics of CCMP:
In CCMP, packet numbers increment with each data frame, which is known as a MAC protocol data unit (MPDU), or plaintext data payload (see the next two sections). After MAC encapsulation, the plaintext MPDU becomes a MAC service data unit, or MSDU.
A nonce is generated one time for a specific transaction. It is created from the packet number, the transmit address and quality of service (QoS) data that is contained in the frame header.
Temporal keys are an integral part of the authentication process in CCMP. A temporal key is discarded after each transaction.
Here is how CCMP encapsulates a plaintext MPDU:
To calculate a MIC for the MPDU, CCMP uses AES in the CBC-MAC mode. There are three inputs required for this process:
First, the algorithm encrypts the initial block to produce the CBC mode IV. Then, it calculates CBC-MAC with the plaintext MPDU data, the IEEE 802.11 header length and selected parts of the IEEE 802.11 MPDU header. The algorithm's output is a MIC value, which is appended to the MPDU on transmit. At the receiver, it is compared with the received MIC.
To encrypt and decrypt MPDU and MIC data, CCMP uses AES in Counter Mode. For this process, the input includes the following:
During transmission, the data field with MIC is plaintext. Upon reception, it becomes ciphertext. The algorithm's output is an encrypted MPDU data field on transmission and a decrypted MPDU data field with MIC upon reception.
During encryption, the Counter Mode preload contains the following:
CCMP only requires AES operations -- and no decryption operations. When the calculated MIC value matches with the MIC value received in the encrypted MPDU, the decapsulation process is successful.
See best practices for wireless network security, five tips for managing guest wireless network access and how the WPA3 security protocol simplifies logins and secures IoT.
11 Feb 2022