In theorie. In de praktijk echter gebruikt men maar een gelimiteerd aantal karakters met een gelimiteerd aantal mogelijkheden - over het algemeen louter letters en cijfers. Met 10 tekens lang, wat gemiddeld gezien volgens mij best een lang wachtwoord is, krijg je slechts 8e17 combinaties. Het aantal mensen dat langere wachtwoorden en/of leestekens gebruikt is volgens mij verwaarloosbaar. Nogmaals, om de volledige 128 bit hash space te vullen moet je wachtwoorden gebruiken van 19 tekens van de volledige ASCII set, of 22 alphanumerieke tekens. Vrijwel niemand doet dat. De kans dat er een collision is bij 8e17 combinaties en een 128 bits hash space is 1 - (2
128! / ((2
128 - 8e17)! * (2
128)
8e17)). Benadering doe ik wel in een volgende post.
@Not Pingu:
Nogmaals: Jij beweert effectief dat SHA-1 waarvan je de bovenste 32 bits weggooit feitelijk veel en veel meer collisions heeft dan MD5, ookal is het resultaat van beide hashes 128 bits. Dat zou alleen het geval zijn als die bovenste bits meer significantie hebben, maar dat is voor het geval van goede cryptographic hash functions zoals SHA-1 en MD5 absoluut niet het geval.
De bits die je weggooit zijn compleet niet relevant voor de kansberekening. Volgens jouw logica is de kans dat iets je wachtwoord is slechts 1 op 2 als je 1 bit weggooit, of je nou een 16 of 1024 bits hash algoritme gebruikt.
Als Pietje en Jantje hun wachtwoord gaan hashen en een string zoeken in dat Linkedin bestand waarvan de laatste 24 chars overeenkomen, is de kans dat ze een match vinden 232 maal groter dat ze een match vinden dan wanneer ze op de hele 32-char word zoeken (die zeer waarschijnlijk geen match vindt).
Dat klopt. Maar het feit dat die kans 2
32 maal groter is betekent niet dat de kans ook 1 op 2
32 is, want dat impliceert dat de kans op de volledige 32-char words 1 op 2
64 is. De kans bij 16 chars is ook 2
32 maal groter dan bij 24 chars. Als jij stelt dat ook daar de kans 1 op 2
32 is, dan is dat bij 24 chars ook 2
64. Maar wacht even, de kans bij 24 chars was toch al 1 op 2
32? Hoe kan het nou tegelijk 1 op 2
64 als 1 op 2
32 zijn?
[
Voor 57% gewijzigd door
.oisyn op 07-06-2012 10:10
]