Funktion

Werbung
Kryptographische Hash-Funktionen
Claudia Molthahn, Norbert Schrörs
14. Januar 2009
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
2
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
3
Einordnung in d. Kryptographie
Kryptographie
Vertraulichkeit
Fälschungssicherheit
Integrität
Authentizität
4
Anwendung krypt. Hash-Fkt.

Überprüfung einer beliebig langen Nachricht (M) auf
Abänderungen (Integrität) und Verfasserzugehörigkeit
(Authentizität)
Integrität?
Nicht geheim!
=
Nicht geheim!
Authentizität?
Sender
Empfänger
5
Sicherstellung der Integrität
SENDER (Bob)
Nicht
geheim!
HashFunktion
„Hash“
Hashwert
SENDUNG
Nicht
geheim!
+
Hashwert
6
Sicherstellung der Integrität
SENDUNG
Nicht
geheim!
EMPFÄNGER (Alice)
Nicht
geheim!
Hashwert
HashFunktion
„Hash“
Vergleich
+
Hashwert
Hashwert
7
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 ZahlWert (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).
8
Beispiel
SENDER
Nicht
geheim!
HashFunktion
„Hash“
Hashwert
EMPFÄNGER
Nicht
geheim!
Hashwert
HashFunktion
„Hash“
Vergleich
Hashwert
9
Beispiel – CvHP-Hash-Funktion
Berechne den Hash-Wert der Nachricht M mit Hilfe der folgenden
Funktion:
h (m1 , m2 ) :  a m1  b m2
p
Wähle dazu zwei (große) Primzahlen p und
und bestimme a  *p so, dass
hat.
Bestimme b  a mit
q mit p  2q  1
a die Ordnung der Gruppe *p
b  *p auf die gleiche Weise.
10
Beispiel – CvHP-Hash-Funktion

Bestimmung von a, b :
p7
1

2
3
Potenztafel von *p  
4
5

6

a, b 3,5

1

1
1

1
1
1 6 1 6 1
1
4
2
2
4
1
1
6
1
6
1
2
4
4
2
1
4
5
2
3
a, b müssen Ordnung p  1 haben.
11
Beispiel – CvHP-Hash-Funktion
h (m1 , m2 ) :  a m1  b m2
p
1

2
3
a m1  b m2  
7 4
5

6

2 3 4 5 6

4 6 1 3 5
6 2 5 1 4

1 5 2 6 3

3 1 6 4 2
5 4 3 2 1 
Für große Primzahlen:
a, b müssen die
Ordnung p  1 haben
und p  2q  1 .
 p  1  2q
Prüfung, ob a, b
erzeugende Elemente
sind: a 2  1
aq  1
12
Beispiel – CvHP-Hash-Funktion
p  2027
p 1
q
1013
2
a  59
b 122
Nachrichten:
Hash-Werte
M 1  48  (m11, m12 )  (4,8)
h(4,8) 1037
M 2  58  (m21, m22 )  (5,8)
h(5,8)  373
M 3  49  (m31, m32 )  (4,9)
h(4,9) 1022
13
Funktionsweise kryptogr. HF
345344351345727612736263724682394049837363738901010293877
292834746464351345727612736263724682394049837363738901010
293877292834746465553552562728292983782376372356168461684
571565715641451953433453443513457276127362637246823940498
373637389010102938772928347464643513457276127362637246823
940498373637389010102938772928347464655535525627282929837
823763723561684616845715657156414519534534435134572761273
626372468239404983736373890101029387729283474646435134572
761273626372468239404983736373890101029387729283474646555
355256272829298378237637235616846168457156571564145195343
345344351345727612736263724682394049837363738901010293877
292834746464351345727612736263724682394049837363738901010
293877292834746465553552562728292983782376372356168461684
571565715641451953453443513457276127362637246823940498373
637389010102938772928347464643513457276127362637246823940
14
Funktionsweise kryptogr. HF
345344351345727612736263724682394049837363738901010293877
292834746464351345727612736263724682394049837363738901010
293877292834746465553552562728292983782376372356168461684
571565715641451953433453443513457276127362637246823940498
373637389010102938772928347464643513457276127362637246823
940498373637389010102938772928347464655535525627282929837
823763723561684616845715657156414519534534435134572761273
626372468239404983736373890101029387729283474646435134572
761273626372468239404983736373890101029387729283474646555
355256272829298378237637235616846168457156571564145195343
345344351345727612736263724682394049837363738901010293877
292834746464351345727612736263724682394049837363738901010
293877292834746465553552562728292983782376372356168461684
571565715641451953453443513457276127362637246823940498373
637389010102938772928347464643513457276127362637246823940
15
Funktionsweise kryptogr. HF
9476
8294
4467
Hash-Wert h M 
Berechnung aus „Teil-Hash-Werten“
7411
2232
16
Mögliche Angriffe

Versuch einer Kollisionserzeugung (Substitutionsattacke)
h (m1 , m2 )  a m1  b m2  HW  a m1  b m2  h (m1 , m2 )
p
p
p
p
a m1  b m2  a m1  b m2
p
a m1  a m1
p
a m1  m1 1
und
p
m1  m1  p  1
m1  m1  p  1
a p 1 1
p
p, q, a und b
müssen von dem
Unternehmen, das
das Programm
erstellt hat geheim
gehalten werden
17
Mögliche Angriffe

Geburtstagsattacke
 Bei k  23 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 ( n  365)
Anzahl der benötigten Personen: k 1,17  365
Hash-Wert-Länge: 40 Bit ( n  2 40 )
Versuche für Kollisionwahrscheinlichkeit von 50 Prozent:
n  240  220  1 Mio.
Empfohlene Hash-Wert-Länge: mindestens 160 Bit
18
Anforderungen an kryptogr. HF

Kleinste Änderungen innerhalb des Dokuments sollen
Änderungen des Hash-Wertes nach sich ziehen (schwache
Kollisionsresistenz)
XY
h ( XY )  6
YX
h (YX )  9
19
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)
M
h (M )  3
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)
Hash-Werte sollen gleich verteilt sein
145523
186723
293634
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
Nicht-Injektivität
4368387255374937635637
3627572365873562734235
2354657623658723657600
2356283569826350263500
2937865872365876235022
465745
346255
873512
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
Definition:
Kryptographische Hash-Funktionen sind kollisionsfreie
Einweg-Hash-Funktionen.
23
Sicherstellung der Authentizität
SENDER (Bob)
Nicht
geheim!
HashFunktion
Hashwert
SENDUNG
Nicht
geheim!
+
Private
Key
verschl. Hashwert
RSA-Signatur
verschl.
Hashwert
Hashwert
24
Sicherstellung der Authentizität
SENDUNG
Nicht
geheim!
EMPFÄNGER (Alice)
Nicht
geheim!
Hashwert
HashFunktion
Vergleich
+
verschl. Hashwert
Pubilc
Key
verschl. Hashwert
entschl. Hashwert
RSA-Signatur
25
Krypt. Hash-Funktionen (Bsp.)
26
http://ehash.iaik.tugraz.at/wiki/The_Hash_Function_Zoo
Vielen Dank und viel Erfolg!
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-undkryptographie.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
28
Herunterladen