Cryptography Reference
In-Depth Information
AddRoundKey
In der Funktion
AddRoundKey
wird ein Subschlüssel zur 4×4-Matrix addiert
(bitweises exklusives Oder). Da sowohl der erste als auch der letzte Schritt einer
AES-Verschlüsselung aus einem AddRoundKey besteht, ist ein Whitening gege-
ben.
8.1.2
Entschlüsselung mit dem AES
Bei einer SP-Chiffre ist die Entschlüsselung nie so elegant wie bei einer Feistel-
Chiffre. Dies gilt auch für den AES. Eine AES-Entschlüsselung sieht notwendiger-
weise vor, dass dieselben Schritte wie bei der Verschlüsselung durchlaufen wer-
den, nur invertiert und in umgekehrter Reihenfolge. Bei ShiftRow und
AddRoundKey ist die Invertierung trivial. Bei SubByte muss Alice eine inverse
Ersetzungstabelle aufbauen, was ebenfalls kein Problem darstellt, weil die S-Box
entsprechend konstruiert wurde. Für MixColumns ist die Invertierung nicht ganz
so naheliegend, aber durch das zugrunde liegende mathematische Modell eben-
falls nicht schwierig. Die Umkehrung der MixColumns-Formeln für eine Spalte
lautet:
a
0
' = 14
•
a
0
⊕
11
•
a
1
⊕
13
•
a
2
⊕
9
•
a
3
a
1
' = 9
a
0
⊕
14
a
1
⊕
11
a
2
⊕
13
a
3
•
•
•
•
a
2
' = 13
•
a
0
⊕
9
•
a
1
⊕ 14
•
a
2
⊕
11
•
a
3
a
3
' = 11
•
a
0
⊕
13
•
a
1
⊕
9
•
a
2
⊕
14
•
a
3
Da wir die Multiplikation »
« bisher nur für die Zahlen 2 und 3 definiert haben,
benötigen wir nun einige weitere Werte:
•
9
b
:= 2
(2
(2
b
)))
⊕
b
•
•
•
•
11
•
b
:= 8
•
b
⊕
2
•
b
⊕
b
13
•
b
:= 8
•
b
⊕
4
•
b
⊕
b
14
b
:= 8
b
⊕
4
b
⊕
2
b
•
•
•
•
8.1.3
Schlüsselaufbereitung
Wie man leicht nachrechnet, benötigt der AES einen Subschlüssel mehr, als es
Runden gibt. Jeder Subschlüssel besteht aus 16 Bytes und hat dieselbe Form wie
die 4×4-Matrix, die von den vier AES-Funktionen verarbeitet wird. Wir gehen an
dieser Stelle von 128 Schlüssel-Bits und damit von 10 Runden aus. Wir benötigen
11 Subschlüssel zu je 16 Bytes, insgesamt also 176 Bytes.