• Keine Ergebnisse gefunden

Algorithmische Kryptographie (WS2015/16) Kapitel 3 Sicherheitsaspekte und Hilfsfunktionen Walter Unger

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmische Kryptographie (WS2015/16) Kapitel 3 Sicherheitsaspekte und Hilfsfunktionen Walter Unger"

Copied!
113
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmische Kryptographie (WS2015/16)

Kapitel 3

Sicherheitsaspekte und Hilfsfunktionen

Walter Unger

Lehrstuhl für Informatik 1

15:58 Uhr, den 12. Dezember 2015

(2)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3 Inhaltsverzeichnis Walter Unger 12.12.2015 15:58 WS2015/16 Z

Inhalt I

1 Einleitung Einfache Angriffe

2 Hilfsfunktionen OAEP-Verfahren Hashfunktionen Definitionen Merkles-Meta-Methode

3 Weitere Angriffe Abstand der Faktoren Sicherheitsaspekte von RSA Kann man d bestimmen?

4 Bit-Sicherheit

Sind Teilinformationen sicher?

Sicherheit des LSB Überblick und Beweisidee Beweis

5 Bestimmung von Primzahlen Einleitung

Einfacher Test Soloway-Strassen Miller-Rabin

Agrawal, Kayal und Saxena

(3)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:1 Einfache Angriffe Walter Unger 12.12.2015 15:58 WS2015/16 Z

Angriff eins gegen RSA

AverwendeEeRSA1,n,B verwendeEeRSA2,n und es sei ggT(e1,e2) =1.

C:m,e1,e2,n A:e1,d1,n B:e2,d2,n mverteilen me1modn

me2modn

FallsC beiden die gleiche Nachricht sendet, dann ist ein Angriff möglich.

Da ggT(e1,e2) =1 gibt esr,s mitre1+se2=1. Sei o.E.d.A.r<0.

C hat die Nachrichtmversendet,

d.h. bestimmt:c1:=EeRSA1,n(m)undc2:=EeRSA2,n(m).

Falls nunc16∈Zn, so kannndurch das Bestimmen von ggT(c1,n) faktorisiert werden.

Falls aberc1∈Zn, so kannc1−1bestimmt werden.

Es ergibt sich:

(c1−1)−rc2s= (me1)r·(me2)s=mre1+se2≡m (modn)

(4)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:2 Einfache Angriffe Walter Unger 12.12.2015 15:58 WS2015/16 Z

Angriff zwei gegen RSA

Drei PartienAi (16i63)verwendenE3,nRSAi.

C:m,ei,ni(i∈ {1,2,3} A1:3,d1,n1 A2:3,d2,n2 A3:3,d3,n3 mverteilen m3modn1

m3modn2 m3modn3

Es kann wie im oberen Fall entschlüsselt werden, falls alle drei die gleiche Nachricht empfangen.

Seici =E3,nRSAi(m) =m3modni. Mit dem Chinesischen Restklassensatz

(ϕ:Zn1n2n3→Zn1×Zn2×Zn3 ) erhält man nunm3. Dam3<n1n2n3gilt, kannmeindeutig bestimmt werden.

(5)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:3 Einfache Angriffe Walter Unger 12.12.2015 15:58 WS2015/16 Z

Angriff drei gegen RSA

AverwendeEe,nRSA undDd,p,qRSA sowohl zum Verschlüsseln als auch zum Unterschreiben.

A:e,d,n B:e,n C:e,n

c=memodn

c Unterschreibe bittec

cdmodn

m

So wird dieses System unsicher,

selbst wennAalle gesendeten Nachrichten speichert.

Ein Angreifer, der eine verschlüsselte Nachrichtc=Dd,p,qRSA(m)kennt, geht dann wie folgt vor:

C wähltr∈Zn zufällig.

Bestimmtx :=c·re.

FragtAnach der Unterschrift zux. Dann kenntC:xd ≡Dd,p,qRSA(x) (modn).

C bestimmt:xd·r−1≡(c·re)d·r−1≡cd≡m (mod n).

Mit einem OAEP Verfahren (optimal asymmetric encription padding) können diese Angriffe verhindert werden.

(6)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:4 OAEP-Verfahren Walter Unger 12.12.2015 15:58 WS2015/16 Z

OAEP (optimal asymmetric encryption padding)

Ziel: verhindere Angriffe, die die Gruppenstruktur eines Verschlüsselungsverfahren nutzen.

Dieses Verfahren ist schnell, beinhaltet einen Zufallsanteil und es muss nicht viel zusätzliche Information übertragen werden.

Dazu werden die folgenden Funktionen mitn=k+l benutzt:

Verschlüsselungsfunktion f :D→DmitD⊂ {0,1}n Pseudo-Zufallsgenerator G:{0,1}k→ {0,1}l Hashfunktion h:{0,1}l → {0,1}k Seimdie zu verschlüsselnde Nachricht.

1 Wähle Zufallszahlr∈ {0,1}k.

2 Setze nunx=

(m⊕G(r))◦(r⊕h(m⊕G(r))).

3 Fallsx6∈D wiederhole.

4 Verschlüssele mitc :=f(x).

Seic die zu entschlüsselnde Nachricht.

1 Setzex0:=f−1(c).

2 Bestimmea,bmitx0=a◦bund

|a|=l sowie|b|=k.

3 Bestimmer=h(a)⊕b.

4 Bestimmem=a⊕G(r).

(7)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:5 Hashfunktionen Walter Unger 12.12.2015 15:58 WS2015/16 Z

Hashfunktionen

Eine Hashfunktion ist eine Funktionh:{0,1}→ {0,1}k mit:m7→h(m).

Diese Funktionen werden z.B. beim Unterschreiben von Texten, zur Fehlererkennung oder Datenverwaltung verwendet.

Bei den Unterschriften wird statt einer Nachrichtmdessen Hashwert h(m)unterschrieben.

Eine Kollision bei einer Hashfunktionhtritt auf bei einem Paar(m,m0) fallsh(m) =h(m0).

Daher sollten Angreifer nicht in der Lage sein:

1 Zu einer Nachrichtmeine zweite Nachrichtm0effizient erzeugen zu können, mith(m) =h(m0).

2 Zwei Nachrichtenmundm0 effizient erzeugen zu können, mit h(m) =h(m0).

(8)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:6 Definitionen Walter Unger 12.12.2015 15:58 WS2015/16 Z

Hashfunktionen

Definition

Eine Hashfunktionhheisst Zweitnachricht sicher, falls man nicht zum eine zweite Nachrichtm0effizient erzeugen kann, mith(m) =h(m0).

Eine Hashfunktionhheisst kollisionssicher, falls man nicht zwei Nachrichtenmundm0 effizient erzeugen kann, mith(m) =h(m0).

Lemma

Fallshkollisionssicher ist, dann isthauch Zweitnachricht sicher.

Zeige: Wenn es effizienten AlgorithmusAgibt, der eine Zweitnachricht erzeugt, dann gibt esB, der eine Kollision effizient bestimmt.

Der AlgorithmusBwählt eine Nachrichtm, bestimmth(m)und ruft dann Aauf, um eine zweite Nachrichtm0 zu bestimmten mith(m) =h(m0).

Damit reicht es aus, Hashfunktionen zu bestimmen, die kollisionssicher sind.

(9)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:7 Merkles-Meta-Methode Walter Unger 12.12.2015 15:58 WS2015/16 Z

Merkles-Meta-Methode

Im Folgenden werden wir zeigen, dass es ausreicht, kollisionssichere Kompressionsfunktionen zu entwickeln.

Eine Funktionf :{0,1}m→ {0,1}n mitm>nwird Kompressionsfunktionen genannt.

Aufbau einer kollisionssicheren Kompressionsfunktion:

Ansatz: nutze symmetrische Verfahren.

SeiEk(m)symmetrisches Verfahren mitk∈ {0,1}r und m∈ {0,1}n.

Dann setze:f :{0,1}n+r → {0,1}nmit:f(x◦y)7→Ey(x).

Sei weiterg:{0,1}n→ {0,1}r.

Dann setze:f :{0,1}2n→ {0,1}n mit:f(x◦y)7→Eg(y)(x)⊕y. Nun wird Merkles-Meta-Methode angegeben, die aus einer gegebenen Kompressionsfunktionenf :{0,1}m→ {0,1}n

eine Hashfunktionh:{0,1}→ {0,1}nbestimmt.

(10)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:8 Merkles-Meta-Methode Walter Unger 12.12.2015 15:58 WS2015/16 Z

Merkles-Meta-Methode

Gegeben eine Kompressionsfunktionf :{0,1}m→ {0,1}n. Seir=m−n.

Zu bestimmen ist eine Hashfunktionh:{0,1}→ {0,1}n. Sei nunx∈ {0,1}eine Eingabe fürhmit|x|=k·r. Wir teilenx auf inx =x1x2. . .xk |xi|=r füri∈ {1, . . . ,k}.

Weiterhin kodieren inxk+1 |xk+1|=r die Länge vonx. Setzeh0:=0n und bestimme rekursiv:

hi :=f(hi−1◦xi)16i 6k+1

Dann definieren wirh:{0,1}→ {0,1}k mitx7→hk+1

x1 x2 x3 x4 x5 x6 x7

h0 h0 h0 h0 h0 h0 h0 h0 h0 h0

h0 hhhhhhhhhhh11111111111 hhhhhhhhhhh22222222222 hhhhhhhhhhh33333333333 hhhhhhhhhhh44444444444 hhhhhhhhhhh55555555555 hhhhhhhhhhh66666666666 hhhhhhhhhhh77777777777

(11)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:9 Merkles-Meta-Methode Walter Unger 12.12.2015 15:58 WS2015/16 Z

Merkles-Meta-Methode

h0:=0n hi:=f(hi−1xi)

Lemma

Fallsf kollisionssicher ist, dann ist die Hashfunktionh, die mit Merkles-Meta-Methode konstruiert wird, auch kollisionssicher.

x1 x2 x3 x4 x5 x6 x7

h0 h0 h0 h0 h0 h0 h0 h0 h0 h0

h0 hhhhhhhhhhh11111111111 hhhhhhhhhhh22222222222 hhhhhhhhhhh33333333333 hhhhhhhhhhh44444444444 hhhhhhhhhhh55555555555 hhhhhhhhhhh66666666666 hhhhhhhhhhh77777777777

Wir geben einen Algorithmus an, der aus einer Kollision fürheine Kollision fürf bestimmt.

Seix,x0 eine Kollision der Funktionhmit:

x = x1x2. . .xk+1 h1,h2, . . . ,hk+1

x0 = x10x20. . .xk00+1 h10,h02, . . . ,h0k0+1

Seienhi undh0i die Werte, wie sie in der Konstruktion auftreten.

Damit ergibt sich folgendes Verfahren.

(12)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:10 Merkles-Meta-Methode Walter Unger 12.12.2015 15:58 WS2015/16 Z

Beweis

h0:=0n hi:=f(hi−1xi)

x1 x2 x3 x4 x5 x6 x7

h0 h0 h0 h0 h0 h0 h0 h0 h0 h0

h0 hhhhhhhhhhh11111111111 hhhhhhhhhhh22222222222 hhhhhhhhhhh33333333333 hhhhhhhhhhh44444444444 hhhhhhhhhhh55555555555 hhhhhhhhhhh66666666666 hhhhhhhhhhh77777777777

Falls|x| 6=|x0|,

Betrachte(hk◦xk+1,h0k◦xk00+1).

Es giltxk+16=xk00+1.

Und damithk◦xk+16=h0k◦xk00+1.

Und weiterf(hk◦xk+1) =h(x) =h(x0) =f(h0k◦xk00+1).

Damit ist(hk◦xk+1,h0k◦xk00+1)eine Kollision.

Damit gilt von nun an|x|=|x0|undk=k0.

(13)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:11 Merkles-Meta-Methode Walter Unger 12.12.2015 15:58 WS2015/16 Z

Beweis

h0:=0n hi:=f(hi−1xi)

x1 x2 x3 x4 x5 x6 x7

h0 h0 h0 h0 h0 h0 h0 h0 h0 h0

h0 hhhhhhhhhhh11111111111 hhhhhhhhhhh22222222222 hhhhhhhhhhh33333333333 hhhhhhhhhhh44444444444 hhhhhhhhhhh55555555555 hhhhhhhhhhh66666666666 hhhhhhhhhhh77777777777

Es gilt nun|x|=|x0|undk=k0. Füri:=1 bisk mache:

fallshi 6=h0i undhi+1=h0i+1, betrachte(hi◦xi+1,h0i◦xi0+1).

Es gilt:hi◦xi+16=h0i◦xi0+1.

Und weiter:f(hi◦xi+1) =hi+1=h0i+1=f(h0i◦xi+10 ).

Damit ist(hi◦xi+1,hi0◦xi+10 )eine Kollision.

Damit gilt von nun anhi =h0i für 16i6k+1.

(14)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:12 Merkles-Meta-Methode Walter Unger 12.12.2015 15:58 WS2015/16 Z

Beweis

h0:=0n hi:=f(hi−1xi)

x1 x2 x3 x4 x5 x6 x7

h0 h0 h0 h0 h0 h0 h0 h0 h0 h0

h0 hhhhhhhhhhh11111111111 hhhhhhhhhhh22222222222 hhhhhhhhhhh33333333333 hhhhhhhhhhh44444444444 hhhhhhhhhhh55555555555 hhhhhhhhhhh66666666666 hhhhhhhhhhh77777777777

Es gilt nun|x|=|x0|undk=k0 undhi =h0i für 16i 6k+1.

Füri:=1 bisk−1 mache:

fallsxi+16=xi+10 ,

betrachte(hi◦xi+1,h0i◦xi0+1).

Analog zum vorherigen Fall:

Es gilt:hi◦xi+16=h0i◦xi0+1.

Und weiter:f(hi◦xi+1) =hi+1=h0i+1=f(h0i◦xi+10 ).

Damit ist(hi◦xi+1,hi0◦xi+10 )eine Kollision.

Beachte die Schleife findet eini mitxi+16=xi+10 dax 6=x0.

(15)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:13 Merkles-Meta-Methode Walter Unger 12.12.2015 15:58 WS2015/16 Z

Bemerkung

h0:=0n hi:=f(hi−1xi)

Entscheidender Faktor ist die Wahl vonn.

Beachte das Geburtstagsparadoxon.

Die Wahrscheinlichkeit, dasskHashwerte aus dem Wertebereichm=2n keine Kollision haben:

p=p(m,k) = 1 mk

k−1

Y

i=0

(m−i) =

k−1

Y

i=1

(1− 1 m).

Wegen 1−x6e−x fürx ∈Rgilt p6

k−1

Y

i=1

e−1m =e−1m Pk−1i=1 i=e−k(k−1)2m

Damit ist die Wahrscheinlichkeit einer Kollision 1−p.

Und 1−p>1/2 fallsk>1/2(√

1+8ln2·m+1).

Damit istk≈1.18√

mund es sind 2n/2 Werte zu wählen und zu vergleichen, um eine Kollision mit Wahrscheinlichkeit>1/2 zu finden.

Heutzutage werden Hashfunktionen mit 128 bis 160 Bits empfohlen.

(16)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:14 Abstand der Faktoren Walter Unger 12.12.2015 15:58 WS2015/16 Z

p, q sollten nicht nahe beieinander liegen

h0:=0n hi:=f(hi−1xi)

Angenommen, dies ist doch der Fall:

x =(p−q)2 ist klein, mitp>q.

y =(p+q)2 >√

nund (p+q)2 ist nur wenig größer als√

n.

Beachte weiter:

(p+q2 )2−(p−q2 )2

= (p+q)4 2(p−q)4 2

= p2+q2+2·p·q−(p4 2+q2−2·p·q)

= 2·p·q−(−2·p·q) 4

= p·q=n (p+q2 )2−n= (p−q2 )2, bzw.

y2−n=x2.

Dies wird ein perfektes Quadrat genannt.

Führe folgenden Test durch:

Fürx :=d√

nebisd√ ne+δ teste, obx2−n=y2gilt für einy ∈Z.

Beachte nunx= p2+q2 und y =p2q2.

Danach setze:p=x+y und q=x−y.

Der Bereich der durchzuprobierenden Schlüssel ist sehr klein.

Das Ziehen der Wurzel erfolgt nur für kleine Zahlen.

(17)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:15 Abstand der Faktoren Walter Unger 12.12.2015 15:58 WS2015/16 Z

Wähle p, q so, daß ggT(p − 1, q − 1) klein ist.

Beachte:(p−1)(q−1)ist durch 4 teilbar, denn es ist Produkt zweier gerader Zahlen.

Falls ggT(p−1,q−1)groß ist:

⇒das kleinste gemeinsame Vielfacheuvon p−1,q−1 ist klein.

⇒eins dere−1 (modu)kann zur Entschlüsselung verwendet werden.

⇒Suche wird einfach.

⇒wählep,q so, daß ggT(p−1,q−1)klein ist.

(18)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:16 Abstand der Faktoren Walter Unger 12.12.2015 15:58 WS2015/16 Z

ϕ(n) sollte nicht nur kleine Primfaktoren haben

⇒Test für alle Kandidatenv vonϕ(n)

⇒Test, falls (v+1)e eine ganze Zahl ist.

Teste dann, obcv+1e Sinn macht (v :Kandidat fürϕ(n)) Theoretische Lösung für die beiden letzten Probleme:

Wähle eine sichere Primzahl, d.h. auch p−12 und q−12 sind Primzahlen.

Beispiele: 83,107,10100−166517.

Sichere Primzahlen sind jedoch schwer zu generieren.

Es ist nicht einmal geklärt, ob es unendlich viele davon gibt.

(19)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:17 Sicherheitsaspekte von RSA Walter Unger 12.12.2015 15:58 WS2015/16 Z

Sicherheitsaspekte

Wie sicher ist RSA?

1 Lässt sich beispielsweise RSA ohne Faktorisierung knacken?

2 Kann manϕ(n)bestimmen?

3 Kann mand bestimmen?

4 Kann man bestimmen, ob das letzte Bit vonw gleich 1 ist?

5 Kann man testen, obw< n2 gilt?

(20)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:18 Sicherheitsaspekte von RSA Walter Unger 12.12.2015 15:58 WS2015/16 Z

Kann man ϕ(n) bestimmen?

n:=p·q ϕ(n) = (p1)(q1) c=wemodn w=cdmodn

Lemma

Fallsϕ(n)berechnet werden kann, dann kannp,qbestimmt werden.

Beweis.

ϕ(n) = (p−1)(q−1)⇒p+q=n−ϕ(n) +1

p(p+q)2−4n=p

2n+p2+q2−4n

=p

p2+q2−2n

=p (p−q)2

=|p−q|

n−ϕ(n)+1+

(n−ϕ(n)+1)2−4n

2 =p

(21)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:19 Kann man d bestimmen? Walter Unger 12.12.2015 15:58 WS2015/16 Z

Kann man d bestimmen?

n:=p·q ϕ(n) = (p1)(q1) c=wemodn w=cdmodn

Lemma

Fallsd berechnet werden kann, gibt es ein probabilistisches Verfahren, dasp,q bestimmt.

Vorgehen

Bekannt iste,d,n. Das Ziel ist die Bestimmung vonpundq.

Wähle einw mit 16w 6n

Versuche,nmitw zu faktorisieren (Verfahren kommt später).

Dies wird mit einer Wahrscheinlichkeit>0,5 gelingen.

Dann ist die Wahrscheinlichkeit, nachk Tests ein passendesw gefunden zu haben: 1−2−k.

Das Verfahren kann deterministisch gemacht werden.

(22)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:20 Kann man d bestimmen? Walter Unger 12.12.2015 15:58 WS2015/16 Z

Verfahren

n:=p·q ϕ(n) = (p1)(q1) c=wemodn w=cdmodn

Falls ggT(w,n)>1, dann faktorisierenmit dem Algorithmus von Euklid.

Fallsw 6≡ ±1 (modn)undw2≡1 (modn), dann gilt:

(w+1)·(w−1) wird vonngeteilt und (w+1),(w−1) werden nicht vonngeteilt

=⇒ggT(w+1,n)liefertpoderq.

Falls die oben genannten Schritte erfolglos, führe folgende Schritte aus.

(23)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:21 Kann man d bestimmen? Walter Unger 12.12.2015 15:58 WS2015/16 Z

Verfahren

n:=p·q ϕ(n) = (p1)(q1) c=wemodn w=cdmodn

ed−1=2sr mits>1 undr ungerade.

Daed−1 ein Vielfaches vonϕ(n)ist, gilt:w2sr ≡1 (modn).

Bestimme kleinstess0(06s06s)mitw2s

0

r ≡1 (modn).

Falls nuns0>0 undw2s0 −1r 6≡ −1 (modn), so gehe analog zum Fall 2.

vor (Faktorisierung ist möglich).

Andernfalls giltwr ≡1 (modn)oderw2tr≡ −1 (modn)für ein t,06t<s (d.h.t=s0−1) und der Algorithmus verwirftw (Faktorisierung nicht möglich).

(24)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:22 Kann man d bestimmen? Walter Unger 12.12.2015 15:58 WS2015/16 Z

Fehlerwahrscheinlichkeit des Verfahrens

n:=p·q ϕ(n) = (p1)(q1) wr1(modn)w2t r≡ −1(modn)

Wir bestimmen nun die Wahrscheinlichkeit dafür, dass einw verworfen wird.

Setze dazu:

p−1=2ia,q−1=2jbmita,bungerade undi6j.

Da 2sr ein Vielfaches vonϕ(n)ist, gilt, dassr ein Vielfaches vonabist.

Falls nunt>i, dann ist 2trein Vielfaches vonp−1

⇒ w2tr ≡1 (modp)

⇒ w2tr 6≡ −1 (modp)

⇒ w2tr 6≡ −1 (modn)

Damit tritt der Fallt>i hier nicht auf.

(25)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:23 Kann man d bestimmen? Walter Unger 12.12.2015 15:58 WS2015/16 Z

Fehlerwahrscheinlichkeit

ϕ(n) = (p1)(q1) p1=2ia,q1=2jb.i6j wr1(modn)w2t r≡ −1(modn)

Es ist nur noch folgende Situation zu betrachten:

wr≡1 (modn)oderw2tr≡ −1 (modn)für eint,06t<i Bestimme nun jeweils, für wievielew die Bedingungen erfüllt werden.

Betrachte:wr ≡1 modn.

Seig ein Generator fürF?(p)(d.h.g erzeugt 1, . . . ,p) und sei w ≡gumodp.

Dann giltwr≡1 modp ⇐⇒ ur=0 modp−1.

Die Anzahl der Lösungen ist ggT(r,p−1) =a (analog ggT(r,q−1) =b).

Damit hatwr ≡1 modn a·bviele Lösungen.

(26)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:24 Kann man d bestimmen? Walter Unger 12.12.2015 15:58 WS2015/16 Z

Fehlerwahrscheinlichkeit

ϕ(n) = (p1)(q1) p1=2ia,q1=2jb.i6j wr1(modn)w2t r≡ −1(modn)

Es ist nur noch folgende Situation zu betrachten:

wr ≡1 (modn)oderw2tr ≡ −1 (modn)für eint,06t6i Bestimme nun jeweils, für wievielew die Bedingungen erfüllt werden.

wr ≡1 modnhata·bLösungen.

Betrachte nun:w2tr 6≡ −1 modn.

Anzahl der Lösungen von

w2t+1r≡1 (modp) ist ggT(2t+1r,p−1) =2t+1a w2tr≡1 (modp) ist ggT(2tr,p−1) =2ta

Beachte:t+16i w2tr ≡ −1 (modp) ist 62ta

Beachte:t+16i6j w2tr ≡ −1 (modn) ist 62ta·2tb=22tab

(27)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:25 Kann man d bestimmen? Walter Unger 12.12.2015 15:58 WS2015/16 Z

Fehlerwahrscheinlichkeit

ϕ(n) = (p1)(q1) p1=2ia,q1=2jb.i6j wr1(modn)w2t r≡ −1(modn)

Wir fassen zusammen:

ab+ab

i−1

X

t=0

22t = ab(1+

i−1

X

t=0

4t) =ab(1+4i−1 3 )

= ab(2

322i−1+2

3)6ab(2

32i+j−1+2 3)

= ab(2i+j−1+1

3(2−2i+j−1))

6 ab2i+j−1= ϕ(n)

2

=⇒50 Prozent allerw’s werden verworfen.

(28)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:26 Sind Teilinformationen sicher? Walter Unger 12.12.2015 15:58 WS2015/16 Z

Orakel für x <

n2

n:=p·q ϕ(n) = (p1)(q1) c=wemodn w=cdmodn

Angenommen, es gibt OrakelH mitH(e,n,xe modn) =1⇐⇒x <n2. Idee: Halbierungssuche unter Verwendung vonH.

Verwende Werte:

xe modn = xe modn 2exemodn = (2x)emodn 4exemodn = (4x)emodn 8exemodn = (8x)emodn 16exemodn = (16x)emodn

Damit wird dann durch Binärsuche das Intervall, in demx liegt, immer weiter eingeschränkt.

(29)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:27 Sind Teilinformationen sicher? 1/16 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x <

n2

n:=p·q ϕ(n) = (p1)(q1) c=wemodn w=cdmodn Eingabe:xemodn

1.Orakel:<n/2: xe7→(2x)emodn: 2.Orakel<n/2: xe7→(2x)emodn: 3.Orakel>n/2: xe7→(2x)emodn: 4.Orakel<n/2: xe7→(2x)emodn: 5.Orakel>n/2: xe7→(2x)emodn: 6.Orakel<n/2: xe7→(2x)emodn: 7.Orakel>n/2:

(30)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:27 Sind Teilinformationen sicher? 2/16 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x <

n2

n:=p·q ϕ(n) = (p1)(q1) c=wemodn w=cdmodn Eingabe:xemodn

1.Orakel:<n/2:

xe7→(2x)emodn: 2.Orakel<n/2: xe7→(2x)emodn: 3.Orakel>n/2: xe7→(2x)emodn: 4.Orakel<n/2: xe7→(2x)emodn: 5.Orakel>n/2: xe7→(2x)emodn: 6.Orakel<n/2: xe7→(2x)emodn: 7.Orakel>n/2:

(31)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:27 Sind Teilinformationen sicher? 3/16 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x <

n2

n:=p·q ϕ(n) = (p1)(q1) c=wemodn w=cdmodn Eingabe:xemodn

1.Orakel:<n/2:

xe7→(2x)emodn: 2.Orakel<n/2: xe7→(2x)emodn: 3.Orakel>n/2: xe7→(2x)emodn: 4.Orakel<n/2: xe7→(2x)emodn: 5.Orakel>n/2: xe7→(2x)emodn: 6.Orakel<n/2: xe7→(2x)emodn: 7.Orakel>n/2:

(32)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:27 Sind Teilinformationen sicher? 4/16 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x <

n2

n:=p·q ϕ(n) = (p1)(q1) c=wemodn w=cdmodn Eingabe:xemodn

1.Orakel:<n/2:

xe7→(2x)emodn:

2.Orakel<n/2: xe7→(2x)emodn: 3.Orakel>n/2: xe7→(2x)emodn: 4.Orakel<n/2: xe7→(2x)emodn: 5.Orakel>n/2: xe7→(2x)emodn: 6.Orakel<n/2: xe7→(2x)emodn: 7.Orakel>n/2:

(33)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:27 Sind Teilinformationen sicher? 5/16 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x <

n2

n:=p·q ϕ(n) = (p1)(q1) c=wemodn w=cdmodn Eingabe:xemodn

1.Orakel:<n/2:

xe7→(2x)emodn:

2.Orakel<n/2:

xe7→(2x)emodn: 3.Orakel>n/2: xe7→(2x)emodn: 4.Orakel<n/2: xe7→(2x)emodn: 5.Orakel>n/2: xe7→(2x)emodn: 6.Orakel<n/2: xe7→(2x)emodn: 7.Orakel>n/2:

(34)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:27 Sind Teilinformationen sicher? 6/16 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x <

n2

n:=p·q ϕ(n) = (p1)(q1) c=wemodn w=cdmodn Eingabe:xemodn

1.Orakel:<n/2:

xe7→(2x)emodn:

2.Orakel<n/2:

xe7→(2x)emodn:

3.Orakel>n/2: xe7→(2x)emodn: 4.Orakel<n/2: xe7→(2x)emodn: 5.Orakel>n/2: xe7→(2x)emodn: 6.Orakel<n/2: xe7→(2x)emodn: 7.Orakel>n/2:

Referenzen

ÄHNLICHE DOKUMENTE

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen. 3 Inhaltsverzeichnis Walter Unger 12.12.2015 15:32

Um die zu verhindern reicht es aus, OAEP oder kollisionssichere Hashfunktionen zu

4:26 Idee der Datenübertragung Walter Unger 12.12.2015 16:03 WS2015/16 Z?.

Kompositionen III Satz Für jede Sprache aus N P gibt es ein Protokoll, welches Zero-Knowledge ist, und auch dessen Parallelausführung ist Zero-Knowledge.. Satz Für jede Sprache aus N

Dieses Protokoll werden wir beim elektronischen Geld und dem letzten Wahlsystem noch sehen... Beweist, dass zwei diskrete Logarithmen

7:19 Verfahren ohne möglichem Stimmenkauf Walter Unger 12.12.2015 15:55 WS2015/16

7:7 Wählen durch gegenseitiges Mischen Walter Unger 12.12.2015 15:57 WS2015/16 Z.. Wählen durch gegenseitiges Mischen

erhält ein von der Bank unterschriebenes Public-Key-Verfahren für den Nutzer und den öffentlichen Schlüssel der Bank.. Damit können nun Quittungen und unterschriebene