Äh nein - das ist kein Hash mit 13 Stellen sondern ein vrstümmelter Hash der eine Signifikant höhere Kollisionswahrscheinlichkeit hat als ein (theoretisch) baugleicher Hashalgorithmus, der tatsächlich 13 Stellen liefert.
Das kannst du doch sicher mathematisch beweisen, oder?
Nein (sort of) - aber siehe unten, durch ein paar bekannte "Probleme" im MD5 liegt der Schluss nachvollziehbar.
vgl. "Geburtstagsproblem."
Ich glaube nicht, dass das Geburtstagsproblem hier maßgeblich ist.
Für den von dir herraus gegriffenen Teil nicht - der ist dafür relevant, dass dieses vorgehen bei einer perfekt gleichverteilten Hashfunktion zu einer höheren Kollisionswahrscheinlichkeit führt, wenn man einfach ein oder mehrere Stellen abschneidet. Das würde sich direkt proportional verhalten.
Bei einem echten (perfekten) Hash-Algorithmus mit 13 Stellen und 16 Zeichen Vorrat würde eine Kollision nach spätestens ~4.5*10^15 Klartexten auftreten - wenn du aber die Entropie eines Streuwerts verringest, indem du einfach vom Fetigen Hash ein paar Stellen abschneidest, tritt so eine Kollision potentiell früher auf.
Das heißt, du hast Erkenntnisse über die Streuung von MD5-Ergebnissen?
Es sollte doch mittlerweile allgemein bekannt sein, dass MD5 nicht surjektiv ist und keine "gleichverteilten" Ergebnisse liefert
Ein ganz einfaches Beispiel - du hast einen Hash-Algorithmus der nicht surjektiv und nicht gleichverteilt ist.
Der Streuwert besteht aus 2 Dezimalziffern - der Wertbereich dieser Zeichenkette liegt bei 00 bis 99 (also 100 Möglichkeiten) - tatsächlich ist es aber so, dass in 33% der Fälle der Hash 10 daherkommt und in 66% der Fälle 01. Es gibt also im Grunde nur 2 Möglichkeiten, die nicht gleichverteilt sind
Jetzt nimmst du aus Platzgründen deinen Hash und halbierst ihn, die erste Stelle muss reichen - du hast also aufgrund der Gleichverteilung nur noch eine 0 oder 1 zu erwarten - aufgrund der ungleichmßigen Verteilung und dass der Wertbereich nicht völl ausgeschöpft wird, hast du aber mit der halben Anzahl an Stellen nicht einfach eine halbierte Wertbereich sondern eine um den Faktor 10 geringeren zusätzlich durch die fehlerhalfte Gleichverteilung hat dieser keinen Linar geringeren Informationsgehalt sondern im schlimmsten Fall nur noch 66 %.
Nachdem du aber nicht wissen kannst, wie die Werte verteilt sind und wie die fehlende Surjektivität zum Tragen kommt, hast du also ziemlich gute Chancen, dass du schlechter dastehst als vorher.