Dominic

Aus ProgrammingWiki
Archivierte Version vom 2018-02-03T13:46:31+00:00. Aktuelle Version

Inhaltsverzeichnis

Hashfunktionen

Hashfunktionen dienen der Zuordnung von beliebig langen Zeichenketten (z.B Passwörtern) zu Zeichenketten festgeschriebener Länge, den sogenannten Hashwerten. Sie 'zerhackt' (engl.: to hash) also die Zeichenkette um eine oftmals kleinere zu erhalten. Eigenschaften

Eigenschaften

  • Einwegfunktion: Da Hashfunktionen normalerweise nicht der Verschlüsselung dienen, dürfen sie nicht umkehrbar sein. Das heißt aus dem Hashwert darf nicht der Originaltext berechnet werden      können.


  • Kollisionssicherheit: Die Zuordnung sollte bestenfalls eineindeutig erfolgen; Ein Hashwert sollte nur einem Originaltext zugeordnet sein und umgekehrt. Ist dies der Fall spricht man von einer      kryptografischen Hashfunktion. Sollten mehreren Originalwerten derselbe Hashwert zugeordnet werden wird dies Kollision genannt.
  • Wiederholbarkeit: Die Funktion sollte unabhängig von zufälligen oder sich ständig neu generierenden Faktoren sein. Für jeden Originaltext sollte sich immer der gleiche Hashwert ergeben.

    Anwendung

    Integritätsschutz

    Bei Downloads aus dem Internet kann der Hashwert der heruntergeladenen Datei berechnet werden und dann mit dem der Originaldatei verglichen werden (meist vom Anbieter angegeben). Sollten die Hashwerte dabei voneinander abweichen, wurde die Datei während des Downloads verändert/manipuliert (funktioniert nur wenn bei beiden Hashwerten dieselbe Hashfunktion benutzt wurde). Sollte der Anbieter die Hashwerte nicht veröffentlicht haben, so kann die Datei auch ein zweites Mal heruntergeladen werden und die Hashwerte beider Downloads können verglichen werden.
    Dieses Verfahren kann auch beim Übertragen von Nachrichten benutzt werden. So kann der Sender den Hashwert der (verschlüsselten) Nachricht berechnen lassen und diesen (ebenfalls verschlüsselt) dem Empfänger zusenden. Der Empfänger kann nun auch den Hashwert der erhaltenen Nachricht mit derselben Hashfunktion berechnen und sollte der mit dem des Senders übereinstimmen, wurde die Nachricht aller Wahrscheinlichkeit nach nicht von Dritten auf dem Übertragungsweg verändert.

    Passwortspeicherung

    Beim Speichern von Passwörtern wird selten der Klartext gespeichert sondern nur der Hashwert des Passworts, damit mögliche Angreifer die Passwörter nicht einsehen können und durch die Unumkehrbarkeit der Hashfunktionen auch nicht berechnen können. Wenn jetzt jemand sein Passwort eingibt wird der Hashwert der Eingabe berechnet und mit dem gespeicherten Hashwert verglichen, bei Übereinstimmung dieser wurde das korrekte Passwort eingegeben.