Einführung Primzahlen Restklassengruppen RSA Kryptographie Numerische Methoden und Algorithmen in der Physik Hartmut Stadie, Christian Autermann 22.01.2009 Numerische Methoden und Algorithmen in der Physik Christian Autermann 1/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Einführung Primzahlen Restklassengruppen RSA Kryptographie Numerische Methoden und Algorithmen in der Physik Christian Autermann 2/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Übersicht Einführung Literaturliste Primzahlen Restklassengruppen RSA Kryptographie Numerische Methoden und Algorithmen in der Physik Christian Autermann 3/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Informationen Material: Stroustrup: The C++ Programming Language, 3rd edition http://www.mathematik.uni-marburg.de/∼cpp/ B. Stroustrup: C++ In-depth Series A. Koenig, B. E. Moo: Accelerated C++ Press et al: Numerical Recipes, 3rd edition T. H. Cormen et al: Introductions to Algorithms, 2nd edition wikipedia.org http://wwwiexp.desy.de/studium/lehre/numalg/ Numerische Methoden und Algorithmen in der Physik Christian Autermann 4/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Kryptographie Historische Entwicklung: Transposition Die Anfänge der Kryptographie (griechisch: κρνιτ τ oς verborgen, und γραφιν schreiben) liegen im Altertum um 3000 v.C. in Ägypten. In der Antike fanden verschlüsselte Nachrichten bereits militärische Verwendung, in Form der Skytale: Skytale sind um einen Stab gewickelte Nachrichten. Der Stabdurchmesser ist der Schlüssel, der die Buchstaben in die richtige Reihenfolge bringt. Numerische Methoden und Algorithmen in der Physik Christian Autermann 5/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Kryptographie Historische Entwicklung: Substitution „Cäsar-Verschlüsselung”: Jedes Zeichen des Klartextes wird durch ein festgelegtes anderes Zeichen ersetzt. „. . . wenn etwas Geheimes zu überbringen war, schrieb er in Zeichen, das heißt, er ordnete die Buchstaben so, dass kein Wort gelesen werden konnte: Um diese zu lesen, tauscht man den vierten Buchstaben, also D für A aus und ebenso mit den restlichen.” [Sueton/wikipedia.org] Beispiel: v e n z i r i m x b v z i m d h i m x b v z i m c g i m Die Substitutionsverschlüsselung kann durch eine Häufigkeitsanalyse sehr leicht gebrochen werden. Numerische Methoden und Algorithmen in der Physik Christian Autermann 6/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Kryptographie Historische Entwicklung: Substitution Im Gegensatz zur monoalphabetischen Substitution werden für die Zeichen des Klartextes mehrere Geheimtextalphabete verwendet. Beispiel: Text: geheimnis Schlüsselwort: AKEY Schlüssel: AKEYAKEYA Chiffrat: GOLCIWRGS Die Vigenère-Verschlüsselung galt lange als sicherer Chiffrieralgorithmus. Dem britischen Mathematiker Charles Babbage und dem preußischen Offizier Friedrich Kasiski gelang Mitte des 19. Jahrhunderts unabhängig voneinander die Entzifferung. Verwand u.a. anderem von: Enigma (1918-1950er), feste Länge des Schlüssels, aber rotierende Schlüssel Numerische Methoden und Algorithmen in der Physik Christian Autermann 7/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Kryptographie Vernam Verschlüsselung Der Spezialfall, dass der Schlüssel genauso lang ist wie der zu verschlüsselnde Text, heißt Vernam-Verschlüsselung, wobei der Schlüssel XOR mit dem Klartext verknüpft wird. Handelt es sich bei dem Schlüssel um eine zufällige Folge von Buchstaben, und wird der Schlüssel nur ein einziges Mal verwendet, nennt man das Verfahren auch One-Time-Pad. Bei diesem ist eine Dechiffrierung ohne Kenntnis des korrekten Schlüssels absolut unmöglich. Beispiel: Text: Schlüsselwort: Schlüssel: Cyphertext: geheimnis AKEY AKEYGEHEI GOLCOQUMA Numerische Methoden und Algorithmen in der Physik Christian Autermann 8/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Kryptographie Öffentliche Übermittlung des Schlüssels Das Problem der Vernam Verschlüsselung ist, dass der Schlüssel sowohl dem Sender als auch dem Adressaten bekannt sein muss. Ausserdem muss für jede Nachricht M ein neuer, nicht zu erratender Schlüssel benutzt wreden. Moderne Verschlüsselungsalgorithmen verwenden oft zwei Schlüssel, einen geheimen privaten S und einen öffentlichen Schlüssel P. P(M) = C : Cyphertext S(C ) = M: Klartext Die Sicherheit dieser Verfahren beruht ausschliesslich darauf, dass die Bestimmung der Umkehrfunktion P −1 (C ) (bei Kenntnis von P und C ) mathematisch sehr schwierig, d.h. sehr aufwendig, ist. Auf die notwendige Algebra in solchen diskreten mathematischen Körpern soll im folgenden eingegangen werden. Numerische Methoden und Algorithmen in der Physik Christian Autermann 9/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Übersicht Einführung Primzahlen Numerik Modulare Potenzierung Größter Gemeinsamer Teiler Der Euklidische Algorithmus Restklassengruppen RSA Kryptographie Numerische Methoden und Algorithmen in der Physik Christian Autermann 10/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Primzahlen Definition: Eine Zahl p ist eine Primzahl, wenn sie nur durch 1 und durch p geteilt wird. Alle negativen Zahlen werden von −1 geteilt, Null wird nicht von sich selbst geteilt und 1 wird nicht von 1 und sich selbst geteilt. Alle Primzahlen sind also offenbar grösser als 1. Numerische Methoden und Algorithmen in der Physik Christian Autermann 11/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Primfaktorzerlegung Theorem: Jede positive Integerzahl n > 1 lässt sich darstellen durch n = p1e1 · p2e2 · ... · prer (1) Wobei die pi Primzahlen und die ei positive Integerzahlen sind. Dies nennt man Primfaktorzerlegung. Die Primfaktorzerlegung einer beliebigen Primzahl p lautet: p = p1 (2) Beweis: →Hausaufgabe. Numerische Methoden und Algorithmen in der Physik Christian Autermann 12/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Theorem: Es existieren unendlich viele Primzahlen. Beweis: Angenommen es existieren nur endlich viele Primzahlen, und diese seien gegeben durchQP = {p1 , p2 , ..., pk }. Das Produkt aller Primzahlen sei n = ki pi . Die Zahl n + 1 wäre dann aber auch eine Primzahl, da: n + 1 mod pi = 1 (3) für jedes i. Da n + 1 aber kein Element aus P ist, ist die Annahme endlich vieler Primzahlen falsch, q.e.d. Bemerkung: Q ( ki pi ) + 1 für ein bestimmtes k muss keine Primzahl sein! Beispiel: 30031 = 2 · 3 · 5 · 7 · 11 · 13 + 1 = 59 · 5009 Numerische Methoden und Algorithmen in der Physik Christian Autermann 13/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Primzahlen Anteil von Primzahlen in den natürlichen Zahlen In den positiven natürlichen Zahlen bis n gibt es nprim Primzahlen. Diese Anzahl ist mit guter Genauigkeit gegeben durch: n nprim ≈ ln n (4) Bis n ≤ 109 ist die Ungenauigkeit kleiner als 10%. Numerische Methoden und Algorithmen in der Physik Christian Autermann 14/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Primzahlen Numerische Methoden und Algorithmen in der Physik Christian Autermann 15/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Primzahltest Primzahl gesucht Wieviele Zahlen müssen getestet werden, um eine 512-bit Primzahl zu finden? 512 bit = 2512 (5) 222 = 10 (6) Der relative Anteil von Primzahlen in den natürlichen Zahlen n ist in etwa gegeben durch (ln n)−1 . Die Wahrscheinlichkeit P durch zufälliges Testen von ungeraden 512-bit Zahlen eine Primzahl zu finden ist also −1 1 1 1 P= · ≈ (7) 512 2 ln 2 172 Numerische Methoden und Algorithmen in der Physik Christian Autermann 16/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Primzahltest Fermats kleiner Satz Ist p eine Primzahl, dann gilt für alle positiven Integer a (die teilerfremd zu p sind): ap−1 = 1 (mod p) (8) Der Umkehrschluss gilt nicht: Ist p keine Primzahl und erfüllt die Gleichung (8), so heisst sie „Pseudo-Primzahl zur Basis a”. Ist eine Zahl eine Pseudo-Primzahl zu allen möglichen Basen a, dann ist sie eine „Carmichael-Zahl”. Pseudo-Primzahlen sind sehr selten, so dass Gl. (8) einen effizienten Test darstellt. Numerische Methoden und Algorithmen in der Physik Christian Autermann 17/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Primzahlen schwarz: Wahrer Anteil der Primzahlen in den natürlichen Zahlen blau: Anteil an Prim- und Pseudo-Prim-Zahlen nach Fermats kleinem Satz mit Basis a = 2. (Abweichung < 2%) Numerische Methoden und Algorithmen in der Physik Christian Autermann 18/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Es soll p = ab mod n berechnet werden, für a, b ≥ 0 und n ≥ 1. Pseudocode: Modulare Potenzierung ModularePotenzierung(a, b, n) c = 0, d = 1 #b_k, ..., b_2, b_1 seien die bits in der Binärdarstellung von b for i=k bis i=0 c=2 d = (d*d) mod n if (b_i = 1) c = c+1 d = (d*a) mod n return d Tipp: Die Binärdarstellung b einer positiven 32-bit Integerzahl B bekommt man in C++ durch: #include <bitset> unsigned int B = 5; std::bitset<32> b ( B ); b[0]; //Zugriff auf das 1. bit b[31]; //Zugriff auf das signifikanteste bit. Numerische Methoden und Algorithmen in der Physik Christian Autermann 19/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Größter Gemeinsamer Teiler Definition: Für zwei Integerzahlen a und b, die nicht beide null sind, ist GGT(a,b) die grösste Integerzahl die beide ohne Rest teilt. Es gilt: GGT(a, b) = GGT(b, a) (9) GGT(a, b) = GGT(−a, b) (10) GGT(a, b) = GGT(|a|, |b|) (11) GGT(a, 0) = |a| (12) GGT(a, ka) = |a| für alle k ∈ Z Numerische Methoden und Algorithmen in der Physik Christian Autermann (13) 20/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Bestimmung des GGT Aus der Primfaktordarstellung zweier positiver Integerzahlen a und b lässt sich ihr GGT(a,b) bestimmen. Mit a = p1e1 · p2e2 · ... · prer b = p1f1 · p2f2 · ... · (14) prfr (15) folgt für den Grössten Gemeinsamen Teiler: min(e1 ,f1 ) GGT(a, b) = p1 min(e2 ,f2 ) · p2 min(er ,fr ) · ... · pr (16) Diese Methode eignet sich allerdings nicht, um den GGT grosser Zahlen zu berechnen, da kein Algorithmus mit polynomischen Laufzeitverhalten existiert, um eine Zahl in ihre Primfaktoren zu zerlegen! Hierauf beruht die Sicherheit der RSA Verschlüsselungsalgorithmen. Numerische Methoden und Algorithmen in der Physik Christian Autermann 21/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Größter Gemeinsamer Teiler Theorem: Für jede nicht negative Integerzahl a und jede positive Integerzahl b gilt: GGT(a, b) = GGT(b, a mod b) Numerische Methoden und Algorithmen in der Physik Christian Autermann (17) 22/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Beweis: Sei d =GGT(a, b), dann teilt d die Zahlen a und b (d|a und d|b). Mit x mod y = x − (x div y ) · y gilt: (a mod b) = a − q · b mit q = a div b. (18) (a mod b) ist also offenbar eine Linearkombination aus a und b; damit folgt d|(a mod b) und damit: GGT(a, b) | GGT(b, a mod b) (19) Analog lässt sich zeigen, dass GGT(b, a mod b)|GGT(a, b). Da der GGT eine positive Zahl ist, folgt daraus das GGT(a, b) = GGT(b, a mod b) sein muss. Numerische Methoden und Algorithmen in der Physik Christian Autermann 23/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Der Euklidische Algorithmus Der Euklidische Algorithmus wurde ∼ 300 b.c. in “Die Elemente” (bis Mitte des 19. Jahrhunderts das meistverbreiteste Werk nach der Bibel) von Euklid beschrieben. Er ist aber möglicherweise sogar älter. Pseudocode GGT Euklid(a, b) Wenn b=0 dann return a sonst return Euklid(b, a mod b) Der Euklidische Algorithmus verwendet direkt die Gleichungen (17) GGT(a, b) = GGT(b, a mod b) und (12) GGT(a, 0) = |a|. Numerische Methoden und Algorithmen in der Physik Christian Autermann 24/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Laufzeitverhalten des Euklidischen Algorithmusses Die Laufzeit ist von der Grössenordnung O(ln b). Theorem: Für alle Integerzahlen k ≥ 1 gilt wenn a > b ≥ 1 und b < Fk−1 , dann ist die Zahl der Iterationsschritte n für Euklid(a, b) kleiner als k. Fibonacci Folge Die Fibonacci Folge ist definiert durch: F0 = 0 (20) F1 = 1 (21) Fn = Fn−1 + Fn−2 (22) 01 , 12 , 13 , 24 , 35 , 56 , 87 , 138 , 219 , 3410 , 5511 , 8912 , 14413 ... Numerische Methoden und Algorithmen in der Physik Christian Autermann 25/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Der erweiterte Euklidische Algorithmus Der erweiterte Euklidische Algorithmus berechnet ausser dem GGT zusätzlich zwei weitere Integerzahlen s und t, die folgende Gleichung erfüllen: GGT(a, b) = s · a + t · b (23) Pseudocode: Erweiteter Euklidischer Algorithmus ExtendedEuklid(a, b) if ( b=0 ) dann return (a, 1, 0) (d’, x’, y’) = ExtendedEuklid(b, a modulo b) (d, x, y ) = (d’, y’, x’ - a/b * y’) return (d, x, y) Numerische Methoden und Algorithmen in der Physik Christian Autermann 26/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Übersicht Einführung Primzahlen Restklassengruppen Modulare Arithmetik Kongruenz Prime Restklassengruppe Chinesischer Restsatz RSA Kryptographie Numerische Methoden und Algorithmen in der Physik Christian Autermann 27/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Modulare Arithmetik Ein kommutativer unitärer Ring, der nicht der Nullring ist, heißt ein Körper Gn , wenn in ihm jedes von Null verschiedene Element multiplikativ invertierbar ist. Beispiel: G7 ⊕ 0 1 2 3 4 5 6 0 0 1 2 3 4 5 6 1 1 2 3 4 5 6 0 2 2 3 4 5 6 0 1 3 3 4 5 6 0 1 2 4 4 5 6 0 1 2 3 5 5 6 0 1 2 3 4 6 6 0 1 2 3 4 5 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0 1 0 1 2 3 4 5 6 2 0 2 4 6 1 3 5 3 0 3 6 2 5 1 4 4 0 4 1 5 2 6 3 5 0 5 3 1 6 4 2 6 0 6 5 4 3 2 1 In einem Körper sind also Addition, Subtraktion, Multiplikation und Division wie gewohnt definiert, das Ergebnis (mod n) ist wieder ein Element des Körpers. Es gilt weiter: 1 Bezgl. der Addition gibt es zu jedem Element a ein Inverses −a, so dass a + (−a) = 0 das Nullelement ergibt. 2 Bezgl. der Multiplikation gibt es zu jedem Element a ein Inverses a−1 , so dass a · a−1 = 1 das Einselement ergibt, ausser: 3 Das Nullelement 0 ist das einzige Element, das keinen Kehrwert bezgl. der Multiplikation besitzt. Nur falls n eine Primzahl ist, ist Gn ein Körper. Numerische Methoden und Algorithmen in der Physik Christian Autermann 28/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Kongruenz Man nennt zwei Zahlen kongruent bezüglich einer dritten Zahl, des Modules, wenn sie bei Division durch den Modul den gleichen Rest besitzen. Seien a und b kongruent bezüglich m schreibt man: a≡b mod m (24) Beispiel: a = 3, b = 17, m = 7, es gilt: 3/7 = 0 Rest: 3 17/7 = 2 Rest: 3 Die Menge der Zahlen xk = a + k · m nennt man Restklasse. Die Menge aller Restklassen modulo m heisst Restklassenring und ist ein Körper, genau dann wenn m eine Primzahl ist. Eine Menge heisst prime Restklasse, bzw. prime Restklassengruppe, wenn ihre Elemente teilerfremd zu m sind, d.h. GGT(a, m) = 1. Numerische Methoden und Algorithmen in der Physik Christian Autermann 29/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Prime Restklassengruppe (aus wikipedia.org) Die prime Restklassengruppe ist die Gruppe der primen Restklassen bezüglich eines Moduls n. Sie wird mit (Z/nZ)× oder Z∗n symbolisiert. Die Gruppe besteht aus den Restklassen a + nZ, deren Elemente zu n teilerfremd sind: ggT(a, n) = 1. Darauf weist die Bezeichnung prime Restklasse hin; für teilerfremd sagt man auch relativ prim. Die Gruppenordnung ist gegeben durch die Eulersche ρ(n) Funktion. ρ(n) gibt an wieviele positive ganze Zahlen a < n teilerfremd zu n sind. Die Verknüpfung der Gruppe entspricht der Multiplikation von ganzen Zahlen: (a + nZ) · (b + nZ) = (a · b + nZ). Die primen Restklassengruppen sind endliche abelsche Gruppen bezüglich der Multiplikation. → Dies ist sehr wichtig für die Kryptographie und z.B. auch für Pseudo-Zufallszahlen Generatoren! Numerische Methoden und Algorithmen in der Physik Christian Autermann 30/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Multiplikative Inversion Zu dem Element a einer primen Restklasse a + mZ soll ein multiplikativ-inverses Element b bestimmt werden, so dass gilt: a·b ≡1 (mod m) (25) Diese Kongruenz lässt sich so umschreiben, sodass sie mit dem Erweiterten Euklidischen Algorithmus lösbar ist: a·b+k ·m =1 (26) Der Erweiterte Euklidische Algorithmus auf a und m angewand, liefert einen Repräsentanten b der primen Lösungs-Restklasse b + mZ. Numerische Methoden und Algorithmen in der Physik Christian Autermann 31/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Simultane Kongruenz Eine simultane Kongruenz ganzer Zahlen ist ein System von linearen Kongruenzen: x ≡ a1 (mod m1 ) x ≡ .. . a2 (mod m2 ) x ≡ an (mod mn ) Gesucht sind alle x, die alle Gleichungen gleichzeitig lösen. Wenn eine Lösung x existiert, dann sind mit M=kgV(m1 , m2 , . . . , mn ) und einer beliebigen natürlichen Zahl k alle Lösungen gegeben durch: xk = x + k · M (27) Der Chinesische Restsatz ist ein Spezialfall: Er bezieht sich auf den Fall, dass alle mi teilerfremd sind, also keinen gemeinsamen Teiler besitzen. Alle Lösungen x sind kongruent modulo M. Numerische Methoden und Algorithmen in der Physik Christian Autermann 32/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Simultane Kongruenz Die Originalform des Chinesischen Restsatzes stammt vom Mathematiker Sun Zi (2. Jhd.) und sucht solche Zahlen x, welche die Reste 2, 3 und 2 lassen, wenn sie jeweils durch 3, 5 und 7 geteilt werden. Lösung: Weil die mi teilerfremd sind, ist M = m1 · m2 . . . mn . Die Zahlen mi und Mi = M/mi sind also ebenfalls teilerfremd. Mit Hilfe des erweiterten Euklidischen Algorithmus lassen sich nun jeweils zwei Zahlen si und ti so bestimmen, dass si · mi + ti · Mi = 1 (28) Mit ei = ti · Mi gilt nun: ei ≡ 1 (mod mi ) ei ≡ 0 (mod mj ) (29) i 6= j (30) Aus den Multiplikationsregeln für Kongruenzen folgt für die gesuchte Lösung der simultanen Kongruenz: n X x= ai · ei (31) i=1 Numerische Methoden und Algorithmen in der Physik Christian Autermann 33/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Beispiel: Chinesisches Restsatzproblem Gesucht ist die Lösung x für das folgende Gleichungssystem: x ≡ 2 (mod 3) (32) x ≡ 3 (mod 5) (33) x ≡ 2 (mod 7) (34) Es gilt: M = 105, M1 = 35, M2 = 21, M3 = 15 Mit dem erweiterten Euklidischen Algorithmus folgt: 12 · 3 −4 · 5 −2 · 7 + + + (−1) · 35 1 · 21 1 · 15 = = = 1 1 1 Eine Lösung ist dann x = 2 · (−35) + 3 · 21 + 2 · 15 = 23. Alle Lösungen sind damit gegeben durch: 23 + k · 105 Numerische Methoden und Algorithmen in der Physik für beliebige Integerzahlen k Christian Autermann (35) 34/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Übersicht Einführung Primzahlen Restklassengruppen RSA Kryptographie Public-Key-Kryptographie Numerische Methoden und Algorithmen in der Physik Christian Autermann 35/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Kryptographie RSA Verschlüsselung Das erste Beispiel für Public-Key-Kryptographie ist die RSA-Kryptographie, die 1977 von Ronald L. Rivest, Adi Shamir und Leonard Adleman am MIT entwickelt wurde. Fast alle asymmetrischen kryptographischen Verfahren basieren auf Operationen in diskreten mathematischen Strukturen, wie z. B. endlichen Körpern, Ringen, elliptischen Kurven oder Gittern. Ihre Sicherheit basiert dann auf der Schwierigkeit bestimmter Berechnungsprobleme in diesen Strukturen. In den USA fallen Public-Key Verfahren unter das Waffengesetz und sind wie auch in der EU Exportbeschränkungen unterlegen. Public-Key Verfahren können theoretisch durch Quantencomputer in Polynomialzeit gebrochen werden. Quantencryptographie, die auf Verschränkung beruht, hat hiermit jedoch nichts zu tun! Numerische Methoden und Algorithmen in der Physik Christian Autermann 36/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Die RSA Kryptographie Beispiel Alice und Bob möchten abhöhrsicher kommunizieren. Jeder besitzt einen öffentlichen (public) Schlüssel und einen geheimen (secret) Schlüssel, diese heissen PA , SA für Alice und PB , SB für Bob. Hat Alice eine Nachricht M für Bob, schickt sie PB (M) an Bob, der berechnet den Klartext durch SB (PB (M)) = M. Alice kann ihre Nachricht auch signieren, so dass Bob sicher ist, dass die Nachricht nur von Alice stammen kann. In diesem Fall sendet sie PB (M, SA (M)) an Bob. Dieser kann nach der Entschlüsselung mit Hilfe von SB verifizieren, dass M von Alice signiert wurde, in dem er PA (SA (M)) berechnet. Numerische Methoden und Algorithmen in der Physik Christian Autermann 37/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Die RSA Kryptographie 1 Wähle zwei (große, etwa 512-bit) Primzahlen p und q, so dass p 6= q. 2 Berechne n = p · q. 3 Wähle eine kleine Integer Zahl e, die relativ-prim zu ρ(n) = (p − 1)(q − 1) ist, also GGT(e, ρ(n)) = 1. 4 Berechne d, das multiplikative Inverse von e modulo ρ(n). Hierzu kann Gleichung (25) bzw. Gl. (26) benutzt werden. 5 Der RSA öffentliche Schlüssel ist P = (e, n). Der Verschlüsselungsalgorithmus lautet: P(M) = M e (mod n) (36) 6 Der RSA geheime Schlüssel ist S = (d, n). Der Entschlüsselungsalgorithmus lautet: S(C ) = C d Numerische Methoden und Algorithmen in der Physik (mod n) (37) Christian Autermann 38/ 39 Einführung Primzahlen Restklassengruppen RSA Kryptographie Mögliche Angriffstrategien Die Sicherheit von RSA beruht zum einen darauf, dass es sehr schwierig ist Wurzeln modulo n zu ziehen, um aus M e = C wieder der Klartext M zu erhalten. Genau so schwierig ist es ohne Kentniss von p und q die Eulerfunktion ρ(n) zu berechnen. Man-in-the-middle attack: Angreifer Eve gibt sich als Bob aus und schickt Alice ihren public key PE . Alice schickt die verschlüsselte Nachricht PE (M) an Eve, die es entschlüsselt und mit dem bekannten öffentlichen Schlüssel PB an Bob weiterversendet. Wiener-Verfahren: Der private Schlüssel d ist zu kurz d . √ 4 N 3 Timing-attack: Kennt Eve die Hardware von Bob’s Computer, so kann sie aus der benötigten Zeit für die Entschlüsselung SB (C ) die Schlüssellänge d berechnen. Branch prediction analysis (BPA) attacks: Moderne Multi-thread Prozessoren benutzen BPA um den wahrscheinlichsten Verlauf eines Algorithmus zu ermitteln. Ein Spionage-thread kann den Schlüssel d so statistisch ermitteln. ... Numerische Methoden und Algorithmen in der Physik Christian Autermann 39/ 39