Index Calculus
Erinnerung Komplexit ¨atsfunktion f ¨urx→∞:
Lx(u,v) = exp((v + o(1)) log(x)ulog(log(x))1−u).
Lx(1,v) = xv+o(1), also exponentiell inlog(x).
Lx(0,v) = log(x)v+o(1), also polynomiell inlog(x).
F ¨ur0<u<1spricht man von subexponentiellem Wachstum inlog(x).
Man kann mitLx(u,v)also zwischen exponentieller und polynomieller Laufzeit mitteln.
•DLP Pollard rho inF×p:Lp(1,1/2).
•Faktorisieren ganzer Zahlenn:LN(1/2,1),LN(1/3,(64/9)1/3).
3 15. Januar 2008
Index Calculus
Grobe Laufzeitanalyse f ¨ur p→∞:
•S ={p|pprim und p≤y},#S≈y/log(y)(Faktorbasis, Gr ¨oße nach Primzahlsatz).
•Prp,y= Pr(zmit1≤z<pfaktorisiert ¨uberS)≈u−uf ¨ur u = log(p)/log(y)undlog(p)0.1≤u≤log(p)0.9(Glattheits- wahrscheinlichkeit).
•Erwarteter Aufwand,(ei,j)i,jzu finden:#S·Pr−p,y1≈(y/log(y))uu,
•also≈exp((1 + o(1))) log(y) + (log(p)/log(y)) log(log(p)/log(y))).
•Wird minimiert f ¨urlog(y) = (µ + o(1))(log(p) log(log(p)))1/2, nimmt WertLp(1/2,µ + 1/(2µ))an.
•Matrixschritt nochLp(1/2,2µ)mit schneller linearer Algebra (Wiedemann). Optimaler Wert f ¨ur minimale Laufzeitµ =p
1/2, daher insgesamtLp(1/2,√
2).
⇒Subexponentielle Laufzeit! Pollard nurLp(1,1/2).
Index Calculus
Das DLP in(Z/ℓZ,+)ist leicht, weil wir zus ¨atzlich die Multiplikation verwenden k ¨onnen. Dies k ¨onnen wir in einer Black-Box Gruppe nicht.
Index Calculus Algorithmen basieren auf der Tatsache, daß gewisse Gruppen Faktorgruppen von Ringen (oder auch Gruppen) mit Primfaktorisierung und endlich vielen Primelementen beschr ¨ankter Gr ¨oße sind.
Die Laufzeit dieser Algorithmen ist wesentlich besser als die der generischen Algorithmen (subexponentiell versus exponentiell).
Die unterliegende Technik von Index Calculus Algorithmen findet auch bei der Faktorisierung ganzer Zahlen Anwendung.
1 15. Januar 2008
Index Calculus
BetrachteFp=Z/pZundG⊆F×p der Primordnungℓ. InZgibt es Primfaktorisierung und nur endliche viele Primelemente beschr ¨ankter Gr ¨oße.
Seieng,b∈Gmitb = gxundxgesucht.
•SeiS ={p1, . . . ,ps}eine Menge von Primzahlen.
•Bestimme zuf ¨allige Wertebuigvi, lifte sie nach[0,p−1]∩Zund
”faktorisiere“ sie ¨uberS. Geht dies, erhalten wirbuigvi=∏sj=1peji,j. Wiederhole dies mindestenss + 1mal.
•Durch Anwendung von
”logg“ erhalten wir die linearen Relationen uix + vi=∑sj=1ei,jlogg(pj) modℓ. Bei gen ¨ugend vielen Zeilen k ¨onnen wirzinicht alle Null mit∑iziei,j= 0f ¨ur alle jausrechnen.
Dann gilt∑izi(uix + vi) = 0 modℓ, folglichx =−(∑izivi)/(∑iziui) modℓ.
Elliptische Kurven
F ¨ur Index Calculus muß man
”liften“ und faktorisieren k ¨onnen. Gibt es Gruppen, wo dies nicht geht bzw. wo Pollard rho die (vermutlich ) effizienteste Methode f ¨ur das DDH ist?
⇒elliptische Kurven, hyperelliptische Kurven kleinen Geschlechts.
SeiK =Fqmitq = prundp>3.
Eine elliptische Kurve wird durch eine Gleichung gegeben:
E : Y2= X3+ aX + bmita,b∈K und4a3+ 27b26= 0.
Menge der Punkte ¨uberK:E(K) ={(x,y)∈K2|y2= x3+ ax + b} ∪ {O}. O ist formal der Punkt
”im unendlichen“.
Hasse-Weil:#E(K) = q + 1−t, wobei|t| ≤2√q.
•Heuristisch: H ¨alfte der quadratischen Gleichungen inynach Einsetzen f ¨urxhat zwei Nullstellen ink, die andere keine.
7 15. Januar 2008
Elliptische Kurven
Man kannE(K)in eine abelsche Gruppe mit neutralem ElementO machen. Gruppengesetz wird ¨ublicherweise additiv geschrieben. Es gibt spezielle Formeln, mit der die Punkte
”addiert“ werden:
SeiP = (xP,yP),Q = (xQ,yQ)∈E(K).
DannP + Q =
(O f ¨urxP= xQundyP=−yQ,
(xP+Q,−yQ−λ(xP+Q−xQ))andernfalls, wobei xP+Q=λ2−(xP+ xQ)undλ=
((yQ−yP)/(xQ−xP)f ¨urxP6= xQ, (3x2P+ a)/(2yP)andernfalls.
Das Nachrechnen der Gruppengesetze (insbesondere Assoziativit ¨at) ist recht umst ¨andlich bzw. ben ¨otigt mehr mathematische Theorie.
Das Gruppengesetz f ¨ur elliptische Kurven ¨uberK =Rkann geometrisch veranschaulicht werden.
Index Calculus
Index Calculus kann auch auf andere endliche K ¨orperFq mitq = pn verallgemeinert werden (Fq=Fp[t]/( f (t)),Fp[t]hat Prim-
faktorisierung).
Es gibt sogar Varianten, welche eine Laufzeit vonLq(1/3,c)haben:
•Varianten des Zahlk ¨orpersiebs und des Funktionenk ¨orpersiebs.
Auswirkung auf Sicherheit daher ¨ahnlich (ung ¨unstig) wie bei RSA.
•sBit Sicherheit beiLq(u,v)Angriff ben ¨otigt≈s1/u/vBit K ¨orpergr ¨oßeq(qualitativ).
•Verdoppelung vonsf ¨uhrt also zur Verdoppelung der Bitl ¨ange im generischen Fall und zur Verachtfachung f ¨urF×q und RSA!
5 15. Januar 2008
Methoden f ¨ ur das DLP und DDH
Gruppenordnungℓ= cℓ0,ℓ0 gr ¨oßter Primfaktor vonℓ. Generische Methoden (Shanks BSGS, Pollard rho, ...):
•Laufzeit Theta∼(√
l0), also exponentiell inlog(ℓ0).
Index Calculus Methoden f ¨urF×q mitℓ|(q−1):
•LaufzeitLq(1/3,c),cKonstante.
Daher Sicherheit im Verh ¨altnis zur Effizienz beiF×q nicht wesentlich besser als bei RSA ...
Gibt es bessere Gruppen alsF×q?
Punkte z ¨ahlen
Zum Rechnen und wegen Pohlig-Hellman m ¨ochten wirE(K)kennen.
Wissen nur#E(K) = q + 1−t, und|t| ≤2√q.
Algorithmen zum Punktez ¨ahlen:
•Schoof-Elkies-Atkin (SEA),
•Satoh, AGM (Mestre),
•Dwork-Spur Formel, Deformationen (Lauder-Wan),
•Monsky-Washnitzer Kohomologie (Kedlaya).
Diese Verfahren sind polynomiell inlog(q)(SEAO∼(log(q)4), die anderenO∼(log(q)2)f ¨urp = O(1)).
Ist#E(K)berechnet, so kann man kleine Faktoren durch
Probedivision herausdividieren und auf den Kofaktor dann einen Primzahltest (Miller-Rabin) anwenden.
11 15. Januar 2008
Kurven konstruieren
Ein anderer Ansatz ist, elliptische Kurven so zu konstruieren, daß
#E(K)a priori bekannt ist.
Subfield Kurven:
•IstE ¨uberFqdefiniert und#E(Fq)bekannt, so kann man leicht
#E(Fqn)f ¨ur allenausrechnen.
Komplexe Multiplikation:
•Mit weitergehender Mathematik kann man zu vorgegebener Punktanzahl direkt eine KurveE konstruieren.
Etwas nachteilig ist hier - nur aus philosophischer Sicht -, daß die Kurven nicht zuf ¨allig gew ¨ahlt werden. Dies k ¨onnte M ¨oglichkeiten f ¨ur spezielle Angriffe er ¨offnen (nichts wesentliches bekannt).
Elliptische Kurven
Kurve und Gruppengesetz
6
-
Py Py
Q
y
R
y
P+Q y
9 15. Januar 2008
Elliptische Kurven
Man geht davon aus, daß das effizienteste Verfahren f ¨ur das DDH in einer UntergruppeGvon großer Primzahlordnung der Punktgruppe E(Fq)einer elliptischen Kurve mit zuf ¨allig gew ¨ahltena,bdas Pollard rho Verfahren ist.
Eine elliptische Kurve bietet somit maximal m ¨ogliche Sicherheit im Rahmen der gruppenbasierten Kryptographie.
Probleme/Fragen:
•Ordnung von#E(K)(⇒Punkte z ¨ahlen, Kurven konstruieren).
•Spezialf ¨alle, in denenE(K)unsicher ist.
•Optimierungen in Bandbreite und Rechnen (z.B.
Punktkompression).
Im folgenden grober ¨Uberblick ...
Unsichere Spezialf ¨alle
Weil Abstieg Techniken.
•Treffen im wesentlichen nur aufq = 2nundnmit kleinen Faktoren und/oder f ¨ur spezielle elliptische Kurven zu.
•Konstruieren eine h ¨oher-geschlechtige Kurve, die aber ¨uber einem Teilk ¨orper vonFqdefiniert ist.
•Das DLP kann in die Picardgruppe dieser Kurve transferiert werden. Hierin kann man einen Index-Calculus Angriff durchf ¨uhren.
•Allgemeine Abhilfe:nprim w ¨ahlen, zuf ¨allige Kurven verwenden.
15 15. Januar 2008
Zusammenfassung Sicherheit
Kriterien f ¨ur die Sicherheit einer elliptischen Kurve:
1. Punktanzahl#E(Fq)enth ¨alt einen ausreichend großen Primfaktor ℓ, um gegen Pohlig-Hellman und Pollard rho zu sch ¨utzen.
2. Es gilt nicht#E(Fq) = q, um vor R ¨uck bzw. SmartASS Angriff zu sch ¨utzen.
3. Das kleinstekmitℓ|(qk−1)erf ¨ulltk≥20, um gegen FR-Reduktion bzw. MOV-Angriff zu sch ¨utzen.
4. Mitq = pnsolltenprim oder1sein, wegen Weil Abstieg Angriff.
Normalerweise wird nurq = 2noderq = pverwendet.
F ¨ur paarungsbasierte Kryptographie verzichtet man auf 3. (und 4.) und erh ¨alt zus ¨atzliche Funktionalit ¨at bei reduziertem
Sicherheits-Effizienz Verh ¨altnis (z.B. supersingul ¨ar undq = 3n, da dannk = 6m ¨oglich).
Unsichere Spezialf ¨alle
Multiplikativer Transfer:
•auch Frey-R ¨uck Reduktion (Menezes-Okamoto-Vanstone Angriff).
•Seiengcd{ℓ,q}= 1undµℓdieℓ-ten Einheitswurzeln inFqkmit ℓ|(qk−1)undkminimal.G = E(Fq)[ℓ]Untergruppe der Ordnungℓ.
•Mit Hilfe der Tate-Paarung kann man einen Isomorphismus E(Fq)[ℓ]→µℓdefinieren, der in Zeit poly(k log(q))berechnet werden kann.
•Man kann also ein DLP vonE(Fq)[ℓ]nachF×qktransferieren und dort subexponentiell l ¨osen.
•F ¨ur vonqunabh ¨angiges, zuf ¨alligesℓistkmeist von der Gr ¨oßenordnung wieℓ, somit der Angriff nicht durchf ¨uhrbar.
•Speziell f ¨ur supersingul ¨are Kurven (t = 0 mod p) kann man jedoch immerk≤6erreichen.
•Man sollte immer pr ¨ufen, ob zuqundℓder Exponentk≥20ist.
13 15. Januar 2008
Unsichere Spezialf ¨alle
Additiver Transfer (f ¨ur anomale Kurven, alsot = 1bzw.#E(Fq) = q):
•auch R ¨uck oder SmartASS Angriff, additive Version der FR Reduktion. Hierℓ= pund meistensq = p.
•Es gibt einen IsomorphismusE(Fq)[p]→F+p, der in poly(log(q)) berechnet werden kann.
•Man kann also ein DLP ausE(Fq)[p]nachF+ptransferieren und dort in Polynomzeit l ¨osen. Durch Iterieren erh ¨alt man auch diskrete Logarithmen inE(Fq)(wie bei Pohlig-Hellman).
Anomale Kurven sind also besonders unsicher, w ¨ahrend zum Beispiel supersingul ¨are Kurven nur eine reduzierte Sicherheit (subexponentiell) bieten und damit verwendbar bleiben. Siehe paarungsbasierte Kryptographie ...
Optimierungen
3. Punktkompression:
•F ¨urPistyPNullstelle einer quadratischen Gleichung, die nur von EundxPabh ¨angt. Da es stets nur zwei solche Nullstellen gibt, gen ¨ugt ein Bit zur Auswahl der Nullstelle.
•Speicher- u. Kommunkationsbedarf f ¨ur einen Punkt halbiert sich.
Gehen im folgenden exemplarisch etwas n ¨aher auf 2. und 3. ein.
19 15. Januar 2008
Punktvielfache
Double-and-Add als Hornerschema:
•m =∑ri=0mi2i, mi∈ {0,1}bin ¨are Entwicklung.
•[m]P = 2 ··· 2 2[mr]P + [mr−1]P
+ [mr−2]P
···+ [m1]P
+ [m0]P.
Invertieren effizient, verwende daher allgemeinermi∈ {0,±1}.
⇒Non-adjacent form (NAF),mimi+1= 0f ¨ur alleim ¨oglich.
Berechnung der NAF (imi-ten Schritt):
•Wennm≡0 mod 2, dannmi= 0. Ansonsten w ¨ahlemi∈ {−1,1}mit m−mi≡0 mod 4(dannmi+1= 0).
•Setzem = (m−mi)/2und wiederhole f ¨uri = i + 1.
NAF h ¨ochstens ein Bit l ¨anger als bin ¨are Entwicklung.
Durchschnittliche Dichte der bin ¨aren Entwicklung1/2, der NAF1/3.
Bin ¨are Entwicklung(r/2)Adds+ rDoubles, NAF(r/3)A + rD.
Zusammenfassung Sicherheit
Will man
”besonders sicher“ gehen, sollte man die elliptischen Kurven mit zuf ¨alligema,berzeugen, um keine
”speziellen“ Eigenschaften zu erzeugen.
Wie kann man jemanden davon ¨uberzeugen, daß man eine Kurve zuf ¨allig erzeugt hat? Kurve beweisbar zuf ¨allig erzeugen ...
•Man nimmt z.B.a =SHA-1(Zahl-1)undb =SHA-1(Zahl-2), wobei die Zahlen zu variieren sind, bis die resultierende Kurve einen großen Primfaktor enth ¨alt.
•Man ver ¨offentlicht dann die Zahlen-1,2 zur Berechnung vona,b.
In Standards werden die zu verwendenden Kurven h ¨aufig speziell vorgegeben (IPSec). Obiger
”Sicherheitstest“ bei RSA nicht m ¨oglich.
17 15. Januar 2008
Optimierungen
Man kann im Hinblick auf die Effizienz der erforderlichen Rechnungen inE(Fq)eine ganze Reihe von Optimierungen durchf ¨uhren.
1. Gruppengesetz:
•Verschiedene Koordinatensysteme f ¨ur Punkte und optimierte Formel f ¨ur das Gruppengesetz.
2. Punktvielfache:
•Die OperationλPist die teuerste Operation beim Verschl ¨usseln.
•Man verwendet Varianten von Double-und-Add.
• −Pkann besonders schnell ausgerechnet werden. Daher sollte man beim Double-und-Add auch Subtraktionen in Betracht ziehen.
Punktkompression
SeiP = (xP,yP)mity2P= x3P+ axP+ binFq(pungerade).
Dann istQ = (xP,−yP)ebenfalls ein Punkt aufE.
Es gibt keine weiteren Punkte mit derselbenx-KoordinatexP. GegebenxP, wie zwischenyPund−yPmit Hilfe eines Bits unterscheiden? Verschiedene M ¨oglichkeiten:
•Bit gibt an, oby-Koordinate ein Quadrat oder nicht ist (Jacobi Symbol; f ¨urq≡3 mod 4, da dann−1kein Quadrat ist).
•Bit gibt an, ob lexikographisch gr ¨oßere oder kleinerey-Koordinate zu w ¨ahlen ist.
•Praxis: F ¨urq = pw ¨ahlt man als Bit das LSB(yP)(least significant bit). F ¨ur0≤yP<pwird−yPdurch−yP+ prepr ¨asentiert.
LSB(yP) = 0⇔LSB(−yP) = 1, da pungerade. Daher klappt’s.
Speicher- und ¨Ubertragungsersparnis von ca.50%(Patentgesch ¨utzt).
23 15. Januar 2008
Parametervergleich
NIST Tabelle, Schl ¨usselgr ¨oßen bei ungef ¨ahr gleicher Sicherheit:
Block Chiffre Beispiel ECC RSA /F×q
Schl ¨usselgr ¨oße Block Chiffre Schl ¨usselgr ¨oße Schl ¨usselgr ¨oße
80 SKIPJACK 163 1024
128 AES (klein) 283 3072
192 AES (mittel) 409 7680
256 AES (groß) 571 15360
ECC mit 517 praktikabel, RSA /F×q mit 15360 nicht.
Punktvielfache
E(Fq)[ℓ]zyklisch der Ordnungℓ, φ∈End(E)durch algebraische Formeln auf Koordinaten definiert, liefert Element von End(E(Fq)).
⇒Es gibtλ∈Zmitφ(P) = [λ]Pf ¨ur alleP∈E(Fq)[ℓ].
Schreibem =∑ri=0−1miλimodℓ. Dann [m]P = [
r−1
∑
i=0miλi]P =
r−1
∑
i=0mi[λ]i(P) =
r−1
∑
i=0miφi(P)
= [m0]P + [m1]φ(P) +···+ [mr−1]φr−1(P)
=φ ··· φ φ([mr−1]P) + [mr−2]P
+ [mr−3]P
···+ [m1]P
+ [m0]P.
21 15. Januar 2008
Punktvielfache
Finde geeignete, effizient berechenbareφ:
•Frobeniusendomorphismus(xP,yP)7→(xqP,yqP)f ¨ur Subfieldkurven
¨uberFqn.
•Endomorphismen durch komplexe Multiplkation (siehe Konstruktion).
Dann zwei Hauptf ¨alle:
•r = 2,mi= O(√
ℓ)⇒Benutze simultane Multiexponentiation.
•r≈logd(ℓ),|mi|.d,d = O(1)⇒Benutze Horner Schema wie vorige Folie.
Liefert sogenannteφ-Entwicklungen. Weitere Methoden:
•φ-NAF, Sliding Window, ...