The Advanced Encryption Standard (AES) is the primary symmetric encryption and decryption mechanism used in many applications.
The AES core is a cryptographic accelerator that is designed to support AES-NI instructions and therefore it is built to be encapsulated in with processor core in a single package. It has a simple ready-valid interface that can be easily extended.
The core is designed with both area and performance in mind. It has a datapath width of 128 bits for the minimal cycles per instruction count, and the mix columns operation as well as the byte substitution operation being optimised for a minimal area.
Currently the core supports encryption operations only with decryption being added in future work. Also, key lengths 192 and 256 are not yet supported. The core supports an additional operation AESENCFULL which perfroms the the full 10 round encryption process.
Operation | Description |
---|---|
NOOP | No Operation |
AESENC | Encrypt Single Round |
AESENCLAST | Encrypt Final Round |
AESKEYGENASSIST | Generate Round Key |
AESENCFULL | Complete 10 Round Encryption |
The work in this project is heavily based on two papers:
- Satoh et al., "A Compact Rijndael Hardware Architecture with S-Box Optimization"
- Nabihah Ahmad, S.M. Rezaul Hasan, "Low-power compact composite field AES S-Box/Inv S-Box design in 65nm CMOS using Novel XOR Gate"