Plaintext
(AESADIN)
Ciphertext
(AESADOUT)
Cipher Key
(AESAKEY)
Encryption Process
Cipher
Initial Round
Initial Key
Round 1
Round Key 1
Round 2
Round Key 2
Round 9
Round Key 9
Final Round
Round Key 10
AES Accelerator Operation
403
SLAU367P – October 2012 – Revised April 2020
Copyright © 2012–2020, Texas Instruments Incorporated
AES256 Accelerator
14.2.5 Encryption
shows the encryption process with the cipher being a series of transformations that convert
the plaintext written into the AESADIN register to a ciphertext that can be read from the AESADOUT
register using the cipher key provided in the AESAKEY register.
Figure 14-3. AES Encryption Process for 128-Bit Key
To perform encryption:
1. Set AESOPx = 00 to select encryption. Changing the AESOPx bits clears the AESKEYWR flag, and a
new key must be loaded in the next step.
2. Load the key as described in
3. Load the state (data) as described in
. After the data is loaded, the AES module starts
the encryption.
4. After the encryption is ready, the result can be read from AESADOUT as described in
5. To encrypt additional data with the same key loaded in step 2, write the new data into AESADIN after
the results of the operation on the previous data were read from AESADOUT. When an additional 16
data bytes are written, the module automatically starts the encryption using the key loaded in step 2.
When implementing, for example, the output feedback (OFB) cipher block chaining mode, setting the
AESDINWR flag triggers the next encryption, and the module starts the encryption using the output
data from the previous encryption as the input data.