Supponiamo che tu abbia un computer con una potenza di elaborazione infinita e in grado di controllare in modo affidabile ogni possibile messaggio rispetto a ogni possibile hash in breve tempo. Ecco il problema che devi affrontare ora: collisions
.
Cos'è una collisione? Molti file diversi possono corrispondere alla stessa identica firma. Molti messaggi diversi possono corrispondere esattamente alla stessa firma.
L'hashing è unidirezionale
. Converti una serie di caratteri in un hash. Quando convalidi il tuo hash, stai semplicemente controllando se il messaggio corrisponde al valore calcolato dell'hash. Il problema è che molti messaggi diversi possono corrispondere allo stesso hash. Si chiama collision
.
Tuttavia, poiché hai anche una potenza di calcolo infinita, puoi anche eventualmente ricostruire il file attraverso supermassicci tentativi ed errori. Tuttavia, una volta che hai tutti i possibili esempi per questo valore hash, come fai a dire quale è quale?
Quindi mi stai dicendo che c'è una possibilità?
Con la tecnologia odierna, e poiché non avremo mai una potenza di calcolo infinita, sarà completamente impossibile. Anche prendendo la potenza di calcolo combinata dell'intero mondo e moltiplicandola per un miliardo, non puoi farlo. Anche se in qualche modo lo facessi, come potresti sapere quale messaggio è corretto?
Dove si applicherebbe la mia idea?
- L'hashing è unidirezionale . Con la chiave fornita, confermi solo che corrisponda all'hash calcolato.
- La crittografia è bidirezionale . Con la chiave fornita, ottieni indietro i risultati.
La tua idea si applicherebbe con la crittografia, non con l'hashing. Con la crittografia, se hai la chiave, puoi ottenere il contenuto decrittografato del file.