1 / 32

Der Rijndael Algorithmus

AES Advanced Encryption Standard. Der Rijndael Algorithmus. Vortrag im Fach Kryptologie Prof. Dr. Hoever. Vortragende: Fegler, Alexander & Hellmann, Jelle. Inhalt. 1. Entstehung 1.1 Auswahl des Nachfolgers 1.2 Anforderungen 1.3 Auswahlgründe 2. Arbeitsweise

ziazan
Télécharger la présentation

Der Rijndael Algorithmus

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AES Advanced Encryption Standard Der Rijndael Algorithmus Vortrag im Fach Kryptologie Prof. Dr. Hoever Vortragende: Fegler, Alexander & Hellmann, Jelle

  2. Inhalt • 1. Entstehung • 1.1 Auswahl des Nachfolgers • 1.2 Anforderungen • 1.3 Auswahlgründe • 2. Arbeitsweise • 2.1 Mathematische Grundlagen • 2.2 Überblick Algorithmus • 2.3 State, Chipher Key number of rounds • 2.4 Round transformation (was pro Runde gemacht wird) • 2.4.1 Byte Sub • 2.4.2 Shift Row • 2.4.3 Mix Columm • 2.4.4 Round Key Addition • 2.4.5 Key Schedule (Key Expansion & Round Key Selection) • 3. Anwendungsgebiete • 4. Sicherheit • 5. Fazit/Ausblick

  3. 1. Entstehung Da DES immer unsicherer wurde, aufgrund seiner relativ kurzen Schlüssellänge von 56 Bit und weil 3DES eine schlechte Performance hatte, wurde 1997 in weiser Voraussicht vom NIST (National Institut for Standardisation and Technology) eine Initiative bzw. Wettbewerb ins Leben gerufen um den Nachfolger des DES zu suchen. Kurz darauf wurden in einem Workshop werden die genauen Anforderungen an den Algorithmus festgelegt. Nach knapp 4 Jahren die der Auswahlprozess gebraucht hatte, stand das Ergebnis fest, der Sieger des AES Wettbewerbes war der Rijndael Algorithmus. Er wurde von den Belgiern Vicent Rijmen und Joan Daemen entwickelt.

  4. 1.1 Historie März 2. AES Konferenz Diskussion der bisherigen Resultate Februar Ende öffentliche Diskussion zum Standard 2. Januar ’97 Aufruf zur Initiative 15. April Ende der Begutachtung der Kandidaten 15. April AES-Workshops genaue Anforderungen November FIPS Standard 1997 1998 1999 2000 2001 November FIPS- Standard als Manusskript 2. Oktober Sieger ist Rinjdael 20. August 1. AES Konferenz 15 Algorithmen eingegangen 15. Mai Ende der öffentlichen Diskussion 13./14. April 3. AES- Konferenz Analyse der 5 Endkandidaten

  5. 1.2 Anforderungen Anforderungen die vom NIST gestellt wurden waren: Technische: • AES muss symmetrischer Algorithmus sein -> Blockalgorithmus • AES muss mindestens 128 Bit lange Blöcke verwenden und Schlüssel von 128, 192 und 256 Bit verwenden können • AES soll gleichermaßen leicht in Hard- und Software implementierbar sein • AES soll in Hard- und Software eine überdurchschnittliche Performance haben • AES soll allen bekannten Methoden der Kryptanalyse widerstehen können, insbesondere POWER- und TIMING- Attacken • Speziell für den Einsatz in Smartcards sollen geringe Ressourcen erforderlich sein( kurze Codelänge, niedriger Speicherbedarf) Weitere: • Der Algorithmus muss frei von patentrechtlichen Ansprüchen sein und darf von jedermann unentgeltlich genutzt werden • Umfangreiche Dokumentation

  6. 1.3 Auswahlgründe NIST: „When considered togehter, Rijndael‘s combination of security, performance, efficiency, implementability and flexibility make it an appropriate selection for the AES“ Also aufgrund seiner Einfachheit und seiner exzellenten Performance • Eingangstext jede runde deterministischen Transformationen unterworfen • Ergebnisse werden XOR mit den Rundenschlüssel verrechnet Sicherheit kommt von der Konstruktion des Transformationen (S-Box) und der Durchführung mehrerer Runden. Aber gerade wegen seiner algebraischen Struktur wurden/werden Schwächen vermutet

  7. 2.1 Mathematische Grundlagen Ist ein Byte, so wird die dazugehörige Polynomdarstellung betrachtet Für jedes Byte ist ein Polynom vom Grad ≤ 7, so dass man definiert Der Addition zweier Polynome f und g in GF(256) entspricht die XOR Verknüpfung ( ) der dazu gehörigen Bytes. Beispiel:

  8. 2.1 Mathematische Grundlagen Um in GF(256) auch multiplizieren zu können, muss der Grad des Produktes zweier Polynome wieder reduziert werden. Dies geschieht mit der Modulo Rechung bzgl. eines Polynoms vom Grad 8 (=7+1).Daher wird für den AES Algorithmus ein festes irrreduzibles Polynom gewählt und zwar Beispiel:

  9. 2.1 Mathematische Grundlagen Neutrale Element bzgl. ● ist das Byte 01 Das multiplikativ Inverse, kann mittels der erweiterten Euklid gefunden werden a(x) und c(x) so berechen Es gilt auch das Kommutativ- und das Distributivgesetz Es folgt , das die 256 Bytes werte mit dem XOR ( ) als Addition und der obigen Multiplikation ● den endlichen Körper GF(256) bilden. In der Algebra ist ein endlicher Körper oder Galoisfeld (benannt nach dem Mathematiker Evariste Galois) ein Körper mit nur endlich vielen Elementen.

  10. Benutzer- schlüssel Klartext Eingabe eines Klartextes und eines Schlüssels durch den Benutzer Verschlüsselung Rundenbasierte Hintereinander-ausführung von verschiedenen Transformationsschritten verschlüsselter Text Ausgabe des verschlüsselten Textes 2.2 Algorithmus Übersicht

  11. 2.3 Number of Rounds, State & Key Rundenanzahl ist abhängig von verwendeter Schlüssellänge k und verwendeter Blockgöße b Zustand Schlüssel 4 Byte=32 Bit

  12. Runde 1 bis ( r – 1 ) Anzahl der Runden ist abhängig von der Block- und Schlüssellänge ByteSub ShiftRow MixColumn AddRoundKey Rundenschlüssel Runde r ByteSub ShiftRow AddRoundKey verschlüsselter Text 2.4 Verschlüsselungsprozess Initialisierungsrunde Klartext Schlüssel AddRoundKey

  13. 2.4.1 Verschlüsselungsprozess ByteSub • monoalphabetische Verschlüsselung mit der Substitutionsbox • Bytes im Block durch Äquivalente in der S-Box ersetzen • S-Box meist als Array implementiert • Transformation ist deterministisch • Lediglich zur Vermischung der Bytes und Schutz gegen • differentielle und lineare Kryptanalyse • Interpolationsattacken

  14. 3d f4 c6 f8 27 bf b4 41 e3 e2 8d 48 11 98 5d 52 be 2b 2a 08 ae f1 e5 30 2.4.1 Verschlüsselungsprozess Beispiel ByteSub State vor ByteSub: 19 a0 9a e9 d4 e0 b8 1e State nach ByteSub: S-Box S-Box: 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 1 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 2 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15 3 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75 4 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84 5 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 6 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8 7 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2 8 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73 9 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db a e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79 b e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08 c ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a d 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e e e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df f 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16

  15. 2.4.2 Verschlüsselungsprozess ShiftRow • Zeilen des State byteweise zyklisch nach links rotieren • Anzahl der Verschiebungen ist zeilen- und blocklängenabhängig b=Blocklänge • Transformation ist deterministisch

  16. 2.4.2 Verschlüsselungsprozess Beispiel ShiftRow d4 e0 b8 1e d4 e0 b8 1e 27 bf b4 41 bf b4 41 27 11 98 5d 52 5d 52 11 98 ae f1 e5 30 30 ae f1 e5

  17. 2.4.3 Verschlüsselungsprozess MixColumn • Spalten vermischen • Jede Zelle einer Spalte wird mit einer Konstanten multipliziert. Konstantes Polynom: c(x) = 03hx3 + 01hx2 + 01hx + 02h • Die Ergebnisse werden XOR verknüpft • Vorgehensweise beruht auf Transformation auf Galoisfeldern • Transformation ist deterministisch

  18. d4 e0 b8 1e bf b4 41 27 5d 52 11 98 30 ae f1 e5 2.4.3 Verschlüsselungsprozess Beispiel MixColumn Beispielrechnung für das erste Byte: 11010100 * 00000010 = 10110011 (d4 * 02 = b3) 10111111 * 00000011 = 11011010 (bf * 03 = da) 01101001 (b3 XOR da = 69) 01011101 * 00000001 = 01011101 (5d * 01 = 5d) 00110100 (69 XOR 5d = 34) 00110000 * 00000001 = 00110000 (30 * 01 = 30) 04 e0 48 28 00000100 (34 XOR 30 = 04) 66 cb f8 06 81 19 d3 26 e5 9a 7a 4c

  19. 2.4.4 Verschlüsselungsprozess AddRoundKey • KeyAddition in der Vorrunde und am Ende jeder weiteren Runde • Rundenschlüssel bitweise XOR verknüpfen mit dem State • Einzige Funktion, die den Algorithmus vom Schlüssel abhängig macht

  20. a0 88 23 2a fa 54 a3 6c fe 2c 39 76 17 b1 39 05 00000100 (04) 01100110 (66) 10000001 (81) 11100101 (e5) 10100000 (a0) 11111010 (fa) 11111110 (fe) 00010111 (17) 2.4.4 Verschlüsselungsprozess Beispiel AddRoundKey State Round key Neues State 04 e0 48 28 a4 68 6b 02 66 cb f8 06 9c 9f 5b 6a 81 19 d3 26 7f 35 ea 50 e5 9a 7a 4c f2 2b 43 49 Beispielrechnung für die erste Spalte: 10100100 (a4) 10011100 (9c) 01111111 (7f) 11110010 (f2)

  21. Schlüsselgenerierung 1 • Schlüssel aufteilen in r + 1 Rundenschlüssel • Benutzerschlüssel expandieren auf die Länge b * ( r + 1 ) • Der erste Rundenschlüssel ist identisch mit dem Benutzerschlüssel • Berechnung weiterer Rundenschlüssel nach festem Schema…

  22. Schlüsselgenerierung 2 • Für das Schema benötigte Elemente: • RotWord(): • verschiebt die 4 Bytes eines Wortes zyklisch um eine Position nach links, d.h. RotWord([a0,a1,a2,a3]) = [ a1,a2,a3,a0] • ByteSub(): • S-Box auf jedes Byte eines Wortes anwenden (s.o.) • Rcon-Tabelle: • Rcon[i] = [xi-1,0,0,0], wobei 0 das Nullbyte und xi-1 die (i-1)-te Potenz von x=(02)hex bzgl. der Multiplikation ● in GF (28) bezeichnet

  23. RotWord RotWord ByteSub ByteSub Rcon[1] Rcon[2] Schlüsselgenerierung 3 W[0] W[1] W[2] W[3] W[4] W[5] W[6] W[7] W[8] … Rcon:

  24. Entschlüsselung • Zunächst AddRoundKey(State, Roundkey) • Dann die einzelnen Runden • InvByteSub(State) • InvShiftRow(State) • InvMixColumn(State) • AddRoundKey(State, InvMixColumn(Roundkey)) • Letzte Runde ohne InvMixColumn und mit dem gewöhnlichen AddRoundKey(State, Roundkey)

  25. 3. Anwendungsgebiete Verschlüsselungsstandard 802.11i für Wireless LAN & seinem Wi-Fi- Äquivalent WPA2 außerdem noch SSH und IPsec. Weiterhin wird der Algorithmus zur Verschlüsselung diverser komprimierter Dateiarchive verwendet. Tools die AES verwenden: PGP (gnuPgp), Steganos Safe, Winzip 9.0 SSL 3.0 (RSA + AES), Skype Linux: loop-aes von Jari Ruusu, aespipe

  26. 4. Sicherheit Bruteforce & theoretische Folgen (AES mit 256 Bit Schlüssel) Speicheraufwand : für alle Schlüssel Wenn es möglich wäre pro Atom 1 Schlüssel zu speichern Hätte der Speicher eine Masse von g das entspricht Sternenmassen Bei 128 Bit Schlüssel nur noch ca. 300 t Speichermasse ca. TByte Wenn man jetzt 1 Mrd. Computer hat, wovon jeder pro Sekunde 1 Mrd. Keys testet, so bräuchte man immer noch im Durchschnitt 5 Billionen Jahre um an den Schlüssel zu gelangen.

  27. 4. Sicherheit Stärken Einfluss der Schlüssel Verknüpfung des Rundenschlüssel vor der ersten Runde und als letzter schritt innerhalb einer Runde -> Jedes Bit ist vom Schlüssel abhängig Nichtlineare Schicht Die S-Box ist eine stark nichtlineare Operation Die Konstruktion der S-Box sorgt für nahezu idealen Schutz vor der linearen und differentiellen Kryptanalyse Lineare Schicht Die ShiftRow and MixColumn sorgen für eine optimale Durchmischung der Bits eines Blockes.

  28. 4. Sicherheit/Angriffe (akademische Erfolge) 1 • 2001 als geschlossene Formel mit 1 Billionen Summanden (Niels Ferguson, Richard Schroeppel, Doug Whiting) niemand weiß, ob daraus jemals ein sinnvoller Angriff auf AES konstruiert werden kann • 2002 algebraische Besonderheiten (große Systeme quadratischen Gleichungen) (Eli Biham) 128-Bit AES: GLS 8000 Gleichungen mit 1600 Variablen • 2002 aus XL Verfahren -> XSL Verfahren (Josef Pieprzyk, Nicolas Courtouis) eXtended Sparse Linearization • 2002 AES Spezialfall von BES (Big Encryption System) (Sean Murphy, Matt Robshaw)

  29. 4. Sicherheit/Angriffe (akademische Erfolge) 2 Gleichungssysteme mit folgenden Eigenschaften: • stark überbestimmt (mehr Gleichungen als Variable) • Schwach besetzt( größte Teil der Koeffizienten=0) • Besonders reguläre Struktur Besonderheiten: • Coutouis & Pieprzyk XSL Methode könnte AES in Schritten knacken • Angriff nicht auf Statistik sondern Algebra • Sicherheit von Produktalgorithmen nicht mehr exponentiell mit Rundenzahl steigend Sean Murphy and Matt Robwerts , AES Spezialfall von BES besonders runde Struktur -> Rechenaufwand könnte sich dann auf reduzieren.

  30. 4. Sicherheit Theoretische Angriffe haben aus 2 Gründen keine praktische Bedeutung 1) Komplexität der Angriffe bei Rechenschritten 2) Angriffe sind umstritten und noch nicht implementiert “2^100 Rechenschritte sind eine utopisch große Zahl. Ein aus GHz-Pentium- Prozessoren aufgebauter Rechencluster, der die Arbeit binnen eines Jahres schaffen Sollte hätte einen Stromverbrauch von vielen Millionen Gigawatt, was viele Größenordnungen über der Weltenergieproduktion liegt.“ [ct02/21/038] Außerdem tauchen in den harten mathematischen Arbeiten immer wieder Formulierungen wie „könnte“ und „vermutlich“ auf . Trotzdem ist durch diese Veröffentlichungen das makellose Image von AES ein wenig angekratzt.

  31. 5. Fazit/Ausblick • Hardwarenahe( d.h. Einfach zu implementieren) • Optimiertes C-Programm besteht aus nur ~ 500 Zeilen Code • Einfaches Design • Ohne Patentansprüche • Bis heute kein praktikabler Angriff gefunden • Aber wahrscheinlich nicht mehr für die nächsten 20 Jahre sicher • Wenn sich der Rechenaufwand innerhalb eines Jahres um „reduziert“ warum dann nicht noch Faktor oder drauflegen, dann wäre erster praktikabler Angriff denkbar • Aber noch bestimmt 10 Jahre sicher, weil nicht ohne beträchtlichen Aufwand knackbar

  32. Literatur • iX10/2001, iX12/2002 • ct 11/05 ,ct 7/05, ct 17/03 • http://www.schneier.com/paper-rijndael.html • http://www.cryptosystem.net/aes/ • http://www.chscene.ch/ccc/ds/66/008_aes.html • http://csrc.nist.gov/CryptoToolkit/aes/ • http://www.wikipedia.de • http://www.itl.nist.gov/fipspubs/ FIPS 197 Paper • http://www.esat.kuleuven.ac.be/~rijmen/rijndael/ • http://csrc.nist.gov/CryptoToolkit/aes/rijndael/Rijndael-ammended.pdf • http://www.realtec.de/privat/arbeiten.shtml

More Related