Cryptography Reference
In-Depth Information
Algorithmus 4.3 AES-Rundenschlüsseliteration
NächsterAESschlüssel(
K
r
)
Vorbedingung:
K
r
=
K
(
k,r
)
für
r<
10
1.
erstes Wort
a.
Rotation
U
=
rotUp
(
col
3
(
K
r
))
b.
Substitutionen
für
j
=0
bis
3
V
j
=
S
(
U
j
)
1
-
V
(wie
U
) Spaltenvektor mit vier Einträgen aus
F
2
8
c.
Konstantenaddition
V
0
=
V
0
+
x
r−
1
F
2
8
d.
Rückgriff auf vorigen Schlüssel
col
0
(
K
r
+1
)=
col
0
(
K
r
)+
V
-in
- Vektoraddition in
F
2
8
2.
zweites, drittes und viertes Wort
für
j
=1
bis
3
Rückgriff auf vorigen Schlüssel und vorige Spalte
col
j
(
K
r
+1
)=
col
j
(
K
r
)+
col
j−
1
(
K
r
+1
)
- Vektoraddition in
F
2
8
Nachbedingung:
K
r
+1
=
K
(
k,r
+1)
aus
F
2
8
. Nun ist die Abbildung
h
:
F
2
8
→
F
2
8
definiert durch
⎡
⎣
⎤
⎦
11111000
01111100
00111110
00011111
10001111
11000111
11100011
11110001
h
(
b
)=
conv
B
(
M
·
conv
V
(
b
))
mit
M
=
.
(4.5.6)
Die lineare Spaltendurchmischung hat die folgende algebraische Interpretation: Eine Spal-
te col
j
(
W
)
(siehe Algorithmus 4.2) wird als Element
a
(
x
)
des Faktorrings
F
2
8
[
x
]
/
(
x
4
+1)
aufgefasst. Die Operation
M ·
col
j
(
W
)
entspricht nun der Multiplikation der Polynome
a
(
x
)
und
c
(
x
)=
03
· x
3
+
01
· x
2
+
01
· x
+
02
(4.5.7)
in
F
2
8
[
x
]
/
(
x
4
+1)
. Die Koe
zienten von
c
(
x
)
sind dabei Elemente aus
F
2
8
, dargestellt in
Hexadezimalschreibweise. Das Resultat dieser Multiplikation ist wieder ein Polynom in
F
2
8
[
x
]
/
(
x
4
+1)
, welches als Spaltenvektor über
F
2
8
aufgefasst werden kann.
Zum Abschluss sei bemerkt, dass AES u. a. mit dem Ziel konstruiert wurde, dass alle be-
kannten Angriffe auf Blockchiffren nicht fruchten, in der Hoffnung, dass auch andere, bis-
lang unbekannte Angriffe scheitern. Bisher gilt AES als sicher (siehe auch Abschnitt 4.10).
Idealerweise sollte AES ein im Sinne von Abschnitt 4.7 sicheres Block-Kryptosystem sein.