4 Das RSA public-key System der Kryptographie 5

Ähnliche Dokumente
Aufgabe der Kryptografie

3: Zahlentheorie / Primzahlen

Diskrete Mathematik 1

Kryptographie und Komplexität

Probabilistische Primzahltests

Der Primzahltest von Agrawal, Kayal und Saxena. Dr. Gerold Jäger

El. Zahlentheorie I: Der kleine Satz von Fermat

Vorlesung 7. Tilman Bauer. 25. September 2007

Public Key Kryptographie

Zahlentheorie, Arithmetik und Algebra

Primzahltests und Faktorisierung. Primzahltests. Nuria Brede Universität Potsdam - Kryptographie SoSe 2005 Seite 1

Kapitel 3 Elementare Zahletheorie

Algorithmentheorie Randomisierung. Robert Elsässer

Proseminar Datensicherheit & Versicherungsmathematik RSA-Verfahren

Ganzzahlige Division mit Rest

Erweiterter Euklidischer Algorithmus

3 Public-Key-Kryptosysteme

Der RSA-Algorithmus. 2. Anschließend ist n = p q und ϕ (n) = (p 1) (q 1) zu berechnen.

Hallo Welt für Fortgeschrittene

Probabilistische Primzahltests

ggt mit Euklid Satz: Um ggt(k, l) mit dem Euklidischen Algorithmus zu berechnen, braucht man höchstens log Φ k < 3 2 log 2 k rekursive Aufrufe.

RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem. RSA-Verfahren. Herwig Stütz

Form der Äquivalenzklassen

Zahlentheorie, Arithmetik und Algebra 1

Das RSA-Verfahren. Proseminar Kryptographische Protokolle SS Armin Litzel

Kryptographie und Komplexität

Zahlentheorie, Arithmetik und Algebra I. Felix Teufel Hallo Welt! -Seminar - LS 2

Das RSA Kryptosystem

Vortrag zum Proseminar: Kryptographie

Gewinnung und Test großer Primzahlen

Zahlentheorie, Arithmetik und Algebra I

Praktikum Diskrete Optimierung (Teil 11)

Folien der 14. Vorlesungswoche

Lineare Algebra I (WS 13/14)

p Z >1 ist Primzahl, wenn gilt Euklid:

RSA Verfahren. Kapitel 7 p. 103

4 Kryptologie. Übersicht

Kapitel 2: Zahlentheoretische Algorithmen Gliederung

. Zahlentheorie, Arithmetik und Algebra I. Tobias Polzer. Tobias Polzer Zahlentheorie, Arithmetik und Algebra I.. /

Vorlesung Sicherheit

WS 2009/10. Diskrete Strukturen

Kryptographie und Komplexität

Primzahltest in Polynomialzeit Der Algorithmus von Agrawal, Kayal und Saxena

Proseminar SS08 - Miller-Rabin-Primzahltest

1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl

Zahlentheorie, Arithmetik und Algebra I

Vorlesung Sicherheit

Kryptographische Protokolle

Bemerkung: der goldene Schnitt ϕ ist die positive Lösung der Gleichung: x 2 = 1 + x

Gewinnung und Test großer Primzahlen

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017

Der chinesische Restsatz mit Anwendung

Lösungen der Aufgaben

3.5 Kryptographie - eine Anwendung der Kongruenzrechnung

Elementare Zahlentheorie II

Die Primheit von Primzahlen kann man effizient verifizieren. oder. Primes NP. Die Zahl

IT-Sicherheit Kapitel 4 Public Key Algorithmen

MGI Exkurs: RSA-Kryptography

Public Key Kryptographie mit dem RSA Schema. Karsten Fischer, Sven Kauer

7 Asymmetrische Kryptosysteme

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:

Vorlesung Diskrete Strukturen Gruppe und Ring

Elementare Zahlentheorie. Jörn Steuding (Uni Würzburg) Wintersemester 2016/17

Kapitel 3: Die Sätze von Euler, Fermat und Wilson. 8 Der Satz von Euler

Mathematische Grundlagen der Kryptografie (1321) SoSe 06

Kleiner Fermatscher Satz, Chinesischer Restsatz, Eulersche '-Funktion, RSA

Kapitel 2: Multiplikative Funktionen. 3 Multiplikative Funktionen. Definition 2.1 (arithmetische Funktion, (vollständig) multiplikative Funktion)

1 Das RSA-Verfahren und seine algorithmischen Grundlagen

1.1.1 Konstruktion der ganzen Zahlen, Vertretersystem (nicht-negative und negative ganze Zahlen)

Grundlagen der Arithmetik und Zahlentheorie

3-9 Elementare Zahlentheorie

Der kleine Satz von Fermat

Primzahlen und Pseudoprimzahlen

Der Miller-Rabin Primzahltest Florian Rienhardt Alle Rechte vorbehalten.

Public-Key Kryptographie mit dem RSA Schema. Torsten Büchner

n ϕ n

5 Grundlagen der Zahlentheorie

7 Die Sätze von Fermat, Euler und Wilson

Lenstras Algorithmus für Faktorisierung

Computeralgebra in der Lehre am Beispiel Kryptografie

Kryptographie und Komplexität

Primzahlen im Schulunterricht wozu?

Euklidische Algorithmus, Restklassenringe (Z m,, )

(1 + o(1)) n ln(n) π(n) =

Vorlesung Sicherheit

PRIMZAHLEN UND DIE RSA-VERSCHLÜSSELUNG

Ältere Aufgaben (bis 1998)

Kryptographie - eine mathematische Einführung

Primzahlzertifikat von Pratt

$Id: ring.tex,v /05/03 15:13:26 hk Exp $

WS 2009/10. Diskrete Strukturen

Einführung in die Kryptographie ,

Asymmetrische Kryptographie u

6.2 Asymmetrische Verschlüsselung

Zufallsprimzahlen und eine Revolution in der Kryptographie Stefan Edelkamp

Algorithmen auf Zeichenketten

Mathematische Grundlagen der Kryptografie (1321)SoSe 06

Komplexität von Algorithmen

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

Transkript:

Inhaltsverzeichnis 1 Kurze Einführung 1 2 Teibarkeit,größter gemeinsamer Teiler und der Algorithmus von Euklid 2 2.1 Der euklidische Algorithmus................... 3 2.2 Laufzeit des euklidischen Algorithmus.............. 3 2.3 Erweiterter Euklid........................ 4 3 Modulare Arithmetik 4 4 Das RSA public-key System der Kryptographie 5 5 Primzahltests 7 5.1 Der Pseudoprimzahltest..................... 8 5.2 Der Miller Rabin Test...................... 9 5.3 Der AKS-Test Primes is in P.................. 10 1 Kurze Einführung Zahlentheoretische Algorithmen gehören zusammen mit geometrischen Konstruktionen zu den ältesten niedergeschriebenen Algorithmen überhaupt. Die Zahlentheorie wurde lange Zeit wegen ihrer theoretisch sehr interessanten Problemstellungen von Mathematikern sehr geschätzt, dabei waren das Finden von Primzahlen und die Zerlegung großer Zahlen in ihre Primfaktoren, welche nach Gauß zu den interessantesten Aufgaben der Arithmetik gehören ohne jede Bedeutung für die Anwendung. Heute spielen Verfahren zur Lösung dieser Probleme eine zentrale Rolle in der Kryptographie. Die Sicherheit vieler dieser Verfahren beruht nämlich darauf, dass es vergleichsweise wesentlich einfacher ist große Primzahlen zu bestimmen als ihr Produkt, falls man erstere nicht kennt, zu zerlegen. In diesem Vortrag wird als Beispiel für ein solches Verfahren, das RSA-Verfahren vorgestellt. Außerdem werden einige grundlegende Zahlentheoretische Algorithmen zusammen mit den Begriffen und Konzepten, auf denen sie basieren besprochen. 1

2 Teibarkeit,größter gemeinsamer Teiler und der Algorithmus von Euklid Mit Zahlen seien in diesem und den folgenden Kapiteln nur ganze Zahlen gemeint. Bei Zahlentheoretischen Algorithmen werden Laufzeiten sowohl in arithmetischen als auch in Bit-Operationen betrachtet,diese Laufzeiten werden hier mit entsprechend O A und O B bezeichet. Defintion 1 Wir nennen die größte Zahl,die 2 Zahlen a und b teilt,den grössten gemeinsamen Teiler und bezeichnen sie mit ggt(a,b) Hier ist eine kurze Zusammenstellung einiger Eigenschaften,der Teilbarkeitsrelation und des ggt s. Teilbarkeit ist reflexiv und transitiv aber nicht symmetrisch d a d b = d ggt (a, b) Satz 1 Wenn a und b beliebige von 0 verschiedene Zahlen sind,dann ist der ggt(a,b) die kleinste positive Zahl,die in der Menge {ax + by x, y Z} enthalten ist. 2

Folgerung 1 Für beliebige Zahlen a und b gilt: d a und d b d ggt (a, b) Folgerung 2 Für alle Zahlen a,b und n 0 gilt: ggt (na, nb) = nggt (a, b) Folgerung 3 Für alle positiven Zahlen n,a und b gilt: n ab ggt (a, n) = 1 n b 2.1 Der euklidische Algorithmus Stammt in seiner ürsprünglichen Form von Euklid(ca 300 v Chr) Er basiert auf der Rekursion : ggt(a,b)=ggt(b,a mod b) Welche sich mit den vorangehenden Sätzen beweisen lässt. Der Algorithmus hat als Pseudocode die Gestalt Euclid(a,b) 1 if b=0 2 then return a 3 else return Euclid (b,a mod b) 2.2 Laufzeit des euklidischen Algorithmus Lemma 1 Sei a>b 1 und k 0 die Anzahl in rekursiven Aufrufen,die Euclid(a,b) benötigt, dann gilt: a F k+2 und b F k+1 Als direkte Folgerung ergibt sich der Satz von Lamé mitdessen Hilfe wir die Laufzeit(in Rekursionsaufrufen) über die Folge der Fibonacci Zahlen abschätzen können. Satz 1 (Satz von Lamé) Für jede Zahl k 1 mit a > b 1 benötigt Euclid(a,b) weniger als k rekursive Aufrufe Dies ist die bestmögliche obere Schranke. Denn benachbarte Fibonacci Zahlen sind ein Worst-Case Input für Euclid Da Euclid (F 3, F 2 ) genau einmal die Rekursion aufruft und wir für k grösser 2, F k+1 mod F k = F k 1 haben,folgt ggt (F k+1, F k ) = ggt (F k, (F k+1 modf k )) = ggt (F k, F k 1 ) 3 (2)

Euclid(F k+1, F k )) benötigt also genau k-1 rekurive Aufrufe. Für F k haben wir: F k ϕ k / 5 mit ϕ = (1+ 5) 2 Wir erhalten als Abschätzung für die Laufzeit(Rekursive Aufrufe)O (log b). Haben beide Eingaben bei Euklid β-bit,so haben wir: O A = O(β) und O B = (β 3 ). 2.3 Erweiterter Euklid Der erweiterte euklidische Algorithmus gibt zusammen mit dem größten gemeisamen Teiler d auch die Koeffizienten x,y dessen Darstellung als Linearkomination von a und b aus. Input:a,b Output:(d,x,y) Extended Euclid(a,b) Output:(d,x,y), d = ggt (a, b) = ax + by 1.Schritt: Setze d = a mod b, x = 1, y = a b 2.Schritt: Fahre so fort bis d = d. x = x, y = y Extended Euclid(a,b) 1 if b=0 2 return(a,1,0) 3 (d,x,y ) Extended Euclid(b,a mod b) 4 (d,x,y) ( d, x, y foor( a)y) b 3 Modulare Arithmetik Zum Verständnis des RSA Verfahrens und der Primzahltests benötigen wir noch ein paar Begriffe und Konzepte aus der modularen Arithmetik. 4

(Z n, + n ) ist abelsche Gruppe (Z n, n)) ist abelsche Gruppe Eulersche Funktion: ϕ(n) := Z n = p n ggt (n,p)=1 p Satz von Euler: n 2 : a ϕ(n) 1 (mod n) a Z n + Satz von Fermat:p P a p 1 1 p Z p Chinesischer Restsatz n = r i=1 n 1,..., n r Npaarweise teilerfremd. dann folgt:ϕ :Z n Z n1,..., Z nr ϕ (a (mod n)) := ((a (mod n 1 ))..., (a (mod n r ))) ist Isomorphismus. = ϕ ((pq)) = ϕ (p) ϕ (q),falls ggt (p, q) = 1 4 Das RSA public-key System der Kryptographie Jeder Teilnehmer hat einen public key P und einen secret key S Im RSA System besteht jeder Schlüssel(key) aus einem Zahlenpaar. Der secret key wird an keine andere Person weitergegen. Der public key kann an jede beliebige Person weitergegeben werden. D bezeichne die Menge der möglichen Nachrichten Public-und Secret key sind Funktionen D D mit S (P (d)) = d undp (S (d)) = d. d D Beispiel: Bob möchte eine Nachricht N an Alice senden ohne das eine dritte Person,die die Nachricht abfängt erfährt worum es geht bzw was der Inhalt ist. 5

Hierfür verschickt Alice an Bob ihren public key,mit dem Bob die Nachricht verschlüsselt, behält aber ihren secret key für sich, mit,dem sie die von Bob ihr zugesandte verschlüsselte Nachricht wieder öffnet. Im wesentlichen hängt die Sicherheit des Systems davon ab, dass eine Person, die Alice s secret key nicht besitzt, die Funktion nicht in einer realistischen Zeitspanne berechnen kann. Es stellt sich also das Hauptproblem: Wie findet man eine Funktion,die man jedem mitteilen kann, ohne das jemand, der sie kennt, aus ihr auf einfache Art und Weise die Umkehrfunktion berechnen könnte. Das RSA System macht hier sich zu Nutze, dass es relativ einfach ist große Primzahlen zu finden, währendessen es sehr schwer ist eine große zusammengesetzte Zahl zu faktorisieren. Das RSA(System) 1 Wähle zwei große( 512-Bits) Primzahlen p und q, p q 2 Setze n = pq 3 Wähle eine kleine ungerade Zahl e die teilerfremd zu ϕ (n) ist 4 Finde e invers zu e modulo ϕ (n) bezüglichmultiplikation 5 Setze P = (e, n) RSA public key 6 Setze S = (e, n) RSA secret key Wir haben D= Z n mit P (N) = N e (mod n) und S (N) = N e (mod n) für N D 6

Das RSA-Verfahren funktioniert,denn für N gilt stets P (S (n)) = S (P (n)) = N ee Da e, e bezüglich der Multiplikation modulo ϕ (n) = (p 1) (q 1) zueinander invers sind,gibt es eine Zahl k mit ee = 1 + k(p 1)(q 1). Aber für N 0 (modp) erhalten wir dann N ee N ( N p 1) k(q 1) (mod p) (3) N (1) k(q 1) (mod p) (4) N (mod p) Ausserdem gilt auch N ee, falls N 0 (mod p) Also N ee N (mod p) Analog erhält man N ee N (mod q), nachdem Chinesischem Restastz also N ee N (mod n) q.e.d 5 Primzahltests Das Problem des Unterschiedens von Primzahlen und zusammengesetzten Zahlen und das Zerlegen von grossen Zahlen in ihre Primfaktoren ist eine der wichtigsten und interessantesten Aufgaben der Arithmetik. C.F.Gauß Wir wollen möglichst einfache Methoden entwickeln um große Prim- Zah- 7

len zu bestimmen. Eine Möglichkeit ist,das wir zufällig irgendwelche ungeraden großen Zahlen wählen und testen ob es Primzahlen sind oder nicht. Hierfür müssen wir aber effiziente Verfahren entwickeln. Wir untersuchen zunächst die Dichte der Primzahlen innerhalb der natürlichen Zahlen um die Wahrscheinlichkeit, dass wir unter den Zahlen n zufällig eine Primzahl ziehen, zu schätzen. Dichte der Primzahlen: π (n) := {p P, p n} Primzahlsatz:lim n π(n) n/ ln(n) = 1 Schon für n = 10 9 (Zahlentheoretisch gesehen kleine Zahl) erhält man hiermit eine auf 6 prozent genaue Approximation π (n) = 50, 847, 534; n/ln 48, 254, 924 Die Wahrscheinlichkeit, dass eine zufällig ausgewählte Zahl Primzahl ist, ist also Schätzungsweise:1/ ln (n) Wir lernen jetzt 3 Primzahltests kennen 5.1 Der Pseudoprimzahltest Defintion 2 n heißt Pseudoprimzahl zur Basis a,falls n zusammengesetzt ist und und a n 1 1 (mod n) 8

Pseudoprime(n) 1 if Modular-Exponentation (z, n 1, n) 1 (mod n) 2 then return Composite Sicher 3 else return Prime Wahrscheinlich Modular-Exponentation(a,b,n)gibt die Potenz a b mod n Nur 22 Werte 10 4 für die der Test versagt. Irrtumswahrscheinlichkeit 0 für 5.2 Der Miller Rabin Test Der Miller-Rabin-Test mehrere zufällig ausgewählte Basen a,anstatt einer festen Basis Wird bei Modular-Exponentation während des Quadrierens eine eine nichttriviale Wurzel von 1 (mod n) entdeckt Composite Hilfsmethode Witness(a,n) testet ob durch a die Zusammengesetztheit von n gezeigt wird, indem falls a n 1 1 (mod n) gilt,n sicher zusammengesetzt ist,sonst aber nicht sicher ist das n Prim ist. Witness(a,n) 1 let n 1 = 2 t where t 1 and n is odd 2 x 0 Modular-Exponentation(1,n,n) 3 for i 1 to t 4 do x i x 2 i 1 (mod n) 5 if x i = 1 and x i 1 1 x i 1 n 1 6 then return TRUE 7 return False X := x 0,..., x t 9

Miller-Rabin(n,s) 1 for j to s 2 do a Random(1,n-1) 3 if Witness(a,n) 4 then return Composite Sicher 5 return Prime nahezu Sicher (Beispiel) : n = 561 n 1 = 561 = 2 4 35 Angenommen a=7 wird als Basis gewählt Dann berechnet Witness x 0 a 3 5 241 Also X = 241, 298, 166, 67, 1 Eine nichtriviale Wurzel von 1 wird bei der letzten Quadrierung entdeckt, da a 280 67 (mod n) und 560 1 (mod n) Deshalb beweist a=7 die Zusammengesetztheit von n. Witness(a,n) gibt also TRUE aus. Miller-Rabin gibt Composite aus. Für eine Zahl n der Bitgröße β erhalten wir: O A = O (sβ) und O B = O (sβ 3 ). Satz 2 Ist n eine ungerade zusammengesetzte Zahl,dann gibt es mindestens n 1 2 Zahlen mit Witness(a,n)=TRUE. 5.3 Der AKS-Test Primes is in P Das Problem einen deterministischen Primzahltest zu finden, der in polynomieller Zeit läuft, wurde erst vor kurzem von drei indischen Wissenschaftlern gelöst. Nach diesen ist er benannt AKS: Agrawal, Saxena, Kayal 10

Satz von AKS Sei n N und r, q N mit q (r 1) und n r 1 q mod r 2. S Z n mit ggt (n, a a ) = 1 a, a S und ( ) q+s 1 s n 2 r. Dann gilt: (x a) n x n a mod (x r 1, n) S = n ist Primzahlpotenz. Algorithmus(Strukturell) 1 if n echte Primzahlpotenz 2 then return FALSE 3 Wähle (q,r,s) wie im Satz von AKS 4 Für a S do a) if ggt (a, n) 2 return FALSE b) if (x a) n x n a mod(x r 1, n) return FALSE return TRUE Literatur Euklid Bücher(VII-X) Cormann Introduction to Algorithms Primes is in P(A Breakthrough for Everyman www.ams.org/notices/200305/fea-bornemann.pdf 11