• Keine Ergebnisse gefunden

CBC-MAC Sicherheit

N/A
N/A
Protected

Academic year: 2022

Aktie "CBC-MAC Sicherheit"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Konstruktion von MACs

Folgende Konstruktionstypen k ¨onnen unterschieden werden:

•MACs aus Blockchiffren im CBC Modus.

•MACs aus MDCs.

•Spezielle Konstruktionen.

CBC-MACs sind sehr weit verbreitet.

•Standardisiert z.B. in FIPS-113 von 1985.

Erhalten in der Regel Sicherheit von nurlog2(#H)/2Bits.

3 14. November 2006

CBC-MAC

Verwendet eine BlockchiffreE : K× {0,1}b→ {0,1}b. CBC-MAC von NachrichtM∈ {0,1}unter Schl ¨usselk:

•SchreibeM = M1||. . .||MnmitMi∈ {0,1}b(und Padding).

y0IV←0b.

•F ¨uri←1, . . . ,n:

yiE(k,yi−1mi).

•Ausgabeyn.

In anderen Worten: Der CBC-MAC ist der letzte Chiffretextblock der Verschl ¨usselung vonmmitE im CBC Modus, unter Verwendung des konstantenIV = 0b.

Vorteil: Leicht aus bestehenden Teilen programmiert.

Message Authentication Codes

Entspricht Hashfunktionen mit geheimen Schl ¨usseln.

h : K×MH,MAC = hk(m).

hparametrisierte Hashfunktion.

mNachricht.

kgeheimer Schl ¨ussel.

Mit der Nachrichtmwirdhk(m) ¨ubertragen. Der Empf ¨anger berechnet hk(m)ausmundkund vergleicht mit dem gesendeten MAC.

Liefert Datenintegrit ¨at und Authentizit ¨at.

1 14. November 2006

Sicherheitsmodell

Der ideale MAC ist wieder eine Zufallsfunktion, f ¨ur jedeskK sollhk nicht von einer

”zuf ¨allig“ gew ¨ahlten FunktionMHunterscheidbar sein.

Spezieller betrachtet man folgendes Sicherheitsmodell:

•Ein Angreifer darfhk(mi)f ¨ur beliebig von ihm vorgegebene Nachrichtenmierhalten (Orakelanfragen).

•Der Angreifer gewinnt (erzeugt eine F ¨alschung), wenn er einm undymity = hk(m)berechnet.

•MAC ist sicher, wenn es keinen effizienten Angreifer gibt, der mit signifikanter Wahrscheinlichkeit gewinnt.

Sicherheit eines idealen MAC ist gleich der Anzahllog2(#H)der Bits der MAC-Werte.

(2)

CBC-MAC Sicherheit

Geburtstagsangriff auf CBC-MAC mit fester Nachrichtenl ¨anged:

•W ¨ahle1.18·2b/2 Nachrichtenmi= m1,i||m2,i||m3mitm1,i∈ {0,1}b paarweise verschieden,m2,i∈ {0,1}bzuf ¨allig undm3∈ {0,1}d−2b beliebig.

•Erfrage allehk(mi). Es ergibt sich eine Kollisionhk(mi) = hk(mj)f ¨ur i6= jmit Wahrscheinlichkeit≥1/2.

•Nun gilthk(m1,i)⊕m2,i= hk(m1,j)⊕m2,j.

•W ¨ahle beliebigesmδ∈ {0,1}bund erfrage yhk(m1,i||(m2,imδ)||m3).

•Nun gilty = hk(m1,j||(m2,jmδ)||m3). Liefert eine F ¨alschung.

Folgerung:2b/2bestm ¨ogliche Sicherheit bem CBC-MAC, 2b/2Schritte gen ¨ugen, um CBC-MAC von zuf ¨alliger Funktion zu unterscheiden.

7 14. November 2006

MACs aus MDCs

Gegeben eine Hashfunktionh :{0,1}→ {0,1}b. Drei einfache Varianten:

1. MAC= h(k||m) 2. MAC= h(m||k) 3. MAC= h(k1||m||k2)

Liefern f ¨ur ideale Hashfunktion idealen MAC. F ¨ur iterierte Hashfunktionen aber nicht besonders sicher:

Annahme:hiteriert, alsoh0= IV,hi+1= f (hi,mi), ...

zu 1. Aush(k||m)kann leichth(k||m||m)bzw.h(k||m||p||m)

ausgerechnet werden, wobeipdas Padding der Hashfunktion ist.

8 14. November 2006

CBC-MAC Padding und Postprocessing

In den Standards sind drei Padding Varianten vorgesehen:

•Nullen anh ¨angen.

•Eine Eins und Nullen anh ¨angen.

•Nullen anh ¨angen und zus ¨atzlichen Block mit Nachrichtenl ¨ange.

Man kann ein optionales Postprocessing vornehmen:

•W ¨ahle Schl ¨usselk1. Dann MAC-WertE(k,D(k1,yn)). Entspricht EDE-Verschl ¨usselung im letzten Schritt.

•W ¨ahle Schl ¨usselk1. Dann MAC-WertE(k1,yn). Entspricht EE-Verschl ¨usselung (nicht besonders gut).

Erschwert exhaustive Key-search.

5 14. November 2006

CBC-MAC Sicherheit

Gilt als sicher,

•wenn Blockchiffre sicher ist und

•wenn die Nachrichtenl ¨ange konstant ist.

Man kann zeigen: Ist die Blockchiffre eine pseudozuf ¨allige Funktion, so auch der CBC-MAC. Nur durch mindestens ungef ¨ahr2b/2Anfragen an die Blockchiffre kann der CBC-MAC von einer zuf ¨alligen Funktion unterschieden werden.

Ist aber unsicher, wenn die Nachrichtenl ¨ange nicht konstant ist:

•Erfragey1hk(m1).

•Erfragey2hk(y1||m2).

•Nun gilty2= hk(m1||0b||m2). Liefert eine F ¨alschung.

Abhilfe:hh(|m|)(m)oderhk(|m| ||m)verwenden.

6 14. November 2006

(3)

Geschachtelte MACs

Ein(ε,q,t)-Angreifer f ¨ur 1, 2 oder 3 f ¨uhrt einen erfolgreichen Angriff bei zuf ¨alliger Schl ¨usselwahl mit Wahrscheinlichkeit≥εund≤q Orakelanfragen in Zeitt aus.

Thm:k1undk2 seien unabh ¨angig und zuf ¨allig. Es gebe keinen (ε1,q + 1,t1)-Angreifer gegen 1 und keinen(ε2,q,t2)-Angreifer gegen 2.

F ¨ur jeden(ε,q,t3)-Angreifer gegen 3 gilt dannε≤ε12und t3≤max{t1,t2}.

Bew: SeiA3ein(ε,q,t)-Angreifer gegen 3. Seien(mi,zi)

f ¨ur1≤iqdie Orakelanfragen vonA3und die Ergebnisse. Es gilt hk2(gk1(mi) = zi. Mit Wahrscheinlichkeit≥εliefertA3eine F ¨alschung (m,z), es gilt alsom6= mif ¨ur alleiundhk2(gk1(m) = z.

11 14. November 2006

Geschachtelte MACs

Der AngreiferA1gegen 1 wird wie folgt definiert: Er w ¨ahlt ein zuf ¨alligesk2 und beantwortet die Orakelanfragen vonA3mit zi= hk2(gk1(mi)), wobei er den Wertgk1(mi)durch sein Orakel erh ¨alt.

NachdemA3den Wert(m,z)ausgegeben hat, berechnetA1den Wert gk1(m)durch Orakelanfrage und gibt gegebenenfalls eine Kollision gk1(m) = gk1(mi)aus. Dies sindq + 1Anfragen an das Orakel.

Außerdem giltm6= mi, so daßA1die Spielregeln befolgt.

Der AngreiferA2gegen 2 wird wie folgt definiert: Er w ¨ahlt ein zuf ¨alligesk1 und beantwortet die Orakelanfragen vonA3mit

hk2(gk1(mi))unter Verwendung seines Orakels f ¨urhk2. NachdemA3den Wert(m,z)geliefert hat, gibtA2den Wert(gk1(m),z)als F ¨alschung aus, fallsgk1(m)6= gk1(mi)f ¨ur alleigilt. Das Orakelhk2wurde dann nicht nachgk1(m)gefragt, so daß auchA2die Spielregeln befolgt.

MACs aus MDCs

zu 2. Finde Kollisionh(m) = h(m)(

”offline“ m ¨oglich). Erfrage yh(m||k). Dann isty = h(m||k)eine F ¨alschung.

( Ist im Prinzip ein Hash-then-encrypt Ansatz, auf den ein analoger Angriff m ¨oglich ist. )

zu 3. Durch Erfragen der MACs findet man eine Kollision h(k1||mi||k2) = h(k1||mj||k2). Dann gilt auchh(k1||mi) = h(k1||mj).

Man sucht nun einfach inKnachk1und dann nachk2. Der Aufwand ist damit2#Kstatt#K2...

Die Konstruktionen 1-3 werden daher so nicht verwendet.

9 14. November 2006

Geschachtelte MACs

Seieng : K1× {0,1}→ {0,1}mundh : K2× {0,1}m→ {0,1}nmitmn.

Wir werden zeigen: Istgk1kollisionsresistent bei unbekanntem Schl ¨ussel undhk2ein sicherer MAC, so isthk2gk1ein sicherer MAC.

Wir betrachten dazu folgende Angreifer:

1. Kollisionsangriff bei unbekanntem Schl ¨ussel:k1ist geheim, der Angreifer erh ¨alt trotzdem die Wertegk1(m)f ¨urmseiner Wahl. Er versucht eine Kollisiongk1(mi) = gk1(mj)mitmi6= mjzu finden.

2. Kleiner MAC Angreifer: Angreifer gegenhk2. 3. Großer MAC Angreifer: Angreifer gegenhk2gk1. Erwartete (ideale) Sicherheit bei 1. istm/2Bits.

Erwartete (ideale) Sicherheit bei 2. istnBits.

(4)

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.

•Sicherheit vonhentspricht Sicherheit der Kompressionsfunktion als MAC, was normalerweise angenommen wird.

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.

15 14. November 2006

Benutzung von MDCs und MACs

Datenintegrit ¨at und -authentizit ¨at:m||MACk(m).

Datenintegrit ¨at bei authentischem Kanal (Absender bekannt):m||h(m).

•Beispiel: Cryptohandy, Authentizit ¨at durch Stimmerkennung.

Ek(h(x)): Hat keine guten Eigenschaften.

•Kollisionen k ¨onnen ohnekbestimmt werden.

•Kollisionen haben gleichen MAC f ¨ur verschiedenek.

Ekdarf kein Stromchiffre sein (man kann nach dem Schl ¨usselstrom aufl ¨osen).

Datenintegrit ¨at mit Verschl ¨usselung:Ek

1(m||MACk2(m)).

k1undk2unbedingt unabh ¨angig!

•CBC-MAC und CBC-Verschl ¨usselung mit gleichemkundIV liefert letzten ChiffretextblockEk(0), weil vorletzter Chiffretextblock= letzter Datenblock.

16 14. November 2006

Geschachtelte MACs

A1hat nach Annahme Erfolgswahrscheinlichkeit≤ε1. A2hat nach Annahme Erfolgswahrscheinlichkeit≤ε2. A1undA2 rufenA3auf.

F ¨urA3macht es keinen Unterschied, ob er vonA1oderA2 aufgerufen wird (in beiden F ¨allen sindk1,k2 zuf ¨allig gew ¨ahlt).

Zufallsquelle vonA3als Eingabebitstringσ∈ {0,1}sauffassen,A1und A2unter Einbeziehung der Orakel zu deterministischen Algorithmen A1,A2machen, diek1,k2,σals Parameter bekommen.

A3hat inA1undA2f ¨ur gleiches, zuf ¨alligesk1,k2,σdie gleiche Erfolgs- wahrscheinlichkeit. WennA3f ¨ur gew ¨ahltek1,k2,σErfolg hat, dann auchA1oderA2f ¨urk1,k2,σ.

Daraus folgtε≤ε12undt≤max{t1,t2}.

13 14. November 2006

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( kopad||h(kipad||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.

14 14. November 2006

(5)

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.

19 14. November 2006

Sicherer Kanal

Wir nehmen an, ein geheimer256Bit Schl ¨usselK sei 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 ¨ussel (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((Kjopad)||SHA-256((Kjipad)||m)).

Man verwende eindeutige Nachrichtennummern.

Man verwende den CTR Modus.

17 14. November 2006

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.

Referenzen

ÄHNLICHE DOKUMENTE

This saving of the key length makes the security proof of OMAC substantially harder than that of TMAC, as shown below. The same L always appears again at the last block. However,

Beachten Sie dabei, dass die Summation erst mit hinreichend großen Zahlen n beginnen darf!.

Bemerkung: Diese Beschreibung betrifft Absorption und Emission insofern, als dass letztere durch das angewendete elektrische Feld stimuliert wird.. Es gibt auch spontane Emission,

Die Formulierung soll darauf hinweisen, dass ein Ereignis nicht an und f¨ur sich eine dynamische Ursache ist oder nicht ist, sondern dass diese Bezeichnung die Bezugnahme auf

Wenn die Wechselwirkungen zwischen den Molek¨ ulen der fl¨ uchtigeren Komponente und denen des Gemischs (bzw. denen der einen anderen Komponen- te) st¨ arker sind, als

V: PD Dr. Eschrig U: Dr. Die Federkonstante ist κ und die Aufh¨angung wird als masselos ange- nommen. Die L¨ange der Aufh¨angung samt Feder sei l. Beachten Sie dann den Auf-, bzw.

(Hinweis: Fertigen Sie eine Skizze an. Ignorieren Sie die h¨ugelige Landschaft und die umgebende Bebauung. Nutzen Sie das Internet zur Recherche.) Im etwa 650 km weiter

Bei Ver- dacht auf eine Darminfektion durch Clostridium difficile wird Ihr Arzt versuchen, zunächst alle Antibiotika ab- zusetzen?. (Bitte setzen Sie Antibiotika nicht auf eige-