MSC8144E Reference Manual, Rev. 3
26-46
Freescale
Semiconductor
Security Engine (SEC)
1.
Initialize the IV, and encrypt with the symmetric key.
2.
In CBC fashion, take the output of step 1, hash with the first block of plaintext, and
encrypt with the symmetric key.
3.
Continue as in step 2 until the final block of plaintext has been processed. The result of
the encryption of the final block of plaintext with the symmetric key is the MAC Tag.
The full 128bits of MAC data is written to Context Registers 1-2, for use in the next
phase of CCM processing.
4.
Once the MAC Tag has been generated (step 3), the MAC tag, along with the plaintext
is encrypted with the AESU operating in Counter mode.
5.
The first item to be encrypted in Counter Mode is the counter (Initial Counter Value)
from Context Registers 5-6. The counter is encrypted with the symmetric key, and the
result is hashed with the MAC Tag (retrieved from Context Registers 1-2) to produce
the MIC (encrypted MAC), which is then stored in Context Registers 3-4. At the
completion of CCM encrypt processing, this MIC is output to memory (per the
descriptor pointer) for the core processor to append to the 802.11i frame. Note: The MIC
written out to memory by the AESU is the full 128 bits. The core processor must only
append the most significant 64 bits to the frame as the MIC.
6.
The counter value is incremented, and is then encrypted with the symmetric key. The
result is then hashed with the first block of plaintext to produce the first block of cipher
text. The ciphertext is placed in the AESU output FIFO.
7.
The counter continues to be incremented, and encrypted with the symmetric key, with
the result hashed with each successive block of plaintext, until all plaintext has been
converted to ciphertext. The SEC controller will manage FIFO reads and writes,
fetching plaintext and writing ciphertext per the pointers provided in the descriptor.
When all ciphertext and the MIC has been output, the CCM encrypt operation is
complete.
26.4.3.9.6 CCM Decryption Processing
The context for CCM decryption/MAC generation is:
Reg 1–2 is session specific and holds the 128 bit Initialization Vector (from memory)
Reg 3–4 holds the MIC (from the received frame) + 64 bits of zero padding
Reg 5–6 is a session specific counter (Initial Counter Value) (from memory)
Reg 7 holds the Counter Modulus Exponent (msb to lsb). Should be fixed at
0x0000_0080.
Note:
The counter modulus for CCM mode is currently defined as 2^128, making the
exponent 128. This value has been made programmable in the SEC to in case the final
version of 802.11i uses a different counter modulus. Because this is a programmable
Summary of Contents for MSC8144E
Page 1: ...MSC8144E Reference Manual Quad Core Media Signal Processor MSC8144ERM Rev 3 July 2009 ...
Page 48: ...MSC8144E Reference Manual Rev 3 xlviii Freescale Semiconductor ...
Page 86: ...MSC8144E Reference Manual Rev 3 1 38 Freescale Semiconductor Overview ...
Page 168: ...MSC8144E Reference Manual Rev 3 3 60 Freescale Semiconductor External Signals ...
Page 242: ...MSC8144E Reference Manual Rev 3 5 26 Freescale Semiconductor Reset ...
Page 314: ...MSC8144E Reference Manual Rev 3 8 24 Freescale Semiconductor General Configuration Registers ...
Page 414: ...MSC8144E Reference Manual Rev 3 10 14 Freescale Semiconductor MSC8144E SC3400 DSP Subsystem ...
Page 452: ...MSC8144E Reference Manual Rev 3 11 38 Freescale Semiconductor Internal Memory Subsystem ...
Page 520: ...MSC8144E Reference Manual Rev 3 12 68 Freescale Semiconductor DDR SDRAM Memory Controller ...
Page 1070: ...MSC8144E Reference Manual Rev 3 21 28 Freescale Semiconductor Timers ...