Checksum: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Etichette: Annullato Vandalismo quasi certo
m Annullate le modifiche di 91.187.215.210 (discussione), riportata alla versione precedente di Datolo12
Riga 3:
Il funzionamento del ''checksum'' è del tutto analogo a quello dell'ultima lettera del [[codice fiscale]]. Essa infatti viene generata tramite un certo [[algoritmo]] a partire dalle lettere precedenti. Nel comunicare il [[codice fiscale]] potrebbe capitare che qualche lettera venga alterata. Il destinatario perciò può ricalcolarsi il ''checksum'' (cioè l'ultima lettera). Se il risultato del calcolo è diverso da quanto scritto nel [[codice fiscale]] allora c'è stato un errore e il codice è sbagliato.
 
== Descrizione ==
:)
Il tipo più semplice di ''checksum'' 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 il ''checksum'' memorizzato nel frame. 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:
fabio è bellisimo meno di nezuko
* il riordinamento dei bit del messaggio
* l'inserimento di bit 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 [[Disgiunzione esclusiva|XOR]] come nel ''[[longitudinal 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]], il ''[[cyclic 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 del ''checksum''.
 
Il checksum è presente nell'[[header]] di molti [[protocollo di rete|protocolli di rete]] proprio per verificare l'integrità del [[pacchetto (reti)|pacchetto]] 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 di [[funzione crittografica di hash|hash crittografati]], come l'[[MD5]], lo [[SHA-1]] (in cui però sono state trovate ''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 ==
* [[Bit di parità]]
* [[Codice di Hamming]]
* [[Formula di Luhn]]
* [[Numero di controllo]]
* [[MD5]]
* [[SHA1]]
 
== Collegamenti esterni ==