Checksum

De Viquipèdia
Dreceres ràpides: navegació, cerca

Una suma de verificació o checksum és una forma de control de redundància, una mesura molt simple per a protegir la integritat de dades, verificant que no hagin estat corrompudes. És utilitzat per a comunicacions (internet, comunicació de dispositius, etc.) i per a dades emmagatzemades (arxius comprimits, discs portàtils, etc.).

El procés consisteix a sumar cada un dels components bàsics d'un sistema (generalment cada byte) i emmagatzemar el valor del resultat. Posteriorment es realitza el mateix procediment i es compara el resultat amb el valor emmagatzemat. Si ambdues sumes concorden, s'assumeix que les dades probablement no han estat danyades.

La manera més simple de checksum no detecta una varietat de corrupcions; particularment no canviarà si:

  • Es canvia l'ordre dels bytes de la informació.
  • S'agreguen o s'eliminen bytes de valor igual a zero.
  • Múltiples errors que es cancel·len uns amb els altres.

Els tipus de control de redundància més sofisticats, incloent el checksum de fletcher, Adler-32 i el control de redundància cíclica (CRC) són dissenyats per a tractar aquestes deficiències i consideren no només el valor de cada byte sinó també el de la seva posició. El cost de la capacitat de detectar més tipus d'error augmenta juntament amb la complexitat de l'algorisme de comprovació.

Aquests tipus de control per redundància són útils en la detecció de les modificacions accidentals com ara corrupció de les dades o els errors d'emmagatzematge en un canal de comunicacions. Tot i això, no proporcionen cap seguretat contra un agent malèvol mentre la seva estructura matemàtica sigui simple. Per a proveir aquest tipus d'integritat, és necessari l'ús d'una funció criptogràfica hash, com ara SHA-256. S'han trobat col·lisions en SHA-1 (actualment l'opció més popular) però no hi ha evidència a data de 2005 que SHA-256 sofreixi deficiències similars.

En UNIX hi ha una eina anomenada cksum que genera un CRC-32 i un checksum per a un arxiu determinat donat com a paràmetre.

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]