Intelecomunicazioni einformatica unasomma di controllo ochecksum è una sequenza dibit che, associata alpacchetto trasmesso, viene utilizzata per verificare l'integrità di un dato o di un messaggio che può subire alterazioni durante latrasmissione sulcanale di comunicazione.
Il funzionamento della somma di controllo è del tutto analogo a quello dell'ultima lettera delcodice fiscale. Essa infatti viene generata tramite un certoalgoritmo a partire dalle lettere precedenti. Nel comunicare ilcodice fiscale potrebbe capitare che qualche lettera venga alterata. Il destinatario perciò può ricalcolarsi l'ultima lettera (lachecksum). Se il risultato del calcolo è diverso da quanto scritto nelcodice fiscale allora c'è stato un errore e il codice è sbagliato.
Il tipo più semplice dichecksum consiste nel sommare in trasmissione tutti i bit del messaggio e di memorizzare il valore risultante nel frame inviato. Per controllare l'integrità del messaggio sarà sufficiente effettuare in ricezione la stessa operazione di somma e confrontarla con ilchecksum memorizzato nel frame. Se i due valori coincidono, i dati possono essere considerati integri.
Questa semplice forma dichecksum non è molto accurata in quanto non permette di rilevare certe tipologie di errore come:
In questi casi, quando cioè ci sono due o più serie di bit che hanno lo stessochecksum, si parla dicollisioni. 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 semplicechecksum sono ottenute usando al posto della somma l'operazione diXOR come nellongitudinal redundancy check (LRC) o sommando i bit 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, ilcyclic redundancy check (CRC), in cui il risultato non dipende solo dal valore dei bit, ma anche dalla loro posizione. Il prezzo della maggiore affidabilità viene pagato in termini di risorse di elaborazione necessarie al calcolo delchecksum.
Il checksum è presente nell'header di moltiprotocolli di rete proprio per verificare l'integrità delpacchetto trasmesso.
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 dihash crittografati, come l'MD5, loSHA-1 (in cui però sono state trovatecollisioni), o loSHA-256, per il momento incorruttibile.
I checksum vengono usati spesso suInternet per poter garantire che i dati scaricati siano corretti e per garantirne l'autenticità. Per esempio neldownload disoftware, il distributore del programma pubblica ilchecksum (in genere MD5 o SHA-1), che nello specifico viene chiamatodigest, che viene controllato dall'utente per verificare l'integrità dei dati.
Altri progetti