12.07.2015 Aufrufe

AES - Arbeitsgruppe Theoretische Informatik und IT-Sicherheit

AES - Arbeitsgruppe Theoretische Informatik und IT-Sicherheit

AES - Arbeitsgruppe Theoretische Informatik und IT-Sicherheit

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Einführung in die Kryptographie - Advanced Encryption Standard (<strong>AES</strong>) 8/20Advanced Encryption Standard<strong>AES</strong>-EingabeformatDie <strong>AES</strong>-Operationen fassen ihre Eingaben als Bytematrizen auf:K =X =⎛⎜⎝⎛⎜⎝⎞X 0,0 X 0,1 X 0,2 X 0,3X 1,0 X 1,1 X 1,2 X 1,3X 2,0 X 2,1 X 2,2 X 2,3X 3,0 X 3,1 X 3,2 X 3,3⎞K 0,0 K 0,1 K 0,2 · · · K 0,k/32−1K 1,0 K 1,1 K 1,2 · · · K 1,k/32−1K 2,0 K 2,1 K 2,2 · · · K 2,k/32−1K 3,0 K 3,1 K 3,2 · · · K 3,k/32−1⎟⎠ mit X i,j ∈ {0, 1} 8 ,⎟⎠ mit K i,j ∈ {0, 1} 8 .


Einführung in die Kryptographie - Advanced Encryption Standard (<strong>AES</strong>) 9/20Advanced Encryption StandardDie <strong>AES</strong>-R<strong>und</strong>enfunktionen F <strong>und</strong> ˜FDie R<strong>und</strong>enfunktion F : {0, 1} l × {0, 1} l → {0, 1} lbesteht aus 4 Operationen:(X , K[r]) ↦→ YK[r]XYSubBytes ShiftRows MixColumns AddRo<strong>und</strong>Key˜F entsteht aus F durch Weglassen von MixColumns:K[r]XYSubBytes ShiftRows AddRo<strong>und</strong>Key


Einführung in die Kryptographie - Advanced Encryption Standard (<strong>AES</strong>) 10/20Advanced Encryption StandardSubBytesSubBytes : {0, 1} l → {0, 1} l wendet eine invertierbare substitutionbox (S-Box) S RD : {0, 1} 8 → {0, 1} 8 byteweise auf die Eingabe an:⎛⎞ ⎛⎞X 0,0 X 0,1 X 0,2 X 0,3 Y 0,0 Y 0,1 Y 0,2 Y 0,3SubBytes ⎜ X 1,0 X 1,1 X 1,2 X 1,3 ⎟⎝ X 2,0 X 2,1 X 2,2 X 2,3⎠ = ⎜ Y 1,0 Y 1,1 Y 1,2 Y 1,3 ⎟⎝ Y 2,0 Y 2,1 Y 2,2 Y 2,3⎠X 3,0 X 3,1 X 3,2 X 3,3 Y 3,0 Y 3,1 Y 3,2 Y 3,3mit Y i,j = S RD (X i,j ) für i, j ∈ {0, . . . , 3}.Im Gegensatz zum DES verwendet der <strong>AES</strong> nur eine S-Box.Diese S-Box ist die einzige nichtlineare Operation des <strong>AES</strong>.


Einführung in die Kryptographie - Advanced Encryption Standard (<strong>AES</strong>) 11/20Advanced Encryption StandardShiftRowsShiftRows : {0, 1} l → {0, 1} l führt zeilenweise eine zyklischeLinksrotation um C i Positionen aus:⎛ShiftRows ⎜⎝⎞X 0,0 X 0,1 X 0,2 X 0,3X 1,0 X 1,1 X 1,2 X 1,3⎟X 2,0 X 2,1 X 2,2 X 2,3⎛⎠ = ⎜⎝⎞X 0,0 X 0,1 X 0,2 X 0,3X 1,1 X 1,2 X 1,3 X 1,0⎟X 2,2 X 2,3 X 2,0 X 2,1 ⎠X 3,3 X 3,0 X 3,1 X 3,2d.h. Y i,j = X i,(j+Ci mod 4) mit C i = i für alle i, j ∈ {0, . . . , 3}.→ zeileninterne Diffusion der von SubBytes induzierten Nichtlinearität<strong>und</strong> Zerstören von Nachbarschaftsbeziehungen (Konfusion)innerhalb der Spalten


Einführung in die Kryptographie - Advanced Encryption Standard (<strong>AES</strong>) 12/20Advanced Encryption StandardDer endliche Körper GF(2 m )Identifiziere für m ∈ N ein Element a = (a m−1 , . . . , a 0 ) ∈ {0, 1} mmit dem Polynom a(x) = a m−1 x m−1 + . . . + a 0 über {0, 1}.Wir definieren die folgenden Operationen:Die Summe c = a + b für a, b ∈ {0, 1} m ist definiert durchc(x) = a(x) + b(x), d.h. c i = a i + b i mod 2 = a i ⊕ b i .Das Produkt c = a × b für a, b ∈ {0, 1} m ist definiert durchc(x) = a(x) · b(x) mod r(x) über {0, 1}mit einem sog. Reduktionspolynom r(x) über {0, 1}.Mit den so definierten Operationen <strong>und</strong> einem geeignet gewähltenr(x) ist ({0, 1} m , +, ×) ein Körper mit 2 m Elementen.Einen solchen Körper bezeichnet man mit GF(2 m ).


Einführung in die Kryptographie - Advanced Encryption Standard (<strong>AES</strong>) 13/20Advanced Encryption StandardMixColumnsMixColumns : {0, 1} l → {0, 1} l fasst die Eingabe X als Matrixüber GF(2 8 ) auf <strong>und</strong> berechnetMixColumns(X ) =⎛⎜⎝2 3 1 11 2 3 11 1 2 33 1 1 2⎞} {{ }M⎛⎟⎠ × ⎜⎝⎞X 0,0 X 0,1 X 0,2 X 0,3X 1,1 X 1,2 X 1,3 X 1,0X 2,2 X 2,3 X 2,0 X 2,1X 3,3 X 3,0 X 3,1 X 3,2wobei die Komponenten der regulären Matrix M alsHexadezimaldarstellung von Elementen aus GF(2 8 ) interpretiert<strong>und</strong> die Multiplikationen der Komponenten modulo r(x) = x 4 + 1durchgeführt werden.→ spaltenweise Diffusion der von SubBytes induzierten Nichtlinearität<strong>und</strong> Konfusion innerhalb der Zeilen⎟⎠ ,


Einführung in die Kryptographie - Advanced Encryption Standard (<strong>AES</strong>) 14/20Advanced Encryption StandardAddRo<strong>und</strong>KeyAddRo<strong>und</strong>Key : {0, 1} l × {0, 1} l → {0, 1} l verknüpft denR<strong>und</strong>enschlüssel K[r] durch bitweises XOR mit der Eingabe X :AddRo<strong>und</strong>Key(X , K[r]) =mit Y i,j = X i,j ⊕ K[r] i,j .⎛⎜⎝⎞Y 0,0 Y 0,1 Y 0,2 Y 0,3Y 1,1 Y 1,2 Y 1,3 Y 1,0⎟Y 2,2 Y 2,3 Y 2,0 Y 2,1⎠Y 3,3 Y 3,0 Y 3,1 Y 3,2→ Erzeugung von Unsicherheit über das Ergebnis der R<strong>und</strong>enfunktiondurch Addition des (dem Angreifer unbekannten)R<strong>und</strong>enschlüssels.Beobachtung: Löscht man nur eine der Operationen SubBytes,ShiftRows, MixColumns <strong>und</strong> AddRo<strong>und</strong>Key aus F , wird der <strong>AES</strong>sofort unsicher (→ Übung).


Einführung in die Kryptographie - Advanced Encryption Standard (<strong>AES</strong>) 15/20Advanced Encryption Standard<strong>AES</strong>-Key Schedule (für n ∈ {128, 192})Definiere für i ≥ 0 den Spaltenvektorw(i) = (w(i, 0), w(i, 1), w(i, 2), w(i, 3)) t ∈ ( {0, 1} 8) 4:Die ersten N n := n 32Werte entsprechen den Spalten von K:w(i) = (K 0,i , K 1,i , K 2,i , K 3,i ) t für i ∈ {0, . . . , N n } .Alle weiteren Werte werden kombiniert gemäß{ w(i − Nn ) ⊕ w(i − 1) für i ≡ 0 mod Nw(i) =nw(i − N n ) ⊕ f (w(i − 1)) für i ≢ 0 mod N nmit einer nichtlinearen Funktion f .Wähle als R<strong>und</strong>enschlüssel K[r] := (w(4r), . . . , w(4r + 3)), d.h.w(0), w(1), w(2), w(3) , w(4), w(5), w(6), w(7) , . . .} {{ } } {{ }K[0]K[1]


Einführung in die Kryptographie - Advanced Encryption Standard (<strong>AES</strong>) 16/20Advanced Encryption StandardImplementation von <strong>AES</strong> −1Beobachtung: Die Operationen in F sind umkehrbar.→ Naheliegende Implementation von F −1 :K[r]XYInvSubBytes InvShiftRows InvMixColumns AddRo<strong>und</strong>KeyBeobachtung: Mit Hilfe einer Umkehrfunktion G −1 definiert durchInvMixColumns(K[r])YXInvSubBytes InvShiftRows InvMixColumns AddRo<strong>und</strong>Key<strong>und</strong> ˜G −1 :=(G −1 ohne InvMixColumns) kann man <strong>AES</strong> <strong>und</strong><strong>AES</strong> −1 strukturell ähnlich implementieren.


Einführung in die Kryptographie - Advanced Encryption Standard (<strong>AES</strong>) 17/20Advanced Encryption StandardUmkehrungseigenschaften der <strong>AES</strong>-R<strong>und</strong>enfunktionEs giltInvShiftRows ordnet die Bytes jeder Zeile um, ohne ihreWerte zu verändern.InvSubBytes wendet auf jedes Byte (unabhängig von seinerPosition) S −1RD an.⇒ InvSubBytes ◦ InvShiftRows = InvShiftRows ◦ InvSubBytes.Genau wie MixColumns ist InvMixColumns linear, d.h.InvMixColumns(AddRo<strong>und</strong>Key(X , K[r]))= InvMixColumns(X ⊕ K[r])= InvMixColumns(X ) ⊕ InvMixColumns(K[r])= AddRo<strong>und</strong>Key(InvMixColumns(X ), t(K[r]))mit t(K[r]) = InvMixColumns(K[r]).


Einführung in die Kryptographie - Advanced Encryption Standard (<strong>AES</strong>) 18/20Advanced Encryption Standard(2-R<strong>und</strong>en <strong>AES</strong>) −1Für den 2-R<strong>und</strong>en <strong>AES</strong> erhält man:K[2] K[1] K[0]˜F −1F −1YX⇔YXK[2]˜G−1K[0]G −1K[1]Beobachtung: Verallgemeinerung auf beliebige R<strong>und</strong>enzahlenmöglich.


Einführung in die Kryptographie - Advanced Encryption Standard (<strong>AES</strong>) 19/20Advanced Encryption StandardKryptanalyse des <strong>AES</strong>Schlüssel- <strong>und</strong> Blocklänge sind auf lange Sicht groß genug,um trivialen Angriffsstrategien widerstehen zu können.Der <strong>AES</strong> ist beweisbar sicher gegen generische Angriffe aufBlockchiffren wie differentielle <strong>und</strong> lineare Kryptanalyse.Es existieren diverse Angriffe auf <strong>AES</strong>:n R<strong>und</strong>enzahl Zeit Speicher chosen plaintexts128 7 von 10 ≈ 2 120 ≈ 2 64 ≈ 2 119192 12 von 12 ≈ 2 176 ≈ 2 152 ≈ 2 123256 14 von 14 ≈ 2 119 ≈ 2 77 ≈ 2 119Es gibt eine sehr übersichtliche geschlossene Darstellung des<strong>AES</strong> als Kettenbruch. Allerdings kennt man kein effizientesVerfahren, diese Formel nach den Schlüsselbytes aufzulösen.Es existieren weitere (teilweise umstrittene) Beobachtungen<strong>und</strong> Strategien, die allerdings noch zu keinem (nachweislichpraktikablem) Angriff geführt haben.


Einführung in die Kryptographie - Advanced Encryption Standard (<strong>AES</strong>) 20/20Advanced Encryption Standard<strong>Sicherheit</strong> des <strong>AES</strong>Man kennt wie für viele andere praktikable Blockchiffren für den<strong>AES</strong> keinen <strong>Sicherheit</strong>sbeweis, d.h. eine untere Schranke für denRessourcenverbrauch beliebiger Angriffsstrategien.Vertrauen in die <strong>Sicherheit</strong> einer Chiffre gewinnt man, wenn estrotz intensiver jahrelanger Analyse niemandem gelingt, einendurchschlagenden Angriff zu finden (bzw. zu publizieren).Ein solcher Angriff ist bisher für den <strong>AES</strong> nicht bekannt.Aber: Der <strong>AES</strong> ist erst seit einigen Jahren ”auf dem Markt“.Alternativen für <strong>AES</strong>-Skeptiker:andere <strong>AES</strong>-Finalisten, z.B. Serpent, TwofishThree-Key Triple-DES. . .

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!