Kryptographische Hash- Funktionen Claudia Molthahn, Norbert Schrörs 14. Januar 2009
Kryptographische Hash-Funktionen
Claudia Molthahn, Norbert Schrörs 14. Januar 2009
2
Gliederung
Allgemeines zu Hash-Funktionen
Einordnung in die Kryptographie
Anwendung kryptographischer Hash-Funktionen
Sicherstellung der Integrität
Anlass zur kryptographischen Nutzung
Funktionsweise krypt. Hash-Funktionen
Beispiel –CvHP-Hash-Funktion
Mögliche Angriffe
Anforderungen an kryptographische Hash-Funktionen
Sicherstellung der Authentizität
Beispiele von kryptographischen Hash-Funktionen
3
Allgemeines zu Hash-Funktionen Von „to hash“ (engl. „zerhacken“)
Im Deutschen „Streuwertfunktion“
Auch Hash-Allgorithmus (Informatik)
Anwendungsgebiete
Informatik (z.B. Datenbanken)
Informationssicherheit im Internet (z.B. Kontrolle von Downloads)
Verschlüsselung von Passwortdateien und digitaler Signaturen
4
Einordnung in d. Kryptographie
Kryptographie
Vertraulichkeit Fälschungssicherheit
Integrität
Authentizität
5
Anwendung krypt. Hash-Fkt.
Überprüfung einer beliebig langen Nachricht (M) auf Abänderungen (Integrität) und Verfasserzugehörigkeit (Authentizität)
Integrität?
=Authentizität?
Sender Empfänger
Nicht geheim! Nicht geheim!
6
Nicht geheim!
Sicherstellung der Integrität
SENDUNG
+
Hashwert
SENDER (Bob)
Nicht geheim!
Hashwert
Hash- Funktion„Hash“
7
Sicherstellung der Integrität
SENDUNG
+
Hashwert
Nicht geheim!
Nicht geheim!
EMPFÄNGER (Alice)
Hashwert
Hashwert
Vergleich
Hash- Funktion„Hash“
8
Anlass zur kryptogr. Anwendung Public-Key-Verschlüsselung ist für große Datenmengen zu
aufwendig und zu langsam Dokumente müssen nicht geheim gehalten werden
Idee: Verfahren komprimiert Daten eines Dokuments auf einen Zahl-
Wert (Hash-Wert) und weist diesem eine möglichst eindeutige ID zu (digitaler Fingerabdruck bzw. Signatur).
Die Prüfung auf Integrität und Authentizität erfolgt mit Hilfe des Hash-Wertes und des digitalen Fingerabdruck (Signatur).
9
Beispiel
Nicht geheim!
SENDER
Hashwert
Hash- Funktion„Hash“
EMPFÄNGER
Hashwert
Hashwert
Vergleich
Hash- Funktion„Hash“
Nicht geheim!
10
Beispiel – CvHP-Hash-FunktionBerechne den Hash-Wert der Nachricht mit Hilfe der folgenden Funktion:
Wähle dazu zwei (große) Primzahlen und mit und bestimme so, dass die Ordnung der Gruppe hat.
Bestimme mit auf die gleiche Weise.
qp 12 qp
*pbab
*pa
21:),( 21mm
pbammh
a
M
*p
11
Beispiel – CvHP-Hash-Funktion Bestimmung von :
müssen Ordnung haben.
ba,
5,3,
161616
132645
124124
154623
142142
111111
7
*
ba
vonlPotenztafe
p
p
ba, 1p
12
Für große Primzahlen:
müssen die Ordnung haben und .
Prüfung, ob erzeugende Elemente sind:
123456
246135
362514
415263
531642
654321
:),(
7
21
21
21
mm
mm
p
ba
bammh
Beispiel – CvHP-Hash-Funktion
1p12 qp
qp 21
1
12
qa
a
ba,
ba,
13
Beispiel – CvHP-Hash-Funktion
122
59
10132
12027
b
a
pqp
Nachrichten: Hash-Werte
1022)9,4()9,4(),(49
373)8,5()8,5(),(58
1037)8,4()8,4(),(48
32313
22212
12111
hmmM
hmmM
hmmM
14
Funktionsweise kryptogr. HF
345344351345727612736263724682394049837363738901010293877292834746464351345727612736263724682394049837363738901010293877292834746465553552562728292983782376372356168461684571565715641451953433453443513457276127362637246823940498373637389010102938772928347464643513457276127362637246823940498373637389010102938772928347464655535525627282929837823763723561684616845715657156414519534534435134572761273626372468239404983736373890101029387729283474646435134572761273626372468239404983736373890101029387729283474646555355256272829298378237637235616846168457156571564145195343345344351345727612736263724682394049837363738901010293877292834746464351345727612736263724682394049837363738901010293877292834746465553552562728292983782376372356168461684571565715641451953453443513457276127362637246823940498373637389010102938772928347464643513457276127362637246823940
15
Funktionsweise kryptogr. HF345344351345727612736263724682394049837363738901010293877292834746464351345727612736263724682394049837363738901010293877292834746465553552562728292983782376372356168461684
571565715641451953433453443513457276127362637246823940498373637389010102938772928347464643513457276127362637246823940498373637389010102938772928347464655535525627282929837
823763723561684616845715657156414519534534435134572761273626372468239404983736373890101029387729283474646435134572761273626372468239404983736373890101029387729283474646555
355256272829298378237637235616846168457156571564145195343345344351345727612736263724682394049837363738901010293877292834746464351345727612736263724682394049837363738901010
293877292834746465553552562728292983782376372356168461684571565715641451953453443513457276127362637246823940498373637389010102938772928347464643513457276127362637246823940
16
Funktionsweise kryptogr. HF
8294
9476
4467
2232
7411
Hash-Wert
Berechnung aus „Teil-Hash-Werten“
Mh
17
Mögliche Angriffe
Versuch einer Kollisionserzeugung (Substitutionsattacke)
1
1
11
),(),(
11
11
1
2121
11
11
2121
2121
pmm
pmm
aa
aa
baba
mmhbaHWbammh
p
p
p
mm
m
p
m
mm
p
mm
p
mm
pp
mm
p
und
p, q, a und b müssen von dem Unternehmen, das das Programm erstellt hat geheim gehalten werden
18
Mögliche Angriffe
Geburtstagsattacke Bei zufällig ausgewählten Personen liegt die
Wahrscheinlichkeit über 50 Prozent, dass zwei Personen am gleichen Tag Geburtstag haben
365 Tage pro Jahr 365 mögliche Hash-Werte ( ) Anzahl der benötigten Personen:
Hash-Wert-Länge: 40 Bit ( )Versuche für Kollisionwahrscheinlichkeit von 50 Prozent:
Empfohlene Hash-Wert-Länge: mindestens 160 Bit
36517,1 k365n
402n
.122 2040 Mion
23k
19
Anforderungen an kryptogr. HF Kleinste Änderungen innerhalb des Dokuments sollen
Änderungen des Hash-Wertes nach sich ziehen (schwache Kollisionsresistenz)
9)( YXh
6)( XYhXY
YX
20
Anforderungen an kryptogr. HF Kleinste Änderungen innerhalb des Dokuments sollen
Änderungen des Hash-Wertes nach sich ziehen (schwache Kollisionsresistenz)
Bewusste Hash-Wert-Erzeugung soll praktisch unmöglich sein (starke Kollisionsresistenz)
3)( MhM
21
Anforderungen an kryptogr. HF Kleinste Änderungen innerhalb des Dokuments sollen
Änderungen des Hash-Wertes nach sich ziehen (schwache Kollisionsresistenz)
Bewusste Hash-Wert-Erzeugung soll praktisch unmöglich sein (starke Kollisionsresistenz)
Hash-Werte sollen gleich verteilt sein
145523 186723 293634
22
Anforderungen an kryptogr. HF Kleinste Änderungen innerhalb des Dokuments sollen
Änderungen des Hash-Wertes nach sich ziehen (schwache Kollisionsresistenz)
Bewusste Hash-Wert-Erzeugung soll praktisch unmöglich sein (starke Kollisionsresistenz)
Hash-Werte sollen gleich verteilt sein Nicht-Injektivität
465745
346255
873512
4368387255374937635637
3627572365873562734235
2354657623658723657600
2356283569826350263500
2937865872365876235022
23
Anforderungen an kryptogr. HF Kleinste Änderungen innerhalb des Dokuments sollen
Änderungen des Hash-Wertes nach sich ziehen (schwache Kollisionsresistenz)
Bewusste Hash-Wert-Erzeugung soll praktisch unmöglich sein (starke Kollisionsresistenz)
Hash-Werte sollen gleich verteilt sein Nicht-Injektivität
Definition:
Kryptographische Hash-Funktionen sind kollisionsfreieEinweg-Hash-Funktionen.
24
Nicht geheim!
Sicherstellung der Authentizität
Private Key
SENDUNG
+
verschl. Hashwert
SENDER (Bob)
Nicht geheim!
Hashwert verschl. Hashwert
Hash- Funktion
RSA-Signatur
Hashwert
25
Sicherstellung der Authentizität
PubilcKey
SENDUNG
+
verschl. Hashwert
Nicht geheim!
Nicht geheim!
EMPFÄNGER (Alice)
verschl. Hashwert
Hashwert
entschl. Hashwert
Vergleich
Hash- Funktion
RSA-Signatur
26
Krypt. Hash-Funktionen (Bsp.)
http://ehash.iaik.tugraz.at/wiki/The_Hash_Function_Zoo
Vielen Dank und viel Erfolg!
28
Quellen
http://haftendorn.uni-lueneburg.de/mathe-lehramt/mathe-lehramt.htm
http://old.tele-task.de/page50_lecture2048.html
http://www.cacr.math.uwaterloo.ca/hac/about/chap9.pdf
http://ehash.iaik.tugraz.at/wiki/The_Hash_Function_Zoo
http://www.secorvo.de/publikationen/faelschungssicherheit-signaturen-fox-1997.pdf
http://www.itsolution.at/support/digitale-signatur-know-how/signatur-und-kryptographie.html
http://www.informatik.uni-bremen.de/~eilert/noframes/uni/krypto/referat/
http://www.rrzn.uni-hannover.de/fileadmin/it_sicherheit/pdf/UH-CA_KryptoPKI_07.pdf