User manual

...the world's most energy friendly microcontrollers
2012-04-24 - Giant Gecko Family - d0053_Rev0.96 735
www.energymicro.com
31 AES - Advanced Encryption Standard Accelerator
0
1 2 3 4
How are you? AES &G# %5
!T4/# 2I am fine AES
Quick Facts
What?
A fast and energy efficient hardware
accelerator for AES-128 and AES-256
encryption and decryption.
Why?
Efficient encryption/decryption with little or
no CPU intervention helps to meet the speed
and energy demands of the application.
How?
High AES throughput allows the EFM32GG
to spend more time in lower energy modes.
In addition, specialized data access functions
allow autonomous DMA/AES operation in
both EM0 and EM1.
31.1 Introduction
The Advanced Encryption Standard (FIPS-197) is a symmetric block cipher operating on 128-bit blocks
of data and 128-, 192- or 256-bit keys.
The AES accelerator performs AES encryption and decryption with 128-bit or 256-bit keys. Encrypting or
decrypting one 128-bit data block takes 54 HFCORECLK cycles with 128-bit keys and 75 HFCORECLK
cycles with 256-bit keys. The AES module is an AHB slave which enables efficient access to the data
and key registers. All write accesses to the AES module must be 32-bit operations, i.e. 8- or 16-bit
operations are not supported.
31.2 Features
AES hardware encryption/decryption
128-bit key (54 HFCORECLK cycles)
256-bit key (75 HFCORECLK cycles)
Efficient CPU/DMA support
Interrupt on finished encryption/decryption
DMA request on finished encryption/decryption
Key buffer in AES128 mode
Optional XOR on Data write
Configurable byte ordering
31.3 Functional Description
Some data and a key must be loaded into the KEY and DATA registers before an encryption or decryption
can take place. The input data before encryption is called the PlainText and output from the encryption
is called CipherText. For encryption, the key is called PlainKey. After one encryption, the resulting key
in the KEY registers is the CipherKey. This key must be loaded into the KEY registers before every
decryption. After one decryption, the resulting key will be the PlainKey. The resulting PlainKey/CipherKey
is only dependent on the value in the KEY registers before encryption/decryption. The resulting keys
and data are shown in Figure 31.1 (p. 736) .