Benutzung von MDCs und MACs
Datenintegrit ¨at und -authentizit ¨at:m||MACk(m).
Datenintegrit ¨at bei authentischem Kanal (Absender bekannt):m,h(m).
•mbeliebig schicken,h(m) ¨uber integren, authentischen Kanal.
•Beispiel: Cryptohandy, Authentizit ¨at durch Stimmerkennung.
Datenintegrit ¨at mit Verschl ¨usselung:Ek
1(m||MACk2(m)).
•k1undk2unbedingt unabh ¨angig!
•CBC-MAC und CBC-Verschl ¨usselung mitk1= k2und gleichemIV liefert letzten ChiffretextblockEk(0), weil vorletzter Chiffretextblock
= Ek(m) =letzter Datenblock= MACk(m). Ist unabh ¨angig vonm!
3 13. November 2007
Sicherer Kanal
Wir nehmen an, ein geheimer256Bit Schl ¨usselKsei ausgetauscht.
Um einen sicheren (=verschl ¨usselten und authentifizierten)
Kommunikationskanal zu erhalten, kann man grob wie folgt vorgehen:
F ¨ur jede Kommunikations- und Authentifizierungsrichtung erzeuge man einen eigenen Schl ¨usselKi(also insgesamt4).
•Ki←SHA-256(K||
”Name der Operation“).
Man verwende AES mit256Bit Schl ¨ussell ¨ange.
Man verwende HMAC mit SHA-256, also f ¨ur 256 Bit Schl ¨usselKj: MAC =SHA-256((Kj⊕opad)||SHA-256((Kj⊕ipad)||m)).
Man verwende eindeutige Nachrichtennummern.
Man verwende den CTR Modus.
4 13. November 2007
HMAC
Als Anwendung des Thm ergeben sich HMACs.
Gegeben eine Hashfunktionh :{0,1}∗→ {0,1}b. HMAC von Nachrichtmund Schl ¨usselk:
•HMAC= h( k||opad||h(k||ipad||m) ).
HMAC= h( k⊕opad||h(k⊕ipad||m) ).
•opad = 36· · ·36.
•ipad = 5C· · ·5C.
Die Benutzung vonkanstelle vonk1undk2basiert auf der Annahme, daß der
”Unterschied“ von einem Angreifer aufgrund der Hashfunktionseigenschaften nicht bemerkt werden kann.
1 13. November 2007
HMAC
Innere Anwendung vonhim HMAC:
•Ben ¨otigt Sicherheit bez ¨uglich Kollisionen bei unbekanntemk.
Außere Anwendungen von¨ him HMAC:
•Die L ¨ange des Padding wird so eingestellt, daß eine volle Blockl ¨ange der Kompressionsfunktion vonherreicht wird.
•Damit wird bei der zweiten Berechnung vonhnicht intern iteriert.
•Ben ¨otigt Sicherheit der Kompressionsfunktion als MAC (Pseudozufallsfunktion).
Wegen Geburtstagsangriffen ist die Sicherheit von HMAC bei iterierten Hashfunktionen trotzdem nur2b/2(aber
”online“ Angriff).
Relativ gutes Beispiel:
•HMAC mith =SHA-256, MAC-Wert bei Bedarf auf 128 Bit k ¨urzen.
2 13. November 2007
Zusammenfassung
Bisher symmetrische Kryptographie behandelt.
Verschl ¨usselung - Blockchiffren:
•E : K→S({0,1}b),D : K→S({0,1}b).
•Ideal: F ¨ur zuf ¨alligesk∈K istE(k,·)nicht von zuf ¨allig gew ¨ahlter Funktion ausS({0,1}b)effizient zu unterscheiden.
•Lange Nachrichten: Blockweiser Betrieb (CBC, CTR).
Verschl ¨usselung - Stromchiffren:
•Nachrichtenstrom wird durch⊕mit Schl ¨usselstrom verschl ¨usselt, initialisiert durch Schl ¨usselk∈K.
•Ideal: Schl ¨usselstrom zuf ¨allig (one time pad).
•Abschw ¨achung: Pseudozufallszahlen.
Angestrebte Sicherheit:#K, exhaustive Keysearch.
7 13. November 2007
Zusammenfassung
Hashfunktionen - ohne Schl ¨ussel (MDC):
•h :{0,1}∗→ {0,1}n.
•Ideal: Zufallsfunktion→Betrachtung im Zufallsorakelmodell.
•Speziell: Kollisionsfrei und Einwegfunktion.
•Kurze Nachrichten: Kompressionsfunktion.
•Lange Nachrichten: Iterierung, Merkle-Damgard Konstruktion.
•Angestrebte Sicherheit: ca.2nAufwand f ¨ur Urbilder, ca.2n/2 Aufwand f ¨ur Kollision.
8 13. November 2007
Sicherer Kanal
Verschl ¨usselt wird die Nachricht zusammen mit dem MAC.
Mit Nachrichtennummern Schl ¨usselstrom f ¨ur CTR erzeugen.
Nachrichtennummer in Authentifizierung eingehen lassen.
Nachrichtennummer in klar im Chiffretext.
Beim Entschl ¨usseln MAC checken. Wenn falsch, dann Authentifizierungsfehler.
Wenn Nachrichtennummer schon einmal erhalten wurde (kleiner ist als ein mitgef ¨uhrter Z ¨ahler), dann Nachrichten-Ordnungsfehler.
Schnellere Alternativen, Verschl ¨usselung und Authentifizierung in einem: OCB (patentgesch ¨utzt), CCM.
5 13. November 2007
Paßphrasen und Pseudozufallszahlen
Paßphrasen: Technik, um sich
”lange“ Schl ¨ussel zu merken.
•Der Schl ¨ussel wird als Hashwert eines langen Satzes definiert.
•Siehe z.B. pgp, gpg.
Pseudozufallszahlen:
•Die Ausgabe einer Hashfunktion sieht sehr zuf ¨allig aus.
•Im Betriebssystem werden regelm ¨aßig Zufallsereignisse
angezapft: Maus, Tastatur, Interrupts, Netzwerk, Festplatten etc.
Ergebnisse werden mit Hashfunktion zusammengemischt: state
= h(state,counter++,new input data).
•Extrahieren von Pseudozufallszahlen:r = h(state,counter++).
Sehr gef ¨ahrlich, wenn Pseudozufallszahlen vorhersehbar. Dann Programmablauf deterministisch und Angreifer kann alles nachrechnen. Daher gen ¨ugend Entropie in Pools sammeln.
6 13. November 2007
Public-Key Kryptographie
Zwei Probleme mit der symmetrischen Kryptographie:
•Wie geheime Schl ¨ussel austauschen?
•nLeute haben paarweise verschiedene Schl ¨usselpaare: Also muß jedern(n−1)/2viele geheime Schl ¨ussel speichern. Ist nicht praktikabel.
Diese und weitere Probleme werden durch die Public-Key Kryptographie gel ¨ost.
Jeder Teilnehmer hat einen ¨offentlichen und einen geheimen Schl ¨ussel:
•Zum Verschl ¨usseln wird der ¨offentliche und zum Entschl ¨usseln der geheime Schl ¨ussel verwendet.
•Zum Unterschreiben wird der geheime und zum Verifizieren der
¨offentliche Schl ¨ussel verwendet.
11 13. November 2007
Hybridverschl ¨ usselung
Public-Key Kryptographie liefert viel neue Funktionalit ¨at.
Public-Key Verschl ¨usselung ist aber auch viel langsamer als symmetrische Verschl ¨usselung.
Daher Hybridverschl ¨usselung:
•Nachricht mit symmetrischen Verfahren verschl ¨usseln.
•Den zugeh ¨origen symmetrischen Schl ¨ussel mit Public-Key Verfahren verschl ¨usseln.
•Alles an Empf ¨anger schicken.
•Der entschl ¨usselt zun ¨achst den symmetrischen Schl ¨ussel, und dann die Nachricht.
12 13. November 2007
Zusammenfassung
Hashfunktionen - mit geheimem Schl ¨ussel (MAC):
•h : K× {0,1}∗→ {0,1}n.
•Ideal: Nicht von zuf ¨allig gew ¨ahlter Funktion f :{0,1}∗→ {0,1}nzu unterscheiden.
•Speziell: Niemand kann ohne Schl ¨usselkF ¨alschungen(x,y)mit y = hk(x)bestimmen.
•Konstruktion durch Blockchiffre (CBC-MAC) oder Kombination von Hashfunktionen (HMAC).
•Angestrebte Sicherheit: ca.2n/2 Aufwand f ¨ur F ¨alschung.
9 13. November 2007
Zusammenfassung
Pseudozufallszahlen bzw. -generatoren:
•h :{0,1}m→ {0,1}∗.
•Ideal:
”Zufallsfunktion“, nicht effizient von echten Zufallszahlen unterscheidbar.
•F ¨ur den seed muß man genug Entropie aus dem System sammeln ...
•Konstruktion durch durch Blockchiffre im CBC oder CTR Mode.
•Konstruktion durch Hashfunktionen.
Man kann zeigen, daß die folgenden Aussagen im wesentlichen
¨aquivalent sind:
•Es gibt Einwegfunktionen.
•Es gibt ideale Pseudozufallsgeneratoren.
•Es gibt ideale Blockchiffren.
10 13. November 2007
Einwegfunktionen mit Fallt ¨ ur
Sei f : M→Ceine Funktion des endlichen Nachrichten- und ChiffretextraumsMbzw.C.
• f soll eine Einwegfunktion sein.
•Mit Hilfe gewisser zus ¨atzlicher Informationendsoll es leicht sein, Urbilder unter f zu berechnen.
Dann nennt man diese InformationendFallt ¨ur-Informationen und f eine Fallt ¨ur-Einwegfunktion.
Ein injektives f liefert Kryptosystem:
•Verschl ¨usseln durchc←f (m).
•Entschl ¨usseln durchm←f−1(c), mittels des geheimend.
Einwegfunktionen mit Fallt ¨ur basieren auf algorithmischen, zahlentheoretischen Problemen.
15 13. November 2007
Mann-in-der-Mitte Angriffe
Angenommen, Bob will mit Alice kommunizieren und Eve kontrolliert die Verbindung. Dann kann folgendes passieren:
•Bob fragt Alice nach ihrem ¨offentlichen Schl ¨ussel.
•Eve f ¨angt die Nachricht ab und schickt ihren eigenen ¨offentlichen Schl ¨ussel an Bob.
•Bob verschl ¨usselt seine Nachricht damit und schickt sie an Alice.
•Eve f ¨angt die Nachricht ab und entschl ¨usselt. Dann verschl ¨usselt sie die Nachricht mit Alice’s ¨offentlichem Schl ¨ussel und schickt dies an Alice.
•Weder Bob noch Alice sch ¨opfen Verdacht.
Dies ist ein prinzipielles Problem, was auch mit anderen Public-Key Verfahren auftritt.
13 13. November 2007
Zertifikate
Also Problem: Wie kann Bob sicher sein, daß ein ¨offentlicher Schl ¨ussel auch Alice geh ¨ort?
L ¨osung: Zertifizierungsbeh ¨orde (Certificate Authority, CA).
Die CA erstellt f ¨ur Alice eine digitale Unterschrift ihres ¨offentlichen Schl ¨ussels und identifizierender Information, z.B. Alice’s email Adresse oder Paßnummer. Bob ¨uberpr ¨uft dann die Unterschrift unter Verwendung des ¨offentlichen Schl ¨ussels der CA.
Woher weiß Bob, daß der ¨offentliche Schl ¨ussel der CA richtig ist?
”Den kennt ja jeder“. Problem ist auf nur wenige ¨offentliche Schl ¨ussel reduziert.
•Manchmal in Browsern fest eingebaut.
F ¨uhrt auf Public Key Infrastructure (PKI) ...
14 13. November 2007