Check out the new USENIX Web site. next up previous
Next: The transformation AddRoundKey Up: On the implementation of Previous: The required modular arithmetic


Description of the Advanced Encryption Standard

In this section we briefly describe the Advanced Encryption Standard (AES). For a more detailed description we refer to [DR2]. AES encrypts plaintexts consisting of lb bytes, where lb$ =16, 24$, or $ 32$. The plaintext is organized as a $ (4\times$   Nb$ )$ array $ (a_{ij})$, $ 0\le i<4, 0\le j<$Nb$ -1$, where Nb$ =4,6,8$, depending on the value of lb. The $ n$-th byte of the plaintext is stored in byte $ a_{i,j}$ with $ i=n\mod 4$, $ j=\lfloor \frac{n}{4}\rfloor$. AES uses a secret key, called cipher key, consisting of lk bytes, where lk$ =16,24,$ or $ 32$. Any combination of values lb and lk is allowed. The cipher key is organized in a $ 4\times$   Nk array $ (k_{ij})$, $ 0\le i< 4, 0\le j\le$   Nk$ -1$, where Nk$ =4,6,8$, depending on the value of lk. The $ n$-th key byte is stored in byte $ k_{ij}$ with $ i=n\mod 4$, $ j=\lfloor \frac{n}{4}\rfloor$. The AES encryption process is composed of rounds. Except for the last round, each round consists of four transformations called ByteSub$ ,$ShiftRow$ ,$MixColumn, and AddRoundKey. In the last round the transformation MixColumn is omitted. The four transformations operate on intermediate results, called states. A state is a $ 4\times$   Nb array $ (a_{ij})$ of bytes. Initially, the state is given by the plaintext to be encrypted. The number of rounds Nr is $ 10,12$, or $ 14$, depending on $ \max\{$Nb$ ,$Nk$ \}$. In addition to the transformations performed in the Nr rounds there is an AddRoundKey applied to the plaintext prior to the first round. We call this the initial AddRoundKey. Next, we are going to describe the transformations used in the AES encryption process. We begin with AddRoundKey.

Subsections
next up previous
Next: The transformation AddRoundKey Up: On the implementation of Previous: The required modular arithmetic
Roger Fischlin 2002-09-25