Il NIST ha scelto l’algoritmo da utilizzare per la funzione hash SHA-3: la funzione Keccak (pron. [kɛtʃak] come ketchup) ideata da Guido Bertoni, Joan Daemen, Michaël Peeters e Gilles Van Assche.
Gli algoritmi di hash sono molto utili nell’informatica e nella crittografia.
In informatica si possono usare per confrontare più velocemente stringhe più lunghe: se voglio, ad esempio, individuare tutti i file uguali tra loro su un disco mi conviene creare un hash associato ad ogni file (con il suo path), metterli in ordine e verificare i doppi. Questo permette di elaborare delle stringhe di pochi byte anziché file considerevolmente più grossi.
In crittografia le funzioni di hash sono parte integrate dell’infrastruttura a chiave pubblica.
Una buona funzione di hash è connotata da molte caratteristiche, specialmente se si tratta di una funzione da utilizzare in crittografia.
Innanzi tutto una piccola variazione, anche di un solo bit, dei dati originari deve provocare una grande variazione nel risultato di hash. Se si applica un’ipotetica funzione di hash che, partendo dalla stringa “Tanto tempo fa, in una galassia lontana lontana…” produce 0x7767b34a0, questa funzione applicata a “Tanto tempo fa in una galassia lontana lontana…” (rimossa la virgola) non deve dare un valore tipo 0x7767b34a1 ma qualcosa di sostanzialmente diverso.
Inoltre deve essere algoritmicamente complesso creare le cosiddette collisioni, ovvero partendo da una stringa e dal suo hash, trovare con semplici (dal punto di vista informatico) calcoli o tentativi una variazione della stringa, o qualcosa di analogo, che abbia il medesimo hash.
Una risposta a “SHA-3”
E un bel cenno al paradosso dei compleanni non ci starebbe male! 🙂