Kryptografische Algorithmen Lerneinheit 5: Weitere symmetrische Kryptosysteme Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2015/2016 21.9.2015 Einleitung Einleitung Diese Lerneinheit liefert weiterführende Informationen zu symmetrischen Kryptosystemen. Sie gliedert sich in folgende Teile: Weitere Blockchiffren Blowfish International Data Encryption Algorithm (IDEA) Eine Stromchiffre Rivest s Cipher (RC4) Vor- und Nachteile von symmetrischen Kryptosystemen Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 2 / 33
Blowfish Blowfish Entwicklung von Bruce Schneier aus dem Jahre 1993 Open Source Designkriterien: Geschwindigkeit Kompaktheit Einfachkeit Verschiedene Sicherheitsstufen durch variable Schlüssellänge Ideal für Anwendungen mit selten wechselnden Schlüsseln Hoher Speicherplatzbedarf (ca. 5 KByte) Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 3 / 33 Blowfish Feistel Chiffre von Blowfish 32 Bit 32 Bit 32 Bit p i l i 1 r i 1 F l i r i 32 Bit 32 Bit Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 4 / 33
Blowfish Bemerkungen zur Feistel Chiffre Eingabe: 32-Bit Binärwörter l i 1, r i 1, p i Ausgabe: 32-Bit Binärwörter l i, r i Verfahren zur Berechnung: r i = l i 1 p i l i = r i 1 F (r i ) Voraussetzung: injektive Abbildung F : {0, 1} 32 {0, 1} 32 Beachte: Aus l i, r i und p i kann man mit der Feistel Chiffre nicht l i 1 und r i 1 berechnen Konsequenz: Einbettung der Feistel Chiffre in eine passende Umgebung Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 5 / 33 Funktion F Blowfish 32 Bit w a b c d 8 Bit 8 Bit 8 Bit 8 Bit S 1 S 2 S 3 S 4 32 Bit 32 Bit 32 Bit 32 Bit 32 Bit f Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 6 / 33
Blowfish Funktionsweise der Funktion F Jede S-Box ist eine Funktion {0, 1} 8 {0, 1} 32 Die S-Box wird als Tabelle von 256 32-Bit Zahlen gespeichert Die Tabellen werden anhand des Schlüssels initialisiert Zur Berechnung der Werte wird Blowfish eingesetzt Die schmutzigen Details befinden sich auf Folie 13 Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 7 / 33 Aufbau von Blowfish Blowfish Klartext l 0 r 0 p 1 F l 1 r 1 p 2 F l 2 r 2 l 15 r 15 p 16 F l 16 r 16 p 18 p 17 l 17 r 17 Geheimtext Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 8 / 33
Blowfish Blowfish Algorithmus Eingabe: 64-Bit Klartext x, Schlüssel k mit bis zu 448-Bit Ausgabe: 64-Bit Geheimtext y 1. Initialisierung der Rundenschlüssel und der S-Boxen: Berechne unter Verwendung des Schlüssels k die Rundenschlüssel p 1, p 2,..., p 18 und die S-Box Tabellen S 1,0,..., S 1,255, S 2,0,... S 2,255, S 3,0,... S 3,255, S 4,0,... S 5,255 2. Zerlege den Klartext x in zwei 32-Bit Wörter l 0, r 0 Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 9 / 33 Blowfish Blowfish Algorithmus (Forts.) 3. Durchführung der Verschlüsselung: Für i = 1,..., 15: r i = l i 1 p i l i = r i 1 F (r i ) Runde 16: l 16 = l 15 p 16 r 16 = r 15 F (l 16 ) l 17 = l 16 p 18 r 17 = r 16 p 17 4. Gebe den Geheimtext y = l 17 r 17 zurück Entschlüsselung durch denselben Algorithmus mit den Rundenschlüsseln p 18,..., p 1 Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 10 / 33
Blowfish Berechnung der Funktion F Eingabe: 32-Bit Wort w Ausgabe: 32-Bit Wort f Algorithmus: 1. Zerlege w in 4 8-Bit Wörter a, b, c, d 2. Berechne f = ((S 1 [a] S 2 [b]) S 3 [c]) S 4 [d] 3. Gebe f als Ergebnis zurück Bemerkungen: steht für die Addition mod 2 32 Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 11 / 33 Blowfish Initialisierung der Rundenschlüssel und S-Boxen 1. Initialisiere die Rundenschlüssel p 1,..., p 18 und die S-Boxen S 1,..., S 4 (in genau dieser Reihenfolge) mit der Hexadezimalkodierung der Zahl π 2. Erzeuge durch wiederholtes Hintereinanderhängen des Schlüssels k eine Folge k 1,..., k 18 von 32-Bit Wörtern 3. Berechne p i = p i k i für i = 1,..., 18 4. Verschlüssele den 64-Bit Nullvektor mit Blowfish unter Verwendung der zuvor berechneten Parameter 5. Ersetze p 1 und p 2 durch den Geheimtext von Schritt 4 Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 12 / 33
Initialisierung (Forts.) Blowfish 6. Verschlüssele den Geheimtext von Schritt 4 mit Blowfish unter Einsatz der aktuellen Parameter 7. Ersetze p 3 und p 4 durch den Geheimtext von Schritt 6 8. Wiederhole die letzten beiden Schritte solange, bis die Rundenschlüssel und die S-Boxen mit neuen Werten gefüllt sind Beachte: Es sind 521 Iterationen notwendig, um die Rundenschlüssel und S-Boxen zu initialisieren Die Initialisierung wird einmal durchgeführt, die berechneten Werte werden abgespeichert Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 13 / 33 International Data Encryption Algorithm International Data Encryption Algorithm Entwicklung von der ETH Zürich und der Ascom Systec AG Wissenschaftliche Betreuung durch X. Lai und J. Massey Veröffentlichung im Jahre 1990 unter dem Namen Proposed Encryption Standard (PES) Seit 1992 bekannt unter dem Namen IDEA Für nicht-kommerziellen Einsatz frei verfügbar (z.b. Pretty Good Privacy (PGP), Secure Shell (SSH)) Wegen der Patentierung nur eine geringe Verbreitung im kommerziellen Umfeld Ende des Patents in Deutschland: 16. Mai 2011 (USA: 25. Mai 2010) Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 14 / 33
International Data Encryption Algorithm Elementaroperationen von IDEA IDEA basiert auf drei Basisoperationen. Jede dieser Operationen ist eine Abbildung von {0, 1} 16 nach {0, 1} 16. Die drei Operationen sind: XOR-Operation (symbolisch: ) Addition modulo 2 16 (symbolisch: ) eine modifizierte Version der Multiplikation modulo 2 16 + 1 (symbolisch: ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 15 / 33 International Data Encryption Algorithm Multiplikationsoperation Anforderungen: muss invertierbar sein. Das Ergebnis muss als 16-Bit Zahl darstellbar sein. Lösung: Wähle als Modul die Primzahl 2 16 + 1. Verwende 0 als Synonym für die Zahl 2 16. Algorithmus: Für a, b Z 2 16 +1 a b = 1, falls a = 0 und b = 0, 2 16 + 1 b, falls a = 0 und b 0, 2 16 + 1 a, falls a 0 und b = 0, ab mod (2 16 + 1), sonst. Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 16 / 33
International Data Encryption Algorithm Multiplikation-Addition (MA) Box u 1 u 2 16 Bit 16 Bit k 1 k 2 16 Bit 16 Bit v 1 v 2 Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 17 / 33 International Data Encryption Algorithm Eigenschaften der MA-Box Die MA-Box ist verantwortlich für die Diffusion Jedes Bit der Ausgabe v 1, v 2 hängt von jedem Bit der Schlüssel k 1, k 2 und der Eingabe u 1, u 2 ab Die MA-Box ist optimal konstruiert, denn es sind mindestens vier der Basisoperationen notwendig um die vorherigen Punkt erwähnte Abhängigkeit von Ein- und Ausgabe zu erreichen Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 18 / 33
International Data Encryption Algorithm Eine Runde von IDEA u 1 u 2 u 3 u 4 k 1 k 2 k 3 k 4 k 5 k 6 v 1 v 2 v 3 v 4 Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 19 / 33 International Data Encryption Algorithm Ausgabetransformation von IDEA u 2 u1 u 3 u 4 k 1 k 2 k 3 k 4 y 1 y 2 y 3 y 4 Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 20 / 33
International Data Encryption Algorithm Verschlüsselung mittels IDEA (Teil 1) Eingabe: 64-Bit Klartext x, 128-Bit Schlüssel k Ausgabe: 64-Bit Geheimtext y = (y 1, y 2, y 3, y 4 ) 1. Rundenschlüssel: Berechne unter Verwendung des Schlüssels k die 16-Bit Rundenschlüssel k (r) 1,..., k (r) 6, 1 r 8, und k (9) 1,..., k (9) 4 (siehe unten) 2. Eingabetransformation: u 1 := x 1... x 16 ; u 2 := x 17... x 32 ; u 3 := x 33... x 48 ; u 4 := x 49... x 64 Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 21 / 33 International Data Encryption Algorithm Verschlüsselung mittels IDEA (Teil 2) 3. Für 1 r 8: a) u 1 := u 1 k (r) 1 ; u 2 := u 2 k (r) 2 ; u 3 := u 3 k (r) 3 ; u 4 := u 4 k (r) 4 b) t 0 := k (r) 5 (u 1 u 3 ); t 1 := k (r) t 2 := t 0 t 1 c) u 1 := u 1 t 1 ; u 4 := u 4 t 2 ; a := u 2 t 2 ; u 2 := u 3 t 1 ; u 3 := a; 4. Ausgabetransformation: y 1 := u 1 k (9) 1 ; y 2 := u 3 k (9) y 3 := u 2 k (9) 3 ; y 4 := u 4 k (9) 2 ; 4 ; 6 (t o (u 2 u 4 )); Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 22 / 33
International Data Encryption Algorithm Berechnung der Rundenschlüssel Eingabe: 128-Bit Schlüssel k Ausgabe: 52 16-Bit Schlüssel k (r) i 1. Ordne die Teilschlüssel wie folgt an: k (1) 1... k (1) 6, k (2) 1... k (2) 6,..., k (8) 1... k (8) 6, k (9) 1... k (9) 4 2. Zerlege k in acht 16-Bit Blöcke und weise diese den ersten acht Teilschlüsseln zu 3. Führe die folgende Operation solange aus, bis alle 52 Teilschlüssel berechnet sind: a) Verschiebe die Bits in k zyklisch um 25 Stellen nach links b) Zerlege k in acht 16-Bit Blöcke und weise diese den nächsten acht Teilschlüsseln zu Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 23 / 33 Entschlüsselung International Data Encryption Algorithm Zur Entschlüsselung wird derselbe Algorithmus wie zur Verschlüsselung eingesetzt, jedoch mit anderen Schlüsseln. Die Schlüssel berechnet man anhand folgender Tabelle: r k (r) 1 k (r) 2 k (r) 3 k (r) 4 k (r) 5 k (r) 6 1 (k (10 r) 1 ) 1 k (10 r) 2 k (10 r) 3 (k (10 r) 4 ) 1 k (9 r) 5 k (9 r) 6 2,..., 8 (k (10 r) 1 ) 1 k (10 r) 3 k (10 r) 2 (k (10 r) 4 ) 1 k (9 r) 5 k (9 r) 6 9 (k (10 r) 1 ) 1 k (10 r) 2 k (10 r) 3 (k (10 r) 4 ) 1 Hierbei ist a 1 das Inverse von a bezüglich und a das Inverse von a bezüglich. Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 24 / 33
International Data Encryption Algorithm Fazit IDEA basiert auf den drei einfachen Basisoperationen, und IDEA ist in Software doppelt so schnell wie DES IDEA gilt in Fachkreisen als ein sehr sicheres Kryptosystem (Schneier 1996: zur Zeit bester Kryptoalgorithmus) Leider wird IDEA aus patentrechtlichen Gründen selten verwendet Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 25 / 33 Rivest s Cipher 4 Rivest s Cipher 4 (RC4) Stromchiffre Entwicklung von Ron Rivest für RSADSI Patentrechtlich geschützt Weite Verbreitung in kommerziellen Produkten, z.b. in Lotus Notes, Oracle Secure SQL, Netscape Navigator, WEP. Spezifikation bis 1994 nicht öffentlich zugänglich 10. September 1994: erfolgreiches Reverse Engineering sowie Publikation eines äquivalenten Algorithmus in einer Internet Newsgroup Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 26 / 33
Rivest s Cipher 4 Aufbau von RC4 Wortlänge n Bit (beispielsweise: n = 8) Interner Zustand Permutation S über {0, 1,..., N 1} wobei N = 2 n Indizes i, j Schlüssel ist ein beliebig langer Vektor von Binärworten der Länge n Zwei Komponenten Key Scheduling Algorithm Pseudo Random Generation Algorithm Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 27 / 33 Rivest s Cipher 4 Key Scheduling Algorithm Eingabe: Array K der Länge l von n-bit Binärworten 1. Initialisation: a) Für 0 i 2 n 1: S[i] := i b) j := 0 2. Scrambling: Für 0 i 2 n 1: a) j := j + S[i] + K[i mod l] b) Vertausche S[i] und S[j] Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 28 / 33
Rivest s Cipher 4 Pseudo-Random Generation Algorithm Idee: + 2 S 0 S[i] + S[j] i j N 1 1 Ausgabe: n-bit Binärwort 1. Initialization: i := 0; j := 0 2. Generation loop: a) i := i + 1; j := j + S[i] b) Vertausche S[i] und S[j] c) return S[S[i] + S[j]] Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 29 / 33 Fazit Rivest s Cipher 4 Extrem einfacher Aufbau Einfache Implementierung in Hard- und Software Effiziente Laufzeit Sicherheit unklar (Key Scheduling) Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 30 / 33
Rivest s Cipher 4 Symmetrische Kryptosysteme: Vorteile Symmetrische Kryptosysteme sind in der Regel so entworfen, daß mit ihnen ein hoher Datendurchsatz erzielt werden kann Die Länge des eingesetzten Schlüssels ist bei symmetrischen Kryptosystemen vergleichsweise kurz Symmetrische Kryptosysteme können als Bausteine für andere kryptografische Algorithmen wie zum Beispiel Pseudo-Zufallszahlengeneratoren benutzt werden Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 31 / 33 Rivest s Cipher 4 Symmetrische Kryptosysteme: Nachteile Der Schlüssel muss von beiden Kommunikationspartnern geheimgehalten werden Der Schlüssel muss auf einem sicheren Kanal übermittelt werden. Der Schlüssel muss in regelmässigen (nicht zu langen) Abständen erneuert werden Es ist eine Vielzahl von verschiedenen Schlüsseln notwendig, wenn eine Gruppe von Personen paarweise chiffrierte Nachrichten übertragen will Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 32 / 33
Zusammenfassung Zusammenfassung Die Veröffentlichung des DES gab der zivilen Forschung an kryptografischen Verfahren einen entscheidenden Impuls Neben DES, 3DES, IDEA und RC4 gibt es zahlreiche andere symmetrische Kryptosysteme, z.b. AES (Rijndael), Blowfish, Twofish und Cast Für keines der genannten Verfahren konnte bisher bewiesen werden, dass es tatsächlich sicher ist Prof. Dr. C. Karg (HS Aalen) Kryptografische Algorithmen Weitere sym. Kryptosysteme 33 / 33