Algorithmische Kryptographie Kapitel 5
Public-Key-Systeme: RSA
Walter Unger
Lehrstuhl f¨ur Informatik 1
30. Januar 2009
Einleitung Erinnerung
Bestimmung des gr¨oßten gemeinsamen Teilers Effiziente Berechnung von Potenzen
Chinesischer Restsatz Aufbau
Sicherheitsaspekte von RSA Verschl¨usselung d bestimmen?
K¨onnen Teilinformationen entschl¨usselt werden?
Unterschrift Angriffe
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:1) Walter Unger Z
Einleitung zu RSA
I RSA startete als direkter Konkurrent zu DES.
I RSA ist einfach zu verstehen und ist heute weit verbreitet.
I Der Algorithmus basiert auf der Grundidee, daß die
Multiplikation von Primfaktoren leicht, das Faktorisieren aber ein schweres Problem ist.
I Bis heute erscheint er als ein relativ sicheres Verfahren.
I auch wenn es keinen Beweis daf¨ur gibt.
I Vorteilhaft ist außerdem die Wahl beliebig großer Schl¨ussel.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:2) Walter Unger Z
Definition:
I Es seiena,b∈Z.
I a teilt b, wenn es eind ∈Zgibt mitb=da.
I aheißt dannTeileroderFaktorvonb.
I Man schreibt danna|b.
I Istakein Teiler vonb, so schreibt mana6 |b.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:3) Walter Unger Z
Definition:
I Es seiena,b∈Z.
I Eine ganze Zahld ∈N0heißtgr¨oßter gemeinsamer Teilervon aundb, falls
1. d|aundd |b.
2. F¨ur jedesc∈Zmitc|aundc|bgiltc|d.
I Kurzschreibweise:d= ggT(a,b)
I a,b∈Zheißenteilerfremd, wenn ggT(a,b) = 1.
Bemerkung:
ggT(m,0) = ggT(0,m) =|m|f¨ur allem∈Z.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:4) Walter Unger Z
Definition:
I Es seiena,b∈Z.
I Einm∈N0 heißtkleinstes gemeinsames Vielfachesvonaundb, falls 1. a|mundb|m.
2. F¨ur jedesc∈Zmita|c undb|c giltm|c.
I Kurzschreibweise:m=kgV(a,b) Bemerkung:
kgV(m,0) =kgV(0,m) = 0 f¨ur allem∈Z.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:5) Walter Unger Z
Definition:
I Es seim∈N,m>2.
I F¨ura,b∈Zsetzt man:
I a≡b (modm)
I Sprechweise: ,,akongruentb modulom”
I genau dann wennm|a−b. I Die Zahlmheißt derModul.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:6) Walter Unger Z
Satz:
I Seim∈N,m>2.
I Die Relation≡ (modm) ist eine ¨Aquivalenzrelation aufZ. I Die ¨Aquivalenzklassen sind genau die Mengen
[a]m = {a+km|k∈Z} f¨ura∈ {0,1, . . . ,m−1}.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:7) Walter Unger Z
Definition:
I [a]mheißt dieRestklassevonamodulom.
I Seix∈Z.
I Derkleinste nicht-negative Rest von x modulo m, I d.h.a∈ {0,1, . . . ,m−1}mita≡x(modm), I wird mitx modmbezeichnet.
Aquivalente Definition:¨ I Seim∈N,m>2.
I Bezeichnebxcdie gr¨oßte ganze Zahl6x. Dann gilt:
x modm = x−jx m
k
·m.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:8) Walter Unger Z
Definition:
I Eine Zahlp∈NheißtPrimzahl,
I wennp>1 und wenn
I pals positive Teiler nur 1 und pbesitzt.
I Eine Zahln∈N, die keine Primzahl ist, heißtkomposit.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:9) Walter Unger Z
Satz:
I Jede nat¨urliche Zahl l¨aßt sich ausdr¨ucken als ein Produkt von nichttrivialen Potenzen unterschiedlicher Primzahlen,
n = pe11·p2e2·. . .·pekk.
I Bis auf die Reihenfolge der Faktoren ist diesePrimfaktorzerlegung eindeutig.
Bemerkung:
I Bisher sind keine effizienten Algorithmen zur Primfaktorzerlegung einer Zahlp∈Nbekannt,
I nicht einmal f¨ur den einfachen Fall, daßn=p·q,p,qprim.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Bestimmung des gr¨oßten gemeinsamen Teilers (5:10) Walter Unger Z
1. Ansatz:
Seiena,b∈Nmit
a = Y
16i6k
piei, b = Y
16i6k
pfii,
wobeip1, . . . ,pkPrimzahlen sind undei,fi ∈N0. Dann gilt ggT(a,b) = Y
16i6k
pmin(ei i,fi).
Bemerkung:
Ansatz erscheint nicht effizient, da Primfaktorzerlegung vonaundbnotwendig.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Bestimmung des gr¨oßten gemeinsamen Teilers (5:11) Walter Unger Z
2. Ansatz: Euklidischer Algorithmus
Beobachtung:
d|a und d|b ⇔ d |a und d |bmoda. (direkt aus Definition)
EUCLID(a,b)
{a,b∈N0} (1) if (b= 0) then (2) return(a) (3) else
(4) return(EUCLID(b,amodb)).
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Bestimmung des gr¨oßten gemeinsamen Teilers (5:12) Walter Unger Z
Beispielrechnung:
ggT(180,146)
= ggT(146,34)
= ggT(34,10)
= ggT(10,4)
= ggT(4,2)
= ggT(2,0)
= 2.
Aufwand:
O((loga)·(logb)) Bit-Operationen.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Bestimmung des gr¨oßten gemeinsamen Teilers (5:13) Walter Unger Z
Bemerkung:
Eine leicht modifizierte Version des Euklidischen Algorithmus berechnet mit demselben Zeitaufwandx,y ∈Zmit
ggT(a,b) = xa+yb.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Bestimmung des gr¨oßten gemeinsamen Teilers (5:14) Walter Unger Z
Folgerung 1:
I Falls ggT(a,m) = 1, existierenx,y∈Zmit 1 = xa+ym, also mitxa≡1 (modm).
I Die Zahlx mod mwird als das Inverse vonamod mbezeichnet.
I Schreibweise:a−1(modm).
I Formal korrekt: [a]−1m unter Betrachtung des RestklassenringsZ/mZ. I Berechnungsaufwand analog zum Euklidischen Algorithmus.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Bestimmung des gr¨oßten gemeinsamen Teilers (5:15) Walter Unger Z
Folgerung 2:
I Falls ggT(a,m) = 1, l¨aßt sich die Kongruenz az≡b (modm) mitO((logm)2) Aufwand berechnen.
I Umz zu finden, berechne zun¨achsta−1(modm) und multipliziere anschließend mitb(modm).
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Bestimmung des gr¨oßten gemeinsamen Teilers (5:16) Walter Unger Z
Satz:
I Addition und Subtraktion (modm) lassen sich mitO(logm) Bit-Operationen berechnen. Beachte, daß f¨ur 06a,b<mgilt:
(a+b) mod m =
a+b fallsa+b<m a+b−m fallsa+b>m.
I Multiplikation (modm) l¨aßt sich mitO((logm)2) Bit-Operationen berechnen.
[Schulalgorithmus]
Beobachtung:
ae =
a·ae−1, fallse ungerade (ae/2)2, fallse gerade
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Effiziente Berechnung von Potenzen (5:17) Walter Unger Z
Beobachtung:
POWER(a,e,m) {a,e,m∈N0, m>2}
(1) if e= 0 then return(1) (2) else if emod 2 = 0 then (3) t ← POWER(a,e/2,m) (4) return(t2mod m) (5) else
(6) t ← POWER(a,e−1,m) (7) return(a·tmod m) Aufwand:
O((loge)·(logm)2) [stattO(e·(logm)2) f¨ur naiven Ansatz]
Bemerkung:
Zahlen werden nie gr¨oßer alsm2.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Effiziente Berechnung von Potenzen (5:18) Walter Unger Z
Beispielrechnung:
331mod 43
= (3·330) mod 43
= (3·915) mod 43
= (3·9·914) mod 43
= (3·9·817) mod 43
= (3·9·(−5)7) mod 43
= (−135·56) mod 43
= (−6·56) mod 43
= (−6·1252) mod 43
= (−6·(−4)2) mod 43
= (−6·16) mod 43
= (−96) mod 43
= (−10) mod 43
= 33.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Eulerscheϕ-Funktion (5:19) Walter Unger Z
Definition:
I ϕ(1) := 1.
I F¨urm>2 definiere
ϕ(m) :=|{a∈Z|06a6m−1; ggT(a,m) = 1}|
Satz:
1. F¨ur jede Primzahlpund jedesb∈Nistϕ(pb) =pb−pb−1. 2. Sindm,n∈Nteilerfremd, so giltϕ(m·n) =ϕ(m)·ϕ(n).
Folgerung:
ϕ(m) ist leicht zu berechnen, falls die Primfaktorzerlegung vonmbekannt ist.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Eulerscheϕ-Funktion (5:20) Walter Unger Z
Satz [Euler]:
Es seienm∈Nunda∈Zteilerfremd.
1. Dann istaϕ(m)≡1 (modm).
Satz [Fermat]:
Es seipeine Primzahl.
1. F¨ur jedesa∈Zmitp6 |aistap−1≡1 (modp).
2. F¨ur jedesa∈Zistap≡a(modp).
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Chinesischer Restsatz (5:21) Walter Unger Z
Satz [Chinesischer Restsatz]:
I Es seienm1,m2, . . . ,mn∈Npaarweise teilerfremd, I es seiena1,a2, . . . ,an∈Z;
I es seiM:=Qn i=1mi.
I Dann existiert ein eindeutig bestimmtesx0∈ {0,1, . . . ,M−1}mit x0≡a1(modm1)
x0≡a2(modm2) ..
.
x0≡an(modmn)
I Es gilt: {x ∈Z|x ≡ai(modmi) f¨uri= 1,2, . . . ,n}
= {x ∈Z|x ≡x0(modM)} .
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Chinesischer Restsatz (5:22) Walter Unger Z
Algorithmus:
1. Berechne M = m1·m2·. . .·mn. 2. F¨ur 16i6n: Berechne Mi = mM
i.
3. F¨ur 16i6n: Berechne Ni = Mi−1(modmi).
{z.B. mit Euklidischem Algorithmus. Beachte: ggT(Mi,mi) = 1.}
4. F¨ur 16i6n: Berechne ei = Mi·Ni.
{Nun gilt f¨ur16i 6n: ei =Mi·Ni ≡1 (modmi).
ei =Mi·Ni ≡0·Ni = 0 (modmj), falls j6=i.}
5. Berechne x0 = `Pn i=1eiai´
mod M.
{Nun gilt f¨ur16i 6n: x0≡eiai≡ai(modmi).}
Aufwand:
O((logM)2) Bit-Operationen.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:23) Walter Unger Z
Aufbau von RSA
1. w¨ahlep,q große Primzahlen
2. setze n:=p·q,ϕ(n) = (p−1)(q−1)
ϕ(n) = |{a:ggT(a,n) = 1,06a6n}|
ϕ(1) = 1
ϕ(pb) = pb−pb−1
ϕ(m·n) = ϕ(m)·ϕ(n)
3. w¨ahle großes d >1 mit ggT(d, ϕ(n)) = 1 und bestimmee mit e·d ≡1 modϕ(n) (Inverses zud)
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:24) Walter Unger Z
Beschreibung RSA
I Sei x <n
I En,eRSA: IN?x →IN?x
I Dp,q,dRSA : IN?x →IN?x
I En,eRSA(a1, . . . ,am) =ae1 modn En,eRSA(a2, . . . ,am)
I Dp,q,dRSA(c1, . . . ,cm) =c1d modn Dp,q,dRSA(c2, . . . ,cm)
I In D werdenp und q gesondert aufgef¨uhrt, um anzudeuten, daß diese Werte bei der Entschl¨usselung bekannt sind.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:25) Walter Unger Z
Beispiel
c=wemodn w=cdmodn
p= 5,q= 11,n= 55, ϕ(n) = 40,d= 23,e= 7 w∈ {1, . . . ,54} \ {x·5,x·11|x ∈IN}
Beachte:FallsggT(w,n)>1, kannnfaktorisiert werden!
w 1 2 3 4 6 7 8 9 12 13 14 16 17 18
c 1 18 42 49 41 28 2 4 23 7 9 36 8 17
w 19 21 23 24 26 27 28 29 31 32 34 36 37
c 24 21 12 29 16 3 52 39 26 43 34 31 38
w 38 39 41 42 43 46 47 48 49 51 52 53 54
c 47 19 46 48 32 51 53 27 14 6 13 37 54
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:26) Walter Unger Z
Bemerkung
c=wemodn w=cdmodn
I Bemerkung: Es gibt vier Zahlenw mitE(w) =w und ggT(w,n) = 1. Beachte:
(1e mod p) = 1 (1e mod q) = 1 (p−1)e modp = (p−1) (q−1)e modq = (q−1)
Mit dem chinesischen Restklassensatz ergeben sich die vier Zahlen.
I Beispiel: (GENAUER)p = 5,q = 11 undw ∈ {1,21,34,54}
I Noch mehr M¨oglichkeiten f¨ur gleiche Zahlen erh¨alt man im FallggT(w,n)>1.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:27) Walter Unger Z
Eindeutigkeit I
c=wemodn w=cdmodn
Satz
Die Entschl¨usselung von RSA ist eindeutig.
I Seien w,c,d,e, ϕ(n),p,q wie in RSA gegeben.
I Zu zeigen ist
w ≡cd(modn)
I Danach ist die Eindeutigkeit klar, da w <n.
I Es gilt nach Wahl von d,e :∃j :ed =jϕ(n) + 1
I Wir unterscheiden im folgenden drei F¨alle:
1. Fall: Weder p nochq teiltw.
2. Fall: Genau p teilt w,q teilt nicht w. 3. Fall: p und q teilen w.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:28) Walter Unger Z
Annahme: weder p noch q teilt w
c=wemodn w=cdmodn
⇒ wϕ(n)≡1(modn) (nach Euler−Theorem)
⇒ wjϕ(n)≡1(modn)
⇒ wed−1 ≡1(modn)
⇒ wed ≡w(modn)
⇒ cd ≡w(modn)
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:29) Walter Unger Z
Annahme: genau p teilt w , q teilt nicht w
c=wemodn w=cdmodn
⇒ wq−1≡1(modq) q Primzahl)
⇒ w(p−1)(q−1)≡1(modq)
⇒ wϕ(n)≡1(modq)
⇒ wjϕ(n)≡1(modq)
⇒ wed ≡w(modq)
⇒ wed ≡w(modn)
Bei der letzten Folgerung wirdwed ≡w(modp) (nach Fermat) verwendet.
3. Fall:p und q teilenw geht analog.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:30) Walter Unger Z
Vergleich mit dem Rucksackverfahren
c=wemodn w=cdmodn
I Schweres Problem: Faktorisieren vonn.
I leichtes Problem: Faktorisieren von n mit Hilfe vonϕ(n).
I Schweres Problem: L¨ose xe≡c modn.
I Leichtes Problem: L¨osexe ≡c mod n mit Hilfe von ϕ(n),p,q,d
I Wichtig:Arbeite mit großen Zahlen.
I RSA ist ca. um den Faktor 1000 langsamer als das DES Verfahren bei vergleichbarer Schl¨usselgr¨oße.
I Problem: Bestimme effizient wr modn.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:31) Walter Unger Z
Bestimme effizient w
rmod n
c=wemodn w=cdmodn
2011mod 55 wrmodn
201011binmod 55 = w(rl,rl−1,...,r0 )binmodn
2023 +21 +20mod 55 = w
Pl i=0ri2i
modn (2023·2021·2020) mod 55 = (Ql
i=0wri2i) modn (2023mod 55·2021mod 55·2020) mod 55 = Ql
i=0(wri2i modn) modn (208mod 55·202mod 55·201) mod 55 = Ql
rii=0=1
(w2imodn) modn
(25·15·20) mod 55 hi=w2i
h0=w,hi= (hi−1)2modn
20 = Ql
i=0,ri=1(himodn)
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:32) Walter Unger Z
Bestimmung von x
rmod n:
x0=x,xi= (xi−1)2modn Ql
i=0,ri=1(himodn)
I x0:=x,s := 1
I l :=dlogre
I Sei al, . . . ,a0 Bin¨ardarstellung von r, d.h. r =Pk
j=02jaj I F¨ur j := 0 bis l tue:
I falls aj = 1 dann s:=s·xj modn
I xj+1:= (xj)2modn
I Ausgabe s mits =xr modn.
I Maximale Zahlengr¨oße n2.
I Laufzeit O(logn).
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:33) Walter Unger Z
Zu beachten beim Aufbau von RSA:
I p,q sollten nicht nahe beieinander liegen (z.B. keine Primzahlzwillinge)
I p,q sollten zuf¨allig gew¨ahlt werden, d.h. nicht aus Tabellen bekannt sein
I W¨ahlep,q so, daßggT(p−1,q−1) klein ist.
I W¨ahle sichere Primzahlen, d.h. auch p−12 und q−12 sind Primzahlen.
I e und d sollten gross sein.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:34) Walter Unger Z
p, q sollten nicht nahe beieinander liegen
I Angenommen, dies ist doch der Fall:
I x = (p−q)2 ist klein, mitp >q.
I y = (p+q)2 >√
n und (p+q)2 ist nur wenig gr¨oßer als √ n.
I 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
I (p+q2 )2−n= (p−q2 )2, bzw.y2−n=x2.
I Dies wird ein perfekts Quadrat genannt.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:35) Walter Unger Z
p, q sollten nicht nahe beieinander liegen
(p+q2 )2−n= (p−q2 )2 y2−n=x2
I F¨uhre folgenden Test durch:
I F¨urx :=d√
nebisd√
ne+δ teste, obx2−n =y2 gilt f¨ur ein y ∈ZZ.
I Beachte nunx = p2 +q2 und y = p2 −q2.
I Danach setze:p =x+y und q=x−y.
I Der Bereich der durchzuprobierenden Schl¨ussel ist sehr klein.
I Das Ziehen der Wurzel erfolgt nur f¨ur kleine Zahlen.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:36) Walter Unger Z
W¨ ahle p, q so, daß ggT (p − 1, q − 1) klein ist.
I Beachte: (p−1)(q−1) ist durch 4 teilbar, denn es ist Produkt zweier gerader Zahlen.
I Falls ggT(p−1,q−1) groß ist:
I ⇒ das kleinste gemeinsame Vielfache u von p−1,q−1 ist klein
I ⇒ eins dere−1 (mod u) kann zur Entschl¨usselung verwendet werden
I ⇒ Suche wird einfach
I ⇒ w¨ahlep,q so, daßggT(p−1,q−1) klein ist
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:37) Walter Unger Z
ϕ(n) sollte nicht nur kleine Primfaktoren haben
I ⇒ Test f¨ur alle Kandidatenv von ϕ(n)
I ⇒ Test, falls (v+1)e eine ganze Zahl ist.
I Teste dann, ob cv+1e Sinn macht (v : Kandidat f¨urϕ(n))
I Theoretische L¨osung f¨ur die beiden letzten Probleme:
I w¨ahle eine sichere Primzahl, d.h. auch p−12 und q−12 sind Primzahlen.
I Beispiele: 83,107,10100−166517.
I Sichere Primzahlen sind jedoch schwer zu generieren.
I Es ist nicht einmal gekl¨art, ob es unendlich viele davon gibt.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:38) Walter Unger Z
Sicherheitsaspekte
Wie sicher ist RSA?
1. L¨aßt sich beispielsweise RSA ohne Faktorisierung knacken?
2. Kann man ϕ(n) bestimmen?
3. Kann man d bestimmen?
4. Kann man bestimmen, ob das letzte Bit vonw gleich 1 ist?
5. Kann man testen, ob w < n2 gilt?
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
(5:39) Walter Unger Z
Kann man ϕ(n) bestimmen?
n:=p·q ϕ(n) = (p−1)(q−1) c=wemodn w=cdmodn
Lemma
Fallsϕ(n)berechnet werden kann, dann gibt es ein Verfahren, das p,q bestimmt.
Beweis.
I ϕ(n) = (p−1)(q−1)⇒p+q =n−ϕ(n) + 1
I p
(p+q)2−4n=p
2n+p2+q2−4n
I =p
p2+q2−2n
I =p
(p−q)2
I =p−q
I n−ϕ(n)+1+√
(n−ϕ(n)+1)2−4n
2 =p
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Verschl¨usselung d bestimmen? (5:40) Walter Unger Z
Kann man d bestimmen?
n:=p·q ϕ(n) = (p−1)(q−1) c=wemodn w=cdmodn
Lemma
Falls d berechnet werden kann, gibt es ein probabilistisches Verfahren, das p,q bestimmt.
Vorgehen
I Bekannt ist e,d,n. Das Ziel ist die Bestimmung vonp und q.
I W¨ahle einw mit 16w 6n
I Versuche,n mit w zu faktorisieren (Verfahren kommt sp¨ater).
I Dies wird mit einer Wahrscheinlichkeit >0,5 gelingen.
I Dann ist die Wahrscheinlichkeit, nach k Tests ein passendes w gefunden zu haben = 1−2−k.
I Das Verfahren kann deterministisch gemacht werden.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Verschl¨usselung d bestimmen? (5:41) Walter Unger Z
Verfahren
n:=p·q ϕ(n) = (p−1)(q−1) c=wemodn w=cdmodn
I Falls ggT(w,n)>1, dann faktorisieren mit dem Algorithmus von Euklid
I Falls w 6≡ ±1 (mod n) und w2 ≡1 (modn), dann gilt:
(w + 1)·(w −1) wird vonn geteilt
und (w+ 1),(w−1) werden nicht von n geteilt
=⇒ggT(w + 1,n) liefertp oderq.
I Falls die obigen Schritte erfolglos, f¨uhre folgende Schritte aus.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Verschl¨usselung d bestimmen? (5:42) Walter Unger Z
Verfahren
n:=p·q ϕ(n) = (p−1)(q−1) c=wemodn w=cdmodn
I ed−1 = 2sr mits >1 undr ungerade.
I Daed−1 ein Vielfaches vonϕ(n) ist, gilt:w2sr ≡1 (modn).
I Bestimme kleinstes s0(06s06s) mitw2s
0r ≡1 (modn).
I Falls nuns0 >0 undw2s0−1r 6≡ −1 (modn), so gehe analog zum Fall 2. vor (Faktorisierung ist m¨oglich).
I Andernfalls gilt wr ≡1 (mod n) oder w2tr ≡ −1 (modn) f¨ur eint,06t<s (d.h. t =s0−1) und der Algorithmus verwirft w (Faktorisierung nicht m¨oglich).
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Verschl¨usselung d bestimmen? (5:43) Walter Unger Z
Fehlerwahrscheinlichkeit des Verfahrens
n:=p·q ϕ(n) = (p−1)(q−1) wr≡1 (modn)∨w2t r≡ −1 (modn)
I Wir bestimmen nun die Wahrscheinlichkeit daf¨ur, daß einw verworfen wird.
I Setze dazu:
p−1 = 2ia,q−1 = 2jb mit a,b ungerade und i 6j.
I Da 2sr ein Vielfaches vonϕ(n) ist, gilt, daß r ein Vielfaches von ab ist.
I Falls nunt >i, dann ist 2tr ein Vielfaches vonp−1
⇒ w2tr ≡1mod p
⇒ w2tr 6≡ −1 mod p
⇒ w2tr 6≡ −1 mod n
I Damit tritt der Fall t>i hier nicht auf.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Verschl¨usselung d bestimmen? (5:44) Walter Unger Z
Fehlerwahrscheinlichkeit
ϕ(n) = (p−1)(q−1) p−1 = 2ia,q−1 = 2jb.i6j wr≡1 (modn)∨w2t r≡ −1 (modn)
I Es ist nur noch folgende Situation zu betrachten:
wr ≡1 mod n oder w2tr ≡ −1mod n f ¨ur eint,06t <i
I Bestimme nun jeweils, f¨ur wievielew die Bedingungen erf¨ullt werden.
I Betrachte:wr≡1 modn.
I Seig ein Generator f¨urF?(p) (d.h.g erzeugt 1, . . . ,p) und sei w ≡gumodp.
I Dann giltwr ≡1 modp ⇐⇒ ur = 0 modp−1.
I Die Anzahl der L¨osungen istggT(r,p−1) =a (analogggT(r,q−1) =b).
I Damit hatwr ≡1 modn a·bviele L¨osungen.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Verschl¨usselung d bestimmen? (5:45) Walter Unger Z
Fehlerwahrscheinlichkeit
ϕ(n) = (p−1)(q−1) p−1 = 2ia,q−1 = 2jb.i6j wr≡1 (modn)∨w2t r≡ −1 (modn)
I Es ist nur noch folgende Situation zu betrachten:
wr ≡1modn oder w2tr ≡ −1modnf ¨ur eint,06t6i I Bestimme nun jeweils, f¨ur wievielew die Bedingungen erf¨ullt werden.
I wr ≡1 modnhata·bL¨osungen I Betrachte nun:w2tr6≡ −1 modn
I Anzahl der L¨osungen 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+ 16i 6j w2tr≡ −1 (modn) ist 62ta·2tb= 22tab
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
Verschl¨usselung d bestimmen? (5:46) Walter Unger Z
Fehlerwahrscheinlichkeit
ϕ(n) = (p−1)(q−1) p−1 = 2ia,q−1 = 2jb.i6j wr≡1 (modn)∨w2t r≡ −1 (modn)
I 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
I =⇒ 50 Prozent allerw’s werden verworfen.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
K¨onnen Teilinformationen entschl¨usselt werden? (5:47) Walter Unger Z
Orakel f¨ ur x <
n2n:=p·q ϕ(n) = (p−1)(q−1) c=wemodn w=cdmodn
I Angenommen, es gibt Orakel H mit H(e,n,xe modn) = 1⇐⇒x< n2.
I Idee: Halbierungssuche unter Verwendung vonH.
I Verwende Werte:
xe modn = xe modn 2exe modn = (2x)e modn 4exe modn = (4x)e modn 8exe modn = (8x)e modn 16exe modn = (16x)e modn
I Damit wird dann durch Bin¨arsuche das Intervall, in dem x liegt immer weiter eingeschr¨ankt.
Einleitung Erinnerung Aufbau Sicherheitsaspekte von RSA Unterschrift Angriffe
K¨onnen Teilinformationen entschl¨usselt werden? (5:48) Walter Unger Z
Orakel f¨ ur x <
n2n:=p·q ϕ(n) = (p−1)(q−1) c=wemodn w=cdmodn
Beispiel (n = 15):
xebzw.x: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
(2x)ebzw. 2x: 8 1 9 2 10 3 11 4 12 5 13 6 14 7
(4x)ebzw. 4x: 8 4 12 1 9 5 13 2 10 6 14 3 11 7
I Falls der letzte Test 2yexemodnist und
I falls falls das Orakel als Ergebnis eine Folgea1a2. . .aylieferte,
I dann istximi-ten Intervall der Gr¨oße 2−y−1n, miti=bin(a1. . .ay)