Standards
IEEE P1363/P1363a: Enth ¨alt alle Public-Key Verfahren.
•EC-DH, EC-DSA, EC-MQV, EC-IES.
•Anhang enth ¨alt viele grundlegende, zahlentheoretische Algorithmen.
ANSI X9.62: EC-DSA.
ANSI X9.63: EC-DH, EC-MQV, EC-IES.
FIPS186.2: NIST Standard f ¨ur DSA und EC-DSA.
SECG: Indutriestandard gef ¨uhrt von Certicom.
•EC-DH, EC-DSA, EC-MQV, EC-IES.
IETF: IPsec, S/MIME, ...
ISO/IEC 14888-3: Identity-based cryptography.
PKCS #13: ECC.
3 18. Januar 2007
Standards
Alle (außer IEEE) geben Nachrichtenformate und empfohlene Kurven an.
•Nicht jeder kann/will geeignete K ¨orper und Kurven selber finden (Punktez ¨ahlalgorithmus implementieren, ...)
•Unterst ¨utzt Verbreitung und Interoperabilit ¨at.
Verschiedene Standards benutzen teilweise die gleichen Kurven.
•Unterst ¨utzt Verbreitung und Interoperabilit ¨at.
Die ANSI und NIST Kurven sind
”am besten“.
Arbeitsweise von Standards:
•”Freiwillige“ Mitarbeit von Firmenangestellten. Wenig Academia.
•Dadurch Interessensvertretung der Firmen ...
MQV Protokoll
MQV Protokolle:
•Schl ¨usselberechnung symmetrisch.
•wA,WA,wB,WBprivate/ ¨offentliche Schl ¨ussel.
•Geheime ZufallszahlenrA,rB.RA= rAPundRB= rBPwerden von A und B ausgetauscht.
•A berechnetsA= (rA+ µ(RA)wA) modℓ,SB= (RB+ µ(RB)WB)und KAB= hsASB. B analog mit A und B vertauscht.
Two-Pass Variante: AK, keine Key Confirmation.
One-Pass Variante von A nach B: VerwendetwB,WBanstelle von rB,RB. AK, keine Key Confirmation. Keine known-key oder forward secrecy, da B passiv ist.
Unknown Key-Share m ¨oglich (durch Zusatz leicht verhinderbar).
1 18. Januar 2007
Standards
Ziel: Interoperabilit ¨at, sichere Implementierungen.
Zu definieren:
•Format der Daten, K ¨orperelemente, Punkte, Signaturen, (Public-Key) Chiffretexte, ...
•Konversionsfunktionen dieser Objekte nach Bitstring, Integers, ...
•Genauer Spezifikation der Algorithmen, Punktkompression ja/nein, Hybridverschl ¨usselung, ...
Ein paar Standards/Organisationen:
•International: IEEE, IETF, ISO, ITU.
•National: ANSI, CEN, DIN, NIST.
•Company: PKCS, SECG.
Einmal-Paßw ¨ orter
Verbesserung gegen ¨uber Paßw ¨ortern: Jedes Paßwort wird nur einmal verwendet.
Beispiel: TAN beim online Banking.
Einmal-Paßw ¨orter mittels EinwegfunktionH.
Initialisierung:
•Beweiser w ¨ahlt geheimesw0und setztwt= Ht(w0).
•wtwird authentisch (!) zum Verifizierer transportiert.
•Beweiser und Verifizierer halten einen Z ¨ahleri ¨uber die erfolgten Identifikationen.
•Der Verifizierer merkt sichwt−inach deri-ten Verifikation.
7 18. Januar 2007
Einmal-Paßw ¨ orter
Identifikation:
•In der(i + 1)-ten Identifikation berechnet der Beweiser
wt−i−1= Ht−i−1(w0)und schicktwt−i−1an den Verifizierer. Dieser
¨uberpr ¨uftwt−i= H(wt−i−1).
Eigenschaften:
•Wird einwt−ibekannt, so bleiben die nachfolgenden sicher.
•Begrenzte Anzahl von Passw ¨ortern.
•Nicht simultan f ¨ur verschiedene Identifikationen benutzbar, ohne Replayangriff zu erm ¨oglichen.
Challenge-Response Identifikation (nachfolgend) ist da flexibler.
Identifikation
Eine logische Einheit will sich gegen ¨uber einem System identifizieren, um Zugang, Resourcen, Information, Kontrolle etc. zu erhalten.
Beispiel: Geld abheben vom Konto (in der Bank oder vom Geldautomat), einloggen, ...
Der Ansatz ist, Identit ¨at mit einer geheimen Information bzw. Wissen gleichzusetzen: PIN, Paßwort, geheimer Schl ¨ussel, Kenntnis des geheimen Schl ¨ussels zu einem ¨offentlichem Schl ¨ussel.
Dies f ¨uhrt auf Identifikationsprotokolle, in denen der Beweiser einen Verifizierer von seiner Identit ¨at ¨uberzeugen m ¨ochte.
5 18. Januar 2007
Paßw ¨ orter
Hier benutzt man eine Einwegfunktion f. Der Beweiser offenbart dem Verifizierer sein Paßwortw, dieser berechnet f (w)und ¨uberpr ¨uft, ob der Wert in der Benutzer-Datei f ¨ur den Beweiser vorkommt.
Gefahren:
•Paßwort wird bekannt durch Verschulden des Verifizierers oder sonstige technische Probleme (Paßworteingabefenster ist gar nicht das
”echte“).
•Dictionary Attack (Paßw ¨orter intelligent raten).
•Paßwort kann dann durch erfolgreichen Angreifer verwendet werden.
Salzen und Strecken
Nochmal zu den Paßw ¨ortern. Im folgenden zwei Techniken, einen Dictionary-Angriff zu erschweren, sollte der Angreifer Zugriff auf die Paßwortdatei mit Eintr ¨agen(IDi,H(Passworti))haben.
Strecken:
•StattH einmal anwenden,H sehr h ¨aufig anwenden, also Paßwortdatei mit Eintr ¨agen der Form(IDi,Hr(Passworti)) verwenden.
•rsollte so groß sein, daß die Berechnung beispielsweise ca.
1 Sekunde dauert.
•Der Angreifer hat dann einen unumg ¨anglich gr ¨oßeren Rechenaufwand.
11 18. Januar 2007
Salzen und Strecken
Salzen:
•Zu den Paßw ¨ortern Salz hinzuf ¨ugen, also Paßwortdatei mit Eintr ¨agen(IDi,Hr(Passworti||Salzi), Salzi)verwenden.
•Zum Beispiel Salzi= i, oder besser Salziein Zufallswert.
•Dictionary-Angriff bezieht sich dann nur auf eine gew ¨ahlte IDi, nicht alle zusammen (beachte Geburtstagsparadxon), bzw. wird f ¨ur alle erschwert.
Zus ¨atzlich:
•Login Prompt hat normalerweise eingebaute Verz ¨ogerung, wenn Paßwort falsch eingegeben wird.
Challenge-Response Identifikation
Einfaches Beispiel 1:
•Verifizierer schickt Beweiser eine geeignete (zuf ¨allige) Nachricht.
•Beweiser schickt eine Signatur der Nachricht zur ¨uck.
•Verifizierer ¨uberpr ¨uft die Signatur.
Einfaches Beispiel 2:
•Verifizierer schickt Beweiser einen geeigneten (zuf ¨alligen) Chiffretext.
•Beweiser schickt die Entschl ¨usselung des Chiffretexts zur ¨uck.
•Verifizierer ¨uberpr ¨uft die Entschl ¨usselung.
Man-in-the-Middle oder Grandmaster Postal-Chess Problem:
•Jemand kann sich zwischen die kommunizierenden Parteien h ¨angen. Z ¨ahlt bei C-R-I nicht direkt als Angriff.
9 18. Januar 2007
Challenge-Response Identifikation
Beweiser sei B und Verifizierer A (B und A werden hier mit den
¨offentlichen Schl ¨usselnBundAgleichgesetzt).
Beispiel (Gegenseitige Identifikation):
•B schickt A eine ZufallszahlrB.
•A schickt B eine ZufallszahlrA,Bund die SignaturSA(rA,rB,B).
•B ¨uberpr ¨uft die Korrektheit der Daten (alsoBund die Signatur), A hat sich damit dann gegen ¨uber B identifiziert.
•B schickt A den WertAund die SignaturSB(rB,rA,A).
•A ¨uberpr ¨uft die Korrektheit der Daten (alsoAund die Signatur), B hat sich damit dann gegen ¨uber A identifiziert.
Weitere Protokolle speziell f ¨ur Identifikation: Zero Knowledge Beweise etc.
Zero Knowledge Beweise
Daß P nichts weiteres bez ¨uglichxverr ¨at, wird wie folgt formalisiert.
F ¨ur jedes Programm V∗gibt es ein Programm M∗, dessen Ausgaben als Zufallsvariable mit den Ausgaben von(P,V∗)als Zufallsvariable in Abh ¨angigkeit der Zufallsb ¨ander nicht effizient unterschieden werden k ¨onnen (bei gleicher, fixer Eingabe der zus ¨atzlichen Parameter, bis auf den Zeugen).
Die Eingabe des Zeugen soll also f ¨ur eine (jede) Berechnung keinen Vorteil bringen.
Es gen ¨ugt, nur solche M∗zu betrachten, welche die zwischen P und V∗kommunizierten Nachrichten und das Zufallsband von V∗
ausgeben, da diese als Eingabe von V∗aufgefaßt werden k ¨onnen und V∗danach deterministisch abl ¨auft. Man nennt M∗einen Simulator.
15 18. Januar 2007
Zero Knowledge Beweise
SeinRSA Modul,xzuf ¨allig undy = x2mod n.
P soll Kenntnis vonxbeweisen, ohne etwas ¨uberxzu verraten.
1. P w ¨ahlt zuf ¨alligesrund schickta = r2an V.
2. V w ¨ahlt zuf ¨alligese∈ {0,1}und schicktean P.
3. P berechnetb = rxeund schicktban V.
4. V akzeptiert genau dann, wennb2= aye.
Ein schummelndes Programm B anstelle von P kann wie folgt mit Erfolgswahrscheinlichkeit1/2vorgehen:
1. B w ¨ahlt zuf ¨alligesrund r ¨ateim voraus, alsoe′∈ {0,1}zuf ¨allig.
2. B berechneta = r2y−e′ und schicktaan V.
3. V schickt zuf ¨alligesean B, und B antwortet mitr.
Interaktive Beweissysteme
Hier nur informell.
Haben zwei Programme, einen Beweiser P und einen Verifizierer V.
Diese tauschen Nachrichten aus, zum Schluß akzeptiert V oder weist zur ¨uck.
P und V haben als Eingabe jeweils ein Zufallsband und weitere, gemeinsame Daten. P erh ¨alt dar ¨uberhinaus weitere (vor V geheimen) Daten, welche Zeuge genannt werden.
Die Idee ist, daß P die L ¨osung zu einem Problem erh ¨alt und V davon
¨uberzeugen muß, daß es die L ¨osung kennt, ohne etwas ¨uber die L ¨osung zu verraten.
Allgemein betrachten wir(P,V )als Programm mit zwei kommunizierenden, beliebigen Teilprogrammen P und V.
13 18. Januar 2007
Interaktive Beweissysteme
Beispiel: F ¨ur einykennt P einxmity = gx. V kennt nury. P will beweisen, daß esxkennt.
•P k ¨onntexan V schicken, aber dann w ¨are es V bekannt.
•Abgesehen davon gibt es Probleme und L ¨osungenx, wo es schwierig ist, zu pr ¨ufen, obxeine L ¨osung ist. Betrachten wir hier nicht.
Es sollen folgende Eigenschaften gelten:
•Vollst ¨andigkeit: Wenn P den Zeugenxals Eingabe erh ¨alt (P kennt x), dann akzeptiert V.
•Korrektheit: F ¨ur jedes Programm B: Wenn V in der Interaktion mit B akzeptiert, dann hat B den Zeugen mit Wahrscheinlichkeit≥1/3 als Eingabe erhalten.
Dann heißt(P,V )ein interaktives Beweissystem.
Commitment Schemes
Ziel: P legt sich vor V auf einen Wert fest, ohne daß V den Wert erf ¨ahrt. Sp ¨ater muß P den Wert bekannt geben.
Eigenschaften:
•Hiding (comput., uncond.): Der Wert ist geheim vor V.
•Binding (comput., uncond.): P kann bei Bekanntgabe nicht schummeln.
Variante basierend auf DLP:
1. Challenge. V schicktg,van P.
2. Commit. P legt sich auf die Nachrichtmwie folgt fest. P w ¨ahlt zuf ¨alligesrund schicktc = grvman V.
3. Reveal. P schicktm,ran V. V testetc = grvm.
19 18. Januar 2007
Commitment Schemes
Wenn P schummeln k ¨onnte, dann h ¨atten wird eine Gleichung grvm= gr′vm′und somit das DLPv = g(r−r′)/(m′−m).
P kann(r−r′)/(m′−m)berechnen.
Der Wertcist v ¨ollig zuf ¨allig, gibt keine Information ¨ubermpreis.
V hat daher auch dann keinen Vorteil, wenn essmitv = gskennt.
Beispiel: M ¨unzwurf ¨ubers Telefon.
Scheme ist unconditionally hiding und computationally binding.
Außerdem:
MitC(m,r) = grvmgiltC(r1,m1)C(r2,m2) = C(r1+ r2,m1+ m2).
⇒homomorphes Commitment.
Dies findet Anwendung beim verdeckten Rechnen, e-Voting.
Zero Knowledge Beweise
Angenommen, es gibt ein schummelndes B mit Erfolgswahrscheinlichkeit>1/2.
Dann kann B Wurzelnb,rmitb2= ayeundr2= aye′unde6= e′finden.
Folglich kann B Quadratwurzeln vonyausrechnen, alson faktorisieren.
Durch mehrfache Wiederholung des interaktiven Beweises kann man die Erfolgswahrscheinlichkeit f ¨ur B beliebig klein machen.
17 18. Januar 2007
Zero Knowledge Beweise
Simulation des Beweises: Sei V∗gegeben. Wir konstruieren M∗wie B, nur daß M∗noche′= V∗(a) ¨uberpr ¨uft und solange rechnet, bis dies gilt.
Die Ausgabe von M∗ist dann nicht von der von(P,V∗)zu unterscheiden:
•aist zuf ¨allig,e = V∗(a), undbist eine korrekte Quadratwurzel.
Damit ist der angegebene interaktive Beweis ein Zero Knowledge Beweis (of Knowledge).
Paarungsbasierte Kryptographie
Destruktive Seite von Paarungen:
•MOV Angriff und FR Reduktion. (1991-1993) Konstruktive Seite von Paarungen:
•Sakai, Ohgishi, Kasahara und Boneh, Franklin mit identit ¨atsbasierter Kryptographie. (2000)
Seitdem extrem aktives Gebiet in der Kryptographie, mit vielen weiteren Anwendungen.
Forschung:
•Protokolle (Paarung abstrakt gegeben).
•Konstruktion geeigneter elliptischer Kurven, effiziente Berechung der Paarungen.
23 18. Januar 2007
Paarungsbasierte Kryptographie
Beispiel: Short Signatures.
Setup wie Undeniable Signatures, plus Paarunge : G×G→GT. Schl ¨ussel:y = gx.
Signatur:(σ,M)mitσ= H(M)x. Verifikation:e(g,σ) = e(y,H(M)).
Gegen ¨uber Schnorr spart man sich im wesentlichenh.
Die Sicherheit des Verfahrens kann im Zufallsorakelmodell auf das CDH inGzur ¨uckgef ¨uhrt werden.
Weitere Protokolle
•Multiparty Kryptographie.
•Threshold Kryptographie (
”Entschl ¨usseln, wenn die Mehrheit daf ¨ur ist“).
•Multi-party computation.
•Oblivious transfer, simulaneous contract signing.
•Auktionen.
•... ...
•...
21 18. Januar 2007
Paarungsbasierte Kryptographie
SeienG1,G2,GT zyklische Gruppen von Primzahlordnungℓ. Eine Paarung ist eine nicht-degenerierte bilineare Abbildung
e : G1×G2→GT. Eigenschaften:
•Paarungwertee(P,Q)sollen leicht ausgerechnet werden k ¨onnen.
•G1,G2,GT sollen sicheres DLP und CDH haben. Aber f ¨urG1= G2 ist das DDH inG1mit Hilfe voneleicht zu l ¨osen! (Wie?)
•MeistG1,G2 Punktgruppe einer elliptischen Kurve,GT
Untergruppe vonF×qkundeWeil- oder Tatepaarung.
Referenzprobleme:
1. Pairing inversion: ZuP,W das ElementQmite(P,Q) = W finden, etc.
2. Bilinear CDH: ZuP,aP,bP,cPden Werte(P,P)abcberechnen.
3. viele mehr.
Identit ¨atsbasierte Kryptographie
Traditionelle Verfahren:
•Private Keys werden geheim erzeugt, daraus die Public Keys berechnet. Bindung an eine Identit ¨at erfolgt durch eine Trust Authority mittels Zertifikat.
Identit ¨atsbasierte Kryptographie:
•Hier werden erst die Public Keys erzeugt, und dann durch die TA daraus die Private Keys. Liefert Authentifizierung der Public Keys!
•Hat erweiterte Sicherheitsmodelle, Angreifer d ¨urfen auch f ¨ur andere Identit ¨aten Fragen stellen, speziell sich geheime Schl ¨ussel anderer Identit ¨aten geben lassen.
Identit ¨atsbasierte Verschl ¨usselung:
•Boneh und Franklin 2000. Es war bis dahin ungel ¨ost, ob das
¨uberhaupt geht.
25 18. Januar 2007
Identit ¨atsbasierte Kryptographie
Identit ¨atsbasierte Signaturen:
•Geht auch ohne Paarungen (Paper von Shamir in den 80igern, RSA basiert).
•Verwendet man p(x) = e(P,x)in unserer Beschreibung des
Schnorrverfahrens (P = g), dann erh ¨alt man ein identit ¨atsbasiertes Signaturverfahren.
Beispiel:
PErzeuger,sP ¨offentlicher Schl ¨ussel von TA,sgeheimer Schl ¨ussel von TA.H(ID) ¨offentlicher Schl ¨ussel vonID,sH(ID)geheimer Schl ¨ussel vonID.
Signatur:r = e(P,kP),h = H(M||r),u = hsH(ID) + kP.
Verifikation:y = e(sP,H(ID)). Testee(P,u) = yH(M||r)r.