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
Search WWH ::




Custom Search