This implementation of the AES-CCM algorithm implements the full NIST draft SP800-38C specification. AES CCM combines AES in counter (CTR) mode with AES in Cipher Block Chaining (CBC) mode to provide both encryption and authentication for low to medium speed data streams. AES-CCM is not parallelisable, unlike the AES-GCM algorithm which is also offered by Algotronix, however it can be particularly area efficient at slower speeds. The AES-CCM algorithm is specified IEEE wireless networking standards including IEEE802.11 (Wifi) and in IETF RFC 3610.
This core implements aspects of the NIST SP800-38C specification such as 192 and 256 bit key lengths which are not required by the IEEE 802.11 standard, these aspects can be omitted to reduce area. The core can also provide access to the internal AES unit to implement the simple modes of AES such as ECB, CBC, OFB, CTR, CFB1, CFB8 and CFB128.
The AES-CCM core is based on our AES-G3 implementation and is supplied as a complete package of VHDL or Verilog source code. In the initial implementation data path width for AES-CCM is fixed at 32 bits although the G3 core can implement 8, 16, 32, 64 and 128 bit data path widths. A multi-project licence for AES-CCM includes a multi-project licence to AES-G3.
- This core has a 32 bit internal bus and is compaitble with Algotronix' interfaces to the Xilinx MicroBlaze and PowerPC processors and Altera's NIOS processor.
- CCM mode provides authentication and privacy where most simple AES modes provide only privacy. CCM is more area efficient than the alternative AES-GCM mode because it can use the same AES unit for both authentication and privacy where AES-GCM uses a separate Galois Field multiplier for authentication. On the other hand AES-GCM allows for parallelisation and can support higher data rates.
- VHDL or Verilog souce code
- Testbench supporting NIST standard vector files
- PC application progarm with software implementation of AES-CCM for generating test vector files