• Keine Ergebnisse gefunden

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

1.Orakel:xgerade: xe7→(x/2)emodn: 2.Orakel:xgerade: xe7→(x/2)emodn: 3.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 4.Orakel:xgerade: xe7→(n/2)emodn: 5.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 6.Orakel:xgerade: xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 2/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn: 2.Orakel:xgerade: xe7→(x/2)emodn: 3.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 4.Orakel:xgerade: xe7→(n/2)emodn: 5.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 6.Orakel:xgerade: xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 3/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade: xe7→(x/2)emodn: 3.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 4.Orakel:xgerade: xe7→(n/2)emodn: 5.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 6.Orakel:xgerade: xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 4/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn: 3.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 4.Orakel:xgerade: xe7→(n/2)emodn: 5.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 6.Orakel:xgerade: xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 5/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn:

3.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 4.Orakel:xgerade: xe7→(n/2)emodn: 5.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 6.Orakel:xgerade: xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 6/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn:

3.Orakel:xungerade:

xe7→(nx)emodn: xe7→((nx)/2)emodn: 4.Orakel:xgerade: xe7→(n/2)emodn: 5.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 6.Orakel:xgerade: xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 7/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn:

3.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn: 4.Orakel:xgerade: xe7→(n/2)emodn: 5.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 6.Orakel:xgerade: xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 8/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn:

3.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

4.Orakel:xgerade: xe7→(n/2)emodn: 5.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 6.Orakel:xgerade: xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 9/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn:

3.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

4.Orakel:xgerade:

xe7→(n/2)emodn: 5.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 6.Orakel:xgerade: xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 10/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn:

3.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

4.Orakel:xgerade:

xe7→(n/2)emodn:

5.Orakel:xungerade: xe7→(nx)emodn: xe7→((nx)/2)emodn: 6.Orakel:xgerade: xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 11/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn:

3.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

4.Orakel:xgerade:

xe7→(n/2)emodn:

5.Orakel:xungerade:

xe7→(nx)emodn: xe7→((nx)/2)emodn: 6.Orakel:xgerade: xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 12/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn:

3.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

4.Orakel:xgerade:

xe7→(n/2)emodn:

5.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn: 6.Orakel:xgerade: xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 13/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn:

3.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

4.Orakel:xgerade:

xe7→(n/2)emodn:

5.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

6.Orakel:xgerade: xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 14/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn:

3.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

4.Orakel:xgerade:

xe7→(n/2)emodn:

5.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

6.Orakel:xgerade:

xe7→((nx)/2)emodn: 7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 15/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn:

3.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

4.Orakel:xgerade:

xe7→(n/2)emodn:

5.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

6.Orakel:xgerade:

xe7→((nx)/2)emodn:

7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 16/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn:

3.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

4.Orakel:xgerade:

xe7→(n/2)emodn:

5.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

6.Orakel:xgerade:

xe7→((nx)/2)emodn:

7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:30 Sicherheit des LSB 17/17 Walter Unger 12.12.2015 15:58 WS2015/16 Z

Idee Orakel für x ist gerade

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

1.Orakel:xgerade:

xe7→(x/2)emodn:

2.Orakel:xgerade:

xe7→(x/2)emodn:

3.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

4.Orakel:xgerade:

xe7→(n/2)emodn:

5.Orakel:xungerade:

xe7→(nx)emodn:

xe7→((nx)/2)emodn:

6.Orakel:xgerade:

xe7→((nx)/2)emodn:

7.Orakel:xgerade:

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:31 Sicherheit des LSB Walter Unger 12.12.2015 15:58 WS2015/16 Z

Notationen

n:=p·q ϕ(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.

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:32 Sicherheit des LSB Walter Unger 12.12.2015 15:58 WS2015/16 Z

Notationen

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

Folgende Werte werden im Algorithmus verwendet:

r(i) :Folge vonw0e modn(Anfragen) ans(i) :Antwort des Orakels aufr(i).

t(i) :Folge vonw0, 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.

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:33 Sicherheit des LSB Walter Unger 12.12.2015 15:58 WS2015/16 Z

Algorithmus

r(i) ˆ=w0emodnAnfragen 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 16i 6N:ans(i)ist Antwort des Orakels auf Anfrager(i).

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:34 Sicherheit des LSB Walter Unger 12.12.2015 15:58 WS2015/16 Z

Beispiel

r(i) =

r(i1)kmodn ; fallsans(i1) =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

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:35 Sicherheit des LSB Walter Unger 12.12.2015 15:58 WS2015/16 Z

Algorithmus (2.Teil)

r(i) =

r(i1)kmodn ; fallsans(i1) =0 (nr(i1))kmodn fallsans(i1) =1

Die Zielfolge wird wie folgt aufgebaut:

t(N) =ans(N)

Fallst(i)gegeben ist, dann ergibt sicht(i−1)nach t(i−1) =

t(i)0 ans(i−1) =0

Last(bin(n)−t(i)0) ans(i−1) =1∧int(t(i)0)<n Last(t(i)0−bin(n)) ans(i−1) =1∧int(t(i)0)>n

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:36 Sicherheit des LSB Walter Unger 12.12.2015 15:58 WS2015/16 Z

Beispiel

t(i1) =

t(i)0 ;ans(i1) =0

Last(bin(n)t(i)0) ans(i1) =1int(t(i)0)<n Last(t(i)0bin(n)) ans(i1) =1int(t(i)0)>n

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

i r(i) ans(i) t(i)

6 9·52≡28 1 1

5 52·52≡9 0 10

4 54·52≡3 1 Last(110111−100) =011 3 18·52≡1 1 Last(110111−0110) =0001 2 49·52≡18 0 00010

1 49 0 000100

Es gilt:bin(000100) =4und47≡49 modn.

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:37 Überblick und Beweisidee Walter Unger 12.12.2015 15:58 WS2015/16 Z

Zusammenfassung

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 16i 6N:ans(i)ist Antwort des Orakels auf Anfrager(i).

t(N) =ans(N)

Fallst(i)gegeben ist, dann ergibt sicht(i−1)nach t(i−1) =

t(i)0 ans(i−1) =0

Last(bin(n)−t(i)0) ans(i−1) =1∧int(t(i)0)<n Last(t(i)0−bin(n)) ans(i−1) =1∧int(t(i)0)>n

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:38 Überblick und Beweisidee Walter Unger 12.12.2015 15:58 WS2015/16 Z

Ergebnis

Satz

Es gilt:int(t(1)) =x.

Beweisidee:

Untersuche die Folge von Verschlüsselungen, die den Anfragent(i) entsprechen.

Bestimme dann bei dieser Folge, wie die Bits immer weiter bestimmt werden.

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:39 Überblick und Beweisidee Walter Unger 12.12.2015 15:58 WS2015/16 Z

Notationen

r(i) =

r(i1)kmodn fallsans(i1) =0 (nr(i1))kmodn fallsans(i1) =1 t(i1) =

t(i)0 ;ans(i1) =0

Last(bin(n)t(i)0) ;ans(i1) =1int(t(i)0)<n Last(t(i)0bin(n)) ;ans(i1) =1int(t(i)0)>n

Für 16i6N setzeu(i)durch:

u(i)e≡r(i)modn,0<u(i)<n Beachte:u(i)existiert und kann konstruiert werden:

u(1) ≡ r(1) =xemodn⇒u(1) =x und 2er(i)≡ ±r(i−1)modn

Weiter setzen wir:

v(i) =0jbin(u(i))mitj=N− |bin(u(i))|

Damit giltj>0, dau(i)<nund weiter gilt|v(i)|=N.

Wir zeigen nun induktiv fürN>i>1:

∃w(i)mitv(i) =w(i)t(i)

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:40 Beweis Walter Unger 12.12.2015 15:58 WS2015/16 Z

Beweis

r(i) =

r(i1)kmodn fallsans(i1) =0 (nr(i1))kmodn fallsans(i1) =1 t(i1) =

t(i)0 ;ans(i1) =0

Last(bin(n)t(i)0) ;ans(i1) =1int(t(i)0)<n Last(t(i)0bin(n)) ;ans(i1) =1int(t(i)0)>n u(i)er(i)modn

v(i) =0jbin(u(i)) Zeigen:∃w(i)mitv(i) =w(i)t(i)

Induktionsanfang:i =N

Da|t(N)|=1, untersuchen wir das letzte Bit.

Letztes Bit vonv(N)ist gleich letztes Bit vonbin(u(N)).

Damit erhalten wir:t(N) =ans(N).

Induktionsschritt:i →i−1 füri >2 1.Fall: ans(i−1) =0 2.Fall: ans(i−1) =1

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen

3:41 Beweis Walter Unger 12.12.2015 15:58 WS2015/16 Z