Authentifizierter Diffie-Hellman Schl ¨ usselaustausch
1. A schickt B eine NonceNA.
2. B w ¨ahlt ein zuf ¨alligesrBund schicktrBPan A.
3. A w ¨ahlt ein zuf ¨alligesrAund schicktrAPan B.
4. A und B berechnen unabh ¨angigrA(rBP) = rB(rAP) = rArBPals gemeinsames Geheimnis.
A und B schicken in Schritt 2 und 3 zus ¨atzlich ihre Unterschriften ¨uber die bisher ausgetauschten Werte mit bzw. ¨uberpr ¨ufen diese in
Schritt 3 und 4.
Die Nonce dient dazu, A zu versichern, daß B selbst antwortet (kein replay). Die umgekehrte Rolle wird vonrBgespielt.
3 8. Juli 2004
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).
Key Agreement
Hier geht es um die Berechnung eines gemeinsamen Geheimnisses durch A und B, welches zur Erzeugung symmetrischer Schl ¨ussel verwendet werden kann.
A und B f ¨uhren dazu ein Key Agreement Protokoll aus.
Erforderliche bzw. w ¨unschenswerte Eigenschaften:
•Authenticated Key Agreement (with Key Confirmation)
•Known-key Security, Forward Secrecy, Key Compromise Impersonation, Unknown Key-Share.
Um diese Eigenschaften zu erreichen, verwenden A und B
¨offentliche/private Schl ¨ussel.
1 8. Juli 2004
Key Agreement
Man geht davon aus, daß A den authentischen ¨offentlichen Schl ¨ussel von B hat und umgekehrt. Sonst ist prinzipiell ein Man-in-the-Middle Angriff m ¨oglich.
Die Annahme kann durch Key Management Techniken erreicht werden, wie zum Beispiel durch Zertifikate einer ¨ubergeordneten Zertifizierungsbeh ¨orde (CA).
Zertifikate sind digitale Signaturen der ¨offentlichen Schl ¨ussel unter dem ¨offentlichen Schl ¨ussel der CA. Damit wird das Problem der Authentifizierung im Prinzip nur verlagert, in der Praxis aber erreicht.
Die ¨offentlichen Schl ¨ussel der CA sind ¨ublicherweise in Webbrowsern
”fest“ eingebaut. Man-in-the-Middle Angriffe durch Zwischenstationen im Internet werden damit verhindert.
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.
7 8. Juli 2004
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.
•Ist Paßwortdatei nicht lesbar, dann online Angriff auf feste IDi zus ¨atzlich schwerer.
•Login Prompt hat normalerweise eingebaute Verz ¨ogerung, wenn Paßwort falsch eingegeben wird.
MQV Protokoll
MQV Three-Pass Protokoll:
•Rechnungen sind wie in Two-Pass Protokoll, plus folgende, zus ¨atzliche Schritte zwischen den Daten ¨ubertragungen.
•SeienH1,H2unabh ¨angige Hashfunktionen (Hi(x) =SHA-1(i||x)).
•A sendetRA.
•B berechnet den Session Keyk = H1(KBA)und Authentifizierungsschl ¨usselk0= H2(KBA).
•B sendetRBund MACk0(2,B,A,RB,RA).
•A berechnet den Session Keyk = H1(KAB)und
Authentifizierungsschl ¨usselk0= H2(KAB)und ¨uberpr ¨uft den MAC-Wert.
•A sendet MACk0(3,A,B,RA,RB), und B ¨uberpr ¨uft den MAC-Wert.
5 8. Juli 2004
MQV Protokoll
Eigenschaften:
•AK mit Key Confirmation, hat alle oben genannten
Sicherheitsmerkmale (allerdings heuristisch, ohne Beweis).
•Effizient.
Bemerkung:
•Entwurf von (effizienten) Key Agreement Protokollen und anderen h ¨oher stehenden Protokollen sehr trickreich.
•MQV und unknown key-share Angriff verdeutlichen dies ...
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 ...
11 8. Juli 2004
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.
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.
9 8. Juli 2004
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.
Zero Knowledge Beweise
SeinRSA Modul,xzuf ¨allig undy = x2mod n.
P soll Kenntnis vonxbeweisen.
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, alsoe0∈ {0,1}zuf ¨allig.
2. B berechneta = r2y−e0und schicktaan V.
3. V schickt zuf ¨alligesean B, und B antwortet mitr.
15 8. Juli 2004
Zero Knowledge Beweise
Angenommen, es gibt ein schummelndes B mit Erfolgswahrscheinlichkeit>1/2.
Dann kann B Wurzelnb,rmitb2= ayeundr2= aye0unde6= e0finden.
Folglich kann B Quadratwurzeln vonyausrechnen, alson faktorisieren.
Durch mehrfache Wiederholung des interaktiven Beweises kann man die Erfolgswahrscheinlichkeit f ¨ur B beliebig klein machen.
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, 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.
13 8. Juli 2004
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.
Commitment Schemes
Wenn P schummeln k ¨onnte, dann h ¨atten wird eine Gleichung grvm= gr0vm0und somit das DLPv = g(r−r0)/(m0−m).
P kann(r−r0)/(m0−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.
19 8. Juli 2004
Weitere Protokolle
•Multiparty Kryptographie.
•Threshold Kryptographie (
”Entschl ¨usseln, wenn die Mehrheit daf ¨ur ist“).
•Multi-party computation.
•Oblivious transfer, simulaneous contract signing.
•Auktionen.
•... ...
•...
Zero Knowledge Beweise
Simulation des Beweises: Sei V∗gegeben. Wir konstruieren M∗wie B, nur daß M∗noche0= 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).
17 8. Juli 2004
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.