Se qualcuno stesse eseguendo lo stesso valore con un sale diverso più volte, sarebbe possibile trovare il valore originale?
Se la dimensione dell'hash è inferiore alla dimensione del testo normale, come di solito è il caso, ovviamente no. Nessuna quantità di salatura può mai ripristinare ciò che non c'è più.
Se le due dimensioni sono uguali, ma la funzione hash non è bidirezionale, non è sempre possibile. Dato che H = h (s ?, v1) = h (s ?, v2), la conoscenza di H e s1 non darà la certezza che v1 e non v2 è il valore che cerchi. D'altra parte, entrambi i valori potrebbero funzionare anche per i tuoi scopi. Questo fenomeno è ridotto al minimo nelle funzioni hash perché ridurre lo spazio di output aumenta il rischio di collisioni, il che è negativo.
Nel caso restante, quando la tua funzione di hash è in realtà una crittografia , a seconda dei valori di sale sì, questo potrebbe succedere - ma la chiave qui è che non sapresti . La quantità di lavoro richiesta per scoprire un valore s *, in modo che h(s*, h(s?, v))
restituisca v
per quel valore specifico di v
, è dello stesso ordine di grandezza della scoperta della forza bruta di v
in primo luogo, o peggio. Fondamentalmente hai l'hash H, e prova tutti i possibili s * fino a h(s?, h(s*, H)) = H
. Quando lo fai, allora h(s*, H) = v
.
C'è un ultimo sotto-caso, quando c'è esiste una funzione g(s?)
che emetterà esattamente il valore desiderato di s*
. Questa funzione è nota come backdoor e una funzione di hash che consente di considerare una backdoor gravemente danneggiata ; usando questo g()
è banale invertire l'hashing.
Per fare un esempio semplicistico, probabilmente conoscerai i trucchi della mente in cui ti viene chiesto di ottenere la tua età, moltiplicare per un numero, ruotare la cifra in qualche modo e ottenere un numero che è la tua età "hash" e apparentemente non ha alcuna relazione con il numero originale. Eppure l'imbroglione, dopo aver sentito questo valore hash, è immediatamente in grado di riavere la tua età.
No, non dovrebbe essere possibile. Una funzione di hash sarebbe stato possibile dovrebbe essere considerato come rotto.
Per capire perché non è possibile, guarda come viene applicato l'hash. Un modo comune per farlo quando sei, ad es. password di hashing è per XOR la password e il sale. Se il sale è casuale, il valore che finisce per ottenere l'hash, ovvero la password XOR salt, sarà ugualmente casuale. Quindi avere un gruppo di loro non è di alcun aiuto.