Counter with cipher block chaining - message authentication code (CCM) mode is an authenticated encryption algorithm designed to provide both authentication and confidentiality (encryption/decryption) during data transfer.
The main features of CCM are:
- Memory-to-memory packet encryption and decryption operations using Scatter/Gather DMA
- Support for Bluetooth® requirements and algorithm as defined in IETF RFC3610
- Support for IEEE 802.15.4
- Concurrent operation with RADIO
AES CCM combines counter (CTR) mode encryption and cipher block chaining - message authentication code (CBC-MAC) authentication. The CCM terminology message authentication code (MAC) is called message integrity check (MIC) in Bluetooth terminology, and also in this document.
CCM generates an encrypted keystream that is applied to input data using the XOR operation and generates an M byte MAC field in one operation. CCM and RADIO can be configured to work synchronously. CCM will encrypt in time for transmission and decrypt after receiving bytes into memory from the radio. All operations can complete within the packet RX or TX time. CCM on this device is implemented to support the Bluetooth requirements and the algorithm as defined in IETF RFC3610, and depends on the AES-128 block cipher. A description of the CCM algorithm can also be found in NIST Special Publication 800-38C. The Bluetooth specification describes the configuration of counter mode blocks and encryption blocks to implement compliant encryption for Bluetooth Low Energy.
CCM uses EasyDMA to read/write additional authenticated data, plain text and cipher text.
Two operations are supported:
- Packet encryption
- Packet decryption
All operations are done in compliance with the Bluetooth Core Specification, as well as IEEE 802.15.4.