Algorithmische Kryptographie (WS2015/16)
Kapitel 3
Sicherheitsaspekte und Hilfsfunktionen
Walter Unger
Lehrstuhl für Informatik 1
16:06 Uhr, den 12. Dezember 2015
3 Inhaltsverzeichnis Walter Unger 12.12.2015 16:06 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
3 Inhaltsverzeichnis Walter Unger 12.12.2015 16:06 WS2015/16 Z
Sicherheitsaspekte und
Hilfsfunktionen
3:2 Einfache Angriffe Walter Unger 12.12.2015 16:06 WS2015/16 Z
Die Geschichte
Einfache Angriffe über die Gruppenstruktur sind möglich.
PkS RSA ElGamal
Rabin KS DES IDEA AES
1975
1970 1980 1990 2000
3:3 Merkles-Meta-Methode Walter Unger 12.12.2015 16:06 WS2015/16 Z
Hashfunktionen
Einfache Angriffe über die Gruppenstruktur sind möglich.
Eine Hashfunktionhheisst Zweitnachricht sicher, falls man nicht zumeine zweite Nachrichtm0effizient erzeugen kann, mith(m) =h(m0).
Eine Hashfunktionhheisst kollisionssicher, falls man nicht zwei Nachrichtenmundm0 effizient erzeugen kann, mith(m) =h(m0).
Es reicht aus, Hashfunktionen zu bestimmen, die kollisionssicher sind.
ElGamal
Rabin IDEA AES
1980 1990 2000
3:4 Merkles-Meta-Methode Walter Unger 12.12.2015 16:06 WS2015/16 Z
Hashfunktionen
Einfache Angriffe über die Gruppenstruktur sind möglich.
Eine Hashfunktionhheisst kollisionssicher, falls man nicht zwei Nachrichtenmundm0 effizient erzeugen kann, mith(m) =h(m0).
Es reicht aus, Hashfunktionen zu bestimmen, die kollisionssicher sind.
Kompressionsfunktionf :{0,1}m→ {0,1}n. Hashfunktionh:{0,1}∗→ {0,1}n.
x =x1x2. . .xk |xi|=r füri∈ {1, . . . ,k}(m=r+n).
Kodiere inxk+1|xk+1|=r die Länge vonx.
Setzeh0:=0nund bestimme rekursiv:hi :=f(hi−1◦xi) 16i 6k+1.
h:{0,1}∗→ {0,1}kmitx 7→hk+1.
PkS RSA ElGamal
Rabin KS DES IDEA AES
1975
1970 1980 1990 2000
3 Inhaltsverzeichnis Walter Unger 12.12.2015 16:06 WS2015/16 Z
Angriffe auf RSA
Einfache Angriffe über die Gruppenstruktur sind möglich.
Um die zu verhindern reicht es aus, OAEP oder kollisionssichere Hashfunktionen zu benutzen.
ElGamal
Rabin IDEA AES
1980 1990 2000
3:6 Abstand der Faktoren Walter Unger 12.12.2015 16:06 WS2015/16 Z
Angriffe auf RSA
Einfache Angriffe über die Gruppenstruktur sind möglich.
Um die zu verhindern reicht es aus, OAEP oder kollisionssichere Hashfunktionen zu benutzen.
p,qsollten nicht nahe beieinander liegen.
PkS RSA ElGamal
Rabin KS DES IDEA AES
1975
1970 1980 1990 2000
3:7 Abstand der Faktoren Walter Unger 12.12.2015 16:06 WS2015/16 Z
Angriffe auf RSA
Einfache Angriffe über die Gruppenstruktur sind möglich.
Um die zu verhindern reicht es aus, OAEP oder kollisionssichere Hashfunktionen zu benutzen.
p,qsollten nicht nahe beieinander liegen.
Wählep,qso, daß ggT(p−1,q−1)klein ist.
ElGamal
Rabin IDEA AES
1980 1990 2000
3:8 Abstand der Faktoren Walter Unger 12.12.2015 16:06 WS2015/16 Z
Angriffe auf RSA
Einfache Angriffe über die Gruppenstruktur sind möglich.
Um die zu verhindern reicht es aus, OAEP oder kollisionssichere Hashfunktionen zu benutzen.
p,qsollten nicht nahe beieinander liegen.
Wählep,qso, daß ggT(p−1,q−1)klein ist.
ϕ(n)sollte nicht nur kleine Primfaktoren haben.
PkS RSA ElGamal
Rabin KS DES IDEA AES
1975
1970 1980 1990 2000
3:9 Sicherheitsaspekte von RSA Walter Unger 12.12.2015 16:06 WS2015/16 Z
Angriffe auf RSA
Einfache Angriffe über die Gruppenstruktur sind möglich.
Um die zu verhindern reicht es aus, OAEP oder kollisionssichere Hashfunktionen zu benutzen.
p,qsollten nicht nahe beieinander liegen.
Wählep,qso, daß ggT(p−1,q−1)klein ist.
ϕ(n)sollte nicht nur kleine Primfaktoren haben.
Fallsϕ(n)bekannt, dann kannp,q bestimmt werden. ElGamal
Rabin IDEA AES
1980 1990 2000
3:10 Kann man d bestimmen? Walter Unger 12.12.2015 16:06 WS2015/16 Z
Angriffe auf RSA
Fallsϕ(n)bekannt, dann kannp,q bestimmt werden.
Fallsd bekannt, dann kannp,qbestimmt werden.
Falls ggT(w,n)>1, dann faktorisierenmit dem Algorithmus von Euklid.
Fallsw6≡ ±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)liefertp oderq.
Falls die oben genannten Schritte erfolglos, führe folgende Schritte aus.
3:11 Kann man d bestimmen? Walter Unger 12.12.2015 16:06 WS2015/16 Z
Fallsϕ(n)bekannt, dann kannp,q bestimmt werden.
Fallsd bekannt, dann kannp,qbestimmt werden.
Falls ggT(w,n)>1, dann faktorisieren.
Fallsw6≡ ±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)liefertp oderq.
Anderenfalls, führe folgende Schritte aus.
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 nun 0 0 und 2s0 −1r 6≡ −1 (modn), so gehe analog
3:12 Kann man d bestimmen? Walter Unger 12.12.2015 16:06 WS2015/16 Z
Angriffe auf RSA
Einfache Angriffe über die Gruppenstruktur sind möglich.
p,qsollten nicht nahe beieinander liegen.
Wählep,qso, daß ggT(p−1,q−1)klein ist.
ϕ(n)sollte nicht nur kleine Primfaktoren haben.
Fallsϕ(n)bekannt, dann kannp,q bestimmt werden.
Fallsd bekannt, dann kannp,qbestimmt werden.
PkS RSA ElGamal
Rabin KS DES IDEA AES
1975
1970 1980 1990 2000
3:13 Sind Teilinformationen sicher? Walter Unger 12.12.2015 16:06 WS2015/16 Z
Angriffe auf RSA
Fallsϕ(n)bekannt, dann kannp,q bestimmt werden.
Fallsd bekannt, dann kannp,qbestimmt werden.
Angenommen, es gibt OrakelH mit H(e,n,xemodn) =1⇐⇒x <n2.
Idee: Halbierungssuche unter Verwendung vonH.
Verwende Werte:
xe modn = xemodn 2exemodn = (2x)emodn 4exemodn = (4x)emodn 8exemodn = (8x)emodn
ElGamal
Rabin IDEA AES
1980 1990 2000
3:14 Sicherheit des LSB Walter Unger 12.12.2015 16:06 WS2015/16 Z
Angriffe auf RSA
Fallsϕ(n)bekannt, dann kannp,q bestimmt werden.
Fallsd bekannt, dann kannp,qbestimmt werden.
Angenommen, es gibt OrakelH mit
H(e,n,xemodn) =1⇐⇒x <n2, dann istx bestimmbar.
Angenommen, es gibt OrakelH mit
H(e,n,xemodn) =1⇐⇒x mod 2=1, dann istx bestimmbar.
PkS RSA ElGamal
Rabin KS DES IDEA AES
1975
1970 1980 1990 2000
3:15 Sicherheit des LSB Walter Unger 12.12.2015 16:06 WS2015/16 Z
Angriffe auf RSA
Fallsϕ(n)bekannt, dann kannp,q bestimmt werden.
Fallsd bekannt, dann kannp,qbestimmt werden.
Angenommen, es gibt OrakelH mit
H(e,n,xemodn) =1⇐⇒x <n2, dann istx bestimmbar.
Angenommen, es gibt OrakelH mit
H(e,n,xemodn) =1⇐⇒x mod 2=1, dann istx bestimmbar.
bin(x)ist die Binärdarstellung vonx mit führender 1.
ElGamal
Rabin IDEA AES
1980 1990 2000
3:16 Sicherheit des LSB Walter Unger 12.12.2015 16:06 WS2015/16 Z
Angriffe auf RSA
Angenommen, es gibt OrakelH mit
H(e,n,xemodn) =1⇐⇒x mod 2=1, dann istx bestimmbar.
bin(x)ist die Binärdarstellung vonx mit führender 1.
int(w)ist die Zahl mit der Binärdarstellungw. Fallsint(t)>int(u), dann sind
Last(t−u)die letzten|u|Bits von bin(int(t)−int(u)).
r(i) :Folge vonw0emodn(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.
PkS RSA ElGamal
Rabin KS DES IDEA AES
1975
1970 1980 1990 2000
3:17 Einleitung Walter Unger 12.12.2015 16:06 WS2015/16 Z
Primzahltest
Allgemeines Vorgehen dabei:
1 Wähle zufällig eine große ungerade Zahlx.
2 Teste, obx eine Primzahl ist.
3 Fallsx keine Primzahl ist, dann wiederhole Verfahren.
Verbleibendes Problem: Teste, ob gegebene Zahlx Primzahl ist.
3:18 Einleitung Walter Unger 12.12.2015 16:06 WS2015/16 Z
Primzahltest
Allgemeines Vorgehen dabei:
1 Wähle zufällig eine große ungerade Zahlx.
2 Teste, obx eine Primzahl ist.
3 Fallsx keine Primzahl ist, dann wiederhole Verfahren.
Verbleibendes Problem: Teste, ob gegebene Zahlx Primzahl ist.
FallsmPrimzahl und ggT(w,m) =1:wm−1≡1 (modm).
3:19 Soloway-Strassen Walter Unger 12.12.2015 16:06 WS2015/16 Z
Primzahltest
Allgemeines Vorgehen dabei:
1 Wähle zufällig eine große ungerade Zahlx.
2 Teste, obx eine Primzahl ist.
3 Fallsx keine Primzahl ist, dann wiederhole Verfahren.
Verbleibendes Problem: Teste, ob gegebene Zahlx Primzahl ist.
FallsmPrimzahl und ggT(w,m) =1:wm−1≡1 (modm).
Seimungerade Primzahl, dann gilt für allew:w(m−1)/2≡ mw (modm).
3:20 Soloway-Strassen Walter Unger 12.12.2015 16:06 WS2015/16 Z
Primzahltest
Allgemeines Vorgehen dabei:
1 Wähle zufällig eine große ungerade Zahlx.
2 Teste, obx eine Primzahl ist.
3 Fallsx keine Primzahl ist, dann wiederhole Verfahren.
Verbleibendes Problem: Teste, ob gegebene Zahlx Primzahl ist.
FallsmPrimzahl und ggT(w,m) =1:wm−1≡1 (modm).
Seimungerade Primzahl, dann gilt für allew:w(m−1)/2≡ mw (modm).
Bestimmes,r mit:m−1=2sr:
Fallswr6≡1 (modm)undw2s
0
6≡ −1 (für ein 06s0<s), dann ist mkeine Primzahl.