Decryption Process – Inverse Cipher
(AESOPx = 11)
Decrypt Key Generation
(AESOPx = 10)
Cipher Key
(AESAKEY)
Initial Key
Round Key 1
Round Key 2
Round Key 9
Round Key 10
Inverse Cipher
Plaintext
(AESADOUT)
Ciphertext
(AESADIN)
Inverse
Initial Round
Initial Key
Inverse Round 1
Round Key 1
Inverse Round 2
Round Key 2
Inverse Round 9
Round Key 9
Inverse
Final Round
Round Key 10
Pregenerated Key
(AESAKEY)
Pregenerated Key
(AESADOUT)
AES Accelerator Operation
735
SLAU356I – March 2015 – Revised June 2019
Copyright © 2015–2019, Texas Instruments Incorporated
AES256 Accelerator
Figure 16-5. AES Decryption Process Using AESOPx = 10 and 11 for 128-Bit Key
To generate the decryption key independent from the actual decryption:
1. Set AESOPx = 10 to select decryption key generation. Changing the AESOPx bits clears the
AESKEYWR flag, and a new key must be loaded in step 2.
2. Load the key as described in
. The generation of the first round key required for
decryption is started immediately.
3. While the AES module is performing the key generation, the AESBUSY bit is 1. 53 CPU clock cycles
are required to complete the key generation for a 128-bit key (for other key lengths, see
).
After its completion, the AESRDYIFG is set, and the result can be read from AESADOUT. When all 16
bytes are read, the AESDOUTRD flag indicates completion.
The AESRDYIFG flag is cleared when reading AESADOUT or writing to AESAKEY or AESADIN.
4. If data should be decrypted with the generated key, AESOPx must be set to 11. Then the generated
key must be loaded or, if it was just generated with AESOPx = 10, set the AESKEYWR flag by
software to indicate that the key is already valid.
5. See
for instructions on the decryption steps.
16.2.8 AES Key Buffer
The AES128, AES192, or AES256 algorithm operates not only on the state, but also on the key. To avoid
the need of reloading the key for each encryption or decryption, a key buffer is included in the AES
accelerator.