AES-128  1.0
Fully Unrolled VHDL Implementation of AES-128
 All Classes Namespaces Files Variables Pages
sbox Entity Reference

AES S-box. More...

Inheritance diagram for sbox:
subWord keyExpansion subMatrix aes128 aes128

Entities

Canright  architecture
 Behavioral architecture of the Canright AES S-box. More...
 
Lut  architecture
 AES S-box implementation based on a look-up table. More...
 

Libraries

IEEE 
work 

Use Clauses

IEEE.std_logic_1164.all 
IEEE.numeric_std.all 
work.aes128Pkg.all 

Ports

In_DI   in Byte
 Input to the S-box.
Out_DO   out Byte
 Substituted output of the S-box.

Detailed Description

AES S-box.

AES S-box implementation based on the approach by D. Canright [1].

The present design implements the S-box of the Advanced Encryption Standard (AES). Since the overall AES structure is based on a byte-oriented design, also the S-box hast been implemented such that a single byte can be substituted. This S-box was realized using a "straight-forward" approach using a LUT based on an array of constants. Thereby shifting all the "effort" of the actual architecture over to the synthesizer.

AES S-box implementation based on the approach by D. Canright, which uses the subfields GF(2^2) and GF(2^4) in order to realize the field inversion in GF(2^8). Thereby the area footprint of the resulting architecture should be significantly smaller than the LUT-based approach using only a constant array and shifting the effort of the actual implementation over to the synthesizer.

References:
[1] D. Canright, "A Very Compact S-Box for AES", CHES'05, http://dx.doi.org/10.1007/11545262_32

The documentation for this class was generated from the following files: