Übung 05 - CDC - Technische Universität Darmstadt
Übung 05 - CDC - Technische Universität Darmstadt
Übung 05 - CDC - Technische Universität Darmstadt
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Die ShiftRows-Transformation ist<br />
⎛<br />
⎞ ⎛<br />
⎞<br />
s 0,0 s 0,1 s 0,2 s 0,3 s 0,0 s 0,1 s 0,2 s 0,3<br />
s<br />
ShiftRows: −→ : ⎜ 1,0 s 1,1 s 1,2 s 1,3<br />
⎟<br />
⎝s 2,0 s 2,1 s 2,2 s 2,3 ⎠ −→ s<br />
⎜ 1,1 s 1,2 s 1,3 s 1,0<br />
⎟<br />
⎝s 2,2 s 2,3 s 2,0 s 2,1 ⎠ .<br />
s 3,0 s 3,1 s 3,2 s 3,3 s 3,3 s 3,0 s 3,1 s 3,2<br />
Die MixColumns-Transformation wird beschrieben durch<br />
⎛<br />
⎞<br />
{02} {03} {01} {01}<br />
{01} {02} {03} {01}<br />
MixColumns: −→ : S −→ ⎜<br />
⎟ · S =: M · S,<br />
⎝{01} {01} {02} {03} ⎠<br />
{03} {01} {01} {02}<br />
wobei S die Statusmatrix ist und die Matrix M hexadezimale Einträge besitzt.<br />
(a) Finden Sie für (11000011), DF und x 5 +x 3 +x alle Darstellungen, also jeweils Polynom, Binär- und Hexadezimalzahl.<br />
(b) Berechnen Sie<br />
ShiftRows(D8 56 F2 BA E0 41 BB F1 C7 A4 69 E7 1E 24 D3 AC).<br />
(c) Geben Sie die Umkehrfunktion von ShiftRows an und berechnen Sie<br />
ShiftRows −1 (B5 14 D8 75 AD 21 8C 27 E3 DF 5A B4 91 F F 37 <strong>05</strong>).<br />
(d) Sei s = (D8, 41, 69, AC) T die erste Spalte der Statusmatrix S nach der ShiftRows-Transformation (in hexadezimaler<br />
Notation). Berechnen Sie MixColumns(s), d.h. den nächsten Schritt von AES, der auf der Spalte s durchgefürt werden<br />
würde.<br />
(e) ∗ Sei S die Statusmatrix nach der ShiftRows-Transformation von Aufgabenteil (b). Berechnen Sie MixColumns(S).<br />
Dieser Aufgabenteil ist freiwillig!<br />
H1 Polynominversion in einem anderen Körper<br />
Sei 7 = /7 der endliche Körper mit 7 Elementen. Wir definieren das Polynom p(x) = x 4 + 1 und den Körper<br />
= 7 [x]/p(x) 7 [x].<br />
Berechnen Sie das Inverse für das Polynom f (x) = x 2 + x + 2 in .<br />
Hinweis: Benutzen Sie den erweiterten Euklidischen Algorithmus, um mittels gcd(f (x), p(x)) = g das Inverse zu finden.<br />
Solange g ∈ 7 \ {0} ist, können Sie aus g das Inverse zu p(x) berechnen. (Warum geht das?)<br />
H2 S-Box in AES (SubBytes)<br />
Sei der AES-Körper. Seien weiter<br />
⎛<br />
⎞<br />
1 1 1 1 1 0 0 0<br />
0 1 1 1 1 1 0 0<br />
0 0 1 1 1 1 1 0<br />
A =<br />
0 0 0 1 1 1 1 1<br />
1 0 0 0 1 1 1 1<br />
⎜<br />
1 1 0 0 0 1 1 1<br />
⎟<br />
⎝1 1 1 0 0 0 1 1⎠<br />
1 1 1 1 0 0 0 1<br />
⎛ ⎞<br />
0<br />
1<br />
1<br />
und c =<br />
0<br />
0<br />
,<br />
⎜<br />
0<br />
⎟<br />
⎝1⎠<br />
1<br />
dann entspricht die in AES verwendete S-Box der Funktion<br />
S : \ {0} −→ \ {0} : s −→ A · s −1 + c.<br />
Dabei identifizieren wir Vektoren mit Polynomen. Zum Beispiel ist (10010011) T ˆ= x 7 + x 4 + x +1 (vgl. auch Aufgabe P3).<br />
Berechnen Sie S(x 4 + x + 1) und S(x + 1). Geben Sie die Ein- und Ausgaben als Polynome, Binärzahlen und Hexadezimalzahlen<br />
an.<br />
2