About the AES Encryption Algorithm - 2022.2 English

Vitis Tutorials: Hardware Acceleration (XD099)

Document ID
XD099
Release Date
2022-12-01
Version
2022.2 English

The AES algorithm is a commonly used symmetric-key encryption algorithm, meaning that the same key is used for both encrypting and decrypting the data. The input and output data blocks for the AES algorithm are 16-bytes blocks (128-bits). AES has three key length types: 128-bit, 192-bit, and 256-bit. Before AES encryption and encryption operation, a operation called key-expansion must be run when a key is given. The AES algorithm includes lots of bit-wise and byte-wise operations, so it is very suitable to be implemented with the hardware accelerator.

AES core
encryption/decryption
AES core...
KEY (128/192/256 bits)
KEY (128/192/256 bits)
plain/cipher 128bit data blocks
plain/cipher 128bit data blocks
cipher/plain 128bit data blocks
cipher/plain 128bit data blocks
Viewer does not support full SVG 1.1

In applications, AES has five widely used usage models:

  • Electronic codebook (ECB)

  • Cipher block chaining (CBC)

  • Cipher feedback (CFB)

  • Output feedback (OFB)

  • Counter (CTR)

In this tutorial, we only involve ECB and CBC. The following figures provide explanations for these models. Notes: Figures are from Wikipedia (wikipedia.org).