Kryptographische Algorithmen
|
|
|
- Anton Heinrich
- vor 8 Jahren
- Abrufe
Transkript
1 Kryptographische Algorithmen Lerneinheit 6: Public Key Kryptosysteme Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2016/ Public Key Kryptosysteme Einleitung Einleitung Thema dieser Lerneinheit ist die Funktionsweise von Public Key Kryptosystemen. Die Lerneinheit gliedert sich in folgende Abschnitte: Aufbau von Public Key Kryptosystemen Generierung von Primzahlen Rabin-Kryptosystem RSA-Kryptosystem Diffie Hellman Key Exchange El-Gamal-Kryptosystem Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 2 / 138
2 Public Key Kryptosysteme Aufbau Aufbau eines Public Key Kryptosystems Alice Oskar Bob x x enc y unsicherer Kanal y dec k e k e k d Schlüsselverzeichnis Benutzer Schlüssel Bob k e Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 3 / 138 Public Key Kryptosysteme Sicherheitsaspekte Sicherheitsaspekte Die Sicherheit gängiger Public Key Kryptosysteme basiert auf der (hoffentlich) hohen Komplexität von algorithmischen Problemen Häufig verwendete Problemstellungen: Faktorisierung von ganzen Zahlen Berechnung des diskreten Logarithmus Berechnung von quadratischen Resten Die Parameter von Public Key Kryptosystemen werden mittels Pseudo-Zufallszahlen-Generatoren erzeugt Voraussetzungen: Für kryptografische Zwecke geeignete Generatoren für Pseudo-Zufallszahlen Primzahltests Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 4 / 138
3 Public Key Kryptosysteme Sicherheitsaspekte Faktorisierung von ganzen Zahlen Faktorisierungsproblem Gegeben: Zusammengesetzte Zahl n N Gefragt: Finde einen Faktor f von n, d.h., eine Zahl f mit folgenden Eigenschaften: 1 < f < n, und f n Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 5 / 138 Public Key Kryptosysteme Sicherheitsaspekte Berechnung des diskreten Logarithmus Diskreter-Logarithmus-Problem Gegeben: Primzahl p Erzeugendes Element α von Z p Element β Z p Gefragt: Berechne die eindeutige ganze Zahl a, 1 a p 1, so dass α a β (mod p). Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 6 / 138
4 Public Key Kryptosysteme Sicherheitsaspekte Beispiel zum Diskreten Logarithmus Betrachte Z 11 und α = 2. i α i mod Demnach ist log 2 (10) = 5 und log 2 (6) = 9. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 7 / 138 Public Key Kryptosysteme Sicherheitsaspekte Einwegfunktionen Eine Abbildung f bezeichnet man als Einwegfunktion, falls sie folgende Bedingungen erfüllt: f kann man einfach berechnen Selbst wenn der Algorithmus zur Berechnung von f bekannt ist, ist es für fast alle y schwer, ein x zu finden, so dass f(x) = y gilt Ob Einwegfunktionen existieren, ist eine der offenen Fragen in der Kryptografie Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 8 / 138
5 Public Key Kryptosysteme Sicherheitsaspekte Kandidaten für Einwegfunktionen Produkt zweier Primzahlen: f(p, q) = p q, wobei p und q Primzahlen. Diskrete Exponentialfunktion: f(x) = g x mod p, wobei p eine Primzahl und g ein Generator von (Z p, p ) ist. Modulare Polynomfunktion: f(x) = a n x n a 1 x + a 0 mod p, wobei p eine Primzahl und a i Z p für 0 i n. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 9 / 138 Public Key Kryptosysteme Sicherheitsaspekte Falltürfunktionen Eine Abbildung f bezeichnet man als Falltürfunktion, falls sie folgende Bedingungen erfüllt: f ist einfach zu berechnen. Bei Kenntnis einer mit f verbundenen Information (der sogenannten Falltürinformation), ist die Gleichung f(x) = y für gegebenes y leicht lösbar Ohne Kenntnis der Falltürinformation ist die Gleichung f(x) = y für alle y schwer lösbar Bisher konnte nicht nachgewiesen werden, dass Falltürfunktionen existieren. Ein Kandidat für eine Falltürfunktion ist die bei RSA eingesetzte modulare Potenzfunktion Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 10 / 138
6 Generierung von Primzahlen Generierung von Primzahlen Primzahlen sind die Grundlage für viele Public Key Verfahren Die verwendeten Primzahlen müssen geheim gehalten werden Konsequenz: ein Benutzer muss in der Lage sein, Primzahlen auf eine vertrauliche Art und Weise zu generieren Ansatz: 1. Zähle zufällig unter Gleichverteilung eine ungerade Zahl mit einer vorgegebenen Größe 2. Überprüfe, ob die Zahl eine Primzahl ist Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 11 / 138 Generierung von Primzahlen Der Primzahlsatz Der Primzahlsatz Satz 1 (Primzahlsatz) Sei π(n) gleich der Anzahl der Primzahlen, die kleiner-gleich n sind, d.h., π(n) = {p N p ist ein Primzahl und p n}. Dann gilt für alle n N: π(n) lim n n ln n 1. Interpretation: Für große n ist π(n) n ln n Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 12 / 138
7 Generierung von Primzahlen Der Primzahlsatz Anwendung des Primzahlsatzes Anwendung: Im Mittel muss man m = ln(2k ) 2 = k ln(2) 2 ungerade Zahlen aus {1, 3,..., 2 k 1} zufällig unter Gleichverteilung ziehen, um eine Primzahl zu erhalten. Zahlenbeispiele: k m k m Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 13 / 138 Generierung von Primzahlen Ein einfacher Primzahltest Ein einfacher Primzahltest Satz 2 (Fermat) Ist n eine Primzahl, dann gilt für alle a Z n: a n 1 1 (mod n). Ansatz: Finde ein a {2,..., n 1}, so dass a n 1 1 (mod n). In diesem Fall ist n keine Primzahl. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 14 / 138
8 Generierung von Primzahlen Ein einfacher Primzahltest Probleme und Lösungen Probleme 1. a n 1 mod n muss effizient berechnet werden 2. Man kann nicht alle Elemente a {2,..., n 1} testen 3. Es gibt Zahlen, die durch den Test nicht erkannt werden Lösungen 1. Einsatz der modularen Exponentiation 2. Zufällige Auswahl von a 3. Einsatz einer verbesserten Testmethode Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 15 / 138 Generierung von Primzahlen Ein einfacher Primzahltest Modulare Exponentation ModularExponentation(a, b, n) Input: a, b, n ganze Zahlen, wobei n > 0 Output: a b mod n 1 d := 1 2 Sei b k 1,..., b 0 die Binärdarstellung von b 3 for i := k 1 downto 0 do 4 d := (d d) mod n 5 if (b i = 1) then 6 d := (d a) mod n 7 return d Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 16 / 138
9 Carmichael-Zahlen Generierung von Primzahlen Carmichael-Zahlen Eine Carmichael-Zahl ist eine zusammengesetzte Zahl n mit der Eigenschaft, dass a n 1 1 (mod n) für alle a {1, 2,..., n 1}. Bemerkungen: Carmichael-Zahlen sind extrem selten. Es gibt nur 255 solche Zahlen, die kleiner als 10 8 sind Die ersten drei Carmichael-Zahlen sind 561, 1105 und 1729 Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 17 / 138 Generierung von Primzahlen Verbesserung des Primzahltests Verbesserung des Primzahltests Satz 3 Ist n eine Primzahl, dann hat die Gleichung x 2 1 (mod n) genau die zwei Lösungen x = 1 und x = 1 = n 1. Folgerung: Ist die Gleichung x 2 1 (mod n) lösbar für ein x mit x 1 und x n 1, dann ist n keine Primzahl. Ansatz: Modifikation der modularen Exponentiation Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 18 / 138
10 Generierung von Primzahlen Algorithmus Witness(a, n) Verbesserung des Primzahltests Witness(a, n) Input: a, n ganze Zahlen, wobei n > 0 und 1 a n 1 Output: true, falls n keine Primzahl, false, sonst. 1 Sei b k, b k 1,..., b 0 die Binärdarstellung von n 1 2 d := 1 3 for i := k downto 0 do 4 x := d 5 d := (d d) mod n; 6 if (d = 1) and (x 1) and (x n 1) then 7 return true 8 if (b i = 1) then d := (d a) mod n 9 if (d 1) then 10 return true 11 return false Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 19 / 138 Generierung von Primzahlen Verbesserung des Primzahltests Eigenschaften von Witness(a, n) Die Funktion Witness(a, n) ist eine abgewandelte Form von modularer Exponentiation Der Algorithmus berechnet a n 1 mod n und sucht während der Berechnung nach Lösungen für die Gleichung x 2 1 (mod n), die verschieden zu 1 und n 1 sind Falls Witness(a, n) = true, dann wird a als Beleg (engl. witness) für die Tatsache angesehen, dass n keine Primzahl ist. Ist n > 2 eine zusammengesetzte Zahl, dann existieren hierfür mindestens (n 1)/2 Belege in {1, 2,..., n 1} Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 20 / 138
11 Generierung von Primzahlen Miller-Rabin-Test Miller-Rabin-Test MillerRabinTest(n, s) Input: n, s ganze positive Zahlen Output: true, falls n eine Primzahl ist, false, sonst. 1 for i := 1 to s do 2 a := Random(2, n 1) 3 if Witness(a, n) = true then 4 return false 5 return true Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 21 / 138 Generierung von Primzahlen Miller-Rabin-Test Bemerkungen zum Miller-Rabin-Test Der Miller-Rabin-Test besitzt einen einseitigen Fehler: Falls MillerRabinTest(n, s) = false, dann ist n keine Primzahl Falls MillerRabinTest(n, s) = true, dann ist n Primzahl mit einer Wahrscheinlichkeit von 1 2 s Die Wahl von s beeinflusst die Fehlerwahrscheinlichkeit Die Laufzeit von MillerRabinTest(n, s) ist O(log 2 (n) 3 s) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 22 / 138
12 Rabin-Kryptosystem Rabin-Kryptosystem Erfunden von Michael O. Rabin im Jahr 1979 Verschlüsselung mittels quadratischer Funktion Beweisbar sicheres Kryptosystem Geringe Bedeutung für die Praxis Verschlüsselungsfunktion nicht injektiv erhöhter Aufwand bei der Entschlüsselung Anfällig gegen eine Chosen-Ciphertext-Attacke Grundlage für weitere Kryptosysteme Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 23 / 138 Rabin-Kryptosystem Definition Definition Rabin-Kryptosystem Parameter: Primzahlen p und q, wobei p q, p 3 (mod 4) und q 3 (mod 4) n = p q Kryptosystem: P = C = Z n K = {(n, p, q)} Schlüssel k = (n, p, q) Öffentlicher Teil: n Privater Teil: (p, q) Verschlüsselung: enc((n, p, q), x) = x 2 mod n Entschlüsselung: dec((n, p, q), y) = y mod n Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 24 / 138
13 Quadratischer Reste Rabin-Kryptosystem Quadratische Reste Definition. Sei n eine ungerade ganze Zahl. Sei a eine Zahl, die teilerfremd zu n ist, d.h., gcd(a, n) = 1. a ist ein quadratischer Rest modulo n, falls eine Zahl x Z n existiert, so dass x 2 a (mod n) Ist a kein quadratischer Rest, dann nennt man a einen quadratischen Nicht-Rest. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 25 / 138 Rabin-Kryptosystem Quadratische Reste Beispiel zu Quadratischen Resten Betrachte n = 11. a a Also ist die Menge der quadratischen Reste modulo 11 gleich {1, 3, 4, 5, 9} Die Menge der quadratischen Nicht-Reste ist {2, 6, 7, 8, 10} Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 26 / 138
14 Rabin-Kryptosystem Quadratische Reste Zwei nützliche Sätze Satz 1. Seien p und q Primzahlen mit der Eigenschaft, dass p q p 3 (mod 4) und q 3 (mod 4) Sei n = p q. Sei a ein quadratischer Rest modulo n. Dann besitzt die Gleichung vier Lösungen. x 2 a (mod n) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 27 / 138 Rabin-Kryptosystem Quadratische Reste Zwei nützliche Sätze (Forts.) Satz 2. Sei p eine Primzahl mit der Eigenschaft, dass p 3 (mod 4). Sei a ein quadratischer Rest modulo p. Dann sind x 1,2 = ±a (p+1)/4 mod p die beiden Lösungen für die Gleichung x 2 a (mod p). Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 28 / 138
15 Rabin-Kryptosystem Entschlüsselung Entschlüsselung Gegeben: Quadratischer Rest a modulo p q Ansatz: Einsatz des Chinesischen Restsatzes 1. Berechne die Lösungen x 1,2 der Gleichung x 2 a (mod p) 2. Berechne die Lösungen y 1,2 der Gleichung y 2 a (mod q) 3. Berechne mittels des Chinesischen Restsatzes die vier Lösungen v 1, v 2, v 3, v 4 der Gleichung v 2 a (mod p q) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 29 / 138 Rabin-Kryptosystem Entschlüsselung Wiederholung: Chinesischer Restsatz Satz. Seien p und q Primzahlen, wobei p q. Dann besitzt das Gleichungssystem die eindeutige Lösung x b p (mod p) x b q (mod q) (b p m p q + b q m q p) mod (p q) wobei m p q 1 (mod p) m q p 1 (mod q) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 30 / 138
16 Rabin-Kryptosystem Beispiel zur Entschlüsselung Entschlüsselung Bob wählt die Primzahlen p = 131 und q = 139 als geheimen Schlüssel und veröffentlicht den Schlüssel n = p q = Alice will die Nachricht x = 4273 verschlüsselt an Bob senden. Hierzu berechnet sie y = x 2 (mod n) = (mod 18209) = und sendet anschließend den Geheimtext an Bob. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 31 / 138 Rabin-Kryptosystem Entschlüsselung Beispiel zur Entschlüsselung (Forts.) Um Alices Nachricht zu entschlüsseln, berechnet Bob mit dem erweiterten Algorithmus von Euklid die Werte m p und m q, so dass Man überprüft ohne Mühe, dass 1 = m q p + m p q m p q 1 (mod p) und m q p 1 (mod q) Der Euklid sche Algorithmus liefert m p = 49 und m q = 52 als Ergebnis. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 32 / 138
17 Rabin-Kryptosystem Entschlüsselung Beispiel zur Entschlüsselung (Forts.) Bob berechnet x (131+1)/4 (mod 131) 81 (mod 131) x (mod 131) 50 (mod 131) und y (139+1)/4 (mod 139) 36 (mod 139) y (mod 139) 103 (mod 139) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 33 / 138 Rabin-Kryptosystem Entschlüsselung Beispiel zur Entschlüsselung (Forts.) Anschließend benutzt Bob den Chinesischen Restsatz zur Berechnung der Wurzeln: v 1 (x 1 q m p + y 1 p m q ) (mod n) ( ) (mod 18209) 3094 (mod 18209) v 2 (x 2 q m p + y 2 p m q ) (mod n) ( ) (mod 18209) (mod 18209) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 34 / 138
18 Rabin-Kryptosystem Entschlüsselung Beispiel zur Entschlüsselung (Forts.) v 3 (x 1 q m p + y 2 p m q ) (mod n) ( ) (mod 18209) 4273 (mod 18209) v 4 (x 2 q m p + y 1 p m q ) (mod n) ( ) (mod 18209) (mod 18209) Bob erkennt (auf eine dem Autor dieses Dokuments nicht bekannte Art und Weise), dass v 3 = 4273 der von Alice versendete Klartext ist. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 35 / 138 Rabin-Kryptosystem Entschlüsselung Algorithmus zur Entschlüsselung RabinDecrypt(a, p, q) Input: Geheimtext a, geheimer Schlüssel (p, q) Output: Wurzeln v 1, v 2, v 3, v 4 von a modulo p q 1 n := p q 2 d, m q, m p := ExtendedEuclid(p, q) 3 x 1 := a (p+1)/4 mod p 4 x 2 := p x 1 5 y 1 := a (q+1)/4 mod q 6 y 2 := q y 1 7 v 1 := (x 1 q m p + y 1 p m q ) mod n 8 v 2 := (x 2 q m p + y 1 p m q ) mod n 9 v 3 := (x 1 q m p + y 2 p m q ) mod n 10 v 4 := (x 2 q m p + y 2 p m q ) mod n 11 return v 1, v 2, v 3, v 4 Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 36 / 138
19 Rabin-Kryptosystem Sicherheitsaspekte Sicherheitsaspekte Die Sicherheit des Rabin-Kryptosystems ist an das Faktorisierungsproblem gekoppelt Findet man eine effiziente Methode, um das Rabin-Kryptosystem zu brechen, dann kann man effizient zusammengesetzte Zahlen faktorisieren, und umgekehrt Das Rabin-System ist anfällig gegen eine Attacke mit frei wählbarem Geheimtext Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 37 / 138 Rabin-Kryptosystem Angriff mit frei wählbarem Geheimtext Angriff mit frei wählbarem Geheimtext Annahme: x ist eine der vier Wurzeln von y = r 2 mod n Dann kann man unter Einsatz des CRT vier Fälle unterschieden: (1) x r (mod p) und x r (mod q) (2) x r (mod p) und x r (mod q) (3) x r (mod p) und x r (mod q) (4) x r (mod p) und x r (mod q) Erkenntnis: Die Fälle (1) und (2) sind nicht verwertbar Anhand Fall (3) oder (4) kann man n faktorisieren Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 38 / 138
20 Rabin-Kryptosystem Angriff mit frei wählbarem Geheimtext Angriff mit frei wählbarem Geheimtext (Forts.) Aus Fall (3) folgt, dass: Anwendung des CRT: Also ist: x r 0 (mod p) und x r 2r (mod q) x r 0 q m p 2 r p m q (mod n) 2 r p m q (mod n) x r = l n 2 r p m q = p (l q 2 r m q ) für ein l N. Hieraus folgt: gcd(x r, n) = p Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 39 / 138 Rabin-Kryptosystem Angriff mit frei wählbarem Geheimtext Angriff mit frei wählbarem Geheimtext (Forts.) Fall (4) kann auf analoge Weise analysiert werden Bemerkungen: Die Wahrscheinlichkeit, dass für ein zufälliges r Fall (3) oder (4) eintritt, ist 1 2 Durch wiederholtes Ausführen von RabinAttack(n) kann die Erfolgswahrscheinlichkeit erhöht werden Liefert RabinAttack(n) alle vier Wurzeln als Ergebnis, dann führt der Angriff direkt zum Erfolg Der Angriff kann verhindert werden, indem man den Klartext mit einer eindeutigen, wiedererkennbaren Markierung versieht Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 40 / 138
21 Rabin-Kryptosystem Angriff mit frei wählbarem Geheimtext Angriff mit frei wählbarem Geheimtext (Forts.) RabinAttack(n) Input: Öffentlicher Schlüssel n 1 r := Random(1, n 1) 2 y := r 2 mod n 3 // Die Entschlüsselung liefert eine der vier Wurzeln 4 x := RabinDecrypt(y) 5 if x ±r (mod n) then 6 return Failure 7 else 8 p := gcd(x r, n) 9 q := n/p 10 return (p, q) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 41 / 138 RSA-Kryptosystem RSA-Kryptosystem Erstes asymmetrisches Kryptosystem Erfindung im Jahr 1977 Benannt nach seinen Erfindern Ronald Rivest, Adi Shamir & Leonard Adleman Sicherheit abhängig von der Komplexität des Faktorisierungsproblems Weltweit meist genutztes Public Key Kryptosystem Für Details zur Implementierung siehe Standard PKCS #1 Version 2.2 ( Webpage) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 42 / 138
22 RSA-Kryptosystem Definition Definition RSA-Kryptosystem Parameter: Primzahlen p und q, wobei p q n = p q Kryptosystem: P = C = Z { n K = (n, p, q, e, d) Schlüssel k = (n, p, q, e, d) K Öffentlicher Teil: (n, e) Privater Teil: (p, q, d) n = pq, wobei p, q prim, e d 1 (mod ϕ(n)) Verschlüsselung: enc(k, x) = x e mod n Entschlüsselung: dec(k, y) = y d mod n } Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 43 / 138 Beispiel zu RSA RSA-Kryptosystem Beispiel Angenommen, Bob wählt p = 101 und q = 113. Dann ist n = und ϕ(n) = = Die Primfaktorzerlegung von ist Also muss Bob für e eine Zahl wählen, die nicht durch 2, 5 und 7 teilbar ist. Er entscheidet sich für e = Er überprüft mittels des Extended Euklid Algorithmus, dass gcd(e, ϕ(n)) = 1 und ermittelt e 1 = 6597 mod Der geheimzuhaltende Exponent zur Entschlüsselung ist also d = Bob veröffentlicht den öffentlichen Schlüssel (n = 11413, e = 3533) in einem für jedermann lesbaren Public Key Verzeichnis. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 44 / 138
23 RSA-Kryptosystem Beispiel Beispiel zu RSA (Forts.) Alice will den Klartext x = 9726 an Bob senden. Hierzu besorgt sie sich Bob s öffentlichen Schlüssel (n = 11413, e = 3533) aus obigem Public Key Verzeichnis. Anschließend berechnet sie mod = 5761 und sendet den Geheimtext 5761 an Bob. Bob benutzt seinen geheimen Schlüssel d = 6597, um die Nachricht zu entschlüsseln: mod = Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 45 / 138 RSA-Kryptosystem Offene Fragen Offene Fragen Ist RSA tatsächlich ein Kryptosystem? Mit anderen Worten, gilt die Gleichung dec(k, enc(k, x)) = (x e mod n) d mod n = x für alle x P und k = (n, p, q, e, d) K? Warum ist RSA sicher? Kann man RSA effizient implementieren? Wie wird der Schlüssel k = (n, p, q, e, d) erzeugt? Was ist hierbei zu beachten? Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 46 / 138
24 RSA-Kryptosystem Warum funktioniert RSA? Korrektheit Aufgrund der Definition von RSA gilt für k = (n, p, q, e, d): dec(k, enc(k, x)) = x ed mod n. Die Zahlen e und d sind multiplikative Inverse modulo ϕ(n) = (p 1)(q 1). Somit ist für eine ganze Zahl i. ed = 1 + i(p 1)(q 1) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 47 / 138 RSA-Kryptosystem Korrektheit Warum funktioniert RSA? (Forts.) Für x 0 (mod p) folgt wegen dem Satz von Fermat: x ed x(x p 1 ) i(q 1) (mod p) x(1) i(q 1) (mod p) x (mod p) Ferner ist x ed x mod p, falls x 0 (mod p). Also gilt für alle x Z n : x ed x mod p. Analog zeigt man, dass x ed x mod q für alle x Z n. Da n = pq, folgt wegen des Chinesischen Restsatzes, dass für alle x Z n. x ed x (mod n) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 48 / 138
25 RSA-Kryptosystem Sicherheit Sicherheit von RSA Die Sicherheit von RSA beruht auf der (vermutlich) hohen Komplexität zweier arithmetischer Probleme. Faktorisierungsproblem: Finde für eine gegebene ganze Zahl n zwei ganzzahlige Faktoren von n, d.h., zwei Zahlen p, q Z so dass p q = n. Invertieren der modularen Potenzfunktion: Finde für die gegebenen ganzen Zahlen e, n, y wobei n > 0 ein x Z n so dass x e mod n = y. Für keines der beiden Probleme ist ein Polynomialzeit Algorithmus bekannt. Allerdings konnte bisher auch nicht bewiesen werden, dass kein Polynomialzeit Algorithmus für obige Probleme existiert. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 49 / 138 RSA-Kryptosystem Erzeugen eines RSA Schlüssels Erzeugen eines RSA Schlüssels Schritte zur Generierung eines RSA-Schlüssels: 1. Generierung zweier großer Primzahlen p und q (mindestens 2048 Bit pro Primzahl) 2. Berechnung von n = pq und ϕ(n) = (p 1)(q 1) 3. Generierung einer Zufallszahl e {1, 2,..., ϕ(n) 1}, wobei gcd(e, ϕ(n)) = 1 4. Berechnung d = e 1 mod ϕ(n) mit dem Erweiterten Algorithmus von Euklid 5. Veröffentlichung des öffentlichen Schlüssels (n, e) auf geeignete Art und Weise Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 50 / 138
26 RSA-Kryptosystem Berechnung von multiplikativen Inversen Erweiterter Algorithmus von Euklid ExtendedEuclid(a, b) Input: a, b ganze Zahlen, wobei a > b > 0 Output: (d, x, y) wobei d = ax + by = gcd(a, b) 1 if (b = 0) then 2 return (a, 1, 0); 3 else 4 (d, x, y ) := ExtendedEuclid(b, a mod b) 5 d := d ; 6 x = y ; 7 y = x a b y 8 return (d, x, y) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 51 / 138 RSA-Kryptosystem Berechnung von multiplikativen Inversen Berechnung von multiplikativen Inversen Bekannt: a ist invertierbar modulo n, falls gcd(a, n) = 1. Wegen ZTK (Satz 3.4) gibt es x, y Z so dass gcd(a, n) = 1 = ax + ny. Somit gilt: 1 ax + ny (mod n) ax (mod n) Also: x ist das multiplikative Inverse von a modulo n. Fazit: Multiplikative Inverse kann man mittels dem Extended Euklid Algorithmus berechnen. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 52 / 138
27 RSA-Kryptosystem Berechnung von multiplikativen Inversen Algorithmus zur Inversenberechnung MultInverse(a, n) Input: a, n ganze Zahlen, wobei n > 0 Output: a 1 mit aa 1 1 (mod n) falls existent 1 (d, x, y) := ExtendedEuklid(a, n) 2 if (d 1) then 3 return Inverse doesn t exist. 4 else 5 return x Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 53 / 138 RSA-Kryptosystem Garner Verfahren Effiziente Entschlüsselung mit Garners Verfahren Ansatz: Einsatz von p und q zur effizienteren Entschlüsselung von y Garner s Formel: Berechne a = y d mod p b = y d mod q x = (((a b)(q 1 mod p)) mod p) q + b Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 54 / 138
28 Angriffe auf RSA Angriffe auf RSA Die Sicherheit von RSA hängt von verschiedenen Faktoren ab, insbesondere von der Qualität des Schlüssels, und der Geheimhaltung des privaten Schlüssels Gelingt es, ein Bit eines beliebig wählbaren Geheimtextes zu entschlüsseln, dann kann man den kompletten Geheimtext entschlüsseln Trotz der bekannten Schwächen ist RSA bei korrekter Benutzung als sicher einzustufen Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 55 / 138 Angriffsziele Angriffe auf RSA Komplette Kompromittierung Oskar ist in der Lage, den geheimen Teil des RSA-Schlüssels von Bob zu ermitteln und kann somit alle Geheimtexte entschlüsseln Komplette oder teilweise Entschlüsselung eines Geheimtexts Oskar kann Teile von vertraulichen Informationen ermitteln, jedoch nicht den geheimen Teilschlüssel von Bob berechnen Unterscheidbarkeit von Geheimtext mit einer Wahrscheinlichkeit von > 1 kann Oskar einen 2 verschlüsselten Klartext von einem Zufallsstring unterscheiden Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 56 / 138
29 Angriffe auf RSA Faktorisierung von n bei bekannten ϕ(n) Faktorisierung von n bei bekanntem ϕ(n) Annahme: Oskar kennt: 1. n = p q 2. ϕ(n) = (p 1) (q 1) Ziel: Berechnung eines Faktors von n Ansatz: Gleichungssystem mit den Unbekannten p und q lösen Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 57 / 138 Angriffe auf RSA Faktorisierung von n bei bekannten ϕ(n) Faktorisierung von n bei bekanntem ϕ(n) (Forts.) Gleichung 1: q = n p Einsetzen in Gleichung 2 ϕ(n) = (p 1) ( ) n p 1 Umformen: ϕ(n) = n p n p + 1 p ϕ(n) = pn p 2 n + p 0 = p 2 + (ϕ(n) n 1)p + n Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 58 / 138
30 Angriffe auf RSA Faktorisierung von n bei bekannten ϕ(n) Faktorisierung von n bei bekanntem ϕ(n) (Forts.) Mitternachtsformel: mit: p 1,2 = b ± b 2 4ac 2a a = 1 b = ϕ(n) n 1 c = n Ist diese Gleichung lösbar, dann sind p 1 und p 2 die beiden Faktoren von n, d.h., n = p 1 p 2 Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 59 / 138 Angriffe auf RSA Die Wiener Attacke Die Wiener Attacke Angriff von Michael J. Wiener Sind die Parameter des RSA-Schlüssels ungünstig gewählt, dann kann man n faktorisieren Es kommt ein Satz aus der Zahlentheorie zum Einsatz Herleitung mittels endlichen Kettenbrüchen Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 60 / 138
31 Angriffe auf RSA Endliche Kettenbrüche Die Wiener Attacke Ein (endlicher) Kettenbruch ist ein Term q q q qm wobei q 1,..., q m nicht-negative, ganze Zahlen sind. Eine alternative Schreibweise ist: [q 1,..., q m ]. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 61 / 138 Angriffe auf RSA Die Wiener Attacke Endliche Kettenbrüche (Forts.) Satz 4 Seien a, b N, wobei b > 0. Dann existiert ein endlicher Kettenbruch [q 1,..., q m ] mit a b = q q q qm Bemerkung. Der Kettenbruch kann mit dem Algorithmus von Euklid berechnet werden.. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 62 / 138
32 Angriffe auf RSA Algorithmus von Euklid Die Wiener Attacke Euklid(a, b) Input: Ganze Zahlen a, b N 0, wobei a > 0, b 0. Output: (d, q 1,..., q m ), wobei d = gcd(a, b) 1 r 0 := a 2 r 1 := b 3 m := 1 4 while r m 0 do 5 q m := rm 1 r m 6 r m+1 := r m 1 q m r m // d.h. r m+1 = gcd(r m 1, r m ) 7 m := m m := m 1 9 return (r m, q 1,..., q m ) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 63 / 138 Angriffe auf RSA Die Wiener Attacke Beispiel: Berechnung eines Kettenbruchs Gegeben: a = 42, b = 73 Der Ablauf der Berechnung des Algorithmus von Euklid ist: 42 = = = = = = = Jede Gleichung repräsentiert dabei den Term r m 1 = q m r m + r m+1. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 64 / 138
33 Angriffe auf RSA Die Wiener Attacke Beispiel: Berechnung eines Kettenbruchs (Forts.) Der Algorithmus von Euklid liefert (1, [0, 1, 1, 2, 1, 4, 2]) als Ergebnis. Also ist: = Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 65 / 138 Angriffe auf RSA Die Wiener Attacke Konvergenten eines Kettenbruchs Sei [q 1,..., q m ] ein Kettenbruch. Für 1 j m ist C j = [q 1,..., q j ] die j-te Konvergente von [q 1,..., q m ]. C j nennt man auch den j-ten Näherungsbruch. C j ist darstellbar als c j d j, wobei 1, j = 0 c j = q 1, j = 1 q j c j 1 + c j 2, j 2 0, j = 0 und d j = 1, j = 1 q j d j 1 + d j 2, j 2 Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 66 / 138
34 Angriffe auf RSA Beispiel: Konvergenten Die Wiener Attacke Gegeben ist der Kettenbruch [0, 1, 1, 2, 1, 4, 2]. Die entsprechenden Konvergenten sind: [0] = 0/1 [0, 1] = 1/1 [0, 1, 1] = 1/2 [0, 1, 1, 2] = 3/5 [0, 1, 1, 2, 1] = 4/7 [0, 1, 1, 2, 1, 4] = 19/33 [0, 1, 1, 2, 1, 4, 2] = 42/73 Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 67 / 138 Ein wichtiger Satz Angriffe auf RSA Die Wiener Attacke Satz 5 Seien a, b, c, d beliebige natürliche Zahlen. Angenommen, gcd(a, b) = 1, gcd(c, d) = 1 und a b c < 1 d 2d. 2 Dann ist c d eine der Konvergenten des Kettenbruchs von a b. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 68 / 138
35 Angriffe auf RSA Die Wiener Attacke und seine Folgen Anwendung: Berechnung des geheimen Exponenten d Voraussetzungen: q < p < 2q 3d < n 1/4 Bemerkung: Der Angriff ist erfolgreich, wenn p und q nicht zu weit auseinander liegen und die Binärdarstellung von d weniger als l/4 1 Bits groß ist. Hierbei steht l für die Länge der Binärdarstellung von n Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 69 / 138 Angriffe auf RSA Die Wiener Attacke Anwendung des Satzes Da e d 1 (mod ϕ(n)), existiert ein t, so dass e d t ϕ(n) = 1. Da n = p q > q 2, ist q < n. Hieraus folgt: 0 < n ϕ(n) = p + q 1 < 2q + q 1 < 3q < 3 n Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 70 / 138
36 Angriffe auf RSA Die Wiener Attacke Anwendung des Satzes (Forts.) Einsetzen, wobei a = e, b = n, c = t, d = d: e n t = ed tn d dn = 1 + t(ϕ(n) n) dn ( ) = 1 + t(ϕ(n) n) dn = t(n ϕ(n)) 1 dn < t(n ϕ(n)) dn Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 71 / 138 Angriffe auf RSA Die Wiener Attacke Anwendung des Satzes (Forts.) t(n ϕ(n)) dn < t 3 n dn = 3t d n Da t < d, ist 3t < 3d < n 1/4. Hieraus folgt: 3t d n < n1/4 dn 1/2 1 = dn 1/4 < 1 3d 2 Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 72 / 138
37 Angriffe auf RSA Die Wiener Attacke Anwendung des Satzes (Forts.) Zusammenfassung: e n t < 1 d 3d 2 Wegen des obigen Satzes ist t d eine der Konvergenten von e n Folgerung: Anhand der Konverten von e n berechnen kann man ϕ(n) = e d 1 t Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 73 / 138 Wiener Attacke Angriffe auf RSA Die Wiener Attacke Eingabe: Öffentlicher RSA-Schlüssel (n, e) Vorgehen: 1. Berechne die Konvergenten c 0 d 0, c 1 d 1,..., c k d k des Kettenbruchs e n 2. Überprüfe für die Konvergente c i d i, i = 2,..., k, ob ϕ n = e d i 1 c i eine ganze Zahl ist, und ob n anhand von ϕ n faktorisierbar ist 3. Schlägt die obige Überprüfung für alle Konvergenten fehl, dann gib Angriff fehlgeschlagen aus. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 74 / 138
38 Angriffe auf RSA Beispiel Wiener Attacke Die Wiener Attacke Gegeben: n = , e = Der Kettenbruch von e ist: n [0, 1, 5, 8, 13, 3, 2505, 1, 7, 3, 1, 5, 3] Für c 4 = 41 und d 4 = 49 ist ϕ n = e d 4 1 c 4 = = Die Faktorisierung von n anhand von ϕ n liefert p = und q = als Faktoren von n. Der geheime RSA-Schlüssel ist d = 49. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 75 / 138 Angriffe auf RSA Highest-Order-Bit-Attacke Highest-Order-Bit-Attacke Annahme: Für y = enc(k, x) ist die Funktion { 0, 0 x < n 2 half(y) = n 1, < x n 1 2 effizient berechenbar. Frage: Lässt sich dies für einen Angriff auf RSA ausnutzen? Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 76 / 138
39 Angriffe auf RSA Highest-Order-Bit-Attacke Eine nützliche Eigenschaft von RSA Für alle x 1, x 2 Z n gilt: enc(k, x 1 x 2 ) (x 1 x 2 ) d (mod n) x d 1 xd 2 (mod n) enc(k, x 1 ) enc(k, x 2 ) (mod n) Insbesondere gilt für alle i = 1, 2, 3,...: enc(k, 2 i x 2 ) enc(k, 2 i ) enc(k, x 2 ) (mod n) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 77 / 138 Angriffe auf RSA Highest-Order-Bit-Attacke Anwendung der obigen Eigenschaft [ half(enc(k, x)) = 0 x 0, n ) 2 [ half(enc(k, 2 x)) = 0 x 0, n ) [ n 4 2, 3n ) 4 [ half(enc(k, 4 x)) = 0 x 0, n ) [ n 8 4, 3n ) 8 [ n 2, 5n ) [ 3n 8 4, 7n ) 8 Mittels Binärer Suche kann man den Schlüssel systematisch berechnen.. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 78 / 138
40 Angriffe auf RSA Highest-Order-Bit-Attacke Algorithmus HalfAttack(n, e, y) HalfAttack(n, e, y) Input: Öffentlicher RSA-Schlüssel (n, e), Geheimtext y Output: Zu y gehörender Klartext x 1 l := log 2 n 2 for i := 0 to l do 3 h i := Half(n, e, y) 4 y := y 2 e mod n 5 lo := 0; hi := n 6 for i := 0 to l 7 mid := (hi + lo)/2 8 if h i = 1 then 9 lo := mid 10 else 11 hi := mid 12 return hi Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 79 / 138 Angriffe auf RSA Highest-Order-Bit-Attacke Bemerkungen zu HalfAttack(n, e, y) Der Algorithmus nutzt die multiplikative Eigenschaft sowie die Half-Funktion, um das höchstwertigste Bit von x, 2 x, 2 2 x,..., 2 l 1 x zu berechnen. Anschließend wird auf Basis der höchstwertigsten Bits eine Binäre Suche durchgeführt, um den Klartext x zu bestimmen. Die Nachkommastellen bei der Division sind zu beachten. Die Laufzeit des Algorithmus ist O(l 3 + l t h (l)), wobei t h (l) für die Laufzeit von Half(n, e, y) für l-bit Zahlen steht Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 80 / 138
41 Beispiel Angriffe auf RSA Highest-Order-Bit-Attacke Gegeben: n = 4757, e = 857, y = Die Wortlänge von n ist l = log 2 = 12. Die Berechnung der höchstwertigsten Bits liefert: i h i Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 81 / 138 Beispiel (Forts.) Angriffe auf RSA Highest-Order-Bit-Attacke i h i lo mid hi Ergebnis: Klartext x = 742 Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 82 / 138
42 Angriffe auf RSA Highest-Order-Bit-Attacke Angriff durch Berechnung des niederwertigsten Bits Falls für y = enc(k, x) die Funktion { 0, x gerade parity(y) = 1, x ungerade effizient berechenbar ist, dann kann man auch den kompletten Klartext berechnen. Begründung: Es gelten folgende Beziehungen: half(y) = parity((y enc(k, 2)) mod n) parity(y) = half((y enc(k, 2 1 )) mod n) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 83 / 138 Zusammenfassung Angriffe auf RSA Zusammenfassung RSA nutzt modulare Exponentiation zur Ver- und Entschlüsselung. Die Sicherheit von RSA beruht auf der (hoffentlich) hohen Berechnungskomplexität des Faktorisierungsproblems und des diskreten Logarithmus. Da der öffentliche Teil des Schlüssels öffentlich zugänglich ist, kann jedermann eine verschlüsselte Nachricht an Bob senden. RSA kann auch zur Signatur von Nachrichten eingesetzt werden. Bei hinreichend langer Schlüssellänge und guter Wahl der Parameter gilt RSA als sicheres Kryptosystem. Für eine praxistaugliche Implementierung sind diverse Aspekte zu beachten. Weitere Details findet man im RSA-Standard. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 84 / 138
43 Diffie-Hellman-Schlüsselaustausch Diffie-Hellman-Schlüsselaustausch Erfunden von Whitfield Diffie und Martin E. Hellman aus dem Jahr 1976 Protokoll zur vertraulichen Konstruktion eines Schlüssels über einen unsicheren Kanal Sicherheit basiert auf dem Diskreter-Logarithmus-Problem Die Arbeit von Diffie und Hellman gilt als die Geburtsstunde der Public Key Kryptografie Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 85 / 138 Diffie-Hellman-Schlüsselaustausch Protokoll Protokoll zum Schlüsselaustausch Sei p eine Primzahl und α ein Generator von Z p Alice Bob Wählt zufällig ein a Z p α a mod p α b mod p Wählt zufällig ein b Z p α ab mod p Geheimer Schlüssel Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 86 / 138
44 Diffie-Hellman-Schlüsselaustausch Protokoll Beispiel Angenommen, p = und α = 5 sind die öffentlichen Parameter für einen Diffie-Hellman-Schlüsselaustausch. Alice würfelt a = und berechnet mod = Anschließend sendet sie Bob diesen Wert. Bob würfelt b = und berechnet mod = Diesen Wert sendet er an Alice. Alice und Bob berechnen schließlich den geheimen Schlüssel mod = mod = Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 87 / 138 Diffie-Hellman-Schlüsselaustausch Protokoll Man-In-The-Middle Attacke Alice α a mod p α a mod p Oskar α b mod p α b mod p Bob Oskar sitzt zwischen Alice und Bob und fungiert als Vermittlungsstelle. Oskar ersetzt die Teilschlüssel von Alice und Bob durch seine eigenen. Alice und Bob können zwar ihre Daten mit dem ausgehandelten Schlüssel verschlüsseln, aber keiner kann die Daten des anderen entschlüsseln. Oskar kann alle Daten ver- bzw. entschlüsseln und entsprechend weiterleiten. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 88 / 138
45 Diffie-Hellman-Schlüsselaustausch Station-To-Station-Protokoll Verbessertes Verfahren Sei p eine Primzahl und α ein Generator von Z p Alice α a Bob α b, sign B (m B, α a, α b ) sign A (m A, α a, α b ) Alle Berechnungen verstehen sich modulo p m A und m B stehen für den Signaturschlüssel von Alice bzw. Bob Dieses Verfahren ist eine Vereinfachung des Station-To-Station Protokolls. Eine zusätzliche Absicherung wird durch den Einsatz von Zertifikaten erreicht. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 89 / 138 El Gamal Kryptosystem ElGamal Kryptosystem Erfindung von Taher ElGamal aus dem Jahr 1984 Probabilistisches Kryptosystem Sicherheit hängt ab vom Diskreter-Logarithmus-Problem für endliche Körper Grundlage für zahlreiche weitere Kryptosysteme Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 90 / 138
46 El Gamal Kryptosystem Definition Definition ElGamal-Kryptosystem Parameter: Primzahl p Erzeugendes Element α von Z p Kryptosystem: P = Z p, C = Z p Z p K = {(p, α, a, β) 2 a p 2, β α a (mod p)}. Schlüssel k = (p, α, a, β) K: Öffentlicher Teil: (p, α, β) Geheimer Teil: a Verschlüsselung: enc(k, x) = (y 1, y 2 ), wobei y 1 = α z mod p y 2 = xβ z mod p für eine zufällig gewählte, geheime Zahl z Z p 1 Entschlüsselung: dec(k, (y 1, y 2 )) = y 2 (y a 1 ) 1 mod p Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 91 / 138 El Gamal Kryptosystem Definition Die Idee hinter ElGamal Alice verschlüsselt den Klartext x Z p, indem sie ihn maskiert, d.h., mit β z multipliziert. Die modulare Exponentialfunktion wird also zur Generierung eines Zufallsstroms eingesetzt. Da Bob die Zufallszahl z nicht kennt, muss Alice diese an ihn senden. Dies kann nicht direkt geschehen, da Oskar sonst aus dem öffentlich bekannten β den Wert β z berechnen und somit den Geheimtext dechiffrieren könnte. Da Bob a und somit auch (α z ) a = β z kennt, sendet Alice den Wert α z. Somit ist Bob in der Lage, die Maske zu entfernen indem er y 2 mit dem Inversen von β k multipliziert. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 92 / 138
47 El Gamal Kryptosystem Beispiel Beispiel Bob wählt p = 2579, α = 2, a = 765 und β = mod 2579 = 949. Angenommen, Alice will an Bob die Nachricht x = 1299 senden. Sie wählt (zufällig) die Zahl z = 853 aus. Dann berechnet sie y 1 = mod 2579 = 435, und y 2 = mod 2579 = Bei Empfang des Geheimtextes y = (435, 2396) berechnet Bob x = 2396 ( ) 1 mod 2579 = Das Ergebnis ist offensichtlich identisch mit dem von Alice versandten Klartext. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 93 / 138 El Gamal Kryptosystem Korrektheit Korrektheit von ElGamal Zum Nachweis der Korrektheit des ElGamal Kryptosystems ist zu zeigen, dass dec(k, enc(k, x, z)) = x für alle k = (p, α, a, β) K, alle z Z p 1 und alle x Z p gilt. Betrachte y 1 = α z mod p und y 2 = xβ z mod p. Da y a 1 (α z ) a (α a ) z β z (mod p) ist (y a 1 ) 1 = (β z ) 1. Hieraus folgt: y 2 (y a 1) 1 xβ z (β z ) 1 x (mod p). Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 94 / 138
48 El Gamal Kryptosystem Sicherheit Warum ist ElGamal sicher? Die Sicherheit des ElGamal Kryptosystems basiert auf folgenden Annahmen: Hohe Berechnungskomplexität des DLP: Verfügt Oskar über einen effizienten Algorithmus zur Berechnung von log p α β, dann kann er ohne Mühe aus β = α a den geheimen Schlüssel a berechnen. Zufällige Wahl von z: Benutzt Alice immer dasselbe z zur Verschlüsselung, dann besteht die Möglichkeit eines Angriffs mit bekanntem Klartext-Geheimtext-Paar. Das ElGamal Kryptosystem wird auch als probabilistisches Kryptosystem bezeichnet, da der Klartext x in viele zufällige Geheimtexte (y 1, y 2 ) abgebildet wird. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 95 / 138 El Gamal Kryptosystem Schlüsselerzeugung Wie erzeugt man einen Generator? Ähnlich wie bei RSA werden auch beim ElGamal Kryptosystem die Parameter zufällig erzeugt. Bei der Erstellung des Generators sind folgende Fakten hilfreich: Ist Z n eine zyklische Gruppe, dann ist die Anzahl ihrer Generatoren gleich ϕ(ϕ(n)). Für eine Primzahl p ist die Anzahl der Generatoren von Z p gleich ϕ(p 1). Man kann beweisen, dass ϕ(n) n/6 ln(ln(n)) für alle n. Wenn man also zufällig ein Element α aus Z n zieht, dann ist die Chance gut, dass α ein Generator ist. Die Zahl α Z n ist ein Generator von Z n genau dann, wenn α ϕ(n)/p 1 (mod n) für alle Primteiler p von ϕ(n). Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 96 / 138
49 El Gamal Kryptosystem Schlüsselerzeugung Algorithmus zur Generatorerzeugung RandomGenerator(p, p 1, e 1, p 2, e 2,..., p k, e k ) Input: Primzahl p, Primfaktorzerlegung p e 1 1 pe pe k k Output: Generator α von Z p 1 found := false; 2 while (found = false) do 3 α := Random(2, p 1); 4 found := true; 5 for i := 1 to k do 6 b := α p 1/p i mod p; 7 if (b = 1) then found := false; 8 return α; von ϕ(p) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 97 / 138 El Gamal Kryptosystem Schlüsselerzeugung Erzeugen eines ElGamal Schlüssels Zur Erstellung eines ElGamal Schlüssels geht man folgendermaßen vor: 1. Generiere unter Verwendung des Miller-Rabin Primzahltests zufällig eine Primzahl q so dass auch p = 2q + 1 eine Primzahl ist. 2. Generiere mittels randomgenerator(p, 2, 1, q, 1) einen Generator α von Z p. 3. Wähle zufällig ein a {2,..., p 2} und berechne β = α a mod p. 4. Mache die Werte p, α und β öffentlich zugänglich. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 98 / 138
50 Verallgemeinerung El Gamal Kryptosystem Verallgemeinerung Unter dem Diskreter Logarithmus Problem über (G, ) versteht man folgendes Berechnungsproblem: Gegeben: (G, α, β), wobei G eine endliche Gruppe mit Gruppenoperation, α G und β H ist. Hierbei ist H die von α erzeugte Untergruppe. Gesucht: Finde die eindeutig bestimmte ganze Zahl a, 0 a H 1, so dass α (a) = β. Hierbei ist a (k) = k a = } a a {{... a }. k-mal i=1 Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 99 / 138 El Gamal Kryptosystem Verallgemeinerung ElGamal Kryptosystem über (G, ) Sei (G, ) eine endliche Gruppe. Sei α G ein Element, so dass das DLP über der von α erzeugten Untergruppe H = {α i i 0} schwierig zu lösen ist. Das ElGamal Kryptosystem über (G, ) ist: P = G, C = G G, K = {(G, α, a, β) 2 a H 1, β = α (a) } Für k = (G, α, a, β) K und eine (geheime) ganze Zahl z Z H definiere: Verschlüsselung: enc(k, x, z) = (y 1, y 2 ), wobei y 1 = α (z), und y 2 = x β (z). Entschlüsselung: dec(k, (y 1, y 2 )) = y 2 (y (a) 1 ) 1 mod p (G, α, β) ist der öffentliche, a der geheime Schlüssel. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 100 / 138
51 Elliptische Kurven Definition Elliptische Kurven über Z p Betrachte eine Gleichung der Bauart y 2 x 3 + ax + b (mod p), wobei p > 3 eine Primzahl und a, b Z p mit 4a b 2 0 (mod p). Die durch diese Gleichung beschriebene Elliptische Kurve E(p, a, b) ist die Menge all ihrer Lösungen (x, y) Z p Z p, zusammen mit einem zusätzlichen Punkt O. Der Punkt O wird Unendlichkeitspunkt (engl.: point at infinity) genannt. Man kann zeigen: E(p, a, b) = p + 1 t mit t 2 p. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 101 / 138 Elliptische Kurven Gruppenoperation Gruppenoperation über E(p, a, b) Seien P = (x 1, y 1 ) und Q = (x 2, y 2 ) von O verschiedene Punkte in E(p, a, b). P O = O P = P Falls x 2 = x 1 und y 2 = y 1, dann ist P Q = O. Ansonsten ist P Q = (x 3, y 3 ), wobei x 3 = λ 2 x 1 x 2, und y 3 = λ(x 1 x 3 ) y 1, wobei { (y2 y 1 )/(x 2 x 1 ), falls P Q, λ = (3x a)/2y 1, falls P = Q, Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 102 / 138
52 Elliptische Kurven Gruppenoperation (E(p, a, b), ) ist eine Gruppe Die Struktur (E(p, a, b), ) ist eine endliche kommutative Gruppe. Da (Z p, +, ) ein Körper ist, sind alle Berechnungen von innerhalb von Z p durchführbar. Daher ist die Menge E(p, a, b) abgeschlossen unter. Das neutrale Element ist O. Das Inverse zu (x, y) ist (x, y). Die Operation ist assoziativ und kommutativ. Der Beweis dieser Tatsache ist jedoch schwierig. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 103 / 138 Elliptische Kurven Beispiel Beispiel: E(11, 1, 6) Zur Illustration untersuchen wir die Elliptische Kurve y 2 x 3 + x + 6 (mod 11). Zunächst werden die Elemente in E(11, 1, 6) berechnet. Da 11 = , sind die Wurzeln eines quadratischen Rests z gleich ±z (11+1)/4 mod 11 = ±z 3 mod 11. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 104 / 138
53 Elliptische Kurven Beispiel Beispiel: E(11, 1, 6) (Forts.) x x 3 + x + 6 mod 11 QR(11)? y , , , , , , 9 Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 105 / 138 Elliptische Kurven Beispiel Beispiel: E(11, 1, 6) (Forts.) Neben dem Punkt O enthält E(11, 1, 6) die folgenden Elemente: (2, 4) (2, 7) (3, 5) (3, 6) (5, 2) (5, 9) (7, 2) (7, 9) (8, 3) (8, 8) (10, 2) (10, 9) Somit gilt: E(11, 1, 6) = 13. Die Gruppe ist (E(11, 1, 6), ) also zyklisch. Wegen des Satzes von Lagrange ist jedes von O verschiedene Element ein Generator. Im folgenden wird α = (2, 7) als Generator ausgewählt. Da die Gruppe additiv ist, schreiben wir der Einfachheit halber i α anstatt α (i). Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 106 / 138
54 Elliptische Kurven Beispiel Beispiel: E(11, 1, 6) (Forts.) Um 2α = α α zu ermitteln, berechnet man zuerst: Somit: Also: 2α = (5, 2). λ ( ) (2 7) 1 (mod 11) (mod 11) 2 4 (mod 11) 8 (mod 11) x 3 = mod 11 = 5, und y 3 = 8(2 5) 7 mod 11 = 2. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 107 / 138 Elliptische Kurven Beispiel Beispiel: E(11, 1, 6) (Forts.) Insgesamt: α = (2, 7) 2α = (5, 2) 3α = (8, 3) 4α = (10, 2) 5α = (3, 6) 6α = (7, 9) 7α = (7, 2) 8α = (3, 5) 9α = (10, 9) 10α = (8, 8) 11α = (5, 9) 12α = (2, 4) Also ist α = (2, 7) tatsächlich ein Generator von (E(11, 1, 6), ). Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 108 / 138
55 Elliptische Kurven Anwendung: ElGamal-Kryptosystem ElGamal mit (E(11, 1, 6), ) Bob wählt α = (2, 7) und a = 7 aus. Also ist β = 7α = (7, 2). Der Schlüssel ist k = ((2, 7), 7, (7, 2)). Die Verschlüsselungsfunktion ist enc(k, x, z) = (z(2, 7), x z(7, 2)), wobei x E(11, 1, 6) und 0 z 12. Die Entschlüsselungsfunktion ist dec(k, y 1, y 2 ) = y 2 7y 1. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 109 / 138 Elliptische Kurven Anwendung: ElGamal-Kryptosystem ElGamal mit (E(11, 1, 6), ) (Forts.) Angenommen, Alice will Bob den Klartext (10, 9) E(11, 1, 6) senden. Falls sie z = 3 zufällig zieht, dann berechnet sie: und y 1 = 3 (2, 7) = (8, 3) y 2 = (10, 9) 3 (7, 2) = (10, 9) (3, 5) = (10, 2) Der Geheimtext ist y = ((8, 3), (10, 2)). Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 110 / 138
56 Elliptische Kurven Anwendung: ElGamal-Kryptosystem ElGamal mit (E(11, 1, 6), ) (Forts.) Nach Empfang des Geheimtexts y = ((8, 3), (10, 2)) entschlüsselt Bob diesen wie folgt: x = (10, 2) 7 (8, 3) = (10, 2) (3, 5) = (10, 2) (3, 6) = (10, 9) Die Entschlüsselung liefert also den korrekten Klartext x = (10, 9). Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 111 / 138 Elliptische Kurven Implementierungsaspekte Implementierungsaspekte Die Implementierung von ElGamal über Elliptischen Kurven ist problematisch. Bei ElGamal über Z p ist der Geheimtext um den Faktor 2 größer als der Klartext. Bei ElGamal über E(p, a, b) ist der Vergrößerungsfaktor gleich 4. Der Klartextraum besteht aus Paaren in E(p, a, b). Es existiert jedoch keine effiziente deterministische Methode, um diese Paare systematisch zu erzeugen. Verbesserung: Methode von Menezes und Vanstone Idee: Verwende Elliptische Kurven nur zur Maskierung! Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 112 / 138
57 Elliptische Kurven Kryptosystem von Menezes & Vanstone Kryptosystem von Menezes & Vanstone Sei E = E(p, a, b ) eine Elliptische Kurve, wobei p > 3 prim und das DLP für eine Untergruppe H von E schwierig ist. Sei α der Generator dieser Untergruppe. P = Z p Z p, C = E Z p Z p K = {(α, a, β) α E, 2 a H 1, β = a α} Für k = (α, a, β) und eine (geheime) Zufallszahl z Z H und für x = (x 1, x 2 ) Z p Z p definiere enc(k, x, z) = (y 0, y 1, y 2 ) wobei y 0 = z α, (c 1, c 2 ) = z β, und y i = c i x i mod p für i = 1, 2. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 113 / 138 Elliptische Kurven Kryptosystem von Menezes & Vanstone Kryptosystem von Menezes & Vanstone Für einen Geheimtext y = (y 0, y 1, y 2 ), definiere wobei (c 1, c 2 ) = ay 0. dec(k, y) = (y 1 c 1 1 mod p, y 2 c 1 2 mod p) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 114 / 138
58 Digitale Signaturen Einleitung Alice hat Probleme Alice erhält per Post ein teures Laptop vom Online Händler XY, welches sie nie bestellt hat. Sie geht der Sache nach und stellt fest, daß Oskar sie hinters Licht geführt hat. Er hat eine an den Händler gesandt und in ihrem Namen den Laptop bestellt. Um derartige Zwischenfälle in Zukunft zu vermeiden, beschließt Alice, ihre auf elektronischem Wege abzuwickelnden Geschäfte mittels digitaler Signaturen abzusichern. Aber was genau ist eine digitale Signatur? Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 115 / 138 Digitale Signaturen Einleitung Anforderungen an eine digitale Signatur Die Signatur muss fälschungssicher sein. Die Echtheit der Signatur muss effizient überprüfbar sein. Die Signatur darf nicht von einem auf ein anderes Dokument übertragbar sein. Eine Änderung des zur Signatur gehörenden Dokuments muss erkannt werden. Und Vorsicht: Eine digitale Signatur ist keine eingescannte Unterschrift. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 116 / 138
59 Digitale Signaturen Einleitung Definition einer digitalen Signatur Eine digitale Signatur ist gegeben durch ein Tupel (P, S, K, sign, ver) mit folgenden Eigenschaften: P ist die Menge aller Klartexte. S ist die Menge aller Signaturen. K ist die Menge aller Schlüssel. sign : P K S ist der Signierungsalgorithmus. ver : P K S {true, false} ist der Verifikationsalgorithmus. Für alle Klartexte x und alle Schlüssel k gilt: ver(k, x, s) = { true falls s = sign(k, x), false falls s sign(k, x). Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 117 / 138 Digitale Signaturen Einleitung Anwendung einer digitalen Signatur Alice Oskar Bob x x yes sign x, s unsicherer Kanal x, s ver k e k v k v Schlüsselverzeichnis Benutzer Schlüssel Alice k v Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 118 / 138
60 Die RSA Signatur Digitale Signaturen RSA Signatur Das auf dem RSA Kryptosystem beruhende Signaturverfahren ist wie folgt aufgebaut: P = S = Z n, wobei n = pq für hinreichend große Primzahlen p und q { } K = (n, p, q, e, d) n = pq, wobei p, q prim, e d 1 (mod ϕ(n)) Für k = (n, p, q, e, d) K definiere Signierung: s = sign(k, x) = x d mod n wobei x Z n Verifikation: ver(k, x, s) = true x s e (mod n) (n, e) ist der öffentliche Teil, (p, q, d) der geheime Teil des Schlüssels. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 119 / 138 Digitale Signaturen Beispiel RSA Signatur RSA Signatur Alice wählt p = 7 und q = 11 und n = p q = 77. Als geheimen Schlüssel würfelt sie e = 13 und berechnet d = e 1 mod 60 = 37. Um die Nachricht m = 5 zu signieren, berechnet Alice 5 37 mod 77 = 47 und sendet das Paar (5, 47) an Bob. Bob überprüft die Signatur, indem er mod 77 = 5 berechnet. Offensichtlich ist sie korrekt, da das Ergebnis mit der Nachricht identisch ist. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 120 / 138
61 Digitale Signaturen RSA Signatur Verschlüsselung und Signatur Kombiniert man ein Kryptosystem mit einem Signaturverfahren, dann stellt sich die Frage nach Reihenfolge von Verschlüsselung und Signierung. Eine Möglichkeit ist, den Klartext zunächst zu verschlüsseln und anschließend den Geheimtext zu signieren. Alice berechnet y = enc(k B, x) und s = sign(k A, y). Dann sendet sie die Nachricht (y, s) an Bob. Aber: Fängt Oskar die Nachricht ab, dann kann er die Signatur von Alice durch seine eigene ersetzen. Daher empfiehlt es sich, die Nachricht zuerst zu signieren und erst danach zu verschlüsseln. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 121 / 138 Digitale Signaturen RSA Signatur Bemerkungen zur RSA Signatur Die RSA Signatur ist das am häufigsten eingesetzte Signaturverfahren. Die Sicherheit beruht auf der (vermutlich) hohen Komplexität des Faktorisierungsproblems. Der Schlüssel einer digitalen Signatur ist in der Regel länger als bei einem Public Key Kryptosystem. Der Grund ist die zeitlich längere Haltbarkeit von digitalen Signaturen. Anstatt die Nachricht blockweise zu signieren, berechnet man mit einer kryptografischen Hashfunktion eine Prüfsumme und signiert diese. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 122 / 138
62 Digitale Signaturen ElGamal Signatur Signaturen auf Basis von ElGamal Sei p eine Primzahl und α ein Generator von Z p. Das ElGamal Signaturverfahren ist wie folgt definiert: P = Z p, S = Z p Z p 1 K = {(p, α, a, β) 2 a p 2, β α a (mod p)}. Für k = (p, α, a, β) K und eine (geheime) Zufallszahl z Z p 1 definiere: Signierung: sign(k, x, z) = (γ, δ), wobei γ = α z mod p und δ = (x aγ)z 1 mod (p 1). Verifikation: ver(k, (x, γ, δ)) = true genau dann, wenn β γ γ δ α x (mod p) (p, α, β) ist der öffentliche und a der geheime Schlüssel. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 123 / 138 Digitale Signaturen ElGamal Signatur Beispiel zur ElGamal Signatur Sei p = 467, α = 2, a = 127 und somit β = mod 467 = 132. Bob will die Nachricht x = 100 signieren. Hierzu zieht er die Zufallszahl z = 213. Man beachte, daß gcd(213, 466) = 1 und z 1 = 431. Bob berechnet γ = mod 467 = 29 und δ = ( ) 431 mod 466 = 51. Die Signatur von x = 100 ist (γ, δ) = (29, 51). Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 124 / 138
63 Digitale Signaturen ElGamal Signatur Beispiel zur ElGamal Signatur (Forts.) Um zu verifizieren, daß (γ, δ) = (29, 51) die korrekte Signatur von x = 100 ist, berechnet man und (mod 467) (mod 467). Offensichtlich ist die Signatur korrekt. Zur Überprüfung der Signatur wird nur der öffentliche Schlüssel benötigt. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 125 / 138 Digitale Signaturen ElGamal Signatur Korrektheit der ElGamal Signatur Zum Nachweis der Korrektheit verwenden wir die Gleichung aγ + zδ x (mod p 1). Somit ist aγ + zδ = i(p 1) + x für eine ganze Zahl i. Es gilt: β γ γ δ α aγ α zδ (mod p) α aγ+zδ (mod p) α i(p 1)+x (mod p) α x (mod p) Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 126 / 138
64 Digitale Signaturen ElGamal Signatur Achtung: z unbedingt geheim halten! Bei der ElGamal Signatur muss Bob unbedingt darauf achten, daß die Zufallszahl z geheim bleibt. Gelangt z in die Hände von Oskar, dann kann dieser unter Verwendung des öffentlichen Schlüssels den geheimen Schlüssel a berechnen, denn aγ = (x zδ) mod (p 1). Falls γ ein Inverses modulo p 1 besitzt, dann ist das Signaturverfahren gebrochen. Somit kann Oskar beliebige Daten mit Bob s Signatur unterzeichnen. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 127 / 138 Digitale Signaturen ElGamal Signatur Achtung: z nur einmal verwenden! Benutzt Bob ein z zur Signierung zweier verschiedener Nachrichten, dann kann Oskar hieraus a berechnen. Angenommen, (γ 1, δ 1 ) und (γ 2, δ 2 ) sind Signaturen der Nachricht x 1 bzw. x 2, die unter Verwendung derselben Zufallszahl z entstanden sind. Es gilt: γ 1 = γ 2 = α z und δ 1 δ 2 (x 1 x 2 )z 1 (mod p 1). Falls (x 1 x 2 ) mod (p 1) invertierbar ist, dann kann Oskar hieraus z 1 und somit z bestimmen. Aus z berechnet er anschließend den geheimen Schlüssel a. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 128 / 138
65 Digitale Signaturen ElGamal Signatur Bemerkungen zur ElGamal Signatur Die Sicherheit der ElGamal Signatur hängt von der Komplexität des Diskreter Logarithmus ab. Die ElGamal Signatur kann auch auf Basis anderer Gruppen (z.b. elliptischer Kurven) berechnet werden. Obwohl die ElGamal Signatur frei verfügbar ist, wird sie selten eingesetzt. Aus der ElGamal Signatur wurde der Digital Signature Algorithm (DSA) abgeleitet und im Jahre 1991 von der NIST standardisiert. Der DSA nimmt nach der RSA Signatur den zweiten Platz auf der Liste der am meisten eingesetzten Signaturverfahren ein. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 129 / 138 Digitale Signaturen Digital Signature Algorithm (DSA) Digital Signature Algorithm (DSA) Der Digital Signature Algorithm ist eine Variante der ElGamal Signatur. Folgende Modifikationen wurden vorgenommen: Die Berechnungen erfolgen über einer Untergruppe von Z p der Größe q. Hierbei ist q eine 160 Bit Primzahl, die die Zahl p 1 teilt. In der Berechnung von δ wird das durch ein + ersetzt, d.h., δ = (x + aγ)z 1 mod q. Die Verifikation wird abgeändert in α x β γ γ δ (mod p). Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 130 / 138
66 Definition von DSA Digitale Signaturen Digital Signature Algorithm (DSA) Sei p eine 512-bit Primzahl und q eine 160-bit Primzahl, die (p 1) teilt. Sei α Z p ein Element mit α = q. Der Digital Signature Algorithm (DSA) ist wie folgt definiert: P = Z p S = Z q Z q K = {(p, q, α, a, β) 2 a p 2, β α a (mod p)}. Für k = (p, q, α, a, β) K und eine (geheime) Zufallszahl 1 z q 1 definiere: Signierung: sign(k, x, z) = (γ, δ), wobei γ = (α z mod p) mod q und δ = (x + aγ)z 1 mod q. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 131 / 138 Digitale Signaturen Definition von DSA (Forts.) Digital Signature Algorithm (DSA) Verifikation: Für x Z p und γ, δ Z q werden die folgenden Berechnungen durchgeführt: e 1 = xδ 1 (mod q) e 2 = γδ 1 (mod q) ver(k, (x, γ, δ)) = true genau dann, wenn (α e 1 β e 2 mod p) mod q = γ (p, q, α, β) ist der öffentliche und a der geheime Schlüssel. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 132 / 138
67 Digitale Signaturen Digital Signature Algorithm (DSA) Generierung der DSA Parameter Zur Erstellung des DSA Schlüssels führt Alice die folgenden Schritte aus: 1. Wähle eine Primzahl q mit q Wähle eine Zahl t mit 0 t 8 und eine Primzahl t < p < t mit der Eigenschaft, daß q die Zahl (p 1) teilt. 3. Wähle ein g Z p und berechne α = g (p 1)/q mod p. Wiederhole diesen Vorgang solange, bis α Wähle eine Zufallszahl a mit 1 a q Berechne β = α a mod p. Anschließend veröffentlicht Alice den öffentlichen Schlüssel (p, q, α, β). Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 133 / 138 Digitale Signaturen Digital Signature Algorithm (DSA) Beispiel zu DSA Angenommen, q = 101 und p = 78q + 1 = Die Zahl 3 ist ein Generator von Z Wir wählen daher α = 3 78 mod 7879 = 170. Der geheime Teil des Schlüssels ist a = 75. Somit ist β = α a mod 7879 = mod 7879 = Bob will die Nachricht x = 1234 signieren. Hierzu zieht er die Zufallszahl z = 50 und berechnet z 1 mod 101 = 99. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 134 / 138
68 Digitale Signaturen Digital Signature Algorithm (DSA) Beispiel zu DSA (Forts.) Anschließend berechnet er die Signatur: γ = ( mod 7879) mod 101 = 2518 mod 101 = 94 δ = ( ) 99 mod 101 = 97 Die Signatur (94, 97) der Nachricht 1234 wird wie folgt verifiziert: δ 1 = 97 1 mod 101 = 25 e 1 = mod 101 = 45 e 2 = mod 101 = 27 Somit ( mod 7879) mod 101 = 2518 mod 101 = 94. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 135 / 138 Zusammenfassung Vorteile von Public Key Kryptosystemen Vorteile von Public Key Kryptosystemen Nur der private Schlüssel muss geheimgehalten werden. Der öffentliche Schlüssel ist für jedermann verfügbar. Abhängig von der Art der Nutzung bleibt das Schlüsselpaar über lange Zeit unverändert. Aus Public Key Kryptosystemen lassen sich effiziente Signaturmechanismen ableiten. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 136 / 138
69 Zusammenfassung Nachteile von Public Key Kryptosystemen Nachteile von Public Key Kryptosystemen Der Datendurchsatz ist bei Public Key Kryptosystemen in der Regel deutlich niedriger als bei Symmetrischen Kryptosystemen. Für Public Key Kryptografie werden längere Schlüssel benötigt als für symmetrische Kryptografie. Für keines der Public Key Kryptosysteme konnte die Sicherheit bewiesen werden. Alle Public Key Kryptosysteme basieren auf einer Handvoll mathematischer Probleme. Public Key Kryptosysteme gibt es erst seit den 1970er Jahren. Sie sind daher relativ unerforscht. Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 137 / 138 Zusammenfassung Zusammenfassung Public Key Kryptosysteme lösen eine Vielzahl kryptografischer Fragestellungen, die man mit symmetrischen Systemen nicht lösen kann Public Key Kryptosysteme basieren auf einer kleinen Auswahl von zahlentheoretischen Problemen Für keines der obigen Kryptosysteme konnte die Sicherheit bewiesen werden Die in Public Key Kryptosystemen eingesetzten Techniken werden auch für die Entwicklung von kryptografischen Protokollen eingesetzt Prof. Dr. C. Karg (HS Aalen) Kryptographische Algorithmen Public Key Kryptosysteme 138 / 138
Kryptographische Algorithmen
Kryptographische Algorithmen Lerneinheit 6: Public Key Kryptosysteme Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2016/2017 19.9.2016 Public Key Kryptosysteme Einleitung
3: Zahlentheorie / Primzahlen
Stefan Lucks Diskrete Strukturen (WS 2009/10) 96 3: Zahlentheorie / Primzahlen 3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 97 Definition 37 (Teiler, Vielfache, Primzahlen,
Public-Key-Verschlüsselung und Diskrete Logarithmen
Public-Key-Verschlüsselung und Diskrete Logarithmen Carsten Baum Institut für Informatik Universität Potsdam 10. Juni 2009 1 / 30 Inhaltsverzeichnis 1 Mathematische Grundlagen Gruppen, Ordnung, Primitivwurzeln
RSA Verfahren. Kapitel 7 p. 103
RSA Verfahren RSA benannt nach den Erfindern Ron Rivest, Adi Shamir und Leonard Adleman war das erste Public-Key Verschlüsselungsverfahren. Sicherheit hängt eng mit der Schwierigkeit zusammen, große Zahlen
Public-Key Kryptographie mit dem RSA Schema. Torsten Büchner
Public-Key Kryptographie mit dem RSA Schema Torsten Büchner 7.12.2004 1.Einleitung 1. symmetrische-, asymmetrische Verschlüsselung 2. RSA als asymmetrisches Verfahren 2.Definition von Begriffen 1. Einwegfunktionen
Asymmetrische Kryptographie u
Asymmetrische Kryptographie u23 2015 Simon, Florob e.v. https://koeln.ccc.de Cologne 2015-10-05 1 Zahlentheorie Modulare Arithmetik Algebraische Strukturen Referenzprobleme 2 Diffie-Hellman Diffie-Hellman-Schlüsselaustausch
Probabilistische Primzahltests
23.01.2006 Motivation und Überblick Grundsätzliches Vorgehen Motivation und Überblick Als Primzahltest bezeichnet man ein mathematisches Verfahren, mit dem ermittelt wird, ob eine gegebene Zahl eine Primzahl
Algorithmentheorie Randomisierung. Robert Elsässer
Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten
Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik
Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Übersicht Zwecke der Krytographie Techniken Symmetrische Verschlüsselung( One-time Pad,
Das RSA Kryptosystem
Kryptografie Grundlagen RSA Institut für Mathematik Technische Universität Berlin Kryptografie Grundlagen RSA mit geheimem mit öffentlichem Schlüssel Realisierung Kryptografie mit geheimem Schlüssel Alice
$Id: ring.tex,v /05/03 15:13:26 hk Exp $
$Id: ring.tex,v 1.13 2012/05/03 15:13:26 hk Exp $ 3 Ringe 3.1 Der Ring Z m In der letzten Sitzung hatten wir die sogenannten Ringe eingeführt, dies waren Mengen A versehen mit einer Addition + und einer
Vortrag zum Proseminar: Kryptographie
Vortrag zum Proseminar: Kryptographie Thema: Oliver Czernik 6.12.2005 Historie Michael Rabin Professor für Computerwissenschaft Miller-Rabin-Primzahltest Januar 1979 April 1977: RSA Asymmetrisches Verschlüsselungssystem
Das RSA-Verfahren. Armin Litzel. Proseminar Kryptographische Protokolle SS 2009
Das RSA-Verfahren Armin Litzel Proseminar Kryptographische Protokolle SS 2009 1 Einleitung RSA steht für die drei Namen Ronald L. Rivest, Adi Shamir und Leonard Adleman und bezeichnet ein von diesen Personen
4: Algebraische Strukturen / Gruppen
Stefan Lucks Diskrete Strukturen (WS 2009/10) 120 4: Algebraische Strukturen / Gruppen Definition 46 Sei G eine nichtleere Menge. Eine Funktion : G G G bezeichnen wir als Verknüpfung auf G. Das Paar (G,
Wiederholung. Symmetrische Verfahren: klassische Verfahren / grundlegende Prinzipien: Substitution, Transposition, One-Time-Pad DES AES
Wiederholung Symmetrische Verfahren: klassische Verfahren / grundlegende Prinzipien: Substitution, Transposition, One-Time-Pad DES AES Mathematische Grundlagen: algebraische Strukturen: Halbgruppe, Monoid,
Vorlesung Diskrete Strukturen Gruppe und Ring
Vorlesung Diskrete Strukturen Gruppe und Ring Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden [email protected] WS 2009/10 1 Bernhard Ganter, TU Dresden Modul Einführung in
IT-Sicherheit: Kryptographie. Asymmetrische Kryptographie
IT-Sicherheit: Kryptographie Asymmetrische Kryptographie Fragen zur Übung 5 C oder Java? Ja (gerne auch Python); Tips waren allerdings nur für C Wie ist das mit der nonce? Genau! (Die Erkennung und geeignete
Public-Key-Kryptographie
Kapitel 2 Public-Key-Kryptographie In diesem Kapitel soll eine kurze Einführung in die Kryptographie des 20. Jahrhunderts und die damit verbundene Entstehung von Public-Key Verfahren gegeben werden. Es
Kommunikationsalgorithmus RSA
Kommunikationsalgorithmus RSA Herr Maue Ergänzungsfach Informatik Neue Kantonsschule Aarau Früjahrsemester 2015 24.04.2015 EFI (Hr. Maue) Kryptographie 24.04.2015 1 / 26 Programm heute 1. Verschlüsselungsverfahren
Entwicklung der Asymmetrischen Kryptographie und deren Einsatz
Entwicklung der Asymmetrischen Kryptographie und deren Einsatz Peter Kraml, 5a hlw Facharbeit Mathematik Schuljahr 2013/14 Caesar-Verschlüsselung Beispiel Verschiebung der Buchstaben im Alphabet sehr leicht
AES und Public-Key-Kryptographie
Jens Kubieziel [email protected] Friedrich-Schiller-Universität Jena Fakultät für Mathem atik und Informatik 22. Juni 2009 Beschreibung des Algorithmus Angriffe gegen AES Wichtige Algorithmen im 20. Jahrhundert
Public-Key-Kryptosystem
Public-Key-Kryptosystem Zolbayasakh Tsoggerel 29. Dezember 2008 Inhaltsverzeichnis 1 Wiederholung einiger Begriffe 2 2 Einführung 2 3 Public-Key-Verfahren 3 4 Unterschiede zwischen symmetrischen und asymmetrischen
Ganzzahlige Division mit Rest
Modulare Arithmetik Slide 1 Ganzzahlige Division mit Rest Für a,b Æ mit a b gibt es stets eine Zerlegung von a der Form a = q b+r mit 0 r b 1. Hierbei gilt q = a b (salopp formuliert: b passt q-mal in
Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1
Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1 1 Primzahltest 1.1 Motivation Primzahlen spielen bei zahlreichen Algorithmen, die Methoden aus der Zahlen-Theorie verwenden, eine zentrale Rolle. Hierzu
11. Das RSA Verfahren und andere Verfahren
Chr.Nelius: Kryptographie (SS 2011) 31 11. Das RSA Verfahren und andere Verfahren Eine konkrete Realisierung eines Public Key Kryptosystems ist das sog. RSA Verfahren, das im Jahre 1978 von den drei Wissenschaftlern
Technikseminar SS2012
Technikseminar SS2012 ECC - Elliptic Curve Cryptography Kryptosysteme basierend auf elliptischen Kurven 11.06.2012 Gliederung Was ist ECC? ECC und andere Verfahren Diffie-Hellman-Schlüsselaustausch Funktionsweise
Kleiner Fermatscher Satz, Chinesischer Restsatz, Eulersche '-Funktion, RSA
Kleiner Fermatscher Satz, Chinesischer Restsatz, Eulersche '-Funktion, RSA Manfred Gruber http://www.lrz-muenchen.de/~gruber SS 2009, KW 15 Kleiner Fermatscher Satz Satz 1. Sei p prim und a 2 Z p. Dann
KRYPTOSYSTEME & RSA IM SPEZIELLEN
KRYPTOSYSTEME & RSA IM SPEZIELLEN Kryptosysteme allgemein Ein Kryptosystem ist eine Vorrichtung oder ein Verfahren, bei dem ein Klartext mithilfe eines Schlüssels in einen Geheimtext umgewandelt wird (Verschlüsselung)
Kryptographische Verfahren auf Basis des Diskreten Logarithmus
Kryptographische Verfahren auf Basis des Diskreten Logarithmus -Vorlesung Public-Key-Kryptographie SS2010- Sascha Grau ITI, TU Ilmenau, Germany Seite 1 / 18 Unser Fahrplan heute 1 Der Diskrete Logarithmus
SCHRIFTLICHE ZUSAMMENFASSUNG ZUM VORTRAG DIE GRUNDLAGEN DER RSA-VERSCHLÜSSELUNG VON DANIEL METZSCH
SCHRIFTLICHE ZUSAMMENFASSUNG ZUM VORTRAG DIE GRUNDLAGEN DER RSA-VERSCHLÜSSELUNG VON DANIEL METZSCH Freie Universität Berlin Fachbereich für Mathematik & Informatik Institut für Mathematik II Seminar über
Wiederholung Symmetrische Verschlüsselung klassische Verfahren: Substitutionschiffren Transpositionschiffren Vigenère-Chiffre One-Time-Pad moderne
Wiederholung Symmetrische Verschlüsselung klassische Verfahren: Substitutionschiffren Transpositionschiffren Vigenère-Chiffre One-Time-Pad moderne Verfahren: DES (Feistel-Chiffre) mehrfache Wiederholung
Digitale Unterschriften mit ElGamal
Digitale Unterschriften mit ElGamal Seminar Kryptographie und Datensicherheit Institut für Informatik Andreas Havenstein Inhalt Einführung RSA Angriffe auf Signaturen und Verschlüsselung ElGamal Ausblick
Einführung in Computer Microsystems
Einführung in Computer Microsystems Kapitel 9 Entwurf eines eingebetteten Systems für Anwendungen in der IT-Sicherheit Prof. Dr.-Ing. Sorin A. Huss Fachbereich Informatik Integrierte Schaltungen und Systeme
Pollards Rho-Methode zur Faktorisierung
C A R L V O N O S S I E T Z K Y Pollards Rho-Methode zur Faktorisierung Abschlusspräsentation Bachelorarbeit Janosch Döcker Carl von Ossietzky Universität Oldenburg Department für Informatik Abteilung
Primzahlen. Herbert Koch Mathematisches Institut Universität Bonn Die Primfaktorzerlegung. a = st
Primzahlen Herbert Koch Mathematisches Institut Universität Bonn 12.08.2010 1 Die Primfaktorzerlegung Wir kennen die natürlichen Zahlen N = 1, 2,..., die ganzen Zahlen Z, die rationalen Zahlen (Brüche
n ϕ n
1 3. Teiler und teilerfremde Zahlen Euler (1707-1783, Gymnasium und Universität in Basel, Professor für Physik und Mathematik in Petersburg und Berlin) war nicht nur einer der produktivsten Mathematiker
Datensicherheit durch Kryptographie
Datensicherheit durch Kryptographie Dr. Michael Hortmann Fachbereich Mathematik, Universität Bremen T-Systems [email protected] 1 Kryptographie: Klassisch: Wissenschaft und Praxis der Datenverschlüsselung
Computeralgebra in der Lehre am Beispiel Kryptografie
Kryptografie Grundlagen RSA KASH Computeralgebra in der Lehre am Beispiel Kryptografie Institut für Mathematik Technische Universität Berlin Kryptografie Grundlagen RSA KASH Überblick Kryptografie mit
IT-Sicherheit Kapitel 3 Public Key Kryptographie
IT-Sicherheit Kapitel 3 Public Key Kryptographie Dr. Christian Rathgeb Sommersemester 2013 1 Einführung In der symmetrischen Kryptographie verwenden Sender und Empfänger den selben Schlüssel die Teilnehmer
Lösung zur Klausur zu Krypographie Sommersemester 2005
Lösung zur Klausur zu Krypographie Sommersemester 2005 1. Bestimmen Sie die zwei letzten Ziffern der Dezimaldarstellung von 12 34 Es gilt: 12 34 = 12 32+2 = 12 32 12 2 = 12 (25) 12 2 = ((((12 2 ) 2 ) 2
Einführung in die Kryptographie. 20.6.2011, www.privacyfoundation.ch
Einführung in die Kryptographie 20.6.2011, www.privacyfoundation.ch Kryptographie Name kryptós: verborgen, geheim gráphein: schreiben Verschlüsselung Text so umwandeln, dass man ihn nur noch entziffern/lesen
Diffie-Hellman, ElGamal und DSS. Vortrag von David Gümbel am 28.05.2002
Diffie-Hellman, ElGamal und DSS Vortrag von David Gümbel am 28.05.2002 Übersicht Prinzipielle Probleme der sicheren Nachrichtenübermittlung 'Diskreter Logarithmus'-Problem Diffie-Hellman ElGamal DSS /
Kryptographie. ein erprobter Lehrgang. AG-Tagung Informatik, April 2011 Alfred Nussbaumer, LSR für NÖ. LSR für NÖ, 28. April 2011 Alfred Nussbaumer
Kryptographie ein erprobter Lehrgang AG-Tagung Informatik, April 2011 Alfred Nussbaumer, LSR für NÖ 1 Variante: Kryptographie in 5 Tagen Ein kleiner Ausflug in die Mathematik (Primzahlen, Restklassen,
Einführung in die Kryptographie
Ä Johannes Buchmann Einführung in die Kryptographie Dritte, erweiterte Auflage Inhaltsverzeichnis 1. Einleitung 1 2. Ganze Zahlen 3 2.1 Grundlagen 3 2.2 Teilbarkeit 4 2.3 Darstellung ganzer Zahlen 5 2.4
Diffie-Hellman, RSA, etc.
Diffie-Hellman, RSA, etc. mathematische Grundlagen asymmetrischer Verschlüsselungsverfahren Sven Moritz Hallberg [email protected] SIGINT 09, 22. 24. Mai 2009 Zusammenfassung Inzwischen sind kryptographische
Kryptografische Protokolle
Kryptografische Protokolle Lerneinheit 6: Elektronisches Geld Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 14.6.2016 Anforderungen an elektronisches Geld Sicherheit:
Lenstras Algorithmus für Faktorisierung
Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit
Prima Zahlen? Primzahlen
Prima Zahlen? Primzahlen 10. Dezember 2009 Willi More [email protected] I n s t i t u t f ü r M a t h e m a t i k Überblick 1/ Primzahlen 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,
Kryptografische Protokolle
Kryptografische Protokolle Lerneinheit 5: Authentifizierung Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2015 19.6.2015 Einleitung Einleitung Diese Lerneinheit hat Protokolle
13. Der diskrete Logarithmus
13. Der diskrete Logarithmus 13.1. Definition. Sei p eine Primzahl. Wie wir in 9 bewiesen haben, ist die multiplikative Gruppe F p des Körpers F p = Z/p zyklisch. Sei g ein erzeugendes Element von F p
Ein RSA verwandtes, randomisiertes Public Key Kryptosystem
Seminar Codes und Kryptographie WS 2003 Ein RSA verwandtes, randomisiertes Public Key Kryptosystem Kai Gehrs Übersicht 1. Motivation 2. Das Public Key Kryptosystem 2.1 p-sylow Untergruppen und eine spezielle
Konzepte von Betriebssystemkomponenten: Schwerpunkt Sicherheit. Asymmetrische Verschlüsselung, Digitale Signatur
Konzepte von Betriebssystemkomponenten: Schwerpunkt Sicherheit Thema: Asymmetrische Verschlüsselung, Digitale Signatur Vortragender: Rudi Pfister Überblick: Asymmetrische Verschlüsselungsverfahren - Prinzip
Der RSA-Algorithmus. 2. Anschließend ist n = p q und ϕ (n) = (p 1) (q 1) zu berechnen.
Kapitel 4 Der RSA-Algorithmus Der RSA-Algorithmus ist das heute bekannteste Verfahren aus der Familie der Public-Key-Kryptosysteme. Es wurde 1978 der Öffentlichkeit vorgestellt und gilt bis heute als der
Verschlüsselung. Chiffrat. Eve
Das RSA Verfahren Verschlüsselung m Chiffrat m k k Eve? Verschlüsselung m Chiffrat m k k Eve? Aber wie verteilt man die Schlüssel? Die Mafia-Methode Sender Empfänger Der Sender verwendet keine Verschlüsselung
1 Das RSA-Verfahren und seine algorithmischen Grundlagen
1 Das RSA-Verfahren und seine algorithmischen Grundlagen Das wichtigste d. h., am weitesten verbreitete und am meisten analysierte asymmetrische Verfahren ist das RSA-Verfahren, benannt nach seinen Erfindern
3 Das RSA-Kryptosystem
Stand: 15.12.2014 Vorlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 3 Das RSA-Kryptosystem RSA: Erfunden von Ronald L. Rivest, Adi Shamir und Leonard Adleman, 1977. (Ein ähnliches Verfahren
Grundlagen der Kryptographie
Grundlagen der Kryptographie Seminar zur Diskreten Mathematik SS2005 André Latour [email protected] 1 Inhalt Kryptographische Begriffe Primzahlen Sätze von Euler und Fermat RSA 2 Was ist Kryptographie?
Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik
Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Übersicht Zwecke der Kryptographie Techniken Symmetrische Verschlüsselung (One-time Pad,
MGI Exkurs: RSA-Kryptography
MGI Exkurs: RSA-Kryptography Prof. Dr. Wolfram Conen WS 05/06, 14.+17.10.2005 Version 1.0 Version 1.0 1 Angenommen, Sie heißen ALICE...... haben Geheimnisse......und wollen mit einem Bekannten namens BOB
1 Zahlentheorie. 1.1 Kongruenzen
3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern
Primzahlen. Die Zahl 1 ist weder prim noch zusammengesetzt. Es gilt: N=P Z {1} Definition: (Primzahlen) Definition: (zusammengesetzte Zahlen)
Primzahlen Definition: (Primzahlen) Definition: (zusammengesetzte Zahlen) Die Zahl 1 ist weder prim noch zusammengesetzt. Es gilt: N=P Z {1} 22 Primzahlen Definition: (Mersenne-Primzahlen) Eine Mersenne-Primzahl
Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens
Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................
kgv-berechnung Invertieren modulo m Simultane Kongruenzen Restklassenringe Modulare Arithmetik Euler sche Funktion Sätze von Fermat und Euler
Modulare Arithmetik Slide 5 kgv-berechnung Invertieren modulo m Simultane Kongruenzen Restklassenringe Modulare Arithmetik Euler sche Funktion Sätze von Fermat und Euler Modulare Arithmetik Slide 6 kgv-berechnung
Hast du auch wirklich versucht, die Aufgaben einmal selbständig zu lösen? Wenn nicht, tue es, bevor du dir die Lösungen anschaust!
Chr.Nelius: Zahlentheorie (SoSe 2016) 1 14. Aufgabenblatt ZAHLENTHEORIE (für Master G und HRG) Lösungen Hast du auch wirklich versucht, die Aufgaben einmal selbständig zu lösen? Wenn nicht, tue es, bevor
Konzepte von Betriebssystem-Komponenten: Schwerpunkt Sicherheit Grundlagen: Asymmetrische Verschlüsslung, Digitale Signatur
Konzepte von Betriebssystem-Komponenten: Schwerpunkt Sicherheit Grundlagen: Asymmetrische Verschlüsslung, Digitale Signatur Rudi Pfister [email protected] Public-Key-Verfahren
Musterlösung zur Probeklausur zur Angewandten Diskreten Mathematik Dr. Hartmut Lanzinger, Hans- Peter Reck
Musterlösung zur Probeklausur zur Angewandten Diskreten Mathematik Dr. Hartmut Lanzinger, Hans- Peter Reck Gesamtpunktzahl: 114 Punkte, 100 Punkte= 100 %, keine Abgabe 1. Es seien m = 1155 und n = 1280.
Angewandte Kryptographie
Angewandte Kryptographie 3. Asymmetrische Verfahren Netzwerksicherheit WS 2001/2002 Jean-Marc Piveteau 1. Die Public Key -Revolution Angewandte Kryptographie Kapitel 2 2 Symmetrische Kryptographie: Die
Modul Diskrete Mathematik WiSe 2011/12
1 Modul Diskrete Mathematik WiSe 2011/12 Ergänzungsskript zum Kapitel 4.2. Hinweis: Dieses Manuskript ist nur verständlich und von Nutzen für Personen, die regelmäßig und aktiv die zugehörige Vorlesung
5 Codierung nach RSA (Lösung)
Kapitel 5 Codierung nach RSA (Lösung) Seite 1/17 5 Codierung nach RSA (Lösung) 5.1 Einführung Die drei Mathematiker Rivest, Shamir und Adleman entwickelten 1977 das nach ihnen benannte RSA-Verfahren. Es
11. Übung zur Vorlesung. Zahlentheorie. im Wintersemester 2015/16
11. Übung zur Vorlesung Aufgabe 41. Zeige, dass das Polynom (X 2 13)(X 2 17)(X 2 13 17) Z[X] modulo jeder natürlichen Zahl n N eine Nullstelle hat, aber keine Nullstelle in Z besitzt. Aufgabe 42. Sei p
Kryptographie: Verteidigung gegen die dunklen Künste in der digitalen Welt
Kryptographie: Verteidigung gegen die dunklen Künste in der digitalen Welt Prof. Dr. Rüdiger Weis Beuth Hochschule für Technik Berlin Tag der Mathematik 2015 Flächendeckendes Abhören Regierungen scheitern
10. Public-Key Kryptographie
Stefan Lucks 10. PK-Krypto 274 orlesung Kryptographie (SS06) 10. Public-Key Kryptographie Analyse der Sicherheit von PK Kryptosystemen: Angreifer kennt öffentlichen Schlüssel Chosen Plaintext Angriffe
Public-Key Verschlüsselung
Public-Key Verschlüsselung Björn Thomsen 17. April 2006 Inhaltsverzeichnis 1 Einleitung 2 2 Wie funktioniert es 2 3 Vergleich mit symmetrischen Verfahren 3 4 Beispiel: RSA 4 4.1 Schlüsselerzeugung...............................
Prof. Dr. H. Brenner Osnabrück SS Zahlentheorie. Vorlesung 4. Die Restklassenringe Z/(n)
Prof. Dr. H. Brenner Osnabrück SS 2008 Zahlentheorie Vorlesung 4 Die Restklassenringe Z/(n) Satz 4.1. (Einheiten modulo n) Genau dann ist a Z eine Einheit modulo n (d.h. a repräsentiert eine Einheit in
Proseminar: Electronic Commerce und Digitale Unterschriften Public-Key-Kryptographie
Proseminar: Electronic Commerce und Digitale Unterschriften Public-Key-Kryptographie Ziele der Kryptographie 1. Vertraulichkeit (Wie kann man Nachrichten vor Fremden geheim halten?) 2. Integrität (Wie
DLP. Adolphe Kankeu Tamghe [email protected] ALZAGK SEMINAR. Bremen, den 18. Januar 2011. Fachbereich Mathematik und Informatik 1 / 27
DLP Adolphe Kankeu Tamghe [email protected] Fachbereich Mathematik und Informatik ALZAGK SEMINAR Bremen, den 18. Januar 2011 1 / 27 Inhaltsverzeichnis 1 Der diskrete Logarithmus Definition
Probabilistische Primzahlensuche. Marco Berger
Probabilistische Primzahlensuche Marco Berger April 2015 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 4 1.1 Definition Primzahl................................ 4 1.2 Primzahltest...................................
Kryptographie. nur mit. Freier Software!
Michael Stehmann Kryptographie nur mit Freier Software! Kurze Einführung in Kryptographie ErsterTeil: Bei der Kryptographie geht es um die Zukunft von Freiheit und Demokratie Artur P. Schmidt, 1997 http://www.heise.de/tp/artikel/1/1357/1.html
8 Komplexitätstheorie und Kryptologie
8 Komplexitätstheorie und Kryptologie Verschlüsselung, Authentisierung,... müssen schnell berechenbar sein. Formal: polynomiell zeitbeschränkte Funktionen/Algorithmen Angreifer hat beschränkte Ressourcen.
Vorlesung IT-Sicherheit FH Frankfurt Sommersemester 2007
Vorlesung IT-Sicherheit FH Frankfurt Sommersemester 2007 Dr. Volker Scheidemann Teil 5 Schlüsselverteilung Public Key Kryptographie Idee der digitalen Signatur Diffie-Hellman Schlüsselaustausch RSA-Verfahren
1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben?
Die Themen 1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben? Er sollte von wirklichen Zufallsgeneratoren nicht unterscheidbar sein?! Eine viel zu starke Forderung: Stattdessen sollte ein
5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)
Technische Universität München Zentrum Mathematik PD Dr. hristian Karpfinger http://www.ma.tum.de/mathematik/g8vorkurs 5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12) Aufgabe 5.1: In einer Implementierung
2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik
Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,
5 Grundlagen der Zahlentheorie
5 Grundlagen der Zahlentheorie 1 Primfaktorzerlegung Seienm, n N + := {k N k > 0} Man schreibt n n, gesprochen m teilt n oder m ist ein Teiler von n, wenn es eine positive natürliche Zahl k gibt mit mk
Das RSA-Kryptosystem
www.mathematik-netz.de Copyright, Page 1 of 12 Das RSA-Kryptosystem Um dieses Dokument verstehen zu können benötigt der Leser nur grundlegende Kenntnisse der Algebra und ein gewisses mathematisches Verständnis.
Sicherheit von ElGamal
Sicherheit von ElGamal Satz CPA-Sicherheit ElGamal ElGamal Π ist CPA-sicher unter der DDH-Annahme. Beweis: Sei A ein Angreifer auf ElGamal Π mit Erfolgsws ɛ(n) := Ws[PubK cpa A,Π (n) = 1]. Wir konstruieren
Von Cäsar bis RSA. Chiffrierung von der 1. bis zur 8. Klasse. Dr. Anita Dorfmayr Universität Wien. Lehrerfortbildungstag der ÖMG Wien, 13.
Von Cäsar bis RSA Chiffrierung von der 1. bis zur 8. Klasse Dr. Anita Dorfmayr Universität Wien Lehrerfortbildungstag der ÖMG Wien, 13. April 2007 Gliederung Einführung Geschichte Zielsetzungen der Kryptografie
Zahlentheorie, Arithmetik und Algebra I
Zahlentheorie, Arithmetik und Algebra I Viktoria Ronge 04.06.2014 Viktoria Ronge Zahlentheorie, Arithmetik und Algebra I 04.06.2014 1 / 63 Übersicht 1 Modulare Arithmetik 2 Primzahlen 3 Verschiedene Teiler
3.5 Ringe und Körper. Diese Eigenschaften kann man nun auch. 1. (R, +) ist eine kommutative Gruppe. 2. Es gilt das Assoziativgesetz bezüglich.
3.5 Ringe und Körper Gehen wir noch mal zu den ganzen Zahlen zurück. Wir wissen: (Z, + ist eine Gruppe, es gibt aber als Verknüpfung noch die Multiplikation, es gibt ein neutrales Element bezüglich, es
Kryptographie eine erste Ubersicht
Kryptographie eine erste Ubersicht KGV bedeutet: Details erfahren Sie in der Kryptographie-Vorlesung. Abgrenzung Steganographie: Das Kommunikationsmedium wird verborgen. Klassische Beispiele: Ein Bote
Kryptographie Reine Mathematik in den Geheimdiensten
Kryptographie Reine Mathematik in den Geheimdiensten Priska Jahnke 10. Juli 2006 Kryptographie Reine Mathematik in den Geheimdiensten Kryptographie (Kryptologie) = Lehre von den Geheimschriften Kaufleute,
Stichpunktezettel fürs Tutorium
Stichpunktezettel fürs Tutorium Moritz und Dorian 11. November 009 1 Kleiner Fermat Behauptung. Seien a, b N relativ prim und b eine Primzahl. Dann ist a b 1 = 1. Beweis. Wir definieren die Funktion f
Einwegfunktionen mit und ohne Falltür
Technikseminar SS 2012 Thema: Einwegfunktionen mit und ohne Falltür Eingereicht von: Bjarne Adam, B_Wing 8875 Neuhausweg 5 21368 Dahlenburg Referent(FH Wedel): Prof. Dr. Michael Anders Fachhochschule Wedel
Asymmetrische. Verschlüsselungsverfahren. erarbeitet von: Emilia Winkler Christian-Weise-Gymnasium Zittau
Asymmetrische Verschlü erarbeitet von: Emilia Winkler Christian-Weise-Gymnasium Zittau Gliederung 1) Prinzip der asymmetrischen Verschlü 2) Vergleich mit den symmetrischen Verschlü (Vor- und Nachteile)
RSA-Verschlüsselung. von Johannes Becker Gießen 2006/2008
RSA-Verschlüsselung von Johannes Becker Gießen 2006/2008 Zusammenfassung Es wird gezeigt, wieso das nach Ronald L. Rivest, Adi Shamir und Leonard Adleman genannte RSA-Krptosstem funktioniert, das mittlerweile
