30.12.2013 Aufrufe

Übung 05 - CDC - Technische Universität Darmstadt

Übung 05 - CDC - Technische Universität Darmstadt

Übung 05 - CDC - Technische Universität Darmstadt

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!