Crittografia/Funzioni Hash
Le funzioni hash sono funzioni matematiche ( o procedure ben definite ) in grado di trasformare un dato in input ( di misura variabile ) in un dato di output di misura fissata. I valori ritornati dalle funzioni hash sono chiamati: hash value, hash code, hash result.
Utilizzi comuni di questo tipo di funzioni sono: verifica di integrità dei dati ( utilizzo di funzioni hash per il controllo della consistenza dei dati dopo la trasmissione degli stessi ), utilizzo come indice di lookup nei database, etc.
Poiché la trasformazione dei dati di input in quelli di output non è 1 a 1, ma bensì n a 1, è possibile che due chiavi di input siano mappate sulla stessa chiave di output. In molte applicazioni, è desiderabile minimizzare il numero di queste collisioni. Questo è particolarmente vero in crittografia. Sebbene esistano varie implementazioni di funzioni hash ( SHA1, SHA2, MD5, etc ), la progettazione di un'ottima funzione di hash è tuttora un topic attivo nel mondo della ricerca.
Funzionamento
modificaCi sono molti tipi di hash: tra i più importanti ricordiamo lo SHA1 e l'MD5.
Il funzionamento è semplice. Un hash deve essere costruito di modo che qualunque sia la dimensione dei dati in input, la dimensione dell'output sia sempre la stessa. Inoltre non ci devono essere due contenuti che possano dar luogo allo stesso hash (in questo caso usarlo sarebbe inutile).
Una proprietà importante
modificaNon c'è nessuna corrispondenza tra il testo in chiaro e l'hash. Non c'è quindi nessun modo a parte l'Attacco di forza bruta per ritornare al testo originario.