RSA Verfahren. Kapitel 7 p. 103



Ähnliche Dokumente
11. Das RSA Verfahren und andere Verfahren

Das RSA-Verfahren. Armin Litzel. Proseminar Kryptographische Protokolle SS 2009

Lenstras Algorithmus für Faktorisierung

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Primzahlen und RSA-Verschlüsselung

10. Public-Key Kryptographie

Computeralgebra in der Lehre am Beispiel Kryptografie

RSA-Verschlüsselung. Verfahren zur Erzeugung der beiden Schlüssel:

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Public-Key Verschlüsselung

Modul Diskrete Mathematik WiSe 2011/12

Zur Sicherheit von RSA

Verschlüsselung. Chiffrat. Eve

Asymmetrische. Verschlüsselungsverfahren. erarbeitet von: Emilia Winkler Christian-Weise-Gymnasium Zittau

Konzepte von Betriebssystemkomponenten: Schwerpunkt Sicherheit. Asymmetrische Verschlüsselung, Digitale Signatur

5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)

3 Das RSA-Kryptosystem

Konzepte von Betriebssystem-Komponenten: Schwerpunkt Sicherheit Grundlagen: Asymmetrische Verschlüsslung, Digitale Signatur

Sicherheit von hybrider Verschlüsselung

Erste Vorlesung Kryptographie

IT-Sicherheit: Kryptographie. Asymmetrische Kryptographie

Digitale Signaturen. Sven Tabbert

27. Algorithmus der Woche Public-Key-Kryptographie Verschlüsseln mit öffentlichen Schlüsseln

Mathematik und Logik

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Authentikation und digitale Signatur

Kryptographische Verfahren auf Basis des Diskreten Logarithmus

Verschlüsselung. Kirchstraße 18 Steinfelderstraße Birkweiler Bad Bergzabern Fabian Simon Bfit09

10. Kryptographie. Was ist Kryptographie?

Entwicklung der Asymmetrischen Kryptographie und deren Einsatz

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Wiederholung Symmetrische Verschlüsselung klassische Verfahren: Substitutionschiffren Transpositionschiffren Vigenère-Chiffre One-Time-Pad moderne

RSA-Verschlüsselung. von Johannes Becker Gießen 2006/2008

8. Quadratische Reste. Reziprozitätsgesetz

1. Asymmetrische Verschlüsselung einfach erklärt

Der Zwei-Quadrate-Satz von Fermat

Elliptische Kurven in der Kryptographie

RSA Verfahren. Ghazwan Al Hayek Hochschule für Technik Stuttgart. 2. November 2008

Über das Hüten von Geheimnissen

IT-Sicherheitsmanagement. Teil 12: Asymmetrische Verschlüsselung

Kap. 8: Speziell gewählte Kurven

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Kryptographie mit elliptischen Kurven

4 RSA und PGP. Die Mathematik von RSA an einem Beispiel

Kryptographie eine erste Ubersicht

Probabilistische Primzahltests

Zeichen bei Zahlen entschlüsseln

Seminar zur Kryptologie

1 Kryptosysteme 1 KRYPTOSYSTEME. Definition 1.1 Eine Kryptosystem (P(A), C(B), K, E, D) besteht aus

6.2 Perfekte Sicherheit

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Musterlösungen zur Linearen Algebra II Blatt 5

Einleitung Shor s Algorithmus Anhang. Thomas Neder. 19. Mai 2009

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Vorkurs Mathematik Übungen zu Polynomgleichungen

DLP. Adolphe Kankeu Tamghe ALZAGK SEMINAR. Bremen, den 18. Januar Fachbereich Mathematik und Informatik 1 / 27

Professionelle Seminare im Bereich MS-Office

Einfache kryptographische Verfahren

Grundlagen der Theoretischen Informatik, SoSe 2008

10.6 Authentizität. Geheimhaltung: nur der Empfänger kann die Nachricht lesen

Kryptologie. Verschlüsselungstechniken von Cäsar bis heute. Arnulf May

Digitale Unterschriften Grundlagen der digitalen Unterschriften Hash-Then-Sign Unterschriften Public-Key Infrastrukturen (PKI) Digitale Signaturen

Diffie-Hellman, ElGamal und DSS. Vortrag von David Gümbel am

Probabilistische Primzahlensuche. Marco Berger

Algorithmische Kryptographie

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Ferienakademie 2001: Kryptographie und Sicherheit offener Systeme. Faktorisierung. Stefan Büttcher

Wie Sie beliebig viele PINs, die nur aus Ziffern bestehen dürfen, mit einem beliebigen Kennwort verschlüsseln: Schritt 1

Kryptographie Reine Mathematik in den Geheimdiensten

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

12 Kryptologie. ... immer wichtiger. Militär (Geheimhaltung) Telebanking, Elektronisches Geld E-Commerce

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

Gleichungen und Ungleichungen

6: Public-Key Kryptographie (Grundidee)

Praktikum Diskrete Optimierung (Teil 11)

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen.

1 Mathematische Grundlagen

Homomorphe Verschlüsselung

Theoretische Grundlagen der Informatik WS 09/10

Repetitionsaufgaben Wurzelgleichungen

Anleitung Thunderbird Verschlu sselung

Rekursionen. Georg Anegg 25. November Methoden und Techniken an Beispielen erklärt

7 Rechnen mit Polynomen

Proseminar Datensicherheit & Versicherungsmathematik RSA-Verfahren

Public-Key-Kryptosystem

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Das RSA Kryptosystem

Kapitel 3: Etwas Informationstheorie

Die Post hat eine Umfrage gemacht

0, v 6 = , v 4 = span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

Grundlagen der Verschlüsselung und Authentifizierung (2)

Einführung in Computer Microsystems

SCHRIFTLICHE ZUSAMMENFASSUNG ZUM VORTRAG DIE GRUNDLAGEN DER RSA-VERSCHLÜSSELUNG VON DANIEL METZSCH

Was meinen die Leute eigentlich mit: Grexit?

Simplex-Umformung für Dummies

Leichte-Sprache-Bilder

Digital Rights Management (DRM) Verfahren, die helfen Rechte an virtuellen Waren durchzusetzen. Public-Key-Kryptographie (2 Termine)

Mit Python von Caesar zur Public-Key Kryptographie

IT-Sicherheit Kapitel 3 Public Key Kryptographie

Transkript:

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 in ihre Primfaktoren zu zerlegen. RSA Verfahren ist heute eines der wichtigsten Public-Key Verschlüsselungsverfahren. Kapitel 7 p. 103

RSA Schlüsselerzeugung RSA-Schlüssel besteht aus zwei Komponenten, dem privaten und dem öffentlichen Schlüssel. Wähle nacheinander zufällig zwei Primzahlen p und q und berechne Produkt n = pq. Die Zahlen p,q müssen geheim gehalten und werden im eigentlich Ablauf des RSA-Verfahrens nicht mehr gebraucht. Wähle natürliche Zahl e mit 1 < e < φ(n) = (p 1)(q 1) und gcd(e, (p 1)(q 1)) = 1. Berechne natürliche Zahl d mit 1 < d < (p 1)(q 1) und de 1 mod (p 1)(q 1). Wir wir bereits gesehen haben, gibt es eine solche Zahl d weil gcd(e, (p 1)(q 1)) = 1 ist. Kapitel 7 p. 104

RSA Schlüsselerzeugung (Fort.) Öffentliche Schlüssel besteht aus dem Paar (n,e). Private Schlüssel ist d. Zahl n heißt RSA-Modul, e heißt Verschlüsselungsexponent, d heißt Entschlüsselungsexponent. Beispiel: Sei p = 11 und q = 23. Somit ist n = 253 und (p 1)(q 1) = 10 22. Das kleinstmögliche e ist e = 3. Erweiterte euklidische Algorithmus liefert d = 147. Kapitel 7 p. 105

RSA Verschlüsselung Der Klartextraum bestehe aus allen natürlichen Zahlen m mit 0 m < n. Klartext m wird verschlüsselt zu c = m e mod n. Jeder, der öffentlichen Schlüssel (n,e) kennt, kann Verschlüsselung durchführen. Beispiel: Sei n = 253 und e = 3. Klartextraum ist {0, 1,..., 252}. Zahl m = 165 wird zu 165 3 mod 253 = 110 verschlüsselt. Kapitel 7 p. 106

RSA Verschlüsselung (Blockchiffre) Man kann mit der RSA-Verschlüsselungsmethode auch eine Art Blockchiffre realisieren. Das verwendete Alphabet Σ habe genau N Zeichen, wobei die Zeichen die Zahlen 0, 1,...,N 1 sind. Man setzt k = log N n. Block m 1 m 2...m k, m i Σ, 1 i k, wird in die Zahl m = k i=1 m i N k i verwandelt. Block m wird verschlüsselt, indem c = m e mod m bestimmt wird. Zahl c kann wieder zur Basis N geschrieben werden. Kapitel 7 p. 107

RSA Verschlüsselung (Blockchiffre) (Fort.) N-adische Entwicklung von c kann aber die Länge k + 1 haben. Man schreibt c = k i=0 c i N k i, c i Σ, 0 i k. Chiffretext ist dann c = c 0 c 1...c k. Beispiel: Sei Σ = {0, a, b, c} mit Entsprechung 0 a b c 0 1 2 3 bei Verwendung von n = 253 ist k = log 4 253 = 3. Das ist die Klartextblocklänge. Kapitel 7 p. 108

RSA Verschlüsselung (Blockchiffre) (Fort.) Länge der Chiffretextblöcke ist demnach 4. Es soll Klartextblock abb verschlüsselt werden. Dieser entspricht dem String 122 und damit der Zahl m = 1 4 2 + 2 4 1 + 2 4 0 = 26. Zahl m wird zu c = 26 3 mod 253 = 119 verschlüsselt. Schreibt man diese zur Basis 4 erhält man c = 1 4 3 + 3 4 2 + 1 4 1 + 3 4 0 und somit Chiffretextblock acac. Kapitel 7 p. 109

RSA Entschlüsselung Sei (n,e) ein öffentlicher Schlüssel und d der entsprechende private Schlüssel im RSA-Verfahren. Dann gilt (m e ) d mod n = m für jede natürliche Zahl m mit 0 m < n. Da ed 1 mod (p 1)(q 1) ist, gibt es eine ganze Zahl k, so daß ed = 1 + k(p 1)(q 1) ist. Falls p kein Teiler von m ist (m 0 mod p) gilt (m e ) d m(m p 1 ) k(q 1) mod p m 1 k(q 1) mod p m mod p Kapitel 7 p. 110

RSA Entschlüsselung (Fort.) Falls p Teiler von m ist (m 0 mod p) gilt offensichtlich m ed m mod p für all m mit 0 m < n. Analog zeigt man m ed m mod q Aus dem chinesischen Restsatz folgt dann m ed m mod n. Wurde c = m e mod m berechnet, kann man m mittels m = c d mod n rekonstruieren. Kapitel 7 p. 111

Sicherheit des geheimen Schlüssels Gegeben der öffentliche Schlüssel (n,e), ist es möglich den geheimen Schlüssel d zu berechnen? Wir werden sehen, daß die Bestimmung des geheimen Schlüssels d aus dem öffentlichen Schlüssel (n,e) genauso schwierig ist, wie die Zerlegung des RSA Moduls n in seine Primfaktoren. D.h. finden des geheimen Schlüssels lässt sich reduzieren auf das Faktorisierungsproblem für natürliche Zahlen und umgekehrt. Faktorisierungsproblem für ganze Zahlen Gegeben eine positive ganze Zahl n. Finde Primfaktoren p e 1 1 pe 2 2...pe k k = n wobei p i paarweise verschieden sind und e i 1. Kapitel 7 p. 112

Sicherheit von RSA Kennt ein Angreifer Primfaktoren p und q des RSA-Moduls n, kann er geheimen Schlüssel d durch lösen der Kongruenz berechnen. de 1 mod (p 1)(q 1) Umkehrung gilt auch. Kennt man n,e,d so kann man Faktoren p und q berechnen. Hierzu setzt man s = max{t N : 2 t teilt ed 1} und k = (ed 1)/2 s. Kapitel 7 p. 113

Sicherheit von RSA (Fort.) Der Algorithmus, der n faktorisiert beruht dann auf folgender Aussage Sei a eine zu n teilerfremde ganze Zahl. Wenn die Ordnung von a k mod p und mod q verschieden ist, so ist 1 < gcd(a 2tk 1,n) < n für ein t {0, 1, 2,...,s 1}. Um n zu faktorisieren, wählt man zufällig und gleichverteilt eine Zahl a aus Z n. Berechne g = gcd(a,n). Falls g > 1, dann ist g ein echter Teiler von n. Falls g = 1, dann berechne g = gcd(a 2tk,n), t = s 1,s 2,...,0. Kapitel 7 p. 114

Sicherheit von RSA (Fort.) Findet man einen Teiler im vorherigen Schritt der kleiner n ist, dann terminiere und gebe diesen Teiler aus. Andernfalls wird ein neues a gewählt und die Schritte wiederholt. Die Wahrscheinlich das ein Primteiler von n gefunden wird, ist in jeder Iteration wenigstens 1/2. Beispiel: Sei n = 253,e = 3 und d = 147. Somit ist ed 1 = 440. 2 0, 2 1, 2 2, 2 3 teilt ed 1 = 440 und somit ist s = 3 und k = 440/8 = 55. Wenn man a = 2 verwendet, so erhält man gcd(2, 253) = 1 und somit t = 2, 1, 0 so das gcd(2 220 1, 253) = 253,gcd(2 110 1, 253) = 253. Aber gcd(2 55 1, 253) = 23 und somit 253 = 23 11. Kapitel 7 p. 115

Auswahl von Verschlüsselungsexponent e Wahl von e = 2 wird ausgeschlossen, weil φ(n) = (p 1)(q 1) gerade ist und gcd(e, (p 1)(q 1)) = 1 gelten muß. Kleinst mögliche Exponent ist also e = 3. Verwendet man e = 3, so kann man mit einer Quadrierung und einer Multiplikation mod n verschlüsseln. Beispiel: Sei n = 253,e = 3,m = 165. Man berechnet m 3 mod n = ((m 2 mod n) m) mod n = 154 165 mod 253 = 110. Kapitel 7 p. 116

Low-Exponent-Attacke Low-Exponent-Attacke beruht auf folgendem Satz: Sei e N und n 1,n 2,...,n e N paarweise teilerfremd und m N mit 0 m < n i, 1 i e. Sei c N mit c m e mod n i, 1 i e, und 0 c < e i=1 n i. Dann folgt c = m e. Denkbares Szenario: Bank schickt an e verschiedene Kunden dieselbe verschlüsselte Nachricht. Hierbei werden die verschiedenen öffentlichen Schlüssel n i, 1 i e der Kunden benutzt. Angreifer kennt Chiffretext c i = m e mod n i, 1 i n. Mittels chinesischen Restsatz berechnet er c mit c c i mod n i, 1 i e und 0 c < e i=1 n i. Kapitel 7 p. 117

Low-Exponent-Attacke (Beispiel) Sei e = 3,n 1 = 143,n 2 = 391,n 3 = 899,m = 135. Dann ist c 1 = 60,c 2 = 203,c 3 = 711. Angreifer berechnet c 60 mod 143 c 203 mod 391 c 711 mod 899 und erhält 2460375 60 mod 143 2460375 203 mod 391 2460375 711 mod 899 mit 0 2460375 < n 1 n 2 n 3 = 50265787. Nach Satz gilt c = m e und somit m = 2460375 1/3 = 135. Möglichkeit um Low-Exponent-Attacke zu verhindern ist größere Verschlüsselungsexponenten zu wählen. Üblich ist e = 2 16 + 1. Kapitel 7 p. 118

Schlüsselerzeugung: Rabin Verschlüsselung Alice wählt zufällig zwei Primzahlen p und q mit p q 3 mod 4. Kongruenzbedingung vereinfacht und beschleunigt die Entschlüsselung. Aber auch ohne diese Kongruenzbedingung funktioniert das Verfahren. Alice berechnet n = pq. Öffentlicher Schlüssel ist n. Geheimer Schlüssel ist (p,q). Verschlüsselung: Klartextraum ist Menge Z n = {0, 1,...,n 1}. Bob benutzt öffentlichen Schlüssel von Alice und verschlüsselt Nachricht m wie folgt c = m 2 mod n. Kapitel 7 p. 119

Rabin Entschlüsselung Alice berechnet Klartext m aus Chiffretext c durch Wurzelziehen wie folgt m p = c (p+1)/4 mod p, m q = c (q+1)/4 mod q. Dann sind ±m p + pz die beiden Quadratwurzel von c + pz in Z/pZ, sowie ±m p + pz die beiden Quadratwurzel von c + qz in Z/qZ. Die vier gesuchten Quadratwurzeln von c + nz in Z/nZ kann Alice nun mittels des chinesischen Restsatzes berechnen. Hierzu bestimmt Alice die Koeffizienten y p,y q Z mit y p p + y q q = 1. Kapitel 7 p. 120

Rabin Entschlüsselung (Fort.) Alice berechnet dann r = (y p p m q + y q q m p ) mod n, s = (y p p m q y q q m p ) mod n. Die Quadratwurzeln von c mod n sind dann (r, r mod n, s, s mod n) Einer dieser Quadratwurzeln ist dann der Klartext. Kapitel 7 p. 121

Rabin Verfahren Beispiel Alice wählt geheimen Schlüssel p = 271,q = 331 und somit öffentlichen Schlüssel n = 89701. Ferner gilt p q 3 mod 4. Nachricht sei m = 1001111001. Bob repliziert die letzten 6 Bits von m und erhält Nachricht m = 1001111001111001 = 40569 10. Bob berechnet c = m 2 mod n = 40569 2 mod 89701 = 9813 und schickt c an Alice. Alice berechnet m p = c (p+1)/4 mod p = 9813 272/4 mod 271 = 81 m q = c (q+1)/4 mod q = 9813 332/4 mod 331 = 144 und erhält die vier Quadratwurzel (81, 81), (144, 144). Kapitel 7 p. 122

Rabin Verfahren Beispiel (Fort.) Mittels des erweiterten euklidischen Algorithmus bestimmt Alice die Koeffizienten y p,y q Z mit y p p + y q q = 1 = 160 271 + 131 331. Anschließend berechnet Alice r und s r = (y p p m q + y q q m p ) mod n = ( 160 271 144 + 131 331 81) mod 89701 = 49132 s = (y p p m q y q q m p ) mod n = ( 160 271 144 131 331 81) mod 89701 = 21328. Kapitel 7 p. 123

Rabin Verfahren Beispiel (Fort.) Die vier Quadratwurzeln von 9813 mod 89701 sind somit 49132, 40569 = 49132 mod 89701 21328, 68373 = 21328 mod 89701 49132 2 mod 89701 = 9813 40569 2 mod 89701 = 9813 21328 2 mod 89701 = 9813 68373 2 mod 89701 = 9813 Kapitel 7 p. 124

Rabin Verfahren Beispiel (Fort.) 49132 10 = 1011111111101100 = m 1 40569 10 = 1001111001111001 = m 2 21328 10 = 101001101010000 = m 3 68373 10 = 10000101100010101 = m 4 Nur Nachricht m 2 hat die 6-Bit Redundanz und ist somit die gesuchte Nachricht. Kapitel 7 p. 125

Sicherheit des Rabin Verfahrens Sicherheit des Rabins Verfahren beruht auf der Schwierigkeit quadratische Wurzeln modulo n zu berechnen. Quadratwurzeln Modulo n Problem Gegeben eine zusammengesetzte ganze Zahl n und a Q n (Q n ist Menge der quadratischen Reste modulo n). Finde Quadratwurzel von a mod n, d.h. eine ganze Zahl x mit x 2 a mod n. Kapitel 7 p. 126

Sicherheit des Rabin Verfahrens (Fort.) Sicherheit des Rabin-Verfahrens gegen Ciphertext-Only-Angriffe ist äquivalent zur Schwierigkeit des Faktorisierungsproblems. Jeder den öffentlichen Modul n faktorisieren kann, kann auch das Rabin-Verfahren brechen Die Umkehrung gilt auch. Angenommen, mann kann Rabin-Verfahren brechen, d.h. zu jedem Quadrat c + nz kann man eine Quadratwurzel m + nz bestimmen, sagen wir mit einem Algorithmus R. Algorithmus R liefert bei Eingabe von c {0, 1,...,n 1} eine ganze Zahl m = R(c) {0, 1,...,n 1} für die die Restklasse m + nz eine Quadratwurzel von c + nz ist. Kapitel 7 p. 127

Sicherheit des Rabin Verfahrens (Fort.) Um n zu faktorisieren, wählt man zufällig und gleichverteilt eine Zahl x {1, 2,...,n 1}. Wenn gcd(x,n) 1, dann hat man Modul n faktorisiert. Andernfalls berechnet man c = x 2 mod n und m = R(c). Restklasse m + nz ist eine Quadratwurzel von c + nz, diese muß aber nicht mit x + nz übereinstimmen. Jedoch erfüllt m eine der folgenden Bedingungspaare m x mod p und m x mod q, (1) m x mod p und m x mod q, (2) m x mod p und m x mod q, (3) m x mod p und m x mod q, (4) Kapitel 7 p. 128

Sicherheit des Rabin Verfahrens (Fort.) Im Fall (1) ist m = x und gcd(m x,n) = n. Im Fall (2) ist m = n x und gcd(m x,n) = 1. Im Fall (3) ist gcd(m x, n) = p. Im Fall (4) ist gcd(m x, n) = q. Da x zufällig und gleichverteilt gewählt wurde ist bei einem Durchlauf des Verfahrens die Zahl n mit der Wahrscheinlichkeit 1/2 faktorisierbar. In k Durchläufen des Verfahrens wird n mit Wahrscheinlichkeit 1 (1/2) k zerlegt. Kapitel 7 p. 129

Beispiel Rabin Verfahren und Faktorisierung Sei n = 253, wir wählen zufällig und gleichverteilt z.b. x = 17. Es ist gcd(17, 253) = 1. Wir bestimmen c = 17 2 mod 253 = 36 und lassen von unserem Algorithmus die Werte R(c) bestimmen. Die Quadratwurzeln von 36 mod 253 sind 6, 17, 236, 247. Es ist gcd(6 17, 253) = 11 und gcd(247 17, 253) = 23. Kapitel 7 p. 130

Diskrete Logarithmen Sei p eine Primzahl. Wir wissen, daß Z p zyklisch ist und Ordnung p 1 hat. Sei g eine Primitivwurzel mod p. Dann gibt es für jede Zahl A {1, 2,...,p 1} einen Exponenten a {0, 1, 2,...,p 2} mit A g a mod p. Exponent a heißt diskreter Logarithmus von A zur Basis g. Man schreibt a = log g A. Berechnung solcher diskreten Logarithmen gilt als schwieriges Problem. Keine effizienten Algorithmen sind bis heute bekannt. Kapitel 7 p. 131

ElGamal Verfahren (Schlüsselerzeugung) Schlüsselerzeugung: Alice wählt Primzahl p und eine Primitivwurzel g mod p. Dann wählt sie zufällig und gleichverteilt einen Exponenten a {0, 1,...,p 2} und berechnet A = g a mod p. Öffentlicher Schlüssel ist (p,g,a). Geheimer Schlüssel ist Exponent a. Kapitel 7 p. 132

ElGamal Verfahren (Verschlüsselung) Klartextraum ist Menge {0, 1,...,p 1}. Bob besorgt sich öffentlichen Schlüssel von Alice (p,g,a) und verschlüsselt Klartext m wie folgt Zuerst wählt er eine Zufallszahl b {1, 2,...,p 2} und berechnet Dann bestimmt Bob Der Chiffretext ist (B,c). B = g b mod p. c = A b m mod p. Kapitel 7 p. 133

ElGamal Verfahren (Entschlüsselung) Alice erhält den Chiffretext (B,c) und kennt ihren geheimen Schlüssel a und entschlüsselt wie folgt Alice bestimmt Exponenten x = p 1 a. Weil 1 a p 2 ist, gilt 1 x p 2. Dann berechnet Alice B x c mod = m. Dies ist der Klartext weil B x c g b(p 1 a) A b m (g p 1 ) b (g a ) b A b m A b A b m m mod p. Kapitel 7 p. 134

ElGamal Verfahren (Sicherheit) Sicherheit des ElGamals Verfahren beruht auf der Schwierigkeit diskrete Logarithmen mod p zu berechnen. Diskrete Logarithmus Problem (DLP) Gegeben eine Primzahl p, eine Primitivwurzel α von Z p und eine Zahl β Z p. Finde Zahl x, 0 x p 2 mit α x β mod p. Könnte man effizient den diskreten Logarithmus berechnen, dann könnte man aus A den geheimen Exponenten a ermitteln und berechnen. m = B p 1 a c mod p Kapitel 7 p. 135