Cryptography Reference
In-Depth Information
The corresponding AES versions are referred to as AES-128, AES-192, and AES-
256. The number of rounds depends on the key length (i.e., 10, 12, or 14 rounds).
Table 10.9 summarizes the three official versions of the AES.
N
b
refers to the block
length (in number of 32-bit words),
N
k
to the key length (in number of 32-bit words),
and
N
r
to the number of rounds. Note that the official versions of the AES all work
with a block size of
N
b
·
32 = 128 bits.
While FIPS PUB 197 explicitly defines the allowed values for
N
b
,
N
k
,and
N
r
,
future reaffirmations may include changes or additions to these values. Implementors
of the AES should therefore make their implementations as flexible as possible (this
is a general recommendation that does not only apply for the AES).
32 = 4
·
10.2.2.1
Preliminary Remarks
Similar to most other symmetric encryption systems, the AES is byte oriented,
meaning that the basic unit for processing is a byte (i.e., a sequence of 8 bits). Each
byte may be written in binary or hexadecimal notation.
•
In binary notation, a byte is written as
{
b
7
b
6
b
5
b
4
b
3
b
2
b
1
b
0
}
with
b
i
∈{
0
,
1
}
=
Z
2
=
F
2
for
i
=0
,...,
7. Hence, a byte also represents an element of
F
2
8
.
•
In hexadecimal notation, a byte is written as
0xXY
with
X,Y
∈{
0
, ...,
9
,
A
,
...,
F
}
. In this case,
X
refers to
{
b
7
b
6
b
5
b
4
}
and
Y
refers to
{
b
3
b
2
b
1
b
0
}
.
Alternatively, the 8 bits can be interpreted as coefficients of a polynomial:
7
b
7
x
7
+
b
6
x
6
+
b
5
x
5
+
b
4
x
4
+
b
3
x
3
+
b
2
x
2
+
b
1
x
+
b
0
=
b
i
x
i
(10.4)
i
=0
=
0xA3
can be written as polynomial
x
7
+
x
5
+
x
+1(for every bit equal to one, the corresponding coefficient in the
polynomial is set to one). This means that we can add and multiply either bytes or
polynomials. Let's have a closer look at addition and multiplication.
Consequently, the byte
{
10100011
}
Addition:
If we consider bytes, then the addition is achieved by adding modulo 2
the bits in the bytes representing the two elements of
F
2
8
(e.g.,
{
}⊕
01010111
{
). If we consider polynomials, then the addition
is achieved by adding modulo 2 the coefficients for the corresponding powers
in the polynomials representing the two elements (e.g., (
x
6
+
x
4
+
x
2
+
x
+
1) + (
x
7
+
x
+1)=
x
7
+
x
6
+
x
4
+
x
2
).
10000011
}
=
{
11010100
}
Multiplication:
If we consider bytes, then there is no simple operation that rep-
resents the multiplication. If, however, we consider polynomials, then the