Prima stringa nel bucket delle collisioni hash

0

La mia comprensione dell'hash è al massimo concettuale e sto assumendo cose di cui non sono sicuro e mi porta a una domanda che non so nemmeno se sia stata fondata o meno. Quindi, per favore correggi le mie affermazioni qui sotto se qualcosa non va.

L'hash per una data stringa ha una lunghezza definita e c'è un numero infinito di stringa originale che può dare lo stesso hash. Un esempio di funzione di hashing che ho sentito sarebbe il modulo 5. Quindi se un utente ha una password che è 6, allora 11, 16, 21 e così via registrerà anche l'utente.

Sono supponendo (probabilmente sbagliato però) che praticamente le stringhe che danno lo stesso hash saranno davvero molto distanti. Dì che la password originale è:

hunter2

La "seconda" stringa che cadrebbe in questo bucket sarebbe un po 'più lunga dell'entropia dell'hash stesso. Qualcosa come:

LKjsd!sqdJhjsd44qsd5qd5823!é"jsdfhd=qksjdkqsjdkqsjdkquy!erqsdqsdqq

Quindi è poco pratico che le collisioni non contino davvero, dal momento che nessuno userebbe una password come la seconda e non parliamo nemmeno delle terze collisioni.

Quindi la mia domanda è:

Se l'hash può essere visto come modulo 5, cosa impedisce a qualcuno di dire che se il valore in DB è 1 allora il valore più probabile è 6 poiché 11, 16, ecc. sono poco pratici?

    
posta Ced 04.01.2016 - 09:16
fonte

1 risposta

1

Esistono diversi tipi di funzioni hash per compiti diversi. Per le funzioni di hash che vengono utilizzate, si velocizzano le ricerche nei database, la velocità è importante e di solito è facile produrre collisioni, cioè diversi input che portano alle stesse uscite. Le funzioni hash crittografiche invece sono progettate in modo che le collisioni siano solo molto difficili da trovare, il che significa che è troppo difficile trovarle con il computer potenza disponibile nei prossimi anni.

If the hash can be seen as modulo 5 ...

Sebbene possa essere una semplificazione utilizzabile per semplici hash, non modella le funzioni hash crittografiche. Questi possono essere più visti come una sorta di funzione in cui è facile calcolare il valore hash ma troppo difficile trovare un input che produca un valore hash specifico.

    
risposta data 04.01.2016 - 10:08
fonte

Leggi altre domande sui tag