• 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!
64
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

16:58 Uhr, den 29. Oktober 2015

(2)

3 Inhaltsverzeichnis < > Walter Unger 29.10.2015 16: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

Können Teilinformationen entschlüsselt werden?

Sicherheit des LSB Überblick und Beweisidee Beweis

5 Bestimmung von Primzahlen Einleitung

Einfacher Test Soloway-Strassen Miller-Rabin

Agrawal, Kayal und Saxena

(3)

3:1 Einfache Angriffe < > Walter Unger 29.10.2015 16: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 nunc1∈/Zn, so kannndurch das Bestimmen von ggT(c1,n) faktorisiert werden.

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

Es ergibt sich:

(c11)rc2s=(me1)r⋅(me2)s=mre1+se2≡m (modn)

(4)

3:2 Einfache Angriffe < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Angriff zwei gegen RSA

Drei PartienAi (1⩽i⩽3)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<n1n2n3 gilt, kannmeindeutig bestimmt werden.

(5)

3:3 Einfache Angriffe < > Walter Unger 29.10.2015 16: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∈Znzufällig.

Bestimmtx ∶=c⋅re.

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

C bestimmt:xd⋅r1≡(c⋅re)d⋅r1≡cd≡m (modn).

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

(6)

3:4 OAEP-Verfahren < > Walter Unger 29.10.2015 16: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→D mitD⊂{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 nun

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

3 Fallsx∈/D wiederhole.

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

Seic die zu entschlüsselnde Nachricht.

1 Setzex∶=f−1(c).

2 Bestimmea,bmitx=a◦b und

∣a∣=l sowie∣b∣=k.

3 Bestimmer=h(a)⊕b.

4 Bestimmem=a⊕G(r).

(7)

3:5 Hashfunktionen < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Hashfunktionen

Eine Hashfunktion ist eine Funktionh∶{0,1}→{0,1}k mit:m↦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,m) fallsh(m)=h(m).

Daher sollten Angreifer nicht in der Lage sein:

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

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

(8)

3:6 Definitionen < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Hashfunktionen

Definition

Eine Hashfunktionhheisst Zweitnachricht sicher, falls man nicht zum eine zweite Nachrichtmeffizient erzeugen kann, mith(m)=h(m). Eine Hashfunktionhheisst kollisionssicher, falls man nicht zwei Nachrichtenmundm effizient erzeugen kann, mith(m)=h(m).

Lemma

Fallshkollisionssicher ist, dann isthauch Zweitnachricht sicher.

Zeige: Wenn es effizienten Algorithmus⩀gibt, der eine Zweitnachricht erzeugt, dann gibt es⊎, der eine Kollision effizient bestimmt.

Der Algorithmus⊎wählt eine Nachrichtm, bestimmth(m)und ruft dann

⩀auf, um eine zweite Nachrichtmzu bestimmten mith(m)=h(m). Damit reicht es aus, Hashfunktionen zu bestimmen, die kollisionssicher sind.

(9)

3:7 Merkles-Meta-Methode < > Walter Unger 29.10.2015 16: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 undm∈{0,1}n. Dann setze:f ∶{0,1}n+r→{0,1}nmit:f(x◦y)↦Ey(x).

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

Dann setze:f ∶{0,1}2n→{0,1}n mit:f(x◦y)↦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}n bestimmt.

(10)

3:8 Merkles-Meta-Methode < > Walter Unger 29.10.2015 16: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)1⩽i ⩽k+1

Dann definieren wirh∶{0,1}→{0,1}k mitx↦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)

3:9 Merkles-Meta-Methode < > Walter Unger 29.10.2015 16: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,x eine Kollision der Funktionhmit:

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

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

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

Damit ergibt sich folgendes Verfahren.

(12)

3:10 Merkles-Meta-Methode < > Walter Unger 29.10.2015 16: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∣ /=∣x∣,

Betrachte(hk◦xk+1,hk◦xk+1). Es giltxk+1=/xk+1.

Und damithk◦xk+1=/hk ◦xk+1.

Und weiterf(hk◦xk+1)=h(x)=h(x)=f(hk ◦xk+1). Damit ist(hk◦xk+1,hk◦xk+1)eine Kollision.

Damit gilt von nun an∣x∣=∣x∣undk=k.

(13)

3:11 Merkles-Meta-Methode < > Walter Unger 29.10.2015 16: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∣=∣x∣undk=k. Füri∶=1 biskmache:

fallshi =/hi undhi+1=hi+1, betrachte(hi◦xi+1,hi◦xi+1 ). Es gilt:hi◦xi+1=/hi◦xi+1 .

Und weiter:f(hi◦xi+1)=hi+1=hi+1=f(hi◦xi+ 1). Damit ist(hi◦xi+1,hi◦xi+1)eine Kollision.

Damit gilt von nun anhi =hi für 1⩽i⩽k+1.

(14)

3:12 Merkles-Meta-Methode < > Walter Unger 29.10.2015 16: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∣=∣x∣undk=k undhi =hi für 1⩽i⩽k+1.

Füri∶=1 bisk−1 mache:

fallsxi+1=/xi+ 1,

betrachte(hi◦xi+1,hi◦xi+1 ). Analog zum vorherigen Fall:

Es gilt:hi◦xi+1=/hi◦xi+1 .

Und weiter:f(hi◦xi+1)=hi+1=hi+1=f(hi◦xi+ 1). Damit ist(hi◦xi+1,hi◦xi+1)eine Kollision.

Beachte die Schleife findet eini mitxi+1/=xi+1 dax /=x.

(15)

3:13 Merkles-Meta-Methode < > Walter Unger 29.10.2015 16: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

i=0

(m−i)=

k−1

i=1

(1− 1 m). Wegen 1−x ⩽e−x fürx∈Rgilt

p⩽

k−1

i=1

e−1m =e−1m

k−1 i=1i

=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/2Werte 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)

3:14 Abstand der Faktoren < > Walter Unger 29.10.2015 16: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+2q)2−(p2q)2

= (p+q)

2

4(p−q)

2 4

= p

2+q2+2⋅p⋅q−(p2+q22⋅p⋅q) 4

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

= p⋅q=n

(p+2q)2−n=(p2q)2, bzw.y2−n=x2. Dies wird ein perfektes Quadrat genannt.

Führe folgenden Test durch:

Fürx ∶=⌈√n⌉bis⌈√n⌉+δ teste, obx2−n=y2 gilt für einy ∈Z.

Beachte nunx= p

2+q2 und y =p

2q2.

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)

3:15 Abstand der Faktoren < > Walter Unger 29.10.2015 16: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 Vielfacheu vonp−1,q−1 ist klein.

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

⇒Suche wird einfach.

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

(18)

3:16 Abstand der Faktoren < > Walter Unger 29.10.2015 16: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−1

2 und q−1

2 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)

3:17 Sicherheitsaspekte von RSA < > Walter Unger 29.10.2015 16: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<n

2 gilt?

(20)

3:18 Sicherheitsaspekte von RSA < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Kann man ϕ ( n ) bestimmen?

n=pq ϕ(n)=(p1)(q1) c=wemodn w=cdmodn

Lemma

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

Beweis.

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

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

2n+p2+q2−4n

=√

p2+q2−2n

=√ (p−q)2

=∣p−q∣

n−ϕ(n)+1+

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

2 =p

(21)

3:19 Kann man d bestimmen? < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Kann man d bestimmen?

n=pq ϕ(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 1⩽w⩽n

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)

3:20 Kann man d bestimmen? < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Verfahren

n=pq ϕ(n)=(p1)(q1) c=wemodn w=cdmodn

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

Fallsw /≡±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)

3:21 Kann man d bestimmen? < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Verfahren

n=pq ϕ(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 kleinstess(0⩽s⩽s)mitw2

s

r≡1 (modn). Falls nuns>0 undw2

s−1

r ≡/−1 (modn), so gehe analog zum Fall 2. vor (Faktorisierung ist möglich).

Andernfalls giltwr ≡1 (modn)oderw2

tr

≡−1 (modn)für ein t,0⩽t<s (d.h.t=s−1) und der Algorithmus verwirftw (Faktorisierung nicht möglich).

(24)

3:22 Kann man d bestimmen? < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Fehlerwahrscheinlichkeit des Verfahrens

n=pq ϕ(n)=(p1)(q1) wr1(modn)∨w2tr1(modn)

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

Setze dazu:

p−1=2ia,q−1=2jbmita,bungerade undi ⩽j.

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

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

⇒ w2

tr

≡1 (modp)

⇒ w2

tr

/

≡−1 (modp)

⇒ w2

tr

/

≡−1 (modn)

Damit tritt der Fallt⩾i hier nicht auf.

(25)

3:23 Kann man d bestimmen? < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Fehlerwahrscheinlichkeit

ϕ(n)=(p1)(q−1) p1=2ia,q−1=2jb.ij wr1(modn)∨w2

tr

−1(modn)

Es ist nur noch folgende Situation zu betrachten:

wr ≡1 (modn)oderw2

tr

≡−1 (modn)für eint,0⩽t<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)

3:24 Kann man d bestimmen? < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Fehlerwahrscheinlichkeit

ϕ(n)=(p1)(q−1) p1=2ia,q−1=2jb.ij wr1(modn)∨w2

tr

−1(modn)

Es ist nur noch folgende Situation zu betrachten:

wr ≡1 (modn)oderw2

tr

≡−1 (modn)für eint,0⩽t⩽i Bestimme nun jeweils, für wievielew die Bedingungen erfüllt werden.

wr ≡1 modnhata⋅bLösungen.

Betrachte nun:w2

tr ≡/−1 modn.

Anzahl der Lösungen von w2

t+1r

≡1 (modp) ist ggT(2t+1r,p−1)=2t+1a w2

tr

≡1 (modp) ist ggT(2tr,p−1)=2ta Beachte:t+1⩽i w2

tr

≡−1 (modp) ist ⩽2ta

Beachte:t+1⩽i⩽j w2

tr

≡−1 (modn) ist ⩽2ta⋅2tb=22tab

(27)

3:25 Kann man d bestimmen? < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Fehlerwahrscheinlichkeit

ϕ(n)=(p1)(q−1) p1=2ia,q−1=2jb.ij wr1(modn)∨w2

tr

−1(modn)

Wir fassen zusammen:

ab+ab

i1

t=0

22t = ab(1+

i1

t=0

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

= ab(2

322i1+2 3)⩽ab(2

32i+j−1+2 3)

= ab(2i+j1+ 1

3(2−2i+j1))

⩽ ab2i+j−1=ϕ(n) 2

⟹50 Prozent allerw’s werden verworfen.

(28)

3:26 Können Teilinformationen entschlüsselt werden? < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Orakel für x <

n

2 n=pq

ϕ(n)=(p1)(q−1) c=wemodn w=cdmodn

Angenommen, es gibt OrakelH mitH(e,n,xemodn)=1⟺x <n

2. Idee: Halbierungssuche unter Verwendung vonH.

Verwende Werte:

xe modn = xemodn 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)

3:27 Können Teilinformationen entschlüsselt werden? < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Idee Orakel für x <

n

2 n=pq

ϕ(n)=(p1)(q−1) c=wemodn w=cdmodn Eingabe:xemodn

1.Orakel:<n/2:

xe(2x)emodn:

2.Orakel<n/2:

xe(2x)emodn:

3.Orakel>n/2:

xe(2x)emodn:

4.Orakel<n/2:

xe(2x)emodn:

5.Orakel>n/2:

xe(2x)emodn:

6.Orakel<n/2:

xe(2x)emodn:

7.Orakel>n/2:

(30)

3:28 Können Teilinformationen entschlüsselt werden? < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Orakel für x <

n

2 n=pq

ϕ(n)=(p1)(q−1) c=wemodn w=cdmodn

Verfahren:

1 Eingabe:e,nundcmitc=xe modn

2 Setzea=0 undb=n−1.

3 Solangea<bgilt, mache

1 Falls Orakel(c) antwortetx⩽n/2 dannb=⌊a+b2

sonsta=⌈a+b2

2 Setzec=(2e⋅c)modn.

Falls der letzte Test 2yexe modnist und

falls das Orakel als Ergebnis eine Folgea1a2. . .ay lieferte,

dann istx imi-ten Intervall der Größe 2y1n, miti =bin(a1. . .ay).

(31)

3:29 Sicherheit des LSB < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Orakel für x gerade

n=pq ϕ(n)=(p1)(q1) c=wemodn w=cdmodn

Idee: Versuchex bitweise zu bestimmen.

Fallsx gerade ist, teile trickreich durch 2.

Fallsx ungerade ist, teilex−1 durch 2.

Fallsx ungerade ist, teilen−x durch 2.

Es taucht das Problem auf, wiex durch 2 geteilt werden kann.

Sei dazukdas Inverse von 2e,

d.h.khat die Formhe≡kmodnmit 2ek≡1 modn.

Dann kannx wie folgt „halbiert” werden (x gerade):

kxe ≡he⋅xe≡(h⋅x)e (modn)

(32)

3:30 Sicherheit des LSB < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Idee Orakel für x ist gerade

n=pq ϕ(n)=(p1)(q1) c=wemodn w=cdmodn Eingabe:xemodn

1.Orakel:xgerade:

xe(x/2)emodn:

2.Orakel:xgerade:

xe(x/2)emodn:

3.Orakel:xungerade:

xe(nx)emodn:

xe((nx)/2)emodn:

4.Orakel:xgerade:

xe(n/2)emodn:

5.Orakel:xungerade:

xe(nx)emodn:

xe((nx)/2)emodn:

6.Orakel:xgerade:

xe((nx)/2)emodn:

7.Orakel:xgerade:

(33)

3:31 Sicherheit des LSB < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Notationen

n=pq ϕ(n)=(p1)(q1) c=wemodn w=cdmodn

nbestehe ausNBits.

bin(x)ist die Binärdarstellung vonx mit führender 1.

int(w)ist die Zahl mit der Binärdarstellungw.

∣w∣ist die Länge vonw (Anzahl der Bits).

Fallsint(t)⩾int(u), dann sind

Last(t−u)die letzten∣u∣Bits vonbin(int(t)−int(u)). Beispiel:

Last(1011011−1010111)=0000100 undLast(1011011−111)=100.

(34)

3:32 Sicherheit des LSB < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Notationen

n=pq ϕ(n)=(p1)(q1) c=wemodn w=cdmodn

Folgende Werte werden im Algorithmus verwendet:

r(i)∶Folge vonwe modn(Anfragen) ans(i)∶Antwort des Orakels aufr(i). t(i)∶Folge vonw, diew=x ergeben.

Diese Zielfolge konvergiert gegen die Lösung.

r(i)wird ausr(i−1)bestimmt.

t(i−1)wird aust(i)undans(i−1)bestimmt.

(35)

3:33 Sicherheit des LSB < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Algorithmus

r(i)ˆ=wemodnAnfragen ans(i)ˆ=Antworten des Orakels t(i)ˆ=Zielfolge

r(1)=xe modn(Krypttext).

ans(1)=Antwort des Orakels aufr(1). Fallsr(i−1)undans(i−1)gegeben sind:

r(i)={ r(i−1)kmodn fallsans(i−1)=0 (n−r(i−1))kmodn fallsans(i−1)=1

Es gilt für 1⩽i ⩽N:ans(i)ist Antwort des Orakels auf Anfrager(i).

(36)

3:34 Sicherheit des LSB < > Walter Unger 29.10.2015 16:58 WS2015/16 Z

Beispiel

r(i)={ r(i1)kmodn ;fallsans(i−1)=0 (nr(i1))kmodn fallsans(i1)=1

n=55,e=7,N=6 undbin(n)=110111,k=52,xe=49 Man erhält folgende Werte:

i r(i) ans(i)

1 49 0

2 49⋅52≡18 0

3 18⋅52≡1 1

4 (55−1)⋅52≡54⋅52≡3 1 5 (55−3)⋅52≡52⋅52≡9 0

6 9⋅52≡28 1

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