Pagina iniziale | Navigazione |
Google

Hash

Hash, nella sua accezione più comune, si riferisce ad una funzione 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 la certezza che alcun valore di hash di lunghezza finita ed inferiore a quella del testo in chiaro provenga da un singolo messaggio; non esiste, pertanto, una corrispondenza biunivoca tra hash e messaggio.

Dato un valore di hash, inoltre, non dovrebbe essere in alcun modo possibile risalire al testo che l'ha generato, in quanto ciò significherebbe che la funzione utilizzata permette l'inversione.

Hash e crittografia

Le funzioni hash svolgono un ruolo essenziale nella crittografia: sono utili in quanto permettono di verificare l'integrità del messaggio stesso, poiché anche una minima variazione sconvolgerebbe il checksum, vanificando la tentata modifica; sono, inoltre, utili per la concisione che permettono nei calcoli matematici atti alla crittografia del testo in chiaro.

La lunghezza dei valori di hash varia a seconda delle funzioni (od algoritmi) di hash utilizzate. I valori più comuni e comunemente adottati sono di 128 bit, ed offrono una buona affidabilità in uno spazio relativamente ridotto.

Le funzioni di hash possono essere anche utilizzate per la creazione di firme digitali, in quanto permettono la rapida creazione della firma anche per file di grosse dimensioni, senza richiedere calcoli lunghi e complessi.

Hash e basi di dati

È possibile utilizzare le funzioni di hash per la ricerca di un elemento all'interno di una lista in un tempo pressoché indipendente dalla dimensione della lista stessa. In questi casi occorre utilizzare una funzione di hash che, applicata alla chiave di ricerca, restituisca un valore n pari al massimo alle dimensioni della lista quindi l'elemento andrà inserito nella posizione n; la ricerca verrà eseguita in modo analogo. Il caso in cui la posizione prevista per l'inserimento risulti già occupata prende il nome di "collisione" e dev'essere gestito con un meccanismo adatto. Le funzioni di hash adatte a questo utilizzo devono ridurre il più possibile le probabilità di collisione ed il fenomeno di agglomerazione. Quest'ultimo si verifica quando la funzione di hash applicata a chiavi simili restituisce valori tra di loro simili.

GNU Fdl - it.Wikipedia.org




Google | 

Enciclopedia |  La Divina Commedia di Dante |  Mappa | : A |  B |  C |  D |  E |  F |  G |  H |  I |  J |  K |  L |  M |  N |  O |  P |  Q |  R |  S |  T |  U |  V |  W |  X |  Y |  Z |