• Keine Ergebnisse gefunden

Schwächere Sicherheitskonzepte

N/A
N/A
Protected

Academic year: 2022

Aktie "Schwächere Sicherheitskonzepte"

Copied!
18
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Hashfunktionen und Kollisionen

DefinitionHashfunktion

EineHashfunktionist ein Paar(Gen,H)von pt Algorithmen mit

1 Gen:s←Gen(1n).Genist probabilistisch.

2 H:Hsberechnet Funktion{0,1} → {0,1}`.Hs ist deterministisch.

SpielHashCollA,Π(n)

1 s←Gen(1n)

2 (x,x0)← A(s)

3 HashCollA,Π(n) =

(1 fallsHs(x) =Hs(x0)undx 6=x0

0 sonst .

DefinitionKollisionsresistenz

Eine HashfunktionΠheißtkollisionsresistent, falls für alle pptAgilt Ws[HashCollA,Π(n) =1]≤negl(n).

(2)

Spiel HashColl

HashCollA,Π(n)

sGen(1n) (1n, s)

Ausgabe:

(1 fallsHs(x) =Hs(x0)

0 sonst

A

Berechne:

x6=x0∈ {0,1} (x, x0)

(3)

Schwächere Sicherheitskonzepte

2.Urbild Resistenz Gegeben: s,x

Gesucht: x0 6=x mitHs(x0) =Hs(x)

SatzKollisionresistenz impliziert 2.Urbild Resistenz SeiΠkollisionsresistent. Dann istΠ2.Urbild resistent.

Beweis:

SeiAein 2.Urbild Angreifer aufΠ = (Gen,H)mit Erfolgsws(n).

Algorithmus AngreiferA0 auf Kollisionsresistenz EINGABE:s

1 Wählex ∈ {0,1}.

2 x0 ← A(s,x) AUSGABE:x,x0

Offenbar giltWs[HashCollA0] =(n)

(4)

Schwächere Sicherheitskonzepte

Urbild Resistenz

Gegeben: s,y =Hs(x) Gesucht: x0 mitHs(x0) =y

Satz2.Urbild Resistenz impliziert Urbild Resistenz

SeiΠ2.Urbild resistent und komprimierend. Dann istΠUrbild resistent Beweisskizze:SeiAein Urbild Angreifer aufΠmit Erfolgsws. Algorithmus AngreiferA0 auf 2.Urbild

EINGABE:s,x

1 Berechney =Hs(x).

2 x0 ← A(s,y)

AUSGABE:x,x0 fallsx 6=x0

Es giltx 6=x0 mit signifikanter Ws, fallsH seine Eingabe komprimiert, d.h. der Urbildraum ist größer als der Bildraum.

Damit ist Kollisionsresistenz derstärkste Sicherheitsbegriff.

(5)

Geburtstagsangriff auf Hashfunktionen

Algorithmus Geburtstagsangriff EINGABE:smitHs:{0,1} → {0,1}`

1 Wähle verschiedenex1, . . . ,xq∈ {0,1} für geeignetesq.

2 Berechneyi =Hs(xi)füri=1, . . . ,qund sortiere dieyi.

3 Finde in der sortierten Listexi,xj mityi =yj. AUSGABE:xi,xj mitHs(xi) =Hs(xj)

Anmerkungen:

Annahme:yi sind zufällig gleichverteilt in{0,1}`.

Geburtstagsproblem: Fürq=2`2 +1 erhalten wir mit Ws mind 1−e12 eine Kollisionyi =yj in Schritt 3. (Übung)

Die Auswertung vonHs koste konstante LaufzeitO(1).

Dann besitzt der Algorithmus LaufzeitO(qlogq) =O(`·2`2).

Konsequenz für Hashfunktionen:

Wir benötigen mindestens Ausgabelänge`=160 Bit.

(6)

Merkle-Damgard Transformation

Ziel:KonstruiereH :{0,1} → {0,1}` aush:{0,1}2` → {0,1}`. Algorithmus Merkle-Damgard Konstruktion

Sei(Gen,h)eine kollisionsresistente Hashfunktion mit h:{0,1}2`→ {0,1}`. Wir konstruieren(Gen,H)wie folgt.

1 Gen:s←Gen(1n).

2 H:Bei Eingabesundx ∈ {0,1}L:

I Erweiterex mit Nullen, bis die Länge ein Vielfaches von`ist.

I Schreibex =x1. . .xBmitxi ∈ {0,1}`undB=dL`e.

I SetzexB+1=L(binär kodiert). Initialisierez0:=0`, berechne zi :=hs(zi−1||xi)füri =1, . . . ,B+1.

Ausgabe des HashwertsHs(x) :=zB+1.

(7)

Merkle Damgard Konstruktion

z0 = 0n x1

hs z1

x2

hs z2. . . zB

xB+1=L

hs Hs(x)

(8)

Sicherheit der Merkle-Damgard Konstruktion

SatzSicherheit der Merkle-Damgard Konstruktion

SeiΠh= (Gen,h)kollisionsresistent. Dann ist auchΠH = (Gen,H) kollisionsresistent.

Beweis:

SeiAein Angreifer fürHs mit Erfolgsws(n).

Wir konstruieren einen AngreiferA0fürhs. Algorithmus AngreiferA0

EINGABE:s

1 (x,x0)← A(s). Seix ∈ {0,1}Lundx0 ∈ {0,1}L0. Seienx1. . .xB undx10. . .xB00 die mit Nullen erweiterte Darstellung vonx,x0.

2 FallsL6=L0, setzey :=zB||xB+1=zb||L,y0:=zB00||xB00+1=zB00||L0

3 Sonst seii maximal mitzi−1||xi 6=zi−10 ||xi0 (existiert wegenx 6=x0).

Setzey :=zi−1||xi undy0:=zi−10 ||xi0. AUSGABE:(y,y0)miths(y) =hs(y0)

(9)

Sicherheit der Merkle-Damgard Konstruktion

Korrektheit:Wir zeigenhs(y) =hs(y0)füry 6=y0. Damit folgt negl(n)Ws[HashCollA0h(n) =1] =Ws[HashCollA,ΠH(n) =1] =(n).

Fall 1:L6=L0

Dann giltxB+16=xB+10 und Hs(x) =zB+1=hs(zB||xB+1

| {z }

y

) =hs(zB00||xB00+1

| {z }

y0

) =zB00+1=Hs(x0).

Fall 2:L=L0

Seii maximal mitzi−1||xi 6=zi−10 ||xi0. Aus der Maximalität voni folgtzi =zi0. Damit giltzi =hs(zi−1||xi

| {z }

y

) =hs(zi−10 ||xi0

| {z }

y0

) =zi0.

(10)

Hashfunktionen in der Praxis

Praktische Hashfunktionen verwenden gewöhnlich keins.

Damit sind sie im theoretischen Sinne nicht kollisionsresistent, da ein trivialer Angriff existiert, der eine Kollision ausgibt.

Trotzdem können die bestenbekanntenAngriffe natürlich KomplexitätΩ(2n2)besitzen.

Fast alle Hashfunktionen verwenden eine Kompressionsfunktion in Kombination mit der Merkle-Damgard Transformation.

Als kollisionsresistent in der Praxis gelten derzeit z.B. SHA-2, TIGER, Whirlpool, FORK-256.

Als nicht kollisionsresistent gelten: SHA-0, SHA-1, MD4, MD5, RIPEMD, Snefru, HAVAL, PANAMA, SMASH, etc.

Kryptanalyse 2004 für SHA-0, SHA-1, MD4, MD5 von Wang et al.

Seit 2008 Hash Algorithm Competition für neuen NIST-Standard.

Finalisten (Dez 2010): BLAKE, Grøstl, JH, Keccak, Skein.

(11)

Effizienten MAC-Konstruktion mittels Hashfunktionen

Idee von NMAC:

Hashem∈ {0,1}auf einen Hashwert in{0,1}n.

VerwendeΠMAC3für Nachrichten fixer Länge auf dem Hashwert.

Wir konstruierenΠMAC3mittels schlüsselabhängiger Hashfunktion, bei der ein Teil des Hasharguments aus dem Schlüssel besteht.

Algorithmus MACΠMAC3 für Nachrichten fester Längen Sei(Genh,h)eine kollisionsresistente Hashfkth:{0,1}2n→ {0,1}n.

1 Gen:s←Genh(1n),skann öffentlich sein. Wählek1R{0,1}n.

2 Mac:Bei Eingabe(s,k1)undm∈ {0,1}n, berechne t :=hs(k1||m).

3 Vrfy:Bei Eingabe(s,k1)und(m,t)∈ {0,1}n× {0,1}n, verifiziere t=? hs(k1||m).

(12)

NMAC

Notation:SeiHsIV eine Merkle-Damgard Hashfunktion, bei der der Initialisierungsvektor auf den WertIV gesetzt ist.

Algorithmus NMAC (Nested MAC)

SeiΠh= (Genh,h),ΠMAC3= (Gen0,Mac0,Vrfy0)wie zuvor. Sei (Genh,H)die Merkle-Damgard Transformation von(Genh,h).

1 Gen:s←Genh(1n). Wähle Schlüsselk1,k2R {0,1}n.

2 Mac:Bei Eingabe(s,k1,k2)undm∈ {0,1}n, berechne t :=Macs,k0

1(Hsk2(m)) =hs(k1||Hsk2(m)).

3 Vrfy:Bei Eingabe(s,k1,k2)und(m,t)∈ {0,1}× {0,1}n, Ausgabe=

(1 fallst=Macs,k1,k2(m)

0 sonst .

Praxis-Variante:Fixieres, d.h. einzelne Hash-Funktion (z.B. SHA-1).

Anmerkung:Wir können auchk2=0nsetzen. Vorteil von Schlüssel k2: Sicherheit kann auch unter schwächerer Annahme gezeigt werden.

(13)

NMAC

k2

m1

hs m2

hs . . . L

hs

k1 hs t

(14)

Sicherheit von NMAC

SatzSicherheit von NMAC

SeiΠh= (Genh,h)kollisionsresistent und seiΠMAC3sicher. Dann ist auch NMAC sicher.

Beweisskizze:

SeiAein Angreifer für NMAC.

AstelleMac(·)Orakelanfragen ausQ={m1, . . . ,mq}.

Anschließend gebeAgültiges(m,t)aus mitm∈/ Q.

Fall 1:Es existiert einj ∈[q]mitHsk2(m) =Hsk2(mj).

Wegenm6=mj ist(m,mj)eine Kollision fürHsk2.

Nach Merkle-Damgard Konstruktion liefert dies Kollision fürhs. Fall 2:Es giltHsk2(m)6=Hsk2(mi)für allei∈[q].

SeiQ0 ={Hsk2(m)|m∈Q}. Es giltHsk2(m)∈/ Q0. Damit ist(Hsk2(m),t)eine gültige Fälschung fürΠMAC3.

(15)

HMAC – Hash-Based MAC

Nachteil von NMAC:Benötigen das Setzen von IV inH.

Idee von HMAC:

Erzeugek1,k2durch Vorschalten einer Anwendung vonhs. Definieren Konstantenopad,ipad und berechnen

k1=hs(IV||k⊕opad)undk2=hs(IV||k⊕ipad).

Algorithmus HMAC

Sei(Genh,H)wie zuvor. Seienopad,ipad ∈ {0,1}nkonstant.

1 Gen:s∈Genh(1n). Wählek ∈R{0,1}n.

2 Mac:Für(s,k)undm∈ {0,1}berechne

Macs,k(m) =Hs(k ⊕opad||Hs(k ⊕ipad||m)).

3 Vrfy:Für(s,k)und(m,t)∈ {0,1}× {0,1}n, verifiziere t=? Macs,k(m).

Anmerkung:

Macs,k(m) =Hs(k ⊕opad||Hs(k ⊕ipad||m)

| {z }

Hk2(m)

) =Hsk1(Hsk2(m)).

Krypto I - Vorlesung 12 - 09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 146 / 149

(16)

HMAC

IV k⊕ipad

hs

m1

hs . . . L

hs

k⊕opad

hs

IV hs t

(17)

HMAC ist eine Variante von NMAC

Wir berechnen beim HMAC den MAC-WertHsk1(Hsk2(m)).

D.h. die äußere HashfunktionHsk1 wird stets auf einen

NachrichtenblockHsk2(m)∈ {0,1}nfester Länge angewendet.

Daher ist das Anhängen der Nachrichtenlänge beiHsk1 unnötig.

Entspricht der Berechnung vonhks1(Hsk2(m)), analog zu NMAC.

D.h. HMAC ist ein Spezialfall von NMAC, wobeik1undk2ausk mittels Anwendung vonhs abgeleitet werden.

Wir definieren den folgenden Pseudozufallsgenerator G(k) =hs(IV||k ⊕opad)

| {z }

k1

||hs(IV||k ⊕ipad)

| {z }

k2

.

KorollarSicherheit von HMAC mittels Sicherheit von NMAC SeiGein Pseudozufallsgenerator,(Gen0,h)kollisionsresistent und ΠMAC3sicher. Dann ist die HMAC-Konstruktion sicher.

(18)

Praktische Bedeutung von HMAC

Anwendung von HMAC:

Vorgestellt 1996 von Bellare, Canetti und Krawczyk.

HMAC wird in der Praxis oft in Kombination mit SHA-1 verwendet.

HMAC findet Anwendung z.B. in den Protokollen Internet Protocol Security (IPSec) und Transport Layer Security (TLS).

Wurde 1998 standardisiert und ist weitverbreitet in der Praxis.

HMAC ist im Vergleich zum CBC-MAC deutlich schneller.

Referenzen

ÄHNLICHE DOKUMENTE

Ηalkia - Real-life paradigms of wireless network security attacks...

Claurens (Carl Heuns) als Ausdruck der bürgerlichen Welt- und Lebensanschauung in der beginnenden Biedermeierzeit. Jedenfalls aber findet sich dort eine detaillierte u n d

• Chosen-Message Angriff: Der Angreifer kann sich die Nachrichten aussuchen und erh ¨alt die zugeh ¨origen Signaturen.. Den letzte Variante gibt es auch in

PSS und die Variante zwei Folien zuvor (mit surjektiver Hash Funktion, heißt dann Full Domain Hash) sind sicher bez ¨uglich existenzieller F ¨alschung unter einem

• Umgekehrt sind ungef ¨ahr 2 k Orakelanfragen erforderlich, um eine konstante Erfolgswahrscheinlichkeit zu haben.. Folgerung: Eine Hashfunktion im Zufallsorakelmodell ist

Dieses Signaturverfahren ist f ¨ur eine bijektive Funktion f sicher bez ¨uglich existenzieller F ¨alschung unter einem key-only Angriff. Allerdings nicht besonders praktikabel,

• Chosen-ciphertext Angriff (CCA1): Der Angreifer kann sich Chiffretexte aussuchen und erh ¨alt die zugeh ¨origen Klartexte..

Dieses Signaturverfahren ist f ¨ur eine bijektive Funktion f sicher bez ¨uglich existenzieller F ¨alschung unter einem key-only Angriff. Allerdings nicht praktikabel, da