Escolar Documentos
Profissional Documentos
Cultura Documentos
All bytes in the AES algorithm are interpreted as finite field elements.
-------------------------------------------
Hexadecimal {63}
Binary {01100011}
Polynomial 𝑥6 + 𝑥5 + 𝑥 + 1
-------------------------------------------
1. Addition
2. Multiplication
Example:
Hexadecimal {57} • {83} = {𝑐1}
(𝑥 6 + 𝑥 4 + 𝑥 2 + 𝑥 + 1)(𝑥 7 + 𝑥 + 1) = 𝑥13 + 𝑥11 + 𝑥 9 + 𝑥 8 + 𝑥 6 + 𝑥 5 + 𝑥 4 + 𝑥 3 + 1
Multiplication by 𝒙
𝑥 • 𝑎(𝑥) means shift-left.
Example:
{57} • {02} = {57} • 𝑥 = {𝑎𝑒}
{57} • {04} = {𝑎𝑒} • 𝑥 = {47}
{57} • {08} = {47} • 𝑥 = {8𝑒}
{57} • {10} = {8𝑒} • 𝑥 = {07}
⟹ {57} • ({01}⨁{02}⨁{10}) = {57}⨁{𝑎𝑒}⨁{07} = {𝑓𝑒}
Multiplication:
Step 1: 𝑐(𝑥) = 𝑎(𝑥) • 𝑏(𝑥) = 𝑐6 𝑥 6 + 𝑐5 𝑥 5 + 𝑐4 𝑥 4 + 𝑐3 𝑥 3 + 𝑐2 𝑥 2 + 𝑐1 𝑥 + 𝑐0
𝑖
where 𝑐𝑖 = ∑ 𝑎𝑗 • 𝑏𝑖−𝑗
𝑗=0
Step 2: Reduce 𝑐(𝑥) modulo a polynomial of degree 4. Specifically, for the AES algorithm,
this irreducible is 𝑥 4 + 1. Therefore the multiplication of 𝑎(𝑥) and 𝑏(𝑥) is
𝑑(𝑥) = 𝑑3 𝑥 3 + 𝑑2 𝑥 2 + 𝑑1 𝑥 + 𝑑0
where 𝑑𝑖 = ∑ (𝑎𝑗 • 𝑏𝑘 )
0≤𝑗≤3
0≤𝑘≤3
𝑖 = (𝑗+𝑘) mod 4
REFERENCE:
[1] Announcing the Advanced Encryption Standard (AES)