Block Cipher: The Advanced Encryption Standard (AES)
Block Cipher: The Advanced Encryption Standard (AES)
Block Cipher
The Advanced Encryption Standard (AES), also called Rijndael, is a symmetric block cipher
with a block length of 128 bits and support for key lengths of 128, 192, and 256 bits. It
was published by NIST (National Institute of Standards and Technology) in 2001. Here, we
assume a key length of 128 bits, which is likely to be the one most commonly
implemented.
1
Mustansiriyah University Block Cipher Class: Third Stage
Engineering College AES Block Cipher Course name: Data Encryption
Computer Engineering Dep. Lecturer: Dr. Fatimah Al-Ubaidy
The key size used for an AES cipher specifies the number of transformation rounds
that convert the plaintext into the ciphertext . The number of rounds are as follows:
10 rounds for 128-bit keys.
12 rounds for 192-bit keys.
14 rounds for 256-bit keys.
Each round consists of several processing steps, including one that depends on the
encryption key itself. A set of reverse rounds are applied to transform ciphertext back
into the original plaintext using the same encryption key.
2
Mustansiriyah University Block Cipher Class: Third Stage
Engineering College AES Block Cipher Course name: Data Encryption
Computer Engineering Dep. Lecturer: Dr. Fatimah Al-Ubaidy
The AES algorithm can be broken into three phases: the initial round, the main rounds,
and the final round. All of the phases use the same sub-operations in different
combinations as follows:
Initial Round
AddRoundKey
Main Rounds (1,2…Nr-1)
SubBytes
ShiftRows
MixColumns
AddRoundKey
Final Round (Nr)
SubBytes
ShiftRows
AddRoundKey
Note that in the above figure, KeyExpansion: round keys are derived from the cipher key
using key expansion algorithm. AES requires a separate 128-bit round key block for each
round plus one more.
3
Mustansiriyah University Block Cipher Class: Third Stage
Engineering College AES Block Cipher Course name: Data Encryption
Computer Engineering Dep. Lecturer: Dr. Fatimah Al-Ubaidy
AddRoundKey: In this operation, the 128 bits of State are bitwise XORed with the 128
bits of the round key. Here is an example where the first matrix is State, and the
second matrix is the round key.
e.g.
=
⊕
4
Mustansiriyah University Block Cipher Class: Third Stage
Engineering College AES Block Cipher Course name: Data Encryption
Computer Engineering Dep. Lecturer: Dr. Fatimah Al-Ubaidy
SubBytes: A nonlinear substitution step where each entry (byte) of the current state
matrix is substituted by a corresponding entry in the AES S-Box. For instance: byte (6E) is
substituted by the entry of the S-Box in row 6 and column E, i.e., by (9F). (The byte input
is broken into two 4-bit halves. The first half determines the row and the second half
determines the column).
e.g.:
state = ⇒ S_box(State) =
5
Mustansiriyah University Block Cipher Class: Third Stage
Engineering College AES Block Cipher Course name: Data Encryption
Computer Engineering Dep. Lecturer: Dr. Fatimah Al-Ubaidy
ShiftRows: A transposition step where the four rows of the state are shifted cyclically
to the left by offsets of 0, 1, 2, and 3.
e.g.:
e.g.:
6
Mustansiriyah University Block Cipher Class: Third Stage
Engineering College AES Block Cipher Course name: Data Encryption
Computer Engineering Dep. Lecturer: Dr. Fatimah Al-Ubaidy
MixColumns: a linear mixing operation which multiplies fixed matrix against current
State Matrix:
e.g.:
7
Mustansiriyah University Block Cipher Class: Third Stage
Engineering College AES Block Cipher Course name: Data Encryption
Computer Engineering Dep. Lecturer: Dr. Fatimah Al-Ubaidy