7 Asymmetrische Kryptosysteme

Ähnliche Dokumente
3: Zahlentheorie / Primzahlen

Public Key Kryptographie

Kryptographie und Komplexität

Aufgabe der Kryptografie

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

Das RSA Kryptosystem

Vorlesung Sicherheit

Proseminar Datensicherheit & Versicherungsmathematik RSA-Verfahren

WS 2009/10. Diskrete Strukturen

Vorlesung Sicherheit

Das RSA-Verfahren. Proseminar Kryptographische Protokolle SS Armin Litzel

RSA Verfahren. Kapitel 7 p. 103

4 Kryptologie. Übersicht

Probabilistische Primzahltests

3.5 Kryptographie - eine Anwendung der Kongruenzrechnung

Kryptographie und Komplexität

Kryptographie und Komplexität

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

Übung GSS Blatt 6. SVS Sicherheit in Verteilten Systemen

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

Kryptographie - eine mathematische Einführung

Elementare Zahlentheorie II

6.2 Asymmetrische Verschlüsselung

Vorlesung 7. Tilman Bauer. 25. September 2007

El. Zahlentheorie I: Der kleine Satz von Fermat

Kryptographische Algorithmen

Computeralgebra in der Lehre am Beispiel Kryptografie

11. Das RSA Verfahren und andere Verfahren

Kapitel 3 Elementare Zahletheorie

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

Vorlesung Sicherheit

11. Das RSA Verfahren

Zahlentheorieseminar: Einführung in die Public-Key-Kryptographie

Public-Key-Verschlüsselung und Diskrete Logarithmen

Algorithmentheorie Randomisierung. Robert Elsässer

Mathematische Grundlagen der Kryptografie (1321) SoSe 06

Regine Schreier

Vortrag zum Proseminar: Kryptographie

Zufallsprimzahlen und eine Revolution in der Kryptographie Stefan Edelkamp

n ϕ n

Anwendungen der Linearen Algebra: Kryptologie

Kryptographie und Komplexität

Public Key Kryptographie

Kommunikationsalgorithmus RSA

Übungen zur Vorlesung Systemsicherheit

IT-Sicherheit: Kryptographie. Asymmetrische Kryptographie

3. Vortrag: Das RSA-Verschlüsselungsverfahren

Vorkurs für. Studierende in Mathematik und Physik. Einführung in Kryptographie Kurzskript 2015

Kryptografie Die Mathematik hinter den Geheimcodes

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

Ein RSA verwandtes, randomisiertes Public Key Kryptosystem

Einführung in die asymmetrische Kryptographie

Zahlentheorie, Arithmetik und Algebra

Praktikum Diskrete Optimierung (Teil 11)

Public-Key-Kryptographie

Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

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

Literatur. ISM SS 2017 Teil 8/Asymmetrische Verschlüsselung

RSA (Rivest, Shamir, Adleman)

Vorlesung Diskrete Strukturen Gruppe und Ring

Diskrete Mathematik 1

Grundlagen der Arithmetik und Zahlentheorie

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

Rabin Verschlüsselung 1979

Lösungen der Aufgaben

PRIMZAHLEN UND DIE RSA-VERSCHLÜSSELUNG

Primzahlen. Herbert Koch Mathematisches Institut Universität Bonn Die Primfaktorzerlegung. a = st

1 Zahlentheorie. 1.1 Kongruenzen

RSA Äquivalenz der Parameter

Kryptographische Protokolle

13. Woche: NP-Vollständigkeit Satz von Cook-Levin Anwendungen in der Kryptographie

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.

Kryptographische Algorithmen

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

Musterlösung zur Probeklausur zur Angewandten Diskreten Mathematik Dr. Hartmut Lanzinger, Hans- Peter Reck

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

Zahlentheorie I. smo osm. Thomas Huber. Inhaltsverzeichnis. Aktualisiert: 1. August 2016 vers Teilbarkeit 2.

Vorlesung Mathematik 2 für Informatik

3 Das RSA-Kryptosystem

1 Das RSA-Verfahren und seine algorithmischen Grundlagen

Kryptographie. Nachricht

Asymmetrische Kryptographie u

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

Entwicklung der Asymmetrischen Kryptographie und deren Einsatz

Modul Diskrete Mathematik WiSe 2011/12

Kapitel 6: Das quadratische Reziprozitätsgesetz

KRYPTOSYSTEME & RSA IM SPEZIELLEN

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

Kryptographie. Teilnehmer: Gruppenleiter: Humboldt-Universität zu Berlin.

Lenstras Algorithmus für Faktorisierung

Elementare Zahlentheorie II

Kryptologie. Bernd Borchert. Univ. Tübingen SS Vorlesung. Teil 10. Signaturen, Diffie-Hellman

PRIMZAHLEN PATRICK WEGENER

Mathematische Grundlagen der Kryptografie (1321)SoSe 06

9. Primitivwurzeln. O. Forster: Einführung in die Zahlentheorie

Hybride Verschlüsselungsverfahren

4 Das RSA public-key System der Kryptographie 5

Hast du auch wirklich versucht, die Aufgaben einmal selbständig zu lösen? Wenn nicht, tue es, bevor du dir die Lösungen anschaust!

Funktionsweise des. RSA-Verfahrens

Digitale Unterschriften mit ElGamal

Transkript:

10 7 Asymmetrische Kryptosysteme 7 Asymmetrische Kryptosysteme Diffie und Hellman kamen 1976 auf die Idee, dass die Geheimhaltung des Chiffrierschlüssels keine notwendige Voraussetzung für die Sicherheit eines Kryptosystems sein muss. Natürlich setzt dies voraus, dass die vom Sender und Empfänger benutzten Schlüssel k und k voneinander verschieden sind und dass insbesondere der Dechiffrierschlüssel k nur sehr schwer aus dem Chiffrierschlüssel k berechenbar ist. Ist dies gewährleistet, so kann jedem Kommunikationsteilnehmer X ein Paar von zusammengehörigen Schlüsseln k X, k X zugeteilt werden. X kann nun den Chiffrierschlüssel k X öffentlich bekannt geben, muss aber den Dechiffrierschlüssel k X unter Verschluss halten. Die Tatsache, dass sich mit k X die Nachrichten nicht wieder entschlüsseln lassen, hat den entscheidenden Vorteil, dass k X über einen authentisierten Kanal zum Sender gelangen kann (d.h. es ist zwar nicht notwendig,k X geheim zu halten, aber die Herkunft von k X muss verifizierbar sein). Von einem symmetrischen Kryptosystem spricht man, wenn die Kenntnis des Chiffrierschlüssels gleichbedeutend mit der Kenntnis des Dechiffrierschlüssels ist, der eine also leicht aus dem anderen berechnet werden kann. Dagegen sind bei einem asymmetrischen Kryptosystem nur die Dechiffrierschlüssel geheimzuhalten, während die Chiffrierschlüssel öffentlich bekanntgegeben werden können. Für symmetrische Kryptosysteme sind auch die Bezeichnungen konventionelles Kryptosystem, Kryptosystem mit geheimen Schlüsseln oder Secret-Key-Kryptosystem üblich, wogegen asymmetrische Kryptosysteme auch häufig auch als Kryptosysteme mit öffentlichen Schlüsseln oder Public-Key-Kryptosysteme bezeichnet werden. Bei einem symmetrischen Kryptosystem sind die Rollen von Sender und Empfänger untereinander austauschbar (beziehungsweise symmetrisch), da die Vertraulichkeit der Nachrichten auf einem gemeinsamen Geheimnis beruht, welches sich die beiden Kommunikationspartner in Form des zwischen ihnen vereinbarten Schlüssels verschaffen. Der prinzipielle Unterschied zwischen symmetrischer und asymmetrischer Verschlüsselung kann sehr schön am Beispiel eines Tresors veranschaulicht werden, den Alice dazu verwendet, Bob geheime Dokumente zukommen zu lassen. Symmetrische Verschlüsselung: Alice und Bob besitzen beide den gleichen Schlüssel k. Alice schließt mit ihrem Schlüssel die Nachricht in den Tresor ein und Bob öffnet ihn später wieder mit seinem Schlüssel. Das Tresorschloss lässt sich also mit k sowohl auf- als auch zuschließen. Asymmetrische Verschlüsselung: Alice schließt die Nachricht mit dem Schlüssel k B in den Tresor ein. Danach lässt sich das Tresorschloss mit diesem Schlüssel nicht mehr öffnen. Dies ist nur mit dem in Bobs Besitz befindlichen Schlüssel k B möglich. Obwohl also beide Schlüssel in das Schloss passen, können k B und k B jeweils nur in eine von beiden Richtungen gedreht werden.

7 Asymmetrische Kryptosysteme 103 Da Alice nicht im Besitz von Bobs privatem Schlüssel k B ist, kann sie im Gegensatz zu Bob nicht alle mit k B verschlüsselten Nachrichten entschlüsseln, insbesondere keine Kryptotexte, die Bob von anderen Teilnehmern zugeschickt werden. Zu beachten ist auch, dass mit den beiden Schlüsseln k B und k B von Bob nur eine Nachrichtenübermittlung von Alice an Bob möglich ist. Für die umgekehrte Richtung müssen dagegen die beiden Schlüssel k A und k A von Alice benutzt werden. 7.1 Das RSA-System Das RSA-Kryptosystem basiert auf dem Faktorisierungsproblem und wurde 1978 von seinen Erfindern Rivest, Shamir und Adleman veröffentlicht. Während beim Primzahlproblem nur eine Ja-Nein-Antwort auf die Frage Ist n prim? gesucht wird, muss ein Algorithmus für das Faktorisierungsproblem im Falle einer zusammengesetzten Zahl mindestens einen nicht-trivialen Faktor berechnen. Für jeden Teilnehmer des RSA-Kryptosystems werden zwei große Primzahlen p, q und Exponenten e, d mit ed ϕ(n) 1 bestimmt, wobei n = pq und ϕ(n) = (p 1)(q 1) ist. Öffentlicher Schlüssel: Geheimer Schlüssel: k = (e, n), k = (d, n). Jede Nachricht x wird durch eine Folge x 1, x,... von natürlichen Zahlen x i < n dargestellt, die einzeln wie folgt ver- und entschlüsselt werden. E((e, n), x) = x e mod n, D((d, n), y) = y d mod n. Die Chiffrierfunktionen E und D können durch Wiederholtes Quadrieren und Multiplizieren effizient berechnet werden. Der Schlüsselraum ist also K = {(c, n) es ex. Primzahlen p und q mit n = pq und c Z ϕ(n) } und S enthält alle Schlüsselpaare ((e, n), (d, n)) K K mit ed ϕ(n) 1. Satz 153 Für jedes Schlüsselpaar ((e, n), (d, n)) S und alle x Z n gilt x ed n x. Beweis: Sei ed = zϕ(n) + 1 für eine natürliche Zahl z.

104 7 Asymmetrische Kryptosysteme 1. Fall: ggt(x, n) = 1: Mit dem Satz von Euler-Fermat folgt unmittelbar x ed n x zϕ(n)+1 n x.. Fall: ggt(x, n) = p: Dann ist x Z q und es gilt x = lp Z q für eine natürliche Zahl l. Daher folgt und x ed = x z(p 1)(q 1) x = (x }{{} q 1 ) z(p 1) x q x q1 x ed = (lp) ed p 0 p x. Somit erhalten wir x ed pq x. 3. Fall: ggt(x, n) = q: analog zu Fall. 4. Fall: ggt(x, n) = n: Dann gilt x ed n 0 n x. Zur praktischen Durchführung 1. Bestimmung von p und q: Man beginnt mit einer Zahl x der Form 30z (mit z Z) und der verlangten Größenordnung (z. B. 10 100 ) und führt einen Primzahltest für x+1 durch. Ist die Antwort negativ, testet man der Reihe nach die Zahlen x + 7, x + 11, x + 13, x + 17, x + 19, x + 3, x + 9, x + 30 + 1, x + 30 + 7,... bis eine Primzahl gefunden ist. Wegen π(n) n > (3 ln n) und da nur 8 von 30 Zahlen getestet werden, sind hierzu ungefähr 8 3 ln x 30 = / 5 lnx Primzahltests durchzuführen (bei 100- stelligen Dezimalzahlen sind das um die 9 Tests).. Bestimmung von d: d soll teilerfremd zu ϕ(n) = (p 1)(q 1) sein. Diese Bedingung wird z. B. von jeder Primzahl größer als max{p, q} erfüllt. 3. Bestimmung von e: Da ggt(d, ϕ(n)) = 1 ist, liefert der erweiterte Euklidsche Algorithmus das multiplikative Inverse e von d modulo ϕ(n). 4. Ver- und Entschlüsselung: Modulares Exponentieren durch wiederholtes Quadrieren und Multiplizieren. Es gibt auch Hardware-Implementierungen, die (unter Verwendung des Chinesischen Restsatzes) mit Geschwindigkeiten von bis zu 5 Kbits/sec arbeiten und somit circa 1500 mal langsamer als der DES sind. Kryptoanalytische Betrachtungen 1. Die Primfaktoren p und q sollten nicht zu nahe beieinander liegen, da sonst n durch das Verfahren der Differenz der Quadrate faktorisiert werden kann:

7 Asymmetrische Kryptosysteme 105 Sei p > q. Dann gilt mit b = (p q) und a = p b = q + b n = pq = (a + b)(a b) = a b. Um n zu faktorisieren, genügt es daher, eine Zahl a > n zu finden, so dass a n = b eine Quadratzahl ist. Für n = 97 343 ist zum Beispiel n = 31. Bereits für a = 31 ist a n = 97 344 97 343 = 1 = 1 eine Quadratzahl, woraus wir die beiden Faktoren p = a + 1 = 313 und q = a 1 = 311 erhalten. Der Aufwand für die Suche ist proportional zur Differenz a n, die sich wegen a + x a + x wie folgt nach oben und unten abschätzen lässt: a b a a a b = a n = n + b n Im Fall c = p/q gilt jedoch b a = (c 1) p 4(c + 1) p/1, so dass dieser Angriff keinen nennenswerten Vorteil mehr bringt. b n.. Das kleinste gemeinsame Vielfache k = kgv(p 1, q 1) sollte möglichst groß sein, damit nicht ein zu d äquivalentes d durch Raten oder durch eine systematische Suche gefunden werden kann. Wie folgende Äquivalenzumformungen zeigen, ist nämlich ein Exponent d äquivalent zu d, falls d k d ist. x : x e ed n x x : x e ed p x x : x e ed q x (p 1) (e d 1) (q 1) (e d 1) (Satz von Gauß) e d p 1 1 e d q 1 1 d p 1 d d q 1 d d k d Wegen (p 1)(q 1) = kgv(p 1, q 1)ggT(p 1, q 1) sollte ggt(p 1, q 1) also relativ klein sein, d. h. (p 1) und (q 1) müssen große, nicht gemeinsam vorkommende Primfaktoren enthalten. Um dies zu erreichen, wählt man zur Bestimmung von p und q jeweils eine große Primzahl p bzw. q und testet die Zahlen l p+1, (für l =, 4, 6,...) mit einem Primzahltest. Hierzu sind gewöhnlich l / ln p Tests auszuführen (nach Elliot und Halberstam).

106 7 Asymmetrische Kryptosysteme 3. Für unterschiedliche Teilnehmer sollten verschiedene Module n = pq gewählt werden. Wie wir später sehen werden, erlaubt nämlich die Kenntnis eines Schlüsselpaares (e, n), (d, n) mit ed ϕ(n) 1 die effiziente Faktorisierung von n (siehe Satz 157). Zudem lässt sich eine Nachricht x, die ein Benutzer an zwei Empfänger mit demselben Modul n schickt, leicht bestimmen. Gilt nämlich für die öffentlichen Schlüssel (e 1, n) und (e, n), dass ggt(e 1, e ) = 1 ist (die Wahrscheinlichkeit hierfür ist ungefähr 0,81), so kann x leicht aus e 1, e, y 1 = x e1 mod n und y = x e mod n berechnet werden: 1. Fall: ggt(y 1, n) > 1. Dann ist ggt(y 1, n) {p, q}, d. h. das System ist gebrochen.. Fall: ggt(y 1, n) = 1. Berechne mit dem erweiterten Euklidschen Algorithmus Zahlen a, b, y1 1 mit ae 1 + be = 1 und y 1 y1 1 n 1, wobei o. B. d. A. a < 0 sei. Dann ist y1 1 n x ϕ(n) e1, also (y 1 1 ) a y b n (x ϕ(n) e1 ) a x eb n x e1a+eb n x. 4. Sei n = pq (mit p, q P; p > q). Dann können p, q leicht aus n und ϕ(n) berechnet werden. Wegen ϕ(n) = (p 1)(q 1) = (p 1)( n / p 1) = p + n + 1 n / p erhalten wir die Gleichung p (n + 1 ϕ(n)) + }{{} n / p = 0, c die auf die quadratische Gleichung p cp + n = 0 führt, aus der sich p zu c+ c n bestimmen lässt. Wie wir gesehen haben, ist das RSA-System gebrochen, falls die Faktorisierung des Moduls n gelingt. Das Brechen von RSA ist daher höchstens so schwer wie das Faktorisieren von n. Dagegen ist nicht bekannt, ob auch umgekehrt ein effizienter Algorithmus, der bei Eingabe von e, n, y ein x mit x e n y berechnet, in einen effizienten Faktorisierungsalgorithmus für n umgewandelt werden kann. D.h., es ist offen, ob das Brechen von RSA mindestens so schwer ist wie das Faktorisieren von n. Wie der folgende Satz zeigt, ist die Bestimmung des geheimen Sclüssels nicht leichter als das Faktorisieren von n, da bei Kenntnis von d leicht ein Vielfaches v = ed 1 von k = kgv(p 1, q 1) bestimmt werden kann. Im Beweis benutzen wir folgendes Lemma. Lemma 154 Seien y, z zwei Lösungen der Kongruenz x n a mit y n ±z. Dann ist ggt(y + z, n) ein nicht-trivialer Faktor von n. Beweis: Wegen y n z existiert ein t Z mit y z = (y + z)(y z) = tn. Da jedoch weder y + z noch y z durch n teilbar ist, folgt ggt(y + z, n) {1, n}.

7 Asymmetrische Kryptosysteme 107 Betrachte folgenden probabilistischen Algorithmus RSA-FACTORIZE, der durch eine leichte Modifikation des Miller-Rabin Primzahltests entsteht. Algorithmus 155 MILLERRABIN(n) sei n 1 = m u, u ungerade 1 choose a {1,,..., n 1} if ggt(a, n) > 1 then 3 output zusammengesetzt 4 end 5 b a u mod n 6 s 0 7 while b 1(mod n) and (s m) do 8 b b mod n 9 s s + 1 10 end 11 if b ±1(mod n) then 1 output zusammengesetzt 13 else 14 output prim 15 end Algorithmus 156 RSA-FACTORIZE(n,v) sei v = m u, u ungerade 1 choose a {1,,..., n 1} if ggt(a, n) > 1 then 3 output ggt(a, n) 4 end 5 b a u mod n 6 while b 1(mod n) do 7 b b mod n 8 end 9 if b ±1(mod n) then 10 output ggt(b + 1, n) 11 else 1 output? 13 end Satz 157 FACTORIZE(n, v) ist ein Las-Vegas Algorithmus, der bei Eingabe von n, v einen Primfaktor von n mit Wahrscheinlichkeit > 1 / ausgibt, falls n = pq (p, q prim) und v > 0 ein Vielfaches von k = kgv(p 1, q 1) ist. Beweis: Mit Lemma 154 folgt b n ±1, b n 1 ggt(b + 1, n) {p, q}, womit die Korrektheit der Ausgabe von RSA-FACTORIZE in Zeile 10 gezeigt ist. In den folgenden Behauptungen schätzen die Wahrscheinlichkeit ab, mit der dem Algorithmus eine Faktorisierung von n gelingt. Sei p 1 = i u 1 und q 1 = j u mit u 1, u ungerade und sei o. B. d. A. i j. Behauptung 158 ggt(u, p 1) = u 1 und ggt(u, q 1) = u. Beweis: Wegen kgv(p 1, q 1) = max(i,j) kgv(u 1, u ) v = m u folgt u 1 u, u u und i, j m. Da nun u ungerade ist und p 1 = i u 1 ist, folgt ggt(u, p 1) = u 1 (ggt(u, q 1) = u folgt analog). Behauptung 159 {a Z n a u n 1} = u 1 u. }{{} =:α Beweis: Mit dem Chinesischen Restsatz folgt α = {a Z p a u p 1} {a Z q a u q 1}. }{{}}{{} =:β =:γ

108 7 Asymmetrische Kryptosysteme Sei g ein Erzeuger von Z p. Dann gilt g ku p 1 ku p 1 0. Dies zeigt β = ggt(u, p 1) = u 1. Analog folgt γ = u. Behauptung 160 t i a : a tu n 1. Beweis: t i t u p 1 0 a t u p 1 a t u p 1 a t u n 1. Behauptung 161 0 t < i {a Z n a tu n 1} = t u 1 u. }{{} =:α t Beweis: Mit dem Chinesischen Restsatz folgt α t = {a Z p a tu p 1} {a Zq a tu q 1}. }{{}}{{} =:β t =:γ t Sei g ein Erzeuger von Z p. Dann gilt g ktu p 1 k t u p 1 p 1. Wegen t < i ist ggt( t u, p 1) = t u 1 ein Teiler von p 1 = i 1 u 1 und daher ist β t = ggt( t u, p 1) = t u 1 (γ t = t u folgt analog). Behauptung 16 {a Z n a u n 1 t, 0 t < i : a tu n 1} ϕ(n)/. Beweis: {a Z n a u = 1 t, 0 t < i : a tu = 1} i 1 u 1 u + t u 1 u t=0 i 1 = u 1 u (1 + t=0 = u 1 u ( / 3 + i /3) = / 3 u 1 u + 1 / 3 i u 1 u t ) = u 1 u (1 + i 1 ) 3 ϕ(n)( 1 / 6 + 1 / 3 ), da u 1 u ϕ(n)/4 und i u 1 u i+j u 1 u = ϕ(n) = ϕ(n)/.

7 Asymmetrische Kryptosysteme 109 Bemerkung 163 Falls es möglich wäre, aus n, e, y = x e mod n die Parität von x in Polynomialzeit zu bestimmen, so könnte auch der gesamte Klartext x in Polynomialzeit aus n, e und y berechnet werden. Das letzte Bit des Klartextes ist also genau so sicher wie der gesamte Klartext: Falls RSA nicht total gebrochen werden kann, kann auch nicht das letzte Bit des Klartextes ermittelt werden. Sei nämlich und klartext-half(y) = half(x) = klartext-parity(y) = parity(x) = { 0 falls 0 x (n 1)/ 1 falls (n + 1)/ x n 1 { 1 falls x ungerade 0 falls x gerade dann kann wegen half(x) = parity(x mod n) die Berechnung von klartext-half(y) auf die Berechnung von klartext-parity(y) reduziert werden: klartext-half(y) = half(x) = parity(x mod n) = klartext-parity( e y mod n). Stellen wir x in der Form x = b 0 ( n / ) + b 1 ( n / 4 ) + b ( n / 8 ) + = b i (n/ i+1 ) i=0 dar, so berechnet sich die Bitfolge b i, i = 0, 1,... zu b i = half( i x mod n) = parity( i+1 x mod n) = klartext-parity( (i+1)e y mod n). Daher lässt sich x mit Orakelfragen an klartext-parity leicht durch eine Intervallschachtelung unter Berechnung der Bits b i für i = 0, 1,..., log n bestimmen (da i= log n +1 (n/i+1 ) < n/ log n = 1): 1 low 0 high n 3 mid high+low 4 while low < high do 5 y e y mod n 6 if klartext-parity(y) then 7 low mid 8 else 9 high mid 10 end 11 mid low+high 1 end 13 output high

110 7 Asymmetrische Kryptosysteme Beispiel 164 Sei n = 1 457, e = 779 und y = 7. Angenommen, das Orakel klartextparity liefert die folgenden Werte b i = klartext-parity( (i+1)e y mod n): i 0 1 3 4 5 6 7 8 9 10 (i+1)e y 1136 847 1369 158 1156 86 444 408 130 71 144 b i 1 0 1 0 1 1 1 1 1 0 0 Dann führt die Intervallschachtelung i b i low high mid - - 0, 00 1 457, 00 78, 50 0 1 78, 50 1 457, 00 1 09, 75 1 0 78, 50 1 09, 75 910, 63 1 910, 63 1 09, 75 1 001, 69 3 0 910, 63 1 001, 69 956, 16 4 1 956, 16 1 001, 69 978, 93 5 1 978, 93 1 001, 69 990, 31 6 1 990, 31 1 001, 69 996, 00 7 1 996, 00 1 001, 69 998, 85 8 1 998, 85 1 001, 69 1 000, 7 9 0 998, 85 1 000, 7 999, 56 10 0 998, 85 999, 56 999, 1 auf den Klartext x = 999, der tatsächlich die vorgegebene Paritätsbitfolge generiert: i 0 1 3 4 5 6 7 8 9 10 i+1 x 541 108 707 1414 1371 185 1113 769 81 16 34 b i 1 0 1 0 1 1 1 1 1 0 0 7. Das Rabin-System Wie das RSA-Verfahren beruht das Rabin-System darauf, dass es zwar effiziente Algorithmen für das Testen der Primzahleigenschaft gibt, effiziente Faktorisierungsalgorithmen aber nicht bekannt sind. Im Gegensatz zum RSA-Verfahren, von dem nicht bekannt ist, dass es mindestens so schwer zu brechen ist wie das Faktorisierungsproblem, ist genau dies beim Rabin-System der Fall. Die Sicherheit des Rabin-Systems ist also äquivalent zur Schwierigkeit des Faktorisierungsproblems. Es verwendet als Falltürfunktion eine quadratische Polynomfunktion modulo dem Produkt n = pq zweier großer Primzahlen. Jeder Teilnehmer wählt ein Paar p, q von Primzahlen mit der Eigenschaft p 4 q 4 3 und eine Zahl e {0,...,n 1}. Die Zahlen n und e werden öffentlich bekannt gegeben, die Faktorisierung von n wird jedoch geheimgehalten. Öffentlicher Schlüssel: e, n Geheimer Schlüssel: p, q.

7 Asymmetrische Kryptosysteme 111 Jede Nachricht m wird in eine Folge von natürlichen Zahlen m i {0,..., n 1} aufgeteilt, die der Reihe nach wie folgt verschlüsselt werden. E(x, (e, n)) = x(x + e) mod n = y. Zur Entschlüsselung eines Kryptotextes y {0,..., n 1} muss der legale Empfänger B die quadratische Kongruenzgleichung x(x + e) n y lösen, die äquivalent zu der Kongruenz (x + 1 e) }{{} n ( 1 e) + y, x (quadratische Ergänzung) ist, wobei 1 = (n + 1)/ das multiplikative Inverse zu modulo n ist. Unter Verwendung des folgenden Satzes können die vier Lösungen x i (für 1 i 4) dieser Kongruenx effizient von B bestimmt werden. Satz 165 Sei n = pq für Primzahlen p, q mit p 4 q 3. Dann besitzt die quadratische Kongruenz x n a für jedes a QR n genau vier Lösungen, wovon nur eine ein quadratischer Rest ist. Beweis: Mit x n a besitzen wegen n = pq auch die beiden quadratischen Kongruenzen x p a und x q a Lösungen, und zwar jeweils genau zwei (siehe Korollar 136): y 1, = a (p+1)/4 mod p und z 1, = a (q+1)/4 mod q. Mit dem Chinesischen Restsatz können wir vier verschiedene Lösungen x i,j, 1 1, mit x p y i x q z j bestimmen. Es können aber auch nicht mehr als diese vier Lösungen existieren, da sich daraus für mindestens eine der beiden Kongruenzen x p a und x q a mehr als zwei Lösungen ableiten ließen. Um schließlich zu zeigen, dass genau eine der vier Lösungen ein quadratischer Rest ist, nehmen wir o. B. d. A. an, dass y 1 QR p, y QNR p und z 1 QR q, z QNR q sind. Betrachten wir folgendes Lemma als Zwischenschritt. Lemma 166 Jeder quadratische Rest a modulo n ist auch quadratischer Rest modulo k, falls k Teiler von n ist. a QR n k n a QR k Beweis: a QR n b Z n : b n a b Z k : b k a a QR k. Mit diesem Lemma folgt, daß x, x 3, x 4 keine quadratischen Reste modulo n sein können. Weiterhin gibt es Zahlen l Z p, k Z q mit l p y 1 und k q z 1. Sei m eine Lösung für das System x p l, x q k,

11 7 Asymmetrische Kryptosysteme dann folgt x 1,1 p y 1 p l p m x 1,1 q z 1 q k q m folgt x 1,1 n m. Also ist x 1,1 ein quadratischer Rest modulo n. Als weitere zahlentheoretische Funktion mit für die Kryptographie wichtigen Eigenschaften erhalten wir somit die Quadratfunktion x : QR n QR n, die nach vorigem Satz bijektiv ist (falls n = pq für Primzahlen p, q mit p 4 q 3). Ihre Umkehrfunktion x x heißt diskrete Wurzelfunktion, und kann (nur) bei Kenntnis der Primfaktoren p und q von n effizient berechnet werden. Wir werden später sehen, dass die Berechnung dieser Funktion äquivalent zur Faktorisierung von n ist. Es ist nicht einmal ein effizientes Verfahren bekannt, mit dem man ohne Kenntnis der Faktorisierung von n für ein gegebenes a Z n entscheiden kann, ob a QR n ist oder nicht. Das Problem, aus den vier Kandidaten den richtigen Klartext auzuwählen, kann entweder unter Ausnutzung der Redundanz der Klartextsprache (es muss sich sinnvoller Klartext ergeben) oder durch Senden folgender Zusatzinformation gelöst werden. Wegen ( ) b = n ( ) ( ) b b = p q }{{}}{{} ( p) b ( q) b ( ) b n lässt sich x = x + 1 e (und damit x) eindeutig durch Angabe der beiden Bits { ( ) { x 0 falls b 0 = n = 1, und b 1 = half(x 0 falls x ) = (n 1)/ 1 sonst 1 sonst unter den Lösungen von (x ) n ( 1 e) + y kennzeichnen. Beispiel 167 Wählen wir p = 7, q = 11 und e =, so ergeben sich Öffentlicher Schlüssel: e =, n = 77 Geheimer Schlüssel: p = 7, q = 11. Um den Klartext x = 1 zu verschlüsseln, wird der Kryptotext y = E(1;, 77) = 1(1 + ) mod 77 = 14 erzeugt. Da 1 e = 1 = 1 ist, kann dieser durch Lösen der quadratischen Kongruenz (x + 1) 77 y + 1 = 15, entschlüsselt werden. Hierzu löst der legale Empfänger zunächst die beiden Kongruenzen y 7 15 1 und z 11 15 4 zu y 1, = ±15 mod 7 = ±1 (wegen p+1 4 = ) und z 1, = ±4 3 mod 11 = ± (wegen q+1 4 = 3). Mit dem Chinesischen Restsatz lassen sich y 1, und z 1, zu den vier Lösungen x i,j = 57, 64, 13 und 0 zusammensetzen, die auf die vier Klartextkandidaten 1, 19, 56 und 63 führen.

7 Asymmetrische Kryptosysteme 113 Es ist klar, dass das System gebrochen ist, sobald n in seine Primfaktoren p, q zerlegt werden kann. Wie wir gleich sehen werden, sind für Zahlen n von dieser Bauart das Faktorisierungsproblem und das Problem, eine Lösung der quadratischen Kongruenz x n a für ein gegebenesa QR n zu finden, äquivalent. Kann also das Rabin-System gebrochen werden, so muss ein effizienter Algorithmus A existieren, der bei Eingabe (c, n), c QR n, eine Zahl a = A(c, n) mit a n d berechnet. Unter Verwendung von A lässt sich folgender effizienter probabilistischer Algorithmus RABIN-FACTORIZE angeben, der n faktorisiert. Algorithmus 168 RABIN-FACTORIZE(n) 1 repeat forever choose a {1,..., n 1 } 3 if ggt(a, n) > 1 then output ggt(a, n) 4 c a mod n 5 b A(c, n) 6 if b n ±a then output ggt(a + b, n) Satz 169 Falls RABIN-FACTORIZE(n) hält, gibt er einen Primfaktor von n = pq, p, q prim, aus. Die Wahrscheinlichkeit, dass hierfür mehr als t Schleifendurchläufe benötigt werden, ist kleiner als t. Beweis: Es ist klar, dass ggt(a, n) im Fall ggt(a, n) > 1 ein Primfaktor von n ist. Lemma 154 zeigt, dass dies im Fall b n ±a auch für ggt(a + b, n) gilt. Sei nun X die ZV, die die Wahl von a beschreibt, und sei α die Wahrscheinlichkeit, dass der Algorithmus in einem Schleifendurchlauf einen Primfaktor findet. Wir nehmen o.b.d.a. an, dass A(c, n) im Fall c QR n eine Zahl b in der Menge U = Z n {1,..., n 1 } zurückliefert. Für a U sei a die in U {a} eindeutig bestimmte Lösung x von x n a. Dann gilt mit α = Prob[ggT(X, n) > 1] +Prob[X U und X n ±A(X, n)]. }{{}}{{} Prob[X U]=:β γ γ = Prob[X U A(X, n) = a]prob[x = a X U A(X, n) = a] }{{} a U 1/ = 1 Prob[X U A(X, n) = a] = 1 Prob[X U] = (1 β)/. a U Somit ist α = β + γ = (β + 1)/ > 1/, d.h. die Wahrscheinlichkeit, dass RABIN- FACTORIZE mehr als t Schleifendurchläufe ausführt, ist (1 α) t < t.