RSA Kryptosystem
Verschl ¨usselung:
•Nachricht alsm∈Z/nZdarstellen, dann Chiffretextc = f (m)mit
¨offentlichem Schl ¨usseleberechnen.
Entschl ¨usselung:
•m = g(c)mit dem geheimen Schl ¨usseldberechnen.
Zur Beschleunigung der Entschl ¨usselung kann man nach dem chinesischen Restsatz und mit der Formel von Garner statt inZ/nZ auch inZ/pZ×Z/qZrechnen. Dies ist3-4mal schneller.
3 27. November 2007
RSA Parameter
Die Primzahlenp,qsollen eine ungef ¨ahr gleiche L ¨ange von mindestens512Bit haben, alsoneine Bitl ¨ange von1024.
Man erwartet, daßnmit2048Bit bis2022undnmit4096Bit bis2050 sicher sind. Einnmit6800Bit entspricht der Sicherheit von AES-128.
F ¨ur die Wahl von Schl ¨usselgr ¨oßen siehe zum Beispiel:
•A. Lenstra und E. Verheul: Selecting Cryptographic Key Sizes Ubliche M ¨oglichkeiten f ¨ur¨ esinde∈ {3,5,17,65537}.
Der Wert vondhat dann im allgemeinen eine Bitl ¨ange ¨ahnlich wien.
Verschl ¨usseln ist daher viel schneller als entschl ¨usseln.
RSA Kryptosystem
Wurde 1977 von Rivest, Shamir und Adleman erfunden.
•Genaue Beschreibung im PKCS#1.
•RSA US-Patent 2000 ausgelaufen (aber nicht f ¨ur spezielle Techniken -
”multiprime RSA“).
•De-facto Standard f ¨ur asymmetrische Kryptosysteme.
•1973 im geheimen vom CESG (UK) erfunden.
Schl ¨usselerzeugung:
Seienp,qzwei verschiedene, ungerade Primzahlen undn = pq.
Sei1<e<φ(n)teilerfremd zuφ(n) = (p−1)(q−1)und1<d<φ(n)mit ed = 1 modφ(n).
Der ¨offentliche Schl ¨ussel ist(n,e).
Der geheimen Schl ¨ussel ist(p,q,φ(n),d).
1 27. November 2007
RSA Kryptosystem
nheißt RSA Modul.
Die RSA Funktion wird durch f :Z/nZ→Z/nZ,x7→xemod ndefiniert.
Thm: Die zu f inverse Funktion ist durchg :Z/nZ→Z/nZ, y7→yd mod ngegeben.
Bew: Wir m ¨ussen zeigen:xed= xf ¨urx∈Z/nZ. Es gilted = 1 + m(p−1) f ¨ur einm∈Zundxp−1= 1f ¨urx∈(Z/pZ)×, daher auchxed= xxm(p−1)= x f ¨ur allex∈Z/pZ. Analog f ¨urq. Also giltxeq= xf ¨urx∈Z/pZ×Z/qZ und wegenZ/nZ∼=Z/pZ×Z/qZauch f ¨urx∈Z/nZ.
RSA ¨ Aquivalenz der Parameter
Bei beliebigemeberechnen wir p,q,φ(n)ausdwie folgt:
Seis = v2(ed−1)undk = (ed−1)/2s. F ¨ura∈Zmitgcd{a,n}= 1gilt a + nZ∈(Z/nZ)×und(ak)2s= 1 mod n, daher hatakeine Ordnung mod p, welche2steilt. Gilt nun(ak)2i= 1 mod pund(ak)2i6= 1 mod q, so folgt p = gcd{(ak)2i−1,n}. Analoges gilt f ¨urq. Wir wollen die Anzahl solcherabestimmen.
Seiφ:Z/pZ×Z/qZ→Z/nZder CRT Isomorphismus. OBdA gelte v2(p−1)≤v2(q−1). Seieng,h∈ZErzeuger von(Z/pZ)×bzw.
(Z/qZ)×. Wennv2(p−1)<v2(q−1)so hat(gx,hy)kmit0≤x≤p−1, 0≤y≤q−1undy6= 0 mod 2an der ersten Koordinate Ordnung
≤2v2(p−1)und an der zweiten Koordinate Ordnung= 2v2(q−1). Dies liefert(p−1)(q−1)/2Wertea =φ((gx,hy))mit(ak)2v2(p−1)= 1 mod p, (ak)2v2(p−1)6= 1 mod q.
7 27. November 2007
RSA ¨ Aquivalenz der Parameter
Wennv2(p−1) = v2(q−1)so betrachten wir Paare(x,y), wo ein Wert gerade und einer ungerade ist. Es gibt2(p−1)(q−1)/4solche Paare.
Die Elementea =φ((gx,hy))erf ¨ullen(ak)2v2(p−1)= 1 mod pund (ak)2v2(p−1)6= 1 mod qoder umgekehrt.
Zusammenfassend gehen wir wie folgt vor:
•a mod nzuf ¨allig w ¨ahlen.s = v2(ed−1),k = (ed−1)/2s.
•Checkgcd{a,n} 6= 1.
•Checkgcd{(ak)2i−1,n} 6= 1f ¨ur0≤i≤s−1.
•Wenn ein ggT ungleich eins ist, haben wirpbzw.qgefunden.
Die Erfolgswahrscheinlichkeit ist≥1/2−ε, da es(p−1)(q−1) Elementeamitgcd{a,n}= 1gibt, und mindestens die H ¨alfte davon zum Erfolg f ¨uhrt.
Primzahlerzeugung
Thm (Primzahlsatz): Seiπ(x) = #{p|pPrimzahl,1≤p≤x}. F ¨urx>17giltx/log(x)<π(x)<1.25506 x/log(x).
F ¨urx→∞giltπ(x)/(x/log(x))→1.
Strategie:
•Zuf ¨allige ganze Zahlenxder gew ¨unschten Bitl ¨angeberzeugen.
•Testen, obxprim. Erfolgswahrscheinlichkeit1/(b log(2)).
Primzahltests:
•Miller-Rabin: Eine Antwort
”ist prim“ ist mit Wahrscheinlichkeit
≤(1/4)rfalsch, beirIterationen. Kann man unter2−128dr ¨ucken.
Eine Antwort
”ist nicht prim“ ist immer richtig.
•Einige andere probabilistische Tests ...
•Agrawal-Kayal-Saxena (2002): Deterministischer, polynomieller Primzahltest (
”primes in P“).
5 27. November 2007
RSA ¨ Aquivalenz der Parameter
Thm: Aus einem Teil des geheimen Schl ¨ussels(p,q,φ(n),d)und dem
¨offentlichen Schl ¨ussel(n,e)kann man die anderen Teile des geheimen Schl ¨ussels effizient ausrechnen.
•Gegebenpoderqist das klar.
•Gegebenφ(n)haben wir zwei Gleichungenpq = n,
(p−1)(q−1) =φ(n). Man kann leicht nachpundqaufl ¨osen.
•Gegebendisted−1bei kleinemeein kleines Vielfaches vonφ(n).
Durch Ausprobieren kann manφ(n)herausbekommen.
•Auch bei beliebigemekann man ausddie Werte p,q,φ(n) berechnen (n ¨achste Folie).
Ein Algorithmus zum Berechnen vonφ(n)oderdist also polynomiell
¨aquivalent zu einem Algorithmus zum Faktorisieren vonn.
RSA Sicherheit
Die Sicherheit von RSA h ¨angt im wesentlichen von den folgenden Gesichtspunkten ab.
1. K ¨onnen schnellere Faktorisierungsalgorithmen entdeckt werden?
•Es ist unbekannt, ob die Faktorisierung ganzer Zahlen nicht doch ganz leicht bewerkstelligt werden kann.
2. K ¨onnen schnellere Computer gebaut werden?
•Mit Quantencomputern kann die Faktorisierung ganzer Zahlen in Polynomzeit bewerkstelligt werden.
3. Wird die RSA Funktion f ¨ur kryptographische Verfahren korrekt benutzt?
•Beispielsweise
”gleichesnf ¨ur mehrere Benutzer“ etc.
11 27. November 2007
Asymptotische Notationen
F ¨urx∈Rn undx0∈Rschreiben wirx≥x0, wenn dies koordinatenweise gilt.
SeiU⊆Rnundg : U→R>0. Wir definieren:
•O(g) ={f |(∃V⊆Rn: f : V →R)und
(∃x0,c∈R: ∀x∈Rnmitx≥x0: x∈U∩V und|f (x)| ≤cg(x))}.
•Omega(g)definiert wieO(g), aber mit|f (x)| ≥cg(x).
•Theta(g) = O(g)∩Omega(g).
•O∼(g) =∪i∈ZO(log(g)ig).
•o(g) ={f |(∃V⊆Rn: f : V→R)und
∀ε>0 :∃x0∈R:∀x∈Rnmitx≥x0: x∈U∩V und|f (x)| ≤εg(x)}
RSA ¨ Aquivalenz der Parameter
Wichtige Folgerung:
•Wird aus irgendeinem Grundd ¨offentlich, gen ¨ugt es nicht, f ¨ur das altenein neues, geheimesdzu bestimmen.
•Es macht keinen Sinn, daß mehrere Benutzer sich das gleichen bei unterschiedlichen, geheimen Schl ¨usseln teilen.
9 27. November 2007
RSA Problem
Das RSA Problem ist, zu(n,e)undc∈Z/nZeinm∈Z/nZmitme= c zu berechnen (alsoe-te Wurzeln inZ/nZzu ziehen, oder die RSA Funktion zu invertieren).
Dies ist das eigentliche Problem, auf dem die Chosen-Plaintext Sicherheit von RSA beruht.
Wenn mannfaktorisieren kann, dann kann man das RSA Problem l ¨osen (klar,dwie in der Schl ¨usselerzeugung berechnen).
Es ist ein offenes Problem, ob das RSA Problem polynomiell
¨aquivalent zum Faktorisieren vonnist.
RSA Faktorisierungsherausforderung
Ist ein Wettbewerb, wer ganze Zahlen am schnellsten faktorisieren kann.
Die Zahl RSA-1024 ist
13506641086599522334960321627880596993888147560566 70275244851438515265106048595338339402871505719094 41798207282164471551373680419703964191743046496589 27425623934102086438320211037295872576235850964311 05640735015081875106765946292055636855294752135008 52879416377328533906109750544334999811150056977236 890927563
F ¨ur die Faktorisierung von RSA-1024 sind$100.000ausgelobt.
15 27. November 2007
RSA Faktorisierungsherausforderung
Bisherige Rekorde.
Zahl Stellen Preis faktorisiert RSA-576 174 $10.000 12-2003 RSA-640 193 $20.000 11-2005
RSA-200 200 5-2005
RSA-200 wurde von Wissenschaftlern an der Uni Bonn, CWI Amsterdam und BSI faktorisiert.
Gittersiebschritt 12-2003 - 10-2004: Entsprechend 55 Jahre auf einem 2.2GHz Opteron.
Matrixschritt 12-2004 - 5-2005: 3 Monate auf 80 2.2GHz Opteron Cluster mit Gigabit Netzwerk.
Faktorisieren ganzer Zahlen
Dies ist ein zentrales Gebiet in der algorithmischen Zahlentheorie.
Ln(u,v) = exp((v + o(1)) log(n)ulog(log(n))1−u) Namen und Laufzeiten einiger Methoden:
•Probedivision bisn1/2:O∼(n1/2).
•Pollard p−1Methode: Im allgemeinen ¨ahnliche Laufzeit wie Probedivision.
•PollardρMethode:O∼(n1/4).
•Elliptische Kurven Methode:Lp(1/2,c)mitpkleinster Primteiler vonnundckleine Konstante. Verallgemeinert p−1Methode.
•Klassengruppen Methode:Ln(1/2,1)(bewiesen, aber ineffizient).
•Quadratisches Sieb:Ln(1/2,1)(effizient).
•Zahlk ¨orpersieb:Ln(1/3,(64/9)1/3).
13 27. November 2007
Faktorisieren ganzer Zahlen
Die ersten drei Methoden haben also inlog(n)exponentielle Laufzeit, w ¨ahrend die anderen sogenannte subexponentielle Laufzeit haben.
Die elliptische Kurven Methode (ECM) ist besonders geeignet, wenn neinen relativ kleinen Primfaktor hat. Ansonsten ist das quadratische Sieb (QS) im allgemeinen schneller, und am schnellsten ist das Zahlk ¨orpersieb (GNFS), aber erst f ¨ur sehr große Zahlen.
Um grobe Gr ¨oßenangaben zu machen: Man verwendet ECM zum Beispiel bis40Dezimalstellen oder f ¨ur einen gewissen Bruchteil der erwarteten Laufzeit des QS, danach QS bis 100 Dezimalstellen, und dann das GNFS.
Faktorisierungsprojekte im Netz: NFSNET und ECMNET.
RSA: Kleines e
Hastad Broadcast Angriff.
Vereinfachte Version: Annahme, daß Nachrichtmmit Exponente bez ¨uglichk≥evielen RSA moduliniverschl ¨usselt ist.
•Alsoci= memod nif ¨ur1≤i≤k.
•Sein =∏ini. OBdAgcd{ni,nj}= 1.
•Chinesischer Restsatz liefert0≤c<nmitc = cimod ni.
•Es giltc = memod n.
•Wegenm<niunde≤kfolgtme<nundc = meinZ, alsom = c1/e. Allgemeine Version:
Thm (Coppersmith): Sei f ∈Z[t]normiert unds = deg( f ). Dann k ¨onnen die L ¨osungen f (x) = 0 mod nmitx∈Zund|x|<n1/seffizient berechnet werden.
Der Beweis verwendet Gitter und LLL Reduktion.
19 27. November 2007
RSA: Kleines e
Thm (Hastad): Seienniteilerfremd undgi∈Z[x]normiert mit s = maxideg(gi), f ¨ur1≤i≤k. Es gebe ein eindeutigesm<mininimit gi(m) = 0 mod ni. Istk>s, so kannmeffizient aus denniundgi
berechnet werden.
Bew: Sein =∏iniundg =∑iλixs−deg(gi)gi, wobeiλi=δi,jmod nj, und
∑iλi= 1(chinesischer Restsatz). Dann istgnormiert,deg(g) = sund g(m) = 0 mod n. Wegenm<minini<n1/k<n1/skannmmit dem Satz von Coppersmith effizient bestimmt werden.
Anwenden mitgi(m) = fi(m)ei−cimod ni.
•Speziellei= eund lineare fi(z.B. festes Padding, fi(m) = m + bi).
•Im allgemeinen kann auf die Bedingungginormiert verzichtet werden.
Gegen Broadcast Angriff hilft randomisiertes Padding vonm.
RSA Sichere Verwendung
RSA wie bisher beschrieben wird h ¨aufig
”plain RSA“ oder
”textbook RSA“ genannt. Im Sinn strenger Sicherheitsmodelle (IND-CCA2) ist es vollkommen unsicher.
Im folgenden werden ein paar Fehler bei der Benutzung von
”plain RSA“ diskutiert. Wir beschr ¨anken uns auf solche Fehler, welche das L ¨osen des RSA Problems erm ¨oglichen.
Kritische Punkte sind:
•die Wahl der Parametern,e,d(kleinesd, kleinese, . . . ).
•m ¨ogliche Struktur in den Nachrichtenm.
•die Verwendung des Systems.
Außerdem: Partielle Information ¨uber Klartext aus Chiffretext erhaltbar, Homomorphieeigenschaft.
17 27. November 2007
RSA: Kleines d
Wenndsehr klein ist, kann es durch Ausprobieren erraten werden.
F ¨ur kleinesdgibt es den Angriff von Wiener:
Thm (Wiener): Giltq<p<2qundd<n1/4/3, so kanndausn,e(mit e<φ(n)) effizient berechnet werden.
Der Beweis verwendet Kettenbr ¨uche.
Im Satz gen ¨ugtd<n0.292(Boneh und Durfee).
Man vermutet, daßd<n1/2bereits ausreicht.