Decryption Process – Inverse Cipher
Decrypt Key Generation
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
AES Accelerator Operation
734
SLAU356I – March 2015 – Revised June 2019
Copyright © 2015–2019, Texas Instruments Incorporated
AES256 Accelerator
Figure 16-4. AES Decryption Process Using AESOPx = 01 for 128-Bit Key
The steps to perform decryption are:
1. Set AESOPx = 01 to select decryption using the same key used for encryption. Set AESOPx = 11 if
the first-round key required for decryption (the last roundkey) is already generated and will be loaded in
step 2. Changing the AESOPx bits clears the AESKEYWR flag, and a new key must be loaded in
step 2.
2. Load the key according to
3. Load the state (data) according to
. After the data is loaded, the AES module starts the
decryption.
4. After the decryption is ready, the result can be read from AESADOUT according to
.
5. If additional data should be decrypted with the same key loaded in step 2, new data can be written into
AESADIN after the results of the operation on the previous data were read from AESADOUT. When
additional 16 data bytes are written, the module automatically starts the decryption using the key
loaded in step 2.
16.2.7 Decryption Key Generation
shows the decryption process with a pregenerated decryption key. In this case, the decryption
key is calculated first with AESOPx = 10, then the precalculated key can be used together with the
decryption operation AESOPx = 11.