Dass ein 8-stelliges Passwort mit einem anderen 8-stelligen String kollidiert ist sehr unwahrscheinlich, dass eine 64-Byte-Zeichenwurst mit einer anderen 64-Byte-Zeichenwurst kolidiert ist bei einem 32-bit-Hash schon sehr wahrscheinlich.
Nein. Die Wahrscheinlichkeit einer Kollision von zwei (festen) 64-Byte-Zeichenwuersten[TM] ist genau so hoch wie die zweier 8-Byte Strings. Die Gefahr von Kollisionen wird nur dann gross, wenn die Menge(!) der infrage kommenden (bzw. vom Angreifer geprueften) Passwoerter gross im Vergleich zur Laenge der Hashs ist.
Etwa im Woerterbuchmodell:
Um ein Passwort zu knacken, das im Woertrbuch steht (sofern der Angreifer das vermutet) und ohne Salt gehasht ist, tuts ne normale Hash-Tabelle, ca. 100.000 Eintraege (ueber den Daumen), da braucht man nicht mal ne echte Rainbow-Tabelle.
Wenn Du nun nen Salt hinten dran haengst, sagen wir 16 Byte, dann ist die Angreifbarkeit anhand der Woerterbuch-Sache entschaerft. Und zwar nicht nur, weil die Rainbow-Tabelle ohnehin erheblich groesser wird, sondern es ist auch kaum noch moeglich, die Woerterbuch-Sache fuer sich zu nutzen, weil eine vernuenftige Invertierungsfunktion (zum Berechnen der Ketten), die auf den Raum der Woerter mit einem Praefix aus dem Woertbuch beschraenkt ist, wohl kaum zu konstruieren ist (schaetze ich mal (?)).
Auf der anderen Seite - wenn man es doch hinbekommen wuerde, dafuer ne vernuenftige Rainbow-Tabelle zu berechnen: Die Menge der Klartexte ist dann ca. 100.000 * 2^128, also ca. 2^142 oder so. Nehme ich einen SHA-2-Hash mit 256 bit, dann gibt es also ca. 2^114 mal so viele Hashs wie potentielle Passwoerter. Kollisionen gibt es also eventuell keine einzige, jedenfalls nur sehr wenige (obwohl man die Wahrscheinlichkeit von Kollisionen auch nicht unterschaetzen darf).
Meine Meinung ist also: Der Gefahr von Kollisionen sollte mit der richtigen Hash-Funktion entgegengewirkt werden (auch wenn man sie natuerlich damit nicht ausschliessen kann).
Viele Gruesse,
der Bademeister