IT Sicherheit Teil 2 Kryptologie WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 1 Literatur • Basiswissen IT-Sicherheit Werner Boguntke W3L • Angewandte Kryptographie Dr. W. Ertel Hanser Verlag WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 2 1 Inhalt • Kryptologie= Kryptographie + Kryptoanalyse • • • • • • Motivation: Caesars Chiffre Modulare Arithmetik Historische kryptographische Algorithmen Kryptoanalyse Kerckhoffs’ Prinzip Moderne kryptographische Algorithmen WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 3 Nomenklatur Bezeichnungen: – Klartext M – Chiffrierung E – Schlüssel K – Geheimtext C – Entschlüsselung D (message) (encryption) (key) (chiphertext) (decryption) Beispiel: C = EK( M ) WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 4 2 Nomenklatur Personen der Handlung: • Alice Bob +Carol, Carlos, Charlie • Eve (= eavesdropper, passive Attacke) • Mallory, Marvin, Mallet (= malicious attacker) • Trudy (= intruder) • Peggy (prover) und Victor (verifier) • Trent (trusted entity) WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 5 Nomenklatur Kryptographische Algorithmen = Berechnungsvorschriften – eingeschränkte Algorithmen müssen geheim gehalten werden – starke Algorithmen / starke Kryptographie gem. Kerkhoffs' Prinzip (s.w.u) müssen invertierbar sein: D( E(M) ) = M WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 6 3 Grafik: FH Trier Motivation Chiffre durch Verschiebung im Alphabet: Caesars Verschlüsselung Zyklische Verschiebung (Rotation) eines Alphabet Rings = Addition in (endlicher) Menge von Buchstaben Modulare Arithmetik WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 7 Grafik: FH Trier Verschiebechiffre Caesars Code • Julius Caesar (100-44 v. Chr.) hat dieses Verfahren bereits verwendet • zyklischen Rotation des Alphabets um k Zeichen • Schlüssel z.B. „D“ „ABCDEFG“ -> „DEFGHIJ“ verschlüsseln KLARTEXT + DDDDDDDD (D=3) NODUWHAW WS 2010/11 entschlüsseln NODUWHAW - DDDDDDDD KLARTEXT Vorlesung: IT-Sicherheit M. Harms 8 4 Grafik: FH Trier Verschiebechiffre Caesars Code „monoalphabetische Substitution“: jedem Buchstaben eines Textes wird ein anderer eindeutiger Buchstabe zugeordnet. z WS 2010/11 ( z + k ) mod n Vorlesung: IT-Sicherheit M. Harms 9 Modulare Arithmetik Dividiert man eine natürliche Zahl n durch eine andere, bleibt ein Rest r {0, 1, 2, … , n-1} • Beispiele: 15 : 4 = 3 Rest 3 oder 15 = 4 · 3 + 3 15 : 5 = 3 Rest 0 oder 15 = 5 · 3 Satz: Seien a, b und b > 0. Dann gibt es eindeutige q, r a = q·b + r und WS 2010/11 Vorlesung: IT-Sicherheit M. Harms mit r<b 10 5 Arithmetik auf endlichen Mengen Kongruenz in der Zahlentheorie Man nennt zwei Zahlen kongruent bezüglich eines Moduls (eine weitere Zahl), wenn sie bei Division durch den Modul den selben Rest haben. Beispiel: 5 ist kongruent zu 8 modulo 3, denn 5 mod 3 = 2 8 mod 3 = 2 Schreibweise: a b mod m Formale Definition: • • Zwei Zahlen a und b sind kongruent modulo m, wenn m die Differenz a − b teilt. Zwei Zahlen a und b sind inkongruent modulo m, wenn m die Differenz a − b nicht teilt. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 11 Grafik: FH Trier Verschiebechiffre Caesars Code Warum ist die monoalphabetische Substitution einfach zu knacken? WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 12 6 Kryptoanalyse Verschiebechiffre (Cäsars Code) Chiffretest 0% 0% 1,30% 6,49% 0% 7,79% 2,60% 11,69% 5,19% 1,30% 9,09% 7,79% 0% 0% 3,90% 1,30% 9,09% 2,60% 0% 0% 9,09% 9,09% 3,90% 2,60% 3,90% 1,30% Faust 4,97% 1,87% 3,98% 4,87% 15,69% 1,90% 2,78% 6,75% 8,44% 0,19% 1,07% 3,97% 3,22% 9,67% 2,32% 0,92% 0,04% 6,73% 6,67% 6,30% 4,05% 0,64% 1,86% 0,04% 0,03% 1,03% 14% 12% 10% 8% 6% 4% 2% 0% WS 2010/11 Grafik: FH Trier A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Reihe1 1 3 20,00% 5 7 9 11 13 15 17 19 21 23 25 Faust 15,00% 10,00% Reihe1 5,00% 0,00% 1 3 5 7 9 11 13 15 17 19 21 23 25 Vorlesung: IT-Sicherheit M. Harms 13 Wiederholung Mathematik Kommutativgesetz • a+b=b+a • a·b=b·a Assoziativgesetz • a + ( b + c) = (a + b) + c • a · ( b · c ) = (a · b) · c Distributivgesetz • a·(b +c) =a·b+a·c WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 14 7 Arithmetik auf endlichen Mengen Ring: Addition OK Multiplikation funktioniert 0 und 1 bei Multiplikation und Addition: wie gewohnt Kommutativer Ring: Multiplikation funktioniert noch besser Körper kommutativer Ring plus: Division klappt WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 15 Arithmetik auf endlichen Mengen Def: Eine Struktur (M,+,·) heißt Ring, wenn • (M,+) eine kommutative Gruppe ist Das heißt – bez. + gibt es ein neutrales Element 0, – sowie zu jedem a ein inverses Element a- und – es gelten das Assoziativ- und Kommutativgesetz • (M,·) besitzt ein neutrales Element 1 und es gilt das Assoziativgesetz • Es gilt das Distributivgesetz a·(b+c) = a·b + a·c a, b, c M WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 16 8 Arithmetik auf endlichen Mengen Def: Ein Ring heißt kommutativ wenn er bezüglich der Multiplikation kommutativ ist. , Def: n der Restklassenring modulo n ist n (sprich „Z modulo n“) := /n := {0,1,…,n-1} Satz: ( Def: p /n , + , · ) ist ein kommutativer Ring. heißt Primzahl, wenn sie genau durch zwei verschieden natürliche Zahlen teilbar ist. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 17 Arithmetik auf endlichen Mengen Def: Ein Ring (M,+,·) heißt Körper, – wenn (M, ·) kommutativ ist und – wenn es zu jedem a 0 ein inverses a-1 gibt, für das a·a-1 = 1 ist und – Null und Eins verschieden sind. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 18 9 Arithmetik auf endlichen Mengen Satz: Für den Ring ( n prim /n , + , · ) gilt: ( /n , + , · ) ist ein Körper Satz (Fermat, 1608-1665): Sei n eine Primzahl, dann gilt in /n für alle a 0 an-1 = 1 oder: a bzw: a - WS 2010/11 an an mod n ist durch n teilbar Vorlesung: IT-Sicherheit M. Harms 19 Arithmetik auf endlichen Mengen Funktion f(x) = gx mod p x= • Bsp: p=7 Restklassenring 6 ={0,1,…,6} • g= 1 2 3 4 5 6 1 1 2 3 4 5 6 3 1 1 6 1 6 6 6 \0 3 und 5 sind „Erzeuger“ von WS 2010/11 2 1 4 2 2 4 1 Vorlesung: IT-Sicherheit M. Harms 4 1 2 4 4 2 1 5 1 4 5 2 3 6 6 1 1 1 1 1 1 20 10 Arithmetik auf endlichen Mengen Def: Zwei Zahlen a und b heißen relativ prim (oder teilerfremd), wenn ggT(a,b) = 1 Satz (Euklidischer Algorithmus): Für a,b \{0} gilt: ggT(b, a mod b) falls a mod b 0 ggT(a,b) = b falls a mod b = 0 Satz: Ist ggT(a,n) = 1 dann gibt es ein a-1 bez. a·a-1 1 mod n /n mit a-1 kann mit dem „erweiterten Euklidischen Algorithmus“ errechnet werden. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 21 Übung: Ring vs. Körper Erinnerung Def: Eine Struktur (M,+,·) heißt Ring, wenn • (M,+) eine kommutative Gruppe ist (bez. + gibt es neutrales Element 0, zu jedem a ein inverses Element a- und es gelten das Assoziativ- und Kommutativgesetz) • (M,·) besitzt neutrales Element 1 und es gilt das Assoziativgesetz • Es gilt das Distributivgesetz a·(b+c) = a·b + a·c a, b, c M Def: Ein Ring (M,+,·) heißt Körper, • wenn (M, ·) kommutativ ist und • wenn es zu jedem a • Null und Eins verschieden sind. 0 ein inverses a-1 gibt, für das a·a-1 = 1 ist und Seien A=0, B=1, … und so weiter Zeige, dass {A,B,C} ein Körper, aber {A,B,C,D} nur ein Ring ist. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 22 11 Beispiele für Ringe und Körper Ring: • Ganze Zahlen = { …, -3, -2, -1, 0, 1, 2, …} • Restklassenring • Polynome (kommutativer Ring) • Matrix (nicht kommutativ Ring) • Ziffernblatt der Uhr Körper: • rationale Zahlen • primer Restklassenring • Felder F wie F23 • ein Bit WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 23 Modulare Division Wie wird eine Division berechnet? x = a / b mod m Antwort: x = a·b-1 mod m Zentrale Frage daher: Wie berechnet man das modular Inverse b-1? WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 24 12 Modulare Division Wie bestimmt man das modular Inverse b-1? Ausgangsbasis: b·b-1 1 mod m Es gibt also ein q mit b·b-1 = q·m + 1 b·b-1 - q·m = 1 Bézout-Identität: ggT(a,b) = s·a + t·b also ggT(b, m) = b·b-1 - q·m erw. Euklidischen Algorithmus: ggT( m, b ) = ggT( b, m mod b ) = … = ggT( 1, 0 ) = 1 Alle Multiplikatoren qi merken a = q·b + r ggT(b,m) =1 = s·1 + t·0 und dann alle Schritte rückwärts si-1 = ti WS 2010/11 weil m Primzahl also s= 1, t =0 und ti-1 = si – qi ti Vorlesung: IT-Sicherheit M. Harms 25 Modulare Division • Beispiel: m x x^-1 = ? 23 12 a = q·b + r a 23 12 11 1 b 12 11 1 0 ggT(a,b) = s·a + t·b q 1 1 11 s t -1 2 1 -1 0 1 1 0 1 = s·1 + t·0 1 = -1 23 + 2 12 =s - q*t x-1 = 2 Prüfung: 2 * 12 = 24 WS 2010/11 1 mod 23 Vorlesung: IT-Sicherheit M. Harms 26 13 Historische kryptographische Algorithmen • • • • Verschiebechiffre (Cäsars Code) Vigenère Chiffre Enigma One Time Pad WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 27 Monoalphabetische Substitution monoalphabetische Substitution: jedem Buchstaben eines Textes ein anderer eindeutiger Buchstabe zugeordnet. Verschiebechiffre (Caesar) z ( z + k ) mod n Multiplikative Chiffre z ( z · t ) mod n mit ggT(t,n) = 1 Tauschchiffre (affine Chiffre) z ( z · t + k ) mod n mit ggT(t,n) = 1 WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 28 14 Tauschchiffre (affine Chiffre) z ( z · t + k ) mod n z.B.: t=5, k=7, n=26 und es ist ggT(t,n) = 1 (5z + 7) mod 26 (Az + B) mod 26 A=?, B=? 0 1 3 4 5 6 8 9 10 … 7 12 17 22 1 6 11 16 21 0 7 … 7 12 17 22 1 6 11 16 21 0 7 … 0 1 4 5 6 9 10 … 2 2 WS 2010/11 3 7 7 Vorlesung: IT-Sicherheit M. Harms 8 29 Vigenère Chiffre • Polyalphabetischer Chiffre • Verschleiert Häufigkeiten • Sender u. Empfänger vereinbaren Schlüsselwort • M=VERTRAULICH • K=GEHEIMGEHEI • C=CJZYANBQQHQ WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 30 15 Vigenère Chiffre -Kryptoanalyse 1. Verfahren: • • Schlüssellänge L „finden“ oder raten Weiter wie bei Caesar: alle L Zeichen zusammen analysieren 2. Verfahren (Babbage/Kasiski) • • • Wiederholungen von 3 (oder mehr) Buchstaben suchen Abstand (je weiter, desto sicherer) ist wahrscheinlich Vielfaches der Schlüssellänge Danach Analyse der Häufigkeiten von Buchstaben bez. auf potentielle Schlüssellängen WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 31 Vigenère Chiffre -Kryptoanalyse • XNXMCXMYCSOYLXNWBJBHYXMYMY XMXJKXUIXHWTWCYWXHTJBAYSDIYS GNY ??? • XMY: Abstand 16 = 2*2*2*2 • Wahrscheinliche Keylängen: 2, 4, 8, 16 • z.B. Schlüssellänge 4: jedes 4. Zeichen auf Häufigkeiten untersuchen WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 32 16 Enigma • Die ENIGMA ist eine elektromechanische Rotor-Schlüsselmaschine • polyalphabetische Substitution • 1918: erstes Patent Arthur Scherbius (Elektroingenieur) • 1934: Firma „Heimsoeth & Rinke“ WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 33 Enigma – Grundprinzip Reflektor li. Mittel- Re. Rotor Rotor Rotor A Quelle: Wikimedia Commons x WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 34 17 Enigma - Schlüsselraum • Walzenlage – • Ringstellung – • 2 Walzen je 26 Stellungen: 26² = 676 Ringstellungen Walzenstellung – • 3 von 5 Walzen und eine von zwei Umkehrwalzen werden ausgewählt. 2·(5·4·3) = 120 mögliche Walzenlagen. drei (rotierenden) Walzen mit 26 Möglichkeiten (A bis Z), ohne Redundanzen: 26·25·26 = 16.900 Walzenstellungen Steckerverbindungen – 13 Steckerverbindungen zwischen den 26 Buchstaben = 150 Billionen Steckmöglichkeiten Schlüsselmöglichkeiten 120 · 676 · 16.900 · 150.738.274.937.250 = 206.651.321.783.174.268.000.000 entspricht ca. 77 bit WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 35 One-Time-Pad • One-Time-Pad (OTP) Einmalverschlüsselung • M: VERTRAULICH • K: PIYXQLTAXRA z ( m + k ) mod 26 • C: LNQRIMOMGUI Nicht praktikabel, da Schlüsselaustauschproblem besteht. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 36 18 Kryptoanalyse Ziel: Alle verfügbaren Informationen über Verfahren in die Analyse mit einzubeziehen öffentlich bekannte Informationen – – – – Algorithmen/Verfahren Parameter plausible Vermutungen … geheime Informationen – Schlüssel WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 37 Kryptoanalyse Kategorien • Vollständiges Aufbrechen – Schlüssel gefunden • Globale Deduktion – Äquivalenter Algorithmus • Lokale Deduktion – Nachricht entziffert • Informationsdetektion – Eingeschränkt entziffert WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 38 19 Kryptoanalyse Wichtige Methode: • Häufigkeits-/Wiederholungsanalyse • Brute-Force • Wörterbuch • Seitenkanalanalyse • Lineare / differentielle Kryptoanalyse • Algebraische Analyse WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 39 Kryptoanalyse: Häufigkeits- u. Wiederholungsanalyse • Häufigkeit von Buchstaben auswerten: – – – – E ca. 15 % - 20 % N ca. 10% A, D, I, R,S, T ca. 5 – 10 % … • Paarhäufigkeit: – EN, ER ca. 4 % – CH, TE ca. 3% – TE, DE, ND, EI, IN, ES um 2% • Abstände von Zeichenfolgen aus mind. 3 Zeichen Ermittlung der Schlüssellänge (Kasiski Test) WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 40 20 Seitenkanalanalyse Angreifer versucht zunächst andere Daten zu erfassen und daraus Informationen über den verwendeten Algorithmus und Schlüssel zu gewinnen: • Dauer der Verschlüsselung • zeitliche Verlauf des Stromverbrauchs eines Chips • Berechnungsfehler aufgrund extremer Umgebungsbedingungen • Branch Prediction Analysis • Abstrahlung elektromagnetischer Wellen WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 41 Einschub: Wie rechnet man möglichst schnell xy? xn = 1 wenn n=0 x (x (n-1)/2 ) 2 wenn n ungrade (x n/2 ) 2 wenn n grade Quadriere und Multiplizieren Quadiere binäre Exponentiation z.B. n = 38 = #100110 xn = x #100110 = ( x #10011 )2 = ( ( x (x #1001 ) 2 ) )2 = ( ( x ( x ( x #100 ) 2 ) 2 ) )2 = ( ( x ( x ( ( x #10 ) 2 ) 2 ) 2 ) )2 = ( ( x ( x ( ( ( x #1 ) 2 ) 2 ) 2 ) 2 ) )2 = ( ( x ( x ( ( x ) 2 ) 2 ) 2 ) 2 ) )2 Programmablauf Q QM QM Q Q #100110 Also statt 38 Multiplikationen nur 7 Multiplikationen !! WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 42 21 BPA bei RSA mit Standard Algorithmus geheimer Schlüssel: d C = Md (mod N) Binary Square-and-Multiply Exponentiation Algorithm Code: S = M for ( int S = S*S if ( di S = } } return S; WS 2010/11 i = mod = 1 S*M 1; i <n-1; i++) { N ) { mod N Sprungbefehle der CPU analysieren: di d Ref: On the Power of Simple Branch Prediction Analysis Onur Aciiçmez, Çetin Kaya Koç and Jean-Pierre Seifert Vorlesung: IT-Sicherheit M. Harms 43 Kryptoanalyse Angriffsszenarien: • • • • • Ciphertext-Only-Angriff Propable/Known-Plaintext-Angriff Choosen-Plaintext/Chiphertext-Angriff Man in the middle Kriminalität (Gewalt / Erpressung / Bestechung) Meist ist der Mensch (Besitzer des Schlüssels) die größte Sicherheitslücke. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 44 22 Ciphertext-Only-Angriff C = Verschlüsselter Text P = plaintext (Klartext) Ek = Verschlüsselungsalgorithmus E mit dem Schlüssel k Gegeben: C1 = Ek(P1), C2 = Ek(P2), ... Ci = Ek(Pi) Gesucht: Px, k, E oder D WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 45 Propable/Known-Plaintext-Angriff Gegeben: C1 = Ek(P1), C2 = Ek(P2), ... Ci = Ek(Pi) und P1 exakt bekannt, oder wahrscheinlich. Gesucht: k, Ek oder Dk WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 46 23 Chosen-Plaintext/ChiphertextAngriff (CPA) 1. Angreifer kann Nachricht frei bestimmen. 2. Angreifer hat Zugriff auf verschlüsselte Nachricht. z.B.: Opfer Nachricht unterschieben Informationen zum System ermitteln Vergleich von verschlüsselten Nachrichten Wörterbuch: Chiffretext WS 2010/11 Nachricht Vorlesung: IT-Sicherheit M. Harms 47 Man in the middle Alice Mallory Bob • Alice: „Hallo Bob, ich bin‘s Alice, gib mir bitte Deinen Schlüssel!“ • Mallory: „Hallo Bob, ich bin‘s Alice, gib mir bitte Deinen Schlüssel!“ • Bob: „Mein Schlüssel ist XYZ!“ • Mallory: „Hallo Alice, mein Schlüssel ist ABC!“ • Alice verschlüsselt mit ABC: „Bob, kommst Du zu mir?“ • Mallory verschlüsselt mit XYZ : “Hi Bob, ich habe heute leider keine Zeit!“ WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 48 24 Man in the middle • Physikalischer Zugriff auf LAN Kabel • Betriebssystem Eingriff – Treiber – „hosts“ Datei • • • • • • ARP DHCP Router Hacking WLAN Snarfing DNS Cache Poisoning manipulierte Eingabegeräte (Kartenleser, Tastaturen, …) WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 49 Kriminalität in der Kryptoanalyse • „Social Engineering“ (z.B, Phishing) – – – – zwischenmenschliche Beeinflussung falsche Identität vortäuschen Ausnutzen von Autoritätshörigkeit (privat) Ausspähen • Gewalt • Erpressung • Bestechung WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 50 25 Kerckhoffs’ Prinzip (1883) • Eine verschlüsselte Nachricht darf ohne Schlüssel nicht effizient zu entschlüsseln sein • die Kommunikationspartner dürfen keinen Schaden erleiden, wenn das Verschlüsselungssystem bekannt wird • der Schlüssel muss leicht zu merken und auswechselbar sein • die Kryptogramme müssen übertragbar, das heißt damals telegraphierbar, sein • der Chiffrierapparat und die Dokumente müssen transportierbar sein • das System muss einfach (ohne Expertenhilfe) zu benutzen sein • das Chiffriersystem sollte von Experten gut untersucht sein Zu Kerckhoffs Zeiten existierte ein solches Chiffriersystem nicht. -> Security by obscurity WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 51 Grundlagen der Kryptographie • • • • Einwegfunktionen Trapdoor-Einwegfunktionen Algorithmen Protokolle WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 52 26 Einschub: Binäre Arithmetik X 0 0 1 1 ODER (OR) Y XvY 0 0 1 1 0 1 1 1 X 0 0 1 1 UND (AND) Y X Y 0 0 1 0 0 0 1 1 Excl.ODER (XOR) X Y X Y 0 0 0 0 1 1 1 0 1 1 1 0 A XOR B = (A+B) mod 2 WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 53 Einwegfunktion = Leicht berechenbar, schwer umkehrbar • Primfaktorzerlegung – Fundamentalsatz der Arithmetik – Bsp: Primfaktorzerlegung von 112 • Gruppentheorie: Diskreter Logarithmus f(x) = bx mod m • Hashfunktionen – MD5 / SSH • elliptische Kurven WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 54 27 Primfaktorzerlegung Fundamentalsatz der Arithmetik: Jede natürliche Zahl lässt sich als Produkt von endlich vielen Primzahlen darstellen. Ordnet man diese Primzahlen der Größe nach, so ist diese Darstellung sogar eindeutig. Primfaktorzerlegung = Faktorisierung Durch rekursive Anwendung von Faktorisierungsverfahren in Kombination mit Primzahltests kann die Primfaktorzerlegung einer ganzen Zahl berechnet werden. Für die Faktorisierung ist keine effiziente Rechenmethode bekannt. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 55 Primfaktorzerlegung für n • Probedivision bis √ Beispiel 21 [0-10] m=2*3*5= 30 ggT(30, 21) = 7 21 / 7 = 3 ggT(21,3) = 1 21 = 3*7 • Berechnung über ggT(n,m) Intervall [a,b], a,b < n, m Produkt aller Primzahlen aus [a,b] Probedivision n/ggT(m,n) • … WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 56 28 Primzahlentests • Sieb des Eratosthenes • Miller Rabin Test = probabilistisch mit nach oben beschränkter Wahrscheinlichkeit (Fehlerwahrscheinlichkeit 25%) Monte Carlo Algorithmus • AKS Algorithmus polynome Rechenzeit besondere Bedeutung Polynomialzeit: Man betrachtet Sie als eine Grenze zwischen praktisch lösbaren und praktisch nicht lösbaren Problemen. • … WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 57 Zufallszahlen • Fast alle Schlüssel werden mit Zufallszahlen generiert! • Zufallszahlengeneratoren Z – Computer kennen keinen Zufall – Zufallszahlen werden berechnet!! – Pseudozufallszahlen • Berechnungsformel Z muss sicher sein. • Parameter p für Z(p) sind meist Uhrzeit, Rechneradresse oder Tastatureingaben. • Zufallsgeneratoren dürfen nicht knackbar sein – Z(p) darf nicht „vorhersagbar“ sein. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 58 29 Pseudozufallszahlen • arithmetische Zufallszahlengeneratoren z = i · y0 mod 1 irrationale Zahl: y0 ]0,1[ • rekursiver arithmetischer Zufallszahlengenerator z wird rekursiv aus einer/mehrerer Vorgänger berechnet WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 59 Pseudozufallszahlen rekursiver arithmetischer Generator • Kongruenzgenerator – linearer Kongruenzgenerator zn = (a · zn-1 + b) mod m – Fibonacci-Generator zn = (zn-1 + zn-2) mod m – Blum-Blum-Shub-Generator (BBS) zn = z2n-1 mod p·q p,q Primzahlen, ggT(z0, p·q) =1, p q 3 (mod 4) • Inverser Kongruenzgenerator • Mersenne-Twister WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 60 30 Satz von Marsaglia linearen Kongruenzgenerator: zn+1 = 24298zn + 99991mod 199017 zn = (a · zn-1 + b) mod m • k-Tupel: (z0…zk), (z1…zk+1), … Satz: k-Tupel liegen auf maximal (m · k!)1/2 Hyperebenen Quelle: Wikipedia Inverse Konguenzgeneratoren haben dieses Verhalten nicht! WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 61 Einwegfunktion: Diskreter Logarithmus A = logg a , wobei A = g a mod p • Spezialfall: „prime Restklassengruppe“ • Bsp: Primzahl p=7 / Primitivwurzel = 3 • 3¹ mod 7 = 3 mod 7 = 3 • 3² mod 7 = 9 mod 7 = 2 • 3³ mod 7 = 27 mod 7 = 6 • 35 mod 7 = 81 mod 7 = 4 • 36 mod 7 = 729 mod 7 = 1 Alle Elemente der Restklassengruppe werden gebildet. 3 ist ein Erzeuger des Körpers. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 62 31 Hashfunktion MD5 • Message Digest Algorithm 5 • 1991: Ron Rivest (MIT) • 128 Bit Prüfsumme – für Nachricht variabler Länge • gilt nicht mehr als sicher – Nachweis 2008: Cluster von 200 PS3 WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 63 Hashfunktion MD5: 4 x Runde 128 bit A B Initialisierung !! C D Fk Mi 32bit Block Ki + mod 232 F1 = (B C)v(!B D) F2 = (B C)v(B !D) F3 = B C D F4 = C (Bv!D) + mod 232 <<<ki + mod 232 A WS 2010/11 B C Vorlesung: IT-Sicherheit M. Harms D 64 32 Übung MD5 „Light“ in Java Entwickle einen MD5 Hash Algorithmus Light in Java • Light = – – – – – A, B, C, D = 8 Bit = byte Initialisierung mit 218, 77, 255, 31 M = String Zeichen für Zeichen verarbeiten F = F1 ki = k1 = const {1...7} • Hilfestellung: Java Templates • Experimetieren: – Initialsisierung (Werte von A,B,C,D) – Statt 4 Schleifen: 3, 2 oder nur 1 Schleife WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 65 Übung MD5 „Light“ in Java Algorithmus Experimente: Message MD5L = 4Loop 2Loop 1Loop Text 01110010 11101100 01010110 00010000 11000000 11011110 11011100 11011110 11100110 00100001 01000011 01100111 Test 11010000 00110001 01001010 11011010 10010111 01010100 00100110 11110110 11100110 10111000 00011011 01100111 Tes 10011011 11110000 01001000 00001101 01100111 11110110 10010111 10110010 01001101 00011011 01100111 11100110 Te 00111010 01101100 10100010 00101110 11100110 10110010 01100111 11011110 11111111 01100111 11100110 01001101 T = 01010100 11100110 11100110 11011111 11011110 11111111 11011110 11100110 01001101 00011111 11100110 01001101 11111111 U = 01010101 11101110 01001001 11110000 00101111 11111111 00101111 11101110 01001101 00011111 11101110 01001101 11111111 WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 66 33 Übung MD5 „Light“ in Java Sicherheit von MD5-Light Brute Force Attacke: Md5lHash( ? ) = Md5lHash(„Test“) Zeit für Attacke: • Schlüssellänge: 28*4 = 232 = 4.294.967.296 • Optimierter Algorithmus* auf Core2 @2,5 GHz: – ca. 10.000.000 7-Zeichen-Strings pro 25 Sekunden – also ca. 400.000 / sec ca. 10.000 sec. oder knapp 3 h Aber: Einige Bits scheinen extrem von Stringlänge abzuhängen, daher müssen mehrere Stringlängen getestet werden Angriffsdauer x 16 (geschätzt) *) Siehe: Shirazi, Java Performance Tuning WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 67 MD5 in Java MD5 ist in J2SE integriert: import java.math.BigInteger; import java.security.*; MessageDigest unterstützt: MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512 MessageDigest md = MessageDigest.getInstance("MD5"); byte[] messageDigest = md.digest(input.getBytes()); BigInteger number = new BigInteger(1, messageDigest); String hashtext = number.toString(16); Zur Ausgabe: Hexadezimal konvertieren und auf feste Länge justieren WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 68 34 Hashfunktion SHA • • • • Secure Hash Algorithm NIST + NSA sehr ähnlich zu MD5 Bestandteil • • • • • „kollisionssicher“ 160 Bit Prüfsumme SHA-1 SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512) Salted Hash – von Digital Signature Algorithm (DAS) – für den Digital Signature Standard (DSS) WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 69 Kryptographie symmetrisch / asymmetrisch • Symmetrisch: • C = Ekey ( M ) • M = Dkey ( M ) – Verschlüsselung und Entschlüsselung mit dem selben Schlüssel – Problem: Austausch des Schlüssels auf sicherem Weg • Asymmetrisch • C = EpupKey ( M ) • M = DprivKey ( M ) – Verschlüsselung mit öffentliche Schlüssel, Entschlüsselung mit privatem Schlüssel – Problem: öffentliche Schlüssel sicher zuordnen WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 70 35 Kryptographie Übersicht über aktuelle Verfahren • Verschlüsselungsverfahren – symmetrisch (z.B. DES / 3DES) + Schlüsselaustausch – asymmetrisch (z.B. RSA) • PKI – Hybrid – Block-/Stromverschlüsselung • Authentifizierung (z.B. Kerberos) – Challenge-Response-Authentifizierung und Zero Knowledge • Autorisierung • Zertifizierung und Signatur WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 71 Moderne Block Chiffrierverfahren • DES = Data Encryption Standard • 1973 von H. Feistel im Auftrag von IBM entwickelt – weite Verbreitung Einwegfunktionen Nachfolger: • AES = Advanced Encryption Standard WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 72 36 Feistel Blockchiffre Feistel Netzwerk: F = Transformationsfunktion = invertierbare Verknüpfung (Umkehrung ①) bijektiv (umkehrbar) Projekt „Lucifer“, IBM 1970er Jahre Verschlüsselung: M aufteilen in L und R Li+1 = Ri / Ri+1 = Li n Runden C = (Ln,Rn) M K1 L1 F K2 L2 Ki Li SYMMETRISCH WS 2010/11 R2 F F(Ri,Ki) Entschlüsselung: M aufteilen in L und R Ri = Li+1 / Li = Ri+1 ① F(Ri+1,Ki) n Runden C = (Ln,Rn) R1 Ri F C Vorlesung: IT-Sicherheit M. Harms 73 Feistel Chiffre • • • • • • • • • Blowfish Camelia CAST DES/Triple-DES FEAL MARS TEA/XTEA Twofish MISTY1 WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 74 37 DES Algorithmus Eckdaten: • 64 Bit Schlüssel – symmetrisch: ke = kd – sicherer Kanal für Austausch von k benötigt • 64 Bit (8 Byte) Blöcke m bilden • blockweise Verschlüsselung: DES(m,k) • Verfahren ist offen gelegt: – Abwechselnd Substitution und Permutation mit unterschiedlichen Teilen des Schlüssels – „Feistel-Chiffre“ -> Lawineneffekt WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 75 DES Algorithmus Klartext Eingangspermutation Schlüssel R0 L0 DES Runde 1 K1 R1 L1 DES Runde 2 K2 … DES Runde 16 L16 R16 Schlusspermutation WS 2010/11 K16 Vorlesung: IT-Sicherheit M. Harms Chiffretext 76 38 DES Algorithmus Klartext Eingangspermutation Schlüssel R0 L0 F K1 R2 L2 F K2 F K16 R16 L16 Schlusspermutation WS 2010/11 Chiffretext Vorlesung: IT-Sicherheit M. Harms 77 DES – Runde i Li-1 32 bit Ri-1 Schlüssel 28 bit 32 bit F Shift Expansionsmutation Shift Kompressionspermutation 48 bit 48 bit 28 bit Ki S-Box Substitutionen 32 bit P-Box Permutation 32 bit Li WS 2010/11 Ri Schlüssel Vorlesung: IT-Sicherheit M. Harms 78 39 DES - Expansionsmutation E: F232 F248 Aus 4 Byte werden 6 Byte 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 E(b1,b2,b3,…) =b32 b1 b2 b3 … 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 21 32 WS 2010/11 1 Vorlesung: IT-Sicherheit M. Harms 79 DES S-Box nichtlineare Substitutionsoperation Anforderungen: • Vollständigkeit: Jedes Ausgangsbit ist von jedem Eingangsbit abhängig. • Avalanche: Die Änderung eines Eingangsbits zieht im Mittel die Änderung der Hälfte aller Ausgangsbits nach sich. • Nichtlinearität: Kein Ausgangsbit ist linear oder affin von einem Eingangsbit abhängig. Dies sollte auch nicht näherungsweise der Fall sein. • Korrelationsimmunität: Solange nur ein Teil der Eingangsbits bekannt ist, können keine Rückschlüsse auf die Ausgangsbits gezogen werden. Und umgekehrt. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 80 40 DES S-Box Beispiel • statische 6×4-Bit S-Box (S5) von DES Quelle: Wikipedia Operation: S5 ( 011011 ) 1001 WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 81 DES Dechiffrierfunktion • S-Boxen: nicht invertierbar, daher darf F nicht rückwärts durchlaufen werden • Umkehrfunktion: – gleicher Algorithmus – jedoch umgekehrte Anwendung der Schlüssel WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 82 41 DES Sicherheit • Lawineneffekt: „Hammingabstand“ H zweier Bitvektoren steigt rasant an • Beispiel: – Ausgang – DES 1. Runde: – DES 2. Runde: – ab DES 3. Runde: H=1 H=3 H = 17 H ca. 30 • gilt nur für „gut“ gewählte S-Boxen WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 83 Übung - DES Kryptoanalyse: Passwortverschlüsselung (Web Server) mit DES • Beurteile die Gefährlichkeit von – – – – Ciphertext-Only Angriff Known-Plaintext Angriff Choosen-Plaintext Angriff Man in the middle • Welche Seitenkanalangriffe sind zu befürchten? WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 84 42 DES Historie • 1973: Ausschreibung für einen standardisierten kryptographischen Algorithmus • 1977: DES wird veröffentlicht • 1981: ANSI Standard • 1994: DES wird erstmals geknackt: 12 HP Workstations: 50 Tage • 1998: DES wird von der EFF mit einem Spezialchip in 3 Tagen geknackt • 1999: DES wird in 22h geknackt: 100.000 PCs + Spezialrechner WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 85 3DES • 64 bit Schlüssel: – aus heutiger Sicht recht einfach • Längere Schlüssel -> höhere Sicherheit • 3x DES Kaskade = 3DES = Tripple DES – mit 3x 64 bit Schlüssel k1 k2 k1 / k3 E D E Nachricht WS 2010/11 Chiffretext Vorlesung: IT-Sicherheit M. Harms 86 43 DES • DES Hardware – ca. 10 GBit / sec • 3DES Hardware – einige 100 MBit / sec WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 87 Blockchiffre: ECB Quelle: Wikipedia • Probleme: – Austausch eines Blocks wird nicht erkannt – Abschneiden wird nicht erkannt – Mustererkennung WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 88 44 ECB Problem mit Bitmustern Quelle: Wikipedia WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 89 Cipher-block chaining (CBC) • Problem: Austausch eines Blocks Quelle: Wikipedia WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 90 45 Blockchiffre: CFB • CFB = Chiffre Feedback Mode Quelle: Wikipedia WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 91 Blockchiffre: OFB • OFB = Output Feedback „Pseudo-One-Time-Pad“ WS 2010/11 Vorlesung: IT-Sicherheit M. Harms Quelle: Wikipedia 92 46 Zufallszahlen mit DES - CFB XOR Zeichenstrom 8 8 Pseudozufallszahl 8 Bit Maske 64 8 DES 64 Puffer WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 93 AES • NIST (2000): Nachfolger von DES – Ausschreibung • Rijndael-Algorithmus – offen gelegt – bietet ein sehr hohes Maß an Sicherheit – Referenz-Implementierung: weniger als 500 Zeilen C-Code • USA: Zulassung zur Verschlüsselung von Dokumenten höchster Geheimhaltungsstufe WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 94 47 AES Verwendung • IEEE 802.11i für Wireless LAN: WPA2 • SSH • IPsec • IP-Telefonie • offenen Protokollen wie SRTP • proprietären Systemen wie Skype • Mac OS X: Disk-Images • Dienst: FileVault • transparente Verschlüsselung EFS in Windows XP • diverser komprimierter Dateiarchive, z. B. – 7-Zip, RAR. • PGP und GnuPG WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 95 AES Algorithmus Schlüssel 192 bit Klartext 128 bit K0 Schlüsselexpansion S0 Si AES Runde 1 K2 Substitution ByteSub S1 Shift Row ShiftRow AES Runde 2 Mix Column MixColumn Ki+1 Si+1 K11 S11 AES Runde 12 K12 Chiffretext 128 bit WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 96 48 AES • Substitution – ähnlich DES S-Box aber monoalphabetisch • Shift Row – Block als Feld – Je nach Blocklänge, Zeilen um 1-4 Spalten verschoben • Mix Column – Block als Feld – Multiplikation mit konstanter Matrix auf Galois-Körper (Addition ist bitweises XOR) WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 97 AES • Rundenzahl variiert mit Schlüssellänge • alle Transformationen sind invertierbar • Entschlüsselung durch – Umgekehrten Ablauf – Einsatz der invertierten Operationen • AES ist – um vielfaches schneller als DES – leicht parallelisierbar – einfach in Hardware zu implementieren WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 98 49 IDEA • • • • • • IDEA =International Data Encryption Algorithm Lai/Massey 1990 verschlüsselt 64-Bit-Blöcke Schlüssellänge 128 Bits arbeitet mit 8 (statt 16) Runden, verwendet – – – – Xor Addition Multiplikation d.h. keine Permutation oder Substitution • Patentiert WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 99 IDEA - Arbeitsweise Quelle: Wikipedia WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 100 50 Stromchiffre: lineare Schieberegister LFSR: sn sn-1 sn-2 … s3 s2 s1 Ausgabgsbit Rückkopplungsfunktion • Initialisierung • Rückkopplungsfunktion z.B, „XOR“: sj = ( c1sj-1 + c2 sj-2 +…+ cn sj-n) mod 2 • ist periodisch!! WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 101 Stromchiffre: nichtlineare Schieberegister • nichtlineare Kombinationsgeneratoren: – mehere LFSR parallel geschaltet – Ausgabebits wird nichtlineare Funktion angewendet • Nichtlineare Filtergeneratoren – nichtlineare Funktion wird auf alle n Speicherstellen angewendet WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 102 51 GSM: A5/1 Algorithmus Nichtlinearität: Es werden nur diejenigen Schieberegister getaktet, deren T-Bit zur Mehrheit der T-Bits gehört. Offiziell nicht veröffentlicht: „security by obscurity“ Takt Bit pro GSM Frame • Initialisierung – – – – Nullen Sitzungsschlüssel laden 64 Taktungen (Mischen) Framenumber laden • 100 Bits verfallen • je 114 Bits für 114 Bit GSM Frame pro Richtung Quelle: Wikipedia – Sende-Bits und Empfangs-Bits mit XOR verschlüsseln WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 103 Asymmetrische Kryptographie • • • • • Schlüsselaustauschproblem Diffie Hellmann RSA ElGamal Elliptische Kurven WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 104 52 Merkles Rätsel (1974) Schlüsselaustausch für symmetrische Verschlüsselung Wie kann Alice eine verschlüsselte Nachricht an Bob sendet, ohne vorher einen Schlüssel mit ihm auszutauschen? 1. Bob generiert eine Millionen Nachrichten der Form: „Dies ist Rätsel mit der Zahl x. Der Schlüssel ist y.“ Bob verschlüsselt die Nachrichten mit einem jeweils unterschiedlichen 20Bit Schlüssel und sendet sie an Alice. 2. Alice wählt eine Nachricht zufällig aus und führt einen Brute-Force-Angriff durch, um den Klartext zu ermitteln. Der dafür erforderliche Arbeitsaufwand ist zwar groß – aber nicht unmöglich. 3. Alice chiffiert ihre geheime Nachricht mit einem symmetrischen Algorithmus mit dem Schlüssel y, und sendet sie mit der Zahl x an Bob 4. Bob weiß, welcher geheime Schlüssel y zur Zahl x gehört, so dass er die Nachricht dechiffrieren kann. Der Sinn dieser Methode ist, dass A nur eine Nachricht aufbrechen muss. Jemand der diese Nachrichten mithört muss alle Nachrichten aufbrechen bis er einmal den richtigen erwischt. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 105 Diffie Hellmann Schlüsselaustausch • Diffie/Hellmann/Merkle (1976, Stanford-Universität, Kalifornien): Schlüsselverabredung über unsicheren Kanal – löst langen Tradition von Streichlisten und Codebüchern ab • Aufgabenstellung: Wenn ein Element g einer Gruppe und die Werte ga und gb gegeben sind, welchen Wert hat dann gab ? • in bestimmten Gruppen nur mit enormen Rechenaufwand lösbar WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 106 53 Diffie Hellmann Alice sucht – Primzahl p, Primitivwurzel g mod p mit 2 < g < p-2 und geheime Zufallszahl a – berechnet A = ga mod p – Sendet A, g, p an Bob – sucht geheime Zufallszahl b – berechnet B = gb mod p – Sendet B an Alice – berechnet K = Ab mod p – berechnet K = Ba mod p {1, 2, … , p-2} Bob {1, 2, … , p-2} Bob Alice KAlice = Ab mod p = (ga mod p)b mod p = gab mod p = (gb mod p)a mod p = Ba mod p = KBob WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 107 Diffie Hellmann Schlüsselaustausch • Problem: Man-in-the-middle Attacke • zusätzlich : – digitale Signaturen und – Message Authentication Codes. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 108 54 RSA Schlüsselsystem • Public Key Kpub /Private Key Kpriv C = EKpub (M) M = DKpriv (C) • Ronald L. Rivest, Adi Shamir und Leonard Adleman (1977, MIT) • RSA um Faktor 1000 langsamer als DES/AES • RSA praktisch: – zum Austausch eines Schlüssels – für symmetrische (schnelle) Verschlüsselung WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 109 RSA • Signieren von Nachrichten: • Sender – Hash Wert: – Signieren: – Versenden: H(M) SigM = EKpriv ( H(M) ) M, SigM • Empfänger – Hash Wert H(M) – Vergleich mit HSig = DKpub ( SigM ) • Integrität und Authentizität garantiert WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 110 55 RSA vereinfachtes Grundprinzip • Wie arbeiten privater und öffentlicher Schlüssel? • Vorgehensweise: 3 Zahlen • – Erste Zahl x: Multiplikation von 2 Primzahlen x = p · q – Zweite Zahl y: eine zufällige Primzahl die Teil des öffentlichen Schlüssels wird – Dritte Zahl z: Wird aus y und dem Modul m von p und q gebildet m= (p-1)(q-1) y · z 1 mod m oder ggT( z , m ) = 1 – Nachricht M in Blöcke n mit je zwei Zeichen zerlegen, – Verschlüsselung mit dem öffentlichem Schlüssel y, m aller Blöcke m jeweils mit c = ny mod m – Entschlüsselung aller Blöcke c jeweils mit dem privatem Schlüssel z, m n = cz mod m RSA rechnet in mit sehr großen Zahlen, die zu einer bestimmten Wahrscheinlichkeit (mehr als 99%) als Primzahlen angesehen werden können. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 111 RSA „einfaches” Beispiel • • • • • • Erste Zahl x: Multiplikation von 2 Primzahlen x = p · q – p=3 q=5 x=p·q=3·5 x = 15 Zweite Zahl y: eine zufällige Primzahl die Teil des öffentlichen Schlüssels wird y =7 Dritte Zahl z: Wird aus y und dem Modul m von p und q gebildet m= (p-1)(q-1) – m = (p-1)(q-1) =(3-1) *(5-1) = 2 * 4 = 8 m=8 – Das Produkt mit y·z muss ein Vielfaches von m um eins übertreffen: y · z 1 mod m – Also 7 * z 1 mod 8 erweiterter Euklidischer Algorithmus: 7·7= 49 =6·8 +1 z=7 Nachricht M = „geheim“ in Blöcke b mit je zwei Zeichen zerlegen (ASCII) – ge = 103 + 256 * 101 = 25959 >>> viel zu groß für verständliches Beispiel – he = 104 + 256 * 101 = 25960 – im = 105 + 256 * 109 = 28009 Verschlüsselung mit dem öffentlichem Schlüssel x, y also 15 und 7 aller Blöcke m jeweils mit c = by mod x – einfaches Beispiel b=2 – 27 mod 15 = 128 mod 15 = 8 * 15 + 8 c=8 Entschlüsselung aller Blöcke c jeweils mit dem privatem Schlüssel z, m n = cz mod x – 87 mod 15 = 2097152 mod 15 = 139810 *15 + 2 2 mod 15 b=2 WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 112 56 RSA „einfaches” Beispiel • • • • • Erste Zahl x: Multiplikation von 2 Primzahlen x = p · q – p=3 q=5 x=p·q=3·5 Zweite Zahl y: zufällige Primzahl die Teil des öffentlichen Schlüssels wird Dritte Zahl z: Wird aus y und dem Modul m von p und q gebildet m= (p-1)(q-1) – m = (p-1)(q-1) =(3-1) *(5-1) = 2 * 4 = 8 – Das Produkt mit y·z muss ein Vielfaches von m um eins übertreffen: y · z 1 mod m – Also 7 * z 1 mod 8 erweiterter Euklidischer Algorithmus: 7·7= 49 =6·8 +1 Verschlüsselung mit dem öffentlichem Schlüssel x=15 und y=7 aller Blöcke b jeweils mit c = by mod x – einfaches Beispiel b=2 – 27 mod 15 = 128 mod 15 = 8 * 15 + 8 Entschlüsselung aller Blöcke c jeweils mit dem privatem Schlüssel z, m n = cz mod x – 87 mod 15 = 2097152 mod 15 = 139810 *15 + 2 2 mod 15 WS 2010/11 Vorlesung: IT-Sicherheit M. Harms x = 15 y =7 m=8 z=7 c=8 b=2 113 Rechentrick für z.B. 25959 19 mod 2080 x a+b =x a x b 19 = 1 + 2 +16 = 20 + 21 + 24 (Zerlegung in 2er Potenzen) x19 = x1 x2 x16 = X0 X1 X4 Da modulo 2080, werden vom Ergebnis Vielfache von 2080 so lange abgezogen, bis das Ergebnis kleiner als n 2080 ist. X0 = 25959 = 12 * 2080 + 999 999 mod 2080 X1 = X02 = 999 2 = 998001 = 479*2080 + 1681 1681 mod 2080 X2 = X12 = 1681 2 = 2825761 = 1358 *2080 + 1121 1121 mod 2080 X3 = X22 = 11212 = 1256641 = 604*2080 + 321 321 mod 2080 X4 = X32 = 3212 = 103041 = 49*2080 + 1121 1121 mod 2080 x19 = x1 x2 x16 = X0 X1 X4 = 999* 1681* 1121 = 905056 *2080 + 119 x19 119 mod 2080 WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 114 57 Übung: RSA mit JAVA Programmiere ein Java Programm zur 1. 2. 3. Erstellung von Public und Private Key Verschlüsseln eines Textes mit dem Public Key Entschlüsseln des Chiffretextes mit dem Private Key Zusatzaufgabe a) b) Erstellung einer Signierung Prüfung einer Signatur Anleitung: http://www.javamex.com/tutorials/cryptography/rsa_encryption.shtml WS 2010/11 Generate Keys: Vorlesung: IT-Sicherheit M. Harms 115 RSA mit Java KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); kpg.initialize(2048); KeyPair kp = kpg.genKeyPair(); Key publicKey = kp.getPublic(); Key privateKey = kp.getPrivate(); KeyFactory fact = KeyFactory.getInstance("RSA"); RSAPublicKeySpec pub = fact.getKeySpec( publicKey, RSAPublicKeySpec.class ); RSAPrivateKeySpec priv = fact.getKeySpec( privateKey, RSAPrivateKeySpec.class ); PrivateKey privKey = fact.generatePrivate( priv ); PublicKey pubKey = fact.generatePublic( pub ); Encrypt Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, pubKey); byte[] cipherData = cipher.doFinal( strg.getBytes() ); Decrypt Cipher cipher = Cipher.getInstance( "RSA" ); cipher.init( Cipher.DECRYPT_MODE, privKey ); byte[] msg = cipher.doFinal( data ); WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 116 58 Angriffe aus RSA Bob‘s Public Key x • Faktorisierung – Gelingt es Eve x = pq zu faktorisieren, hat sie die selben Informationen wie Bob • Ungeeignete Benutzung – Wenn Bob einen zu kleinen Private Key wählt, kann RSA geknackt werden. • RSA Falle – „Signatur verschlüsseln“ • Seitenkanal Attacken – Trojaner beobachtet Bob‘s Programm beim verschlüsseln WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 117 Angriffe auf RSA • Seitenkanal bei Binary Square-andMultiply Exponentiation Algorithm über BPA • Primfaktorzerlegung für große Zahlen: – mit heute bekannten Verfahren praktisch nicht durchführbar. – Es ist nicht bewiesen, dass es sich um ein prinzipiell schwieriges Problem handelt. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 118 59 RSA Faktorisierung 09.01.10, 22:27 Uhr: 232-stellige Zahl faktorisiert Zahl Dezimalstellen rsa120 (399 Bit) 120 Aufwand 100 MIPS-Jahre Status 512-Bit-Modul 154 8000 MIPS-Jahre auf schnellem PC in 1/2 Woche machbar 1999 RSA-768 232 20.000 MIPS-Jahre Aktueller Rekord 1024-Bit-Modul 308 1011 MIPS-Jahre 2048-Bit-Modul 616 1015 MIPS-Jahre (ganz kurzfristige Sicherheitsgrenze) (mittelfristige Sicherheitsgrenze) Schätzung der Sicherheit in Dezimalstellen bis 2020: • optimistisch: ca. 150 • pessimistisch: ca. 600 WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 119 Angriffe auf RSA Spezialfälle: RSA-Verfahren knacken ohne das Faktorisierungsproblem zu lösen: Annahme • private Schlüssel hat nur eine geringe Bitlänge – Angriff von Wiener: • Kettenbruchverfahren + Gitterbasenreduktion – Angriff von Håstad • ermittelt Klartext • Klartext wurde für mehrere Empfänger vor dem Verschlüsseln speziell aufbereitet (etwa wenn die Nummer des Empfängers in den Klartext codiert wurde). • verwendet die „Coppersmith-Methode“, um kleine Nullstellen eines Polynoms in einer Unbestimmten zu berechnen, welche wiederum auf Gitterbasenreduktion basiert. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 120 60 RSA + Padding • Problem: RSA Formel ist multiplikativ c = by mod x ay·by mod x = (a·b)y mod x Hat man mehrere Nachrichten: M1, M2, …mit mehreren Signaturen S1, S2, … lassen sich Signaturen aus Produkten von bekannten Signaturen fälschen • Lösung: „Padding“ Verfahren – – – – Konkatenation: Klartext oder Hashwert + String R R hat vorgegebener Struktur (d. h. mit Redundanz) dann Verschlüsselung oder Signatur R enthält • eine Angabe über Länge der Nachricht / Hash-Wertes oder • eine eindeutige Zeichenfolge, die den Beginn von R kennzeichnet • • Standards: PKCS#1 oder ISO 9796 moderne Paddingverfahren (Optimal Asymmetric Encryption Padding (OAEP) oder Probabilistic Signature Scheme (PSS): – verwenden kryptographische Hashfunktionen und sind (unter idealisierten Annahmen) beweisbar ebenso schwierig zu brechen, wie RSA selbst WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 121 Kryptographische Herausforderungen • RSA Factoring Challenge: – Decimal Digits: 193 wurde faktorisiert: • 30 „2.2GHz-Opteron-CPU“ years – Offen z.B.: Decimal Digits: 212 • 740375634795617128280467960974295731425931888892 312890849362326389727650340282662768919964196251 178439958943305021275853701189680982867331732731 089309005525051168770632990723963807867100860969 62537934650563796359 • RSA Secret Key Challenge: $10.000 pro Key • http://www.mysterytwisterc3.org/ WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 122 61 Elliptische Kurven • Eine elliptische Kurve ist die Lösungsmenge einer (geeigneten) kubischen Gleichung • Eine Grade schneidet die Kurve in drei Punkten zwei Punkten lässt sich ein dritter zuordnen • elliptische Kurven über – Reellen Zahlen (x-y-Zahlenebene) – primen Restklassenring – Bit-Vektoren WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 123 Elliptische Kurven • Allgemein: y2 + a1 xy + a3 y = a2 x3 + a4 x + a6 • Vereinfacht: y2 = x3 + ax + b • Punkte auf der Kurve sind abelsche Gruppe d.h.: Sind P und Q zwei Punkte, dann ist R=P+Q auch ein Punkt auf der Kurve. • Einwegfunktion: k und P gegeben, dann ist D = kP = P+P+P+…+P (also k-mal addiert) einfach zu rechnen, aber bei gegebenen P und D kann man keine Rückschlüsse auf k ziehen ECDL: k = logP D. • Wird in diversen Verfahren (z.B. ElGamal EC) eingesetzt WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 124 62 Elliptische Kurven Quelle: Certicom Beispiele in R2: WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 125 Elliptische Kurven in Fp Quelle: Certicom Beispiele: a=1, b=0 y2 mod p = x3 + x mod p P+Q=R s = (yP - yQ) / (xP - xQ) mod p xR = s2 - xP - xQ mod p yR = -yP + s(xP - xR) mod p 2P = R s = (3xP2 + a) / (2yP ) mod p xR = s2 - 2xP mod p yR = -yP + s(xP - xR) mod p WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 126 63 Übung: Elliptische Kurven Quelle: Certicom Beispiele: a=1, b=0 y2 mod p = x3 + x mod p 2P = R s = (3xP2 + a) / (2yP ) mod p xR = s2 - 2xP mod p yR = -yP + s(xP - xR) mod p Berechne für P = (9,5) den Wert R=2P. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 127 Übung: Elliptische Kurven Quelle: Certicom Beispiele: a=1, b=0 y2 mod p = x3 + x mod p 2P = R s = (3xP2 + a) / (2yP ) mod p xR = s2 - 2xP mod p yR = -yP + s(xP - xR) mod p Berechne für P = (9,5) den Wert R=2P. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 128 64 Elliptische Kurven in F2m Bsp: • m=4 also: F24 • g = (0,0,1,0) als Feld-Erzeuger g0=(0,0,0,1), g1= (0,0,1,0), g2 = (0100), g3 = (1000), g4 = (0011), g5 = (0110), g6 = (1100), g7 = (1011), g8 = (0101), g9 = (1010), g10 = (0111), g11 = (1110), g12 = (1111), g13 = (1101), g14 = (1001) und g15 = (0001) • Kurve: y2+xy = x3+g4x2+g0 (a=g4, b=g0) • Punkte der Kurve (1, g13), (g3, g13), (g5, g11), (g6, g14), (g9, g13), (g10, g8), (g12, g12), (1, g6), (g3, g8), (g5, g3), (g6, g8), (g9, g10), (g10, g), (g12, 0) und (0, 1) WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 129 Elliptische Kurven in F2m 2P = R s = xP + yP / xP xR = s2 + s + a yR = xP + (s+1) xR • Praktische Applikationen: m= 160 • Erzeuger g geheim halten WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 130 65 Elliptische Kurven in F24 g = (0,0,1,0) WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 131 Schlüsselaustausch • Alice und Bob einigen sich z.B. auf – F27 als Feld – P = (10,11) • Alice: Geheimschlüssel ist a=2 -> A = 2·P „Hi Bob, mein Wert ist A.“ • Bob: Geheimschlüssel ist b=3 -> B = 3·P „Hi Alice, mein Wert ist B.“ • gemeinsames Geheimnis = Schlüssel: K = a·B = b·A = a·b·P WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 132 66 Vergleich DL / EKDL Diskreter Logarithmus Elliptische Kurven DL Parameter Primzahl p p und Kurvenparameter a,b Körper/Ring Öffentlich Geheim Rest g ge mod p Exponent e Punkte auf Kurve Punkt R = nP Faktor n Größe von p 1024 bit 160 bit Operation 1x mod Multiplikation 2x mod Multiplikation 1x mod Division WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 133 Zero Knowledge Protokolle Alice: „Bob, ich kann Dich überzeugen, dass ich das Geheimnis kenne, ohne direkt darüber zu sprechen.“ Alice, komm bitte links raus! Bob Tür mit Schloß „Challenge – Response“ WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 134 67 ElGamal Kryptosystem Taher Elgamal (1985) • Beruht auf dem diskreten Logarithmus Problem (DL) • Asymmetrisch (Diffie-Hellmann Idee) • Effektiv und effizient WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 135 ElGamal Kryptosystem Schlüsselgenerierung • Primzahl p so, dass p-q großen Primfaktor q hat • oder q wählen, p=2q+1 berechnen und auf Primzahl prüfen • Primitivwurzel g (Generator) • a { 2, …, p-2 } wählen • A = ga mod p • öffentlicher Schlüssel: (p,g,A) • geheimer Schlüssel: a WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 136 68 ElGamal Kryptosystem Vorgehensweise A = ga mod p öffentlicher Schlüssel: (p,g,A) Verschlüsselung von m • b { 2, …, p-2 } wählen • B = gb mod p c = Abm mod p und Geheimtext: (B,c) Entschlüsselung durch Bx c mod p mit x=p-1-a denn: Bp-1-a c gb(p-1-a) Abm (gp-1)b ( ga)-b Abm A-b Abm m mod p WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 137 Digitale Zertifikate Zertifizierungsinstanz: vertrauenswürdige Organisation Inhalt des Zertifikats • Name des Ausstellers • Verfahren, Regeln • Gültigkeitsdatum • öffentlicher Schlüssel – Eigentümer – Informationen – Geltungsbereich WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 138 69 Digitale Zertifikate Standards: • X.509v3 – SSL/TLS, S/MIME, VPN, IPSec, SSH • PGP (RFC 2440) • … Deutsches Signaturgesetz: • Akkreditierte Anbieter von Zertifikaten WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 139 Digitale elektronische Signatur Erstellung: Hash 10010101 EPrivK Hash Daten } Digital signierte Daten 10100011 Signatur 10100011 Zertifikat WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 140 70 Digitale elektronische Signatur Verifikation: Digital signierte Daten Hash 10010101 Hash Daten Identisch? 10100011 10100011 DPubK 10010101 Hash WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 141 Digitale Wasserzeichen • • • • • Transparent Robust Kapazität Sicherheit Performance z.B. SegMark WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 142 71 Staganographie • ein Außenstehender erkennt die Existenz der übertragenen Information nicht • Dritte erkennen nicht, dass im Medium Information enthalten ist • Dritte können selbst bei Wissen um die versteckte Information diese nicht ermitteln WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 143 Staganographie Klassisch • Geheimtinte, doppelter Briefumschlag, Micropunkte, Mikrofilm etc., Linguistische 3 Bits versteckt Steganographie, (pro Pixel möglich) RGB: 255,0,0 Wahrnehmungsschwelle RGB: 254,1,1 Computer • Audiodatei, Bilddatei, Video, Blog (öffentlich beschreibbare Information im Internet), Semagramme WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 144 72 Politische Randbedingungen • Zulassung für Geheimhaltungsstufen (z.B. AES) • Exportverbot (HW, SW) WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 145 Wiederholung: Grundlagen Was sind “personenbezogene Daten”? 1. Eine Regelung des BDSG. 2. Informationen einer natürlichen Person 3. Informationen einer juristischen Person 4. Unterliegen der informationellen Selbstbestimmung 5. Müssen weltweit vertraulich behandelt werden wenn sie in IT Systemen gespeichert werden WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 146 73 Wiederholung: Symm. Chiffre Welcher der genannten Technolgoien verwenden ausschließlich symmetrische Verschlüsselung? 1. SSL 2. MD5 3. Caesar Chiffre 4. RSA 5. 3DES WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 147 Wiederholung: Krypt. Funktionen Welche der Funktionen wird in der Kryptographie eingesetzt? 1. Natürlicher Logarithmus 2. Diskreter Logarithmus 3. Sinus 4. Kubische Gleichung 5. Affine Enigma Transformation 6. Linearer Kongruenzgenerator WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 148 74 Wiederholung: Passwort-Ciffre Welche der Chiffre sind Stand heute für Passwortdateien sinnvoll? 1. DES 2. SETI 3. AES 4. RSA 5. SHA 6. MD5 WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 149 Wiederholung: diskrete Mathematik Welche g sind Erzeuger für die Funktion f = gx mod m auf dem primen Restklassenring 3? 1. g=1 und g=2 2. g=2 3. g=2 und g=3 4. g=3 5. Erzeuger gibt es für diese Randbedingungen nicht. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 150 75 Wiederholung: Kryptoanalyse Welche sind Kryptoanalytische Verfahren? 1. Seitenkanalanalyse 2. Seitenflußanalyse 3. Häufigkeitsanyse 4. Wiederholungsanalyse 5. Paarbildungsanalyse 6. Social Engineering WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 151 Wiederholung: Feistel Chiffre Was sind Anforderungen an einen Feistel Chiffre? 1. Mindesten 16 Runden im Algorithmus 2. Lawineneffekt 3. 1024 Bit Schlüssellänge 4. Zertifiziert 5. Rijndael Algorithmus 6. Salted Hash kompatibel WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 152 76 Wiederholung: RSA Was Aussagen zu RSA sind korrekt? 1. RSA ist mathematisch nachgewiesen nicht knackbar. 2. RSA lässt sich bei kleiner Schlüssellänge mit einem PC knacken. 3. Ein 1024 Bit Key gilt heute noch als sicher. 4. Theoretisch ist RSA mathematisch knackbar, der Beweis wurde nie geführt, da es viele Jahre Rechenzeit benötigen würde. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 153 Wiederholung: Algorithmenvergleich Was Aussagen sind korrekt? 1. RSA ist wesentlich schneller als DES. 2. One Time Pad ist sicherer als Vigenere 3. Enigma hatte einen längeren Schlüssel als DES 4. ECDL ist bei halber Bit-Zahl von P immer noch sicherer als RSA WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 154 77 Wiederholung: Elektr. Signatur Was Aussagen sind korrekt? 1. Eine qualifizierte Signatur ist für elektronische Rechnungen in Deutschland verpflichtend. 2. Digitale Signaturen werden mit dem Private Key erstellt. 3. Digitale Signaturen werden mit dem Public-Key erstellt. 4. Digitale Signaturen werden mit einem Hash Key geprüft. WS 2010/11 Vorlesung: IT-Sicherheit M. Harms 155 78