PMG1617/Einführung/Elisa
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
Definition: Eine Hashwertfunktion/Streuwertfunktion ist eine '''mathematische Funktion'''. Diese reduziert Zeichen beliebiger Länge (z.B. unterschiedliche Passwörter) auf eine '''festgelegte Länge''' dieser Zeichen (z.B. immer 5 Zeichen), sie werden also in eine kleinere und kompaktere Form gebracht. Da Hashfunktionen oftmals in Form eines Algorithmus statt einer mathematischen Funktion spezifiziert werden, wird speziell in der Informatik der Begriff Hash-Algorithmus verwendet. Die Werte einer solchen Funktion sind meist skalare Werte aus einer begrenzten Teilmenge der natürlichen Zahlen. ==Eigenschaften== '''Schnelligkeit:''' Das Berechnungsverfahren des Hashwertes muss schnell sein [[Bild:El!san_Info_hashfunktionen.png|miniatur|Für die Namen "John Smith" und "Sandra Dee" würde es zu einer Kollision kommen.]] '''Einwegfunktion:''' Aus dem Hashwert (z.B. 123) darf nicht der originale Inhalt, z.B. eines Passwortes, erzeugt werden können. '''Kollisionssicherheit:''' Es muss möglichst eine Gleichverteilung der Hashwerte auf die Eingabewerte vorhanden sein, d.h. unterschiedlichen Texten darf nicht derselbe Hashwert zugeordnet sein. Ist diese Voraussetzung erfüllt, so spricht man von kryptografischen Hashfunktionen. ==Anwendung== ===Datenbanken=== Um Daten in großen Datenbeständen mittels Hashtabellen zu suchen, verwenden Datenbankmanagementsysteme Hashfunktionen. ===Speichern von Passwörtern=== Passwörter werden verschlüsselt gespeichert, damit diese bei einem möglichen Angriff nicht im Klartext gelesen werden können. Die Passwörter werden mit einer Hashfunktion in Hashwerte umgewandelt und nur die Hashwerte werden gespeichert, nicht die Passwörter an sich. ===Kryptologie=== Kryptologische Hashfunktionen besitzen besondere Eigenschaften, welche verwendet werden, um die Integrität von Daten sicherzustellen (Nachrichten zu signieren). Zum Hashen von Passwörtern werden spezielle Hashfunktionen verwendet, welche besonders aufwändig zu berechnen sind, um Angriffe zu erschweren. ==Sicherheit== Um Passwörter nicht anhand einer einfachen Regenbogentabelle knacken zu können, sollten keine veralteten Algorithmen genutzt werden. Außerdem sollten die Passwörter regelmäßig gewechselt werden, da auch veraltete Plattformen damit auf neue Techniken umstellen und diese bei einem Passwortwechsel genutzt werden können. Auch bei "sicheren" Hashfunktionen darf keine hundertprozentige Sicherheit erwartet werden. Zum Beispiel könnte ein manipulierter Hashwert als Prüfsumme im Internet veröffentlicht werden. Es ist aber auch nur eine Frage der Zeit, wann die "sicheren" kryptografischen Hashfunktionen geknackt werden, denn der Erfolg eines Angriffes ist auch bei diesen Hashfunktionen nicht auszuschließen. Ein erfolgreicher Angriff ist zwar unwahrscheinlich, aber nicht komplett unmöglich. ==Quellen== https://www.datenschutzbeauftragter-info.de/hashwerte-und-hashfunktionen-einfach-erklaert/ https://de.wikipedia.org/wiki/Hashfunktion#Definition_einer_Hashfunktion https://wiki.ubuntuusers.de/Hashfunktionen/ https://de.wikipedia.org/wiki/Hashfunktion#/media/File:Hash_table_4_1_1_0_0_1_0_LL.svg