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 : p7 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