Hash, nella sua accezione più comune, si riferisce ad una funzione univoca operante in un solo senso (ossia, che non può essere invertita) atta alla trasformazione di un testo in chiaro e di lunghezza arbitraria in una stringa di lunghezza relativamente limitata.
Tale stringa rappresenta una sorta di "impronta digitale" del testo in chiaro, e viene detta "valore di hash" o "checksum crittografico".
Non esiste una corrispondenza biunivoca tra l'hash e il testo. I testi possibili, con dimensione finita maggiore dell'hash, sono più degli hash possibili, quindi ad almeno un hash corrisponderanno più testi possibili. Quando un testo produce lo stesso hash di un altro, si parla di collisione. Chiaramente, una funzione di hash è tanto migliore, quanto minore è la probabilità di collisione che può generare.
Un hash crittograficamente sicuro non dovrebbe permettere di risalire, in un tempo congruo con la dimensione dell'hash, ad un testo che possa generarlo (che per i più resistenti è, attualmente, superiore alla durata dell'universo, applicando tutta la capacità computazionale immaginabile).
In informatica, la funzione di trasformazione che genera l'hash opera sui bit di un file qualsiasi, restituendo una stringa di bit di lunghezza predefinita. Tipicamente, nel nome della funzione di hash c'è il numero di bit che questa ritorna: ad esempio, SHA-256 ritorna una stringa di 256 bit.
Indice
Hash e crittografia
Hash e basi di dati
Elenco di hash e documenti correlati
|