Table of Contents

Kryptographische Hashfunktionen

Übersicht

Mit folgendem Python-Code können Hashwerte berechnet werden:

hashing-howto.py
import hashlib
print("Vorhandene Hash-Funktionen:")
print(hashlib.algorithms)
# Liefert ('md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512')
# md5 und sha1 dürfen für sicherheitsrelevante Dinge nicht mehr verwendet werden.
 
daten = "Nobody inspects the spammish repetition"
hashwert = hashlib.sha256(daten).hexdigest()
print(hashwert)

Ändern Sie im zu «hashenden» Text im Python-Code oben ein Kleinbuchstaben in den entsprechenden Grossbuchstaben (damit ändern Sie genau 1 Bit). Vergleichen Sie die beiden Hashwerte.

Gewünschte Eigenschaften einer kryptographischen Hashfunktion

  • Wie viele mögliche Hashwerte gibt es bei einer Hashfunktion die einen Hashwert mit 256 Bits (32 Bytes) produziert?
  • Wenn man pro Sekunde eine Milliarde ($10^9$) Hashwerte berechnen kann, wie lange muss man durchschnittlich Input durchprobieren, um einen Input zu finden, der einen gegebenen Hashwert hat?

Anwendungen