Cryptography Reference
In-Depth Information
MixColumn
Die Funktion Mix-Column trägt wie ShiftRow zur Diffusion bei und ist wie diese
linear. Dabei gibt es eine klare Aufteilung: Während ShiftRow für eine Durchmi-
schung der Zeilen sorgt, führt MixColumn ein spaltenweises Mischen durch. Im
Vergleich zum sehr simplen ShiftRow ist MixColumn etwas komplexer. Um es zu
verstehen, benötigen wir eine spezielle Form der Multiplikation, die wir mit dem
Zeichen »
« notieren. Ist b ein Byte, dann ist diese Multiplikation wie folgt defi-
niert:
2
b := Linksshift von b , falls b <128
:= (Linksshift von b )
00011011, falls b >=128
3
b := (2
b )
b
Damit haben wir zwar nur die Multiplikation eines Bytes mit den Zahlen 2 und 3
definiert, doch das reicht aus. Beachten Sie, dass ein Linksshift keine Linksrota-
tion ist; das erste Bit eines Bytes geht bei einem Linksshift verloren und wird nicht
in das letzte Bit geschoben (stattdessen wird das letzte Bit Null gesetzt). Zur
Erklärung von MixColumn gehen wir davon aus, dass a 0 , a 1 , a 2 und a 3 die erste
Spalte der 4×4-Matrix vor dem MixColumn-Aufruf bilden. Nach Abarbeiten der
Funktion bezeichnen wir die entsprechenden Werte als a 0 ', a 1 ', a 2 ' und a 3 '. Mix-
Column sieht folgende Formeln vor:
a 0 ' = (2
a 0 ) ⊕
(3
a 1 ) ⊕
a 2
a 3
a 1 ' = a 0
(2
a 1 )
(3
a 2 ) ⊕
a 3
a 2 ' = a 0
a 1
⊕ (
2
a 2 )
(3
a 3 )
a 3 )
Die entsprechenden Formeln für die zweite, dritte und vierte Spalte sehen genau
gleich aus, nur dass Sie den Buchstaben a durch b , c bzw. d ersetzen müssen. Die
vier MixColumn-Formeln sind im Übrigen nach einem mathematischen Modell
so gewählt, dass sie eine maximale Durchmischung der vier Matrix-Spalten
garantieren. Mehr dazu gibt es im Unterkapitel über die mathematischen Grund-
lagen des AES.
Wie oben beschrieben, ist MixColumns die einzige AES-Funktion, die nicht
in allen Runden vorkommt (sie fehlt in der letzten Runde). Dafür gibt es eine ein-
fache Begründung: Die beiden Funktionen MixColumns und AddRoundKey
kann man in der Reihenfolge vertauschen, ohne dass sich am Ergebnis der Ver-
schlüsselung etwas ändert. Gäbe es in der letzten Runde ein MixColumns, dann
könnte man dieses mit dem letzten AddRoundKey vertauschen, wodurch der
letzte Schritt der Verschlüsselung nicht vom Schlüssel abhängen würde. Es wäre
damit kryptografisch wertlos und würde unnötige Rechenzeit verbrauchen.
a 3 ' = (3
a 0 )
a 1
a 2
(2
Search WWH ::




Custom Search