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
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
Einordnung in d. Kryptographie Vertraulichkeit Fälschungssicherheit Integrität Authentizität
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? Nicht geheim! Nicht geheim! Sender Empfänger
Sicherstellung der Integrität SENDER (Bob) SENDUNG Nicht geheim! Nicht geheim! Hash- Funktion „Hash“ + Hashwert Hashwert
Sicherstellung der Integrität SENDUNG EMPFÄNGER (Alice) Nicht geheim! Nicht geheim! Hashwert Hash- Funktion „Hash“ Vergleich + Hashwert Hashwert
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).
Beispiel SENDER EMPFÄNGER Nicht geheim! Nicht geheim! Hashwert Hash- Funktion „Hash“ Hash- Funktion „Hash“ Vergleich Hashwert Hashwert
Beispiel – CvHP-Hash-Funktion Berechne 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.
Beispiel – CvHP-Hash-Funktion Bestimmung von : müssen Ordnung haben.
Beispiel – CvHP-Hash-Funktion Für große Primzahlen: müssen die Ordnung haben und . Prüfung, ob erzeugende Elemente sind:
Beispiel – CvHP-Hash-Funktion Nachrichten: Hash-Werte
Funktionsweise kryptogr. HF 345344351345727612736263724682394049837363738901010293877292834746464351345727612736263724682394049837363738901010293877292834746465553552562728292983782376372356168461684571565715641451953433453443513457276127362637246823940498373637389010102938772928347464643513457276127362637246823940498373637389010102938772928347464655535525627282929837823763723561684616845715657156414519534534435134572761273626372468239404983736373890101029387729283474646435134572761273626372468239404983736373890101029387729283474646555355256272829298378237637235616846168457156571564145195343345344351345727612736263724682394049837363738901010293877292834746464351345727612736263724682394049837363738901010293877292834746465553552562728292983782376372356168461684571565715641451953453443513457276127362637246823940498373637389010102938772928347464643513457276127362637246823940
Funktionsweise kryptogr. HF 345344351345727612736263724682394049837363738901010293877292834746464351345727612736263724682394049837363738901010293877292834746465553552562728292983782376372356168461684 571565715641451953433453443513457276127362637246823940498373637389010102938772928347464643513457276127362637246823940498373637389010102938772928347464655535525627282929837 823763723561684616845715657156414519534534435134572761273626372468239404983736373890101029387729283474646435134572761273626372468239404983736373890101029387729283474646555 355256272829298378237637235616846168457156571564145195343345344351345727612736263724682394049837363738901010293877292834746464351345727612736263724682394049837363738901010 293877292834746465553552562728292983782376372356168461684571565715641451953453443513457276127362637246823940498373637389010102938772928347464643513457276127362637246823940
Funktionsweise kryptogr. HF 9476 8294 Hash-Wert Berechnung aus „Teil-Hash-Werten“ 4467 7411 2232
Mögliche Angriffe Versuch einer Kollisionserzeugung (Substitutionsattacke) p, q, a und b müssen von dem Unternehmen, das das Programm erstellt hat geheim gehalten werden und
Mögliche Angriffe Empfohlene Hash-Wert-Länge: mindestens 160 Bit 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
Anforderungen an kryptogr. HF Kleinste Änderungen innerhalb des Dokuments sollen Änderungen des Hash-Wertes nach sich ziehen (schwache Kollisionsresistenz) XY YX
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)
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
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
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.
Sicherstellung der Authentizität SENDER (Bob) SENDUNG Nicht geheim! Nicht geheim! Hash- Funktion + Private Key Hashwert verschl. Hashwert verschl. Hashwert Hashwert RSA-Signatur
Sicherstellung der Authentizität SENDUNG EMPFÄNGER (Alice) Nicht geheim! Nicht geheim! Hashwert Hash- Funktion Vergleich + Pubilc Key verschl. Hashwert verschl. Hashwert entschl. Hashwert RSA-Signatur
Krypt. Hash-Funktionen (Bsp.) 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-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