Public Key Kryptographie mit dem RSA Schema Karsten
Public Key Kryptographie mit dem RSA Schema Karsten Fischer, Sven Kauer
Gliederung I. Historischer Hintergrund II. Public Key Kryptographie III. Beispielszenario IV. Einweg-Funktion V. RSA Verfahren VI. Algorithmus VII. Beispiel VIII. Signieren von Nachrichten IX. Schwächen des RSA X. Angriffe auf den RSA XI. Einsatzgebiete XII. Zusammenfassung XIII. Quellen 2
Historischer Hintergrund • Bis in die 70 er symmetrische Verfahren → Problem der Schlüsselverteilung • 1976 Theorie über asymmetrische Verschlüsselung • 1977 RSA am MIT (Rivest, Shamir, Adleman) • 1980 durch RSA Data Security Inc. patentiert • 1991 implemetiert in PGP durch Phil Zimmermann • 2000 US-Patent läuft aus → RSA weltweit einsetzbar 3
Public Key Kryptographie Theorie von W. Diffie und M. Hellman, 1976 Asymmetrisches Verfahren: • zwei verschiedene Schlüssel: 1. Kodierung einer Nachricht 2. Dekodierung einer Nachricht • Kodierungsschlüssel soll keine Schlüsse auf den Dekodierungsschlüssel zulassen 4
Public Key Kryptographie Public Key-Prinzip: • (wichtige) asymmetrischen Variante • Kodierungsschlüssel öffentlich (public key) • Dekodierungsschlüssel geheim (private key) 5
Public Key Kryptographie Public Key-Prinzip: jeder Teilnehmer T hat folgende Schlüssel: • Public Key E = ET (Encryption) • Private Key D = DT (Decryption) Eigenschaften der Schlüssel: 1. für jede Nachricht m gilt: D(E(m)) = m und E(D(m)) = m 2. privater Schlüssel D (praktisch) nicht aus Schlüssel E zu erschließen. 6
Beispielszenario Vorbereitungen: • Kommunikationsgruppe • Jeder Teilnehmer T bekommt Schlüsselpaar (ET, DT) • Schlüsselpaare der Teilnehmer sind verschieden • Schlüssel E wird verteilt (Publikationsorgan/Zertifizierungsstelle) • Schlüssel D bleibt geheim 7
Beispielszenario Senden und Empfang: • A will B die Nachricht m Schicken • A sucht Schlüssel EB von B heraus • A verschlüsselt m mittels EB • A verschickt EB(m) an B • B entschlüsselt mit DB(m): DB(EB(m)) = m 8
Beispielszenario Sicherheit: • Kein anderer Teilnehmer kann EB(m) entschlüsseln, weil ihm DB von B fehlt Analogie: Briefkasten: • jeder kann Post in den Briefkasten einwerfen • nur Briefkastenbesitzer kann sie herausholen • Public Key E → Namensschild • Private Key D → Briefkastenschlüssel 9
Einweg-Funktionen Kodierungsschlüssel soll keine Schlüsse auf den Dekodierungsschlüssel zulassen ↓ Suche eine bijektive Funktion f(x) = y, die folgende Anforderungen erfüllt: 1. einfache Berechnung von y bei bekanntem x 2. schwere Berechnung von x bei bekanntem y ↓ „Einweg-Funktionen“ (Trapdoor-functions) 10
Einweg-Funktionen Def: Eine umkehrbar eindeutige ("bijektive") Funktion f: A→ B mit x → y = f (x) heißt Einweg-Funktion, wenn der Funktionswert y relativ leicht aus dem Argument x berechnet werden kann, wenn es aber andererseits bei Kenntnis von y nur mit sehr großem Aufwand möglich ist, das Argument x zu ermitteln, das zum Funktionswert y gehört. 11
Einweg-Funktionen Analogie: Telefonbuch (einer großen Stadt) • Funktion f ermittelt Telefonnummer x aus Namen y → Nachschlagen (TB ist alphabetisch sortiert) • Umkehrfunktion f -1 nur sehr aufwendig („ermittele Name y zur Telefonnummer x“) → nach Nummern sortiertes TB? 12
Einweg-Funktionen Einige Einwegfunktionen: • Faktorisierung: y = x 1 ∙ x 2 • Diskreter Logarithmus: y = bx mod n • Diskrete Wurzel: y = xa mod n (n nicht prim) 13
RSA-Verfahren • 1977 entdeckt von Rivest, Shamir und Adleman • Verfahren zum Erzeugen von Einweg-Funktionen • basiert insbesondere auf: • Euklidischer Algorithmus • (kleinen) Satz von Fermat • kein Algorithmus zur schnellen Primfaktorzerlegung bekannt 14
RSA-Verfahren Euklidischer Algorithmus: While (a>0) And (b>0) If a > b Then a = a Mod b Else b = b Mod a End If Wend gg. T = a + b 15
RSA-Verfahren Erweiterter Euklidischer Algorithmus: Satz: Zu je zwei natürlichen Zahlen a und b (b ≠ 0) gibt es ganze Zahlen x und y mit der Eigenschaft GGT(a, b)= a ∙ x + b ∙ y. D. h. für teilerfremde a, b (GGT(a, b)=1): a ∙ x = 1 - b ∙ y bzw. a ∙ x ≡ 1 (mod b) ↓ x ist das Inverse zu a mod b 16
RSA-Verfahren Beispiel: Erweiterter Euklidischer Algorithmus • Zwei teilerfremde Zahlen: a = 14, b = 51 (GGT(14, 51)=1) • mögliche Werte: x = 11, y = -3 14 a∙ ∙ 11 x -- b 51∙ y∙ -3 = 1= 1 (14 (a∙∙ 11) x) modb 51 ≡ 1 ↓ 11 ist das Inverse zu 14 mod 51 17
RSA-Verfahren Satz von Fermat: Satz: Ist p eine Primzahl und a eine zu p teilerfremde natürliche Zahl, so ist ap-1 ≡ 1 (mod p). • Findet man auch als: ap ≡ a (mod p) 18
RSA-Verfahren Satz von Fermat: 2 2 mod 7 3 3 mod 7 5 5 mod 7 0 1 1 1 1 2 2 3 3 5 5 2 4 4 9 2 25 4 3 8 1 27 6 125 6 4 2 2 81 4 625 2 5 4 4 243 5 3125 3 6 8 1 729 1 15625 1 7 2 2 2187 3 78125 5 19
RSA-Verfahren Beweis: Satz von Fermat • Sind a, b inkongruent modulo einer festen Zahl n , dann sind auch x ∙ a und x ∙ b inkongruent (mod n) f. a. x > 0 mit GGT(x, n )=1 ↓ 1 ∙ 2 ∙ … ∙ (p-1) = (1 ∙ a) ∙ (2 ∙ a) ∙ … ∙ ((p-1) ∙ a) (mod p) ↓ W = W ∙ ap-1 (mod p) ↓ 1 = ap-1 (mod p) qed. 20
RSA-Verfahren Anwendungen des Satzes • Primzahlerzeugung? • Wenn p Primzahl, dann gilt ap ≡ a (mod p) • Gilt auch: „Wenn ap ≡ a (mod p), dann ist p Primzahl“? • Nein → Fermatsche Pseudoprimzahlen 21
RSA-Verfahren Anwendungen des Satzes • Primzahltest? • Fermatscher Primzahltest: • • • Berechne b = an-1 (mod n) Prüfe b = 1, bei erfolg: b Primzahlkandidat Langsam und Aufwendig 22
Algorithmus Kodierung • Wähle Zufällig zwei Primzahlen p und q, welche „nahe“ beieinander liegen. • Bestimmt deren Produkt N. • Ermittle. • Bestimme ein e , s. d. e > 1 und teilerfremd zu • Berechne aus den geheimen Schlüssel d. . • Somit ist der öffentliche Schlüssel: N, e und der geheime Schlüssel: d • Die Kodierung erfolgt mit: 23
Beispiel Schlüsselerstellung • Primzahlen: p = 463 und q = 467 • ermitteln: • bestimmen: , teilerfremd zu • ermitteln: mögliche Lösung: , , • öffentliche Schlüssel: N = 216221 und e = 277 • geheimer Schlüssel: d = 17099 24
Beispiel Verschlüsselung • öffentliche Schlüssel: N = 216221 und e = 277 • Klartext K = 174 • C ermitteln: • gerechnet mit modularer Exponentiation Quad : = b, Halb : = e, Erg : = 1 while Halb > 0 if Halb mod 2 > 0 then Erg : = (Erg * Quad) mod m Quad = (Quad * Quad) mod m Halb = Halb div 2 end while return Erg • Geheimtext C = 206690 25
Beispiel Dekodierung • Dekodierung mit • • . öffentliche Schlüssel: N = 216221 geheimer Schlüssel: d = 17099 Geheimtext C = 206690 K ermitteln: • gerechnet mit modularer Exponentiation • Klartext K = 174 26
Signieren von Nachrichten • Idee: Dokumente mit einer digitalen „Unterschrift“ versehen. • 1. Vorteil: Integrität, d. h. es wird die Unversehrtheit der übermittelten Nachricht sichergestellt • 2. Vorteil: Authentizität, d. h. die Nachricht wurde vom richtigen Absender versandt 27
Signieren von Nachrichten • Absender besitzt eigenen Schlüsselsatz. • Absender kodiert seine Nachricht mit d, sprich: • Absender versendet signierte und unsignierte Nachricht an Empfänger. • Empfänger dekodiert die Nachricht mit e, sprich: • Empfänger vergleicht unsignierte und dekodierte Nachricht miteinander und prüft auf Gleichheit. 28
Schwächen des RSA • asymmetrisches Verfahren, welches für das Ver- und Entschlüsseln große K viel Zeit benötigt • Wahl der Primzahlen kann nicht einfach zufällig erfolgen • „Sicherheit“ beruht auf der Annahme das die Zerlegung von N in seine Primfaktoren in polynomieller Zeit nicht gelingen kann. • Beweis steht aus • Shor-Algorithmus löst das Problem auf Quantencomputern in P 29
Angriffe auf den RSA • Verfahren substituiert Klartext zu Geheimtext, weshalb Angriffe mit der Known-Plaintext-Angriffe und Wahrscheinlichkeitsanalyse möglich sind. • Bei schlecht gewählten Primzahlen, kann aus N auf wenige mögliche Paare geschlossen werden. • Zerlegung in Primfaktoren ist bedingt schon gelungen: RSA-567 mit 174 Ziffern Mersenne-Zahl mit 228 Ziffern • Timing Attacks 30
Timing Attacks auf den RSA • Idee: Geheimtexte mit dem öffentlichen Schlüssel so erstellen, das die Dechiffrierung lange benötigt, um fehl zu schlagen. • Vorgehen • Festlegen eines großen Startwertes • Schleife • Messen der Laufzeit der einzelnen Anfragen wird gemessen. • Aus auffälligen Messwerten wird auf Werte geschlossen, welche ausprobiert werden. • Ausgabe des geheimen Schlüssels 31
Einsatzgebiet • Internet- u. Telefonie-Infrastruktur: X. 509 -Zertifikate • Übertragungs-Protokolle: IPSec SSL TLS SSH WASTE • E-Mail-Verschlüsselung: PGP S/MIME • Authentifizierung französischer Telefonkarten 32
Zusammenfassung RSA • asymmetrisches Verschlüsselungsverfahren • benutzt öffentliche und geheime Schlüssel • Nachrichten können nur von einem Empfänger gelesen, aber vielen Absendern versandt werden • Algorithmus beruht auf der scheinbaren Unmöglichkeit der Zerlegung von großen Produkten in Primfaktoren • Verschlüsselung und Entschlüsselung erfolgt nach einfachen Formeln 33
Quellen • „Handbook of Applied Cryptography“ A. Menezes, P. C. van Oorschot, S. A. Vanstone • „Remote Timing Attacks are Practical“ D. Brumley, D. Boneh • „Pulic Key Cryptographie“ J. Ziegenbalg • http: //de. wikipedia. org/wiki/RSA-Kryptosystem • http: //www. heise. de/newsticker/meldung/42719 34
- Slides: 34