Checksum

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

Checksum, tradotto letteralmente significa somma di controllo. È una sequenza di bit che viene utilizzata per verificare l'integrità di un dato o di un messaggio che può subire alterazioni.

Il tipo più semplice di checksum consiste nel sommare tutti i byte del messaggio e di memorizzare il valore risultante. Per controllare l'integrità del messaggio sarà sufficiente effettuare la stessa operazione di somma e confrontarla con il checksum memorizzato. Se i due valori coincidono, i dati possono essere considerati integri.

Questa semplice forma di checksum non è molto accurata in quanto non permette di rilevare certe tipologie di errore come:

  • il riordinamento dei byte del messaggio
  • l'inserimento di byte con valore 0
  • la presenza di diversi errori che sommati tra loro danno 0

In questi casi, quando cioè ci sono due o più serie di bit che hanno lo stesso checksum, si parla di collisioni. Ovviamente, minore è la probabilità di collisioni, migliore è la qualità dell'algoritmo di controllo e quindi la sicurezza nella verifica dell'integrità.


Altre comuni varianti di questo semplice checksum sono ottenute usando al posto della somma l'operazione di XOR come nel Longitudinal redundancy check (LRC) o sommando i byte a gruppi di 2 o 4 come nell'Internet checksum (RFC-1071). Queste varianti mantengono la stessa semplicità di calcolo ma manifestano anche gli stessi difetti.

Con il tempo sono nati diversi metodi di controllo più sofisticati, come il checksum di Fletcher, l'Adler-32 il Cyclic redundancy check (CRC), in cui il risultato non dipende solo dal valore dei bit, ma anche la loro posizione. Il prezzo della maggiore affidabilità viene pagato nelle risorse necessarie al calcolo del checksum.

Questi metodi sono utili per la verifica di corruzioni accidentali (errori di trasferimento, o di memorizzazione, perdita di dati), ma non sono sicuri contro gli attacchi di malintenzionati, in quanto le loro strutture matematiche non sono particolarmente complesse da aggirare. Per questo tipo di attacchi vengono utilizzati algoritmi di hash crittografati, come l'MD5, lo SHA-1 (in cui però sono state trovate o sembra possibile trovare collisioni), o lo SHA-256, per il momento incorruttibile.

I checksum vengono usati spesso su internet per poter garantire che i dati scaricati siano corretti e per garantirne l'autenticità. Per esempio nel download di software, il distributore del programma pubblica il checksum (in genere MD5 o SHA-1), che nello specifico viene chiamato digest, che viene controllato dall'utente per verificare l'integrità dei dati.

Voci correlate

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net