AES – Advanced Encryption Standard

Slides:



Advertisements
Ähnliche Präsentationen
Voice over IP (VoIP).
Advertisements

Fast Fourier Transformation
Matrixmultiplikation
Präsentation Der Gruppe: Boll, Barbosa, Blädel Klasse: WG 05 a.
Kryptographie - ein Exkurs Kodieren/Dekodieren, Verschlüsseln/Entschlüsseln, Chiffrieren/Dechiffrieren zum Zweck der Geheimhaltung, zur Authentifizierung,
Polynome und mehrfache Nullstellen
Asymmetrische Kryptographie
Symmetrische Kryptographie
Link Layer Security in BT LE.
Seminar: Sicherheit in vernetzten Systemen.
Elliptische Kurven in der Kryptographie
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Symmetrische und Asymmetrische Verschlüsselung Habilitationsvortrag
Seminar parallele Programmierung SS 2003
Blockchiffren Projektarbeit zum Thema Kryptographie
IKS – Informations und Kommunikations-systeme
Ein Public Key Kryptosystem mit perfekten Codes in Graphen.
Wir suchen ‘ mit m = m    ‘ c  ‘ mod 26
Symmetrische Verschlüsselung
Hashverfahren und digitale Signaturen
Kryptologie Entwicklung und Bewertung von Verschlüsselungsverfahren
Inhalt Der Cell Prozessor Aufbau des Cells Platine Block Diagramm
Random Heightmap on GPU
Matrix Multiplication on CUDA
KRYPTOGRAFIE.
Kryptographie Wie funktioniert Electronic Banking?
präsentiert von Ulli, Nina& Kerstin
Kryptograhie Wie funktioniert Electronic Banking?
Vektoren Grundbegriffe für das Information Retrieval
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 13: (Container-)Datenstrukturen.
Die Finalisten für den Advanced Encryption Standard Advanced Encryption Standard Herbert Frohner Sebastian Hegenbart Joachim Kerschbaumer.
Sicherer Kanal: von Alice zu Bob
Was ist Kryptographie? Alice Bob Maloy (Spion)
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 13: (Container-)Datenstrukturen.
1 The National Institute of Standards and Technology of the United States of America Stand: 2009 DIGITTRADE GmbH – Produktvorstellung: High Security Festplatte.
Sicherer Kanal: von Alice zu Bob
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Hartmut Klauck Universität Frankfurt WS 06/
Polynome und schnelle Fourier-Transformation
IEEE WEP: Sicherheit von WLAN, Funktion und Designschwächen
Institut für Theoretische Informatik
Institut für Theoretische Informatik
Institut für Theoretische Informatik
Symmetrische Kryptografie
Daten Gruppe 7: Frauwallner Karin, Obermair Andreas Grundlagen wissenschaftlichen Arbeitens SS 2003 Titelseite.
Aufgabe 1 In einem Mikroprozessorsystem mit 32-bit-Datenzugriff auf den Hauptspeicher ist ein Daten-Cache vorhanden. Das Laden des Caches erfolgt in Blöcken.
Symmetrische Blockchiffren DES – der Data Encryption Standard
Algorithmen und Datenstrukturen Übungsmodul 8
PHP: Operatoren und Kontrollstrukturen
Christian Schindelhauer Sommersemester Vorlesung
Systeme II Christian Schindelhauer Sommersemester 2007
§22 Invertierbare Matrizen und Äquivalenz von Matrizen
Natürliche Zahlen Grundrechenarten 1, 2, 3, 4, …. V 0.1.
IT-Sicherheit Kapitel 2 - Symmetrische Kryptographie
Pretty Good Privacy Public Encryption for the Masses
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Michal Olejniczak Pawel Kiedrowski
Projekt Crypt Einfache kryptografische Verfahren
Data Encrypton Standart (Abkürzung: DES). Grundlegende Informationen: DES ist ein weit verbreiteter symmetrischer (das heißt zur Ver- und Entschlüsselung.
Motivation Schutz ausgetauschter Informationen
Anfänge und Entwicklung der Kryptographie Seminararbeit von Andreas Rudolf.
© 2013 TravelTainment Kryptographie in der IT Kryptographische Verfahren und ihre Anwendung in der IT.
Algorithmische Anwendungen Prof. Dr. Heinrich Klocke Algorithmisches Projekt im Wintersemester 2005/06 Advanced Encryption Standard (AES) Rijndael – Algorithmus.
Symmetrische Blockchiffren DES (Data Encryption Standard) und AES (Advanced Encryption Standard)
Wiederholung Größte gemeinsame Teiler Satz von Bezout:
Kryptographie - Abbildungen -.
 Präsentation transkript:

AES – Advanced Encryption Standard Seminar: Kryptographie und Sicherheit, Prof. Dr. Waldvogel Cordula Bauer

Thematik Wie entstand der AES? Wie funktioniert der Algorithmus der hinter AES steckt ? Welche Konzepte stehen hinter dem Design des Algorithmus? Wie sicher ist der AES?

Inhalt AES – Der Prozess Der Algorithmus: Rijndael Zusammenfassung Mathematische Grundlagen Spezifikation des Algorithmus Kryptoanalyse Zusammenfassung

AES – Der Prozess AES als Nachfolger von DES AES: Nachfolger des Data Encryption Standard (DES) von 1976 DES, Schlüssellänge von 56 Bit  durch immer höhere Rechnerleistungen unsicher geworden triple-DES: dreifache Anwendung des DES  sehr ineffizient

AES – Der Prozess AES als Wettbewerb Januar 1997: Nationales Institut für Standards und Technologie der USA (NIST) ruft zu öffentlichem Wettbewerb für neue Verschlüsselungstechnik auf AES soll ein Federal Information Processing Standard (FIPS) werden NIST evaluiert Sicherheit und Effizienz selbst nicht, das soll übernehmen wer Interesse daran hat

AES – Der Prozess Anforderungen an AES Formal: symmetrischer Blockchiffre Blockgröße:128 Bit Schlüssellängen: 128, 192 und 256 Bit Resistenz gegen alle Methoden der Kryptoanalyse überdurchschnittlich effizient in Software und Hardware (auch auf 8 Bit-Prozessoren) einfach zu implementieren

AES – Der Prozess Die Auswahl: Rijndael Im Oktober 2002 wird Gewinner bekannt gegeben: Rijndael Autoren: Joan Daemen, Vincent Rijmen (Belgien) Algorithmus zeichnet sich durch sehr gute Performance in Hardware und Software und seine Einfachheit aus. In puncto Sicherheit gab es auch einige Kandidaten, welche Rijndael gleichwertig waren

Rijndael - Mathematische Grundlagen Bits, Bytes und Wörter Rijndael verschlüsselt mit 8 und 32 Bit Operationen 8 Bit = 1 Byte | 32 Bit = 4 Byte = 1 Wort Beispiel: Blockgröße 128 Bit, bzw. 16 Byte, bzw. 4 Wörter Blockgröße bei Rijndael nicht nur 128 Bit (wie beim AES), sondern prinzipiell jedes Vielfache von 32 zwischen 128 und 256 Bit möglich.

Rijndael - Mathematische Grundlagen GF(2) |8 Byte b7b6b5b4b3b2b1b0 kann als Polynom dargestellt werden: b(x) = b7x7 + b6x6+ b5x5+ b4x4 + b3x3 + b2x2 + b1x + b0 Beispiel: 01010111  x6 + x4 + x2 + x + 1 b(x) repräsentiert die Elemente des endlichen Körpers GF(2)|8 Alle möglichen Bytes sind genau die Elemente von GF(2)|8

Rijndael - Mathematische Grundlagen endliche Körper Endlicher Körper <F, Å, Ä >: <F, Å> und <F\{0}, Ä> sind abelsche Gruppen Å und Ä sind distributiv abelsche Gruppe <G, +>: Abgeschlossenheit: "a,bÎG: a+bÎG Assoziativität: "a,bÎG: (a+b)+c = a+(b+c) Kommutativität: "a,bÎG: a+b = b+a neutrales Element: $0ÎG,"aÎG: a+0 = a inverses Element: "a,bÎG: a+b = 0

Rijndael - Mathematische Grundlagen Addition von Bytes <F, Å> Å ist Addition der Komponenten modulo 2 ( x6 + x2 + x + 1 ) + ( x7 + x + 1) = x7 + x6 + x2 01000111 + 10000011 = 11000100 Auf Byte-Ebene entspricht Å der Operation XOR

Rijndael - Mathematische Grundlagen Multiplikation <F\{0}, Ä> Ä ist Multiplikation modulo m(x) m(x) = x8 + x4 + x3 + x + 1 (irreduzibles Polynom, 8ten Grades) ( x6 + x4 + x2 + x + 1 ) * ( x7 + x + 1) = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1 (x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1) modulo (x8 + x4 + x3 + x + 1 ) = x7 + x6 + 1 keine simple äquivalente Ausführung auf Byte-Ebene

Rijndael - Mathematische Grundlagen Addition von Wörtern Wort a3a2a1a0 kann als Polynom dargestellt werden: a(x) = a3x3 + a2x2 + a1x + a0 Addition: die Komponenten, also die einzelnen Bytes werden jeweils XOR verknüpft: (a3x3 + a2x2 + a1x +a0) Å (b3x3 + b2x2 + b1x +b0) = (a3Å b3) x3 + (a2Å b2) x2 + (a1Å b1)x + (a0Å b0)

Rijndael - Mathematische Grundlagen Multiplikation von Wörtern (1) Multiplikation: ähnlich wie mit Bytes, mit irreduziblem Polynom m(x) = x4 +1 d(x) = a(x) Ä b(x) (mod x4 +1) mit d(x) = d3x3 + d2x2 + d1x + d0 di: d0 = (a0 Ä b0) Å (a3 Ä b1) Å (a2 Ä b2) Å (a1 Ä b3) d1 = (a1 Ä b0) Å (a0 Ä b1) Å (a3 Ä b2) Å (a2 Ä b3) d2 = (a2 Ä b0) Å (a1 Ä b1) Å (a0 Ä b2) Å (a3 Ä b3) d3 = (a3 Ä b0) Å (a2 Ä b1) Å (a1 Ä b2) Å (a0 Ä b3)

Rijndael - Mathematische Grundlagen Multiplikation von Wörtern (2) a(x) Ä b(x) º d(x) (mod x4 +1) kann als Matrizzen-Multiplikation dargestellt werden:

Spezifikation des Algorithmus Rijndael ist ein schlüssel-iterierter Blockchiffre

Spezifikation des Algorithmus Blöcke und Runden Wort Layout eines Blocks: 4 Wörter, Nb = 4 128 bits Byte Schlüssel hat genau das gleiche Layout. Entscheidend für Rijndael ist nur Nb = 4, also die erste Spalte Anzahl der Runden:

Spezifikation des Algorithmus Pseudo-Code (1) Rijndael(State, CipherKey) { KeyExpansion(CipherKey, ExpandedKey); AddRoundKey(State, ExpandedKey[0]); for(i=1; i<Nr; i++) Round(State, ExpandedKey[i]); FinalRound(State, ExpandedKey[Nr]); }

Spezifikation des Algorithmus Pseudo-Code (2) Round(State, ExpandedKey[i]) { SubBytes(State); ShiftRows(State); MixColumns(State); AddRoundKey(State, ExpandedKey[i]); } FinalRound(State, ExpandedKey[Nr]) AddRoundKey(State, ExpandedKey[Nr]);

Spezifikation des Algorithmus SubBytes nicht-lineare Transformation (einzige) S-Box

Spezifikation des Algorithmus SubBytes – S-Box Konkatenation von zwei Funktionen g,f g(a) = a-1 (multiplikative Inverse aus GF(2)|8 ) f(a): Å f(a) entspricht einer polynomialen Multiplikation und anschließender XOR-Verknüpfung mit einer Konstanten

Spezifikation des Algorithmus SubBytes – Design Kriterien Nicht-Linearität Korrelation Input  Output - so gering wie möglich difference propagation Wahrscheinlichkeit Algebraische Komplexität soll hoch sein

Spezifikation des Algorithmus ShiftRows Einzelne Reihen i werden um eine Anzahl Ci geshiftet Blockgröße 128: C0=0, C1=1, C2=2, C3=3 Design Kriterium für verschiedene Werte von Ci: optimale Diffusion

Spezifikation des Algorithmus MixColumns (1) Die Bytes der einzelnen Spalten (= Wörter) werden durcheinander gewürfelt Ä c(x)

Spezifikation des Algorithmus MixColumns (2) b(x) = a(x) Ä c(x) (mod x4 +1) (Multiplikation Wortebene) mit c(x) = 03 x3 + 01 x2 + 01 x + 02 Koeffizienten sind Bytes in Hexadezimal-Schreibweise

Spezifikation des Algorithmus MixColumns – Design Kriterien Effektivität: Linearität Diffusion Effizienz: Gute Performance auf 32 Bit Prozessoren auf 8 Bit Prozessoren

Spezifikation des Algorithmus AddRoundKey Länge des Rundenschlüssels = Blocklänge aktueller Zustand (state) wird mit Rundenschlüssel (round key) XOR verknüpft Å = state round key new state

Spezifikation des Algorithmus KeyExpansion (1) KeyExpansion: cipher key  expanded key W [Nb(Nr+1)] Beispiel: cipher key Länge: 192 bit  Nk = 6 Blocklänge: 128 bit  Nb = 4  Nr = 12  Nek = 52 W [52]

Spezifikation des Algorithmus KeyExpansion (2) Wi: i kein Vielfaches von Nk: Wi = Wi - Nk Å Wi-1 Wi: i Vielfaches von Nk: Wi = Wi - Nk Å S(Wi-1) s

Spezifikation des Algorithmus KeyExpansion – Design Kriterien Effektivität: Eliminierung von Symmetrie Diffusion Nicht-Linearität Effizienz: Wenig Arbeitsspeicherverbrauch Gute Performance auf vielen Prozessoren Symmetrie: Rundenschlüssel um keine Symmetrie zwischen den einzelnen RUnden feststellen zu können Diffusion: von Rundenschüssel sollen keine Rückschlüsse auf den richtigen Schlüssel gezogen werden können Nicht-Linearität: ähnliche cipher keys sollen nicht auf ähnliche Rundenkeys abgebildet werden

Spezifikation des Algorithmus Dechriffrieren I_Rijndael(State,CipherKey) { I_KeyExpansion(CipherKey,I_ExpandedKey); AddRoundKey(State, I_ExpandedKey[Nr]); for( i=Nr-1; i>0; i- - ) I_Round(State, I_ExpandedKey[i]); I_FinalRound(State, I_ExpandedKey[0]); } I_Round(State,I_ExpandedKey[i]) InvSubBytes(State); InvShiftRows(State); InvMixColumns(State); AddRoundKey(State,I_ExpandedKey[i]);

Kryptoanalyse resistent gegen lineare und differentielle Kryptoanalyse saturation attack chosen-plaintext + Ausnutzung der byte-orientierten Struktur  nur für rundenreduzierte (7 Runden) Version möglich implementation attacks timing attack power analysis Implementation attacks: man muss den Verschlüsselungsvorgang des verschlüsselnden Rechners analysieren Timing attack: von Ausführungszeit können Rückschlüsse auf Schlüssel gezogen werden Power analysis: Ressourcenverbrauch während der Verschlüsselung wird analysiert

Zusammenfassung AES (Rijndael) ist symmetrischer Blockchiffre arbeitet mit simplen 8 und 32 Bit Operationen Schlüssel-Iteration & Rundentransformation hohe Sicherheit erreicht durch algebraische Komplexität Diffusion und Nicht-Linearität

Anwendungen die AES benutzen Wireless LAN WPA2 SSH IPsec Skype 7-Zip PGP

Vielen Dank für die Aufmerksamkeit. Ende Noch Fragen? Vielen Dank für die Aufmerksamkeit.