Cryptography Reference
In-Depth Information
in 1997. This process was open: anyone was invited to submit a candidate and to send
public comments. Fifteen candidates were accepted (a few other submissions did not
meet the requirements and were rejected) in 1998. Based on public comments (and
apparently on popularity), this pool was downsized to five finalists in 1999. In October
2000, one of these five algorithms was selected as the forthcoming standard: Rijndael
(see Refs. [1, 54]).
Rijndael was designed by Joan Daemen (from the Belgium company Proton World
International) and Vincent Rijmen. They both originated from the Catholic University of
Leuven. Rijndael was designed for the AES process. Following the AES requirements, it
encrypts 128-bit blocks with keys of size 128, 192, or 256. It is dedicated to 8-bit micro-
processors. It consists of several rounds of a simple substitution-permutation network.
AES is based on the structure of SQUARE. 7
This design simply consists of writ-
ing the 128-bit message block as a 4
4 square matrix of bytes. (Formally, Rijndael
tolerates other block sizes, but 128-bit was the target block size for AES.) Encryption
is performed through 10, 12, or 14 rounds depending on whether the key size is 128,
196, or 256 bits. The number of rounds is denoted by Nr. Each round (but the final one)
consists of four simple transformations:
×
1. SubBytes, a byte-wise substitution defined by a single table of 256 bytes,
2. ShiftRows, a circular shift of all rows (row number i of the matrix is rotated by
i positions to the left for i
3),
3. MixColumns, a linear transformation performed on each column and defined
bya4
=
0
,
1
,
2
,
4 matrix of GF(2 8 ) elements,
4. AddRoundKey, a simple bitwise XOR with a round key defined by another
matrix.
×
The final round is similar, except for MixColumns which is omitted. The round keys
are generated by a separate key schedule.
More formally, one block s is encrypted by the following process, in which w is
the output subkey sequence from the key schedule algorithm.
,
AES encryption ( s
W )
1: AddRoundKey ( s
,
W 0 )
2: for r
=
1to Nr
1 do
3:
SubBytes ( s )
4:
ShiftRows ( s )
5:
MixColumns ( s )
6:
AddRoundKey ( s
,
W r )
7: end for
8: SubBytes ( s )
9: ShiftRows ( s )
10: AddRoundKey ( s
,
W Nr )
7
SQUARE was designed by the same authors and Lars Knudsen in 1997 (see Ref. [55]).
Search WWH ::




Custom Search