Kontrolsum

Resultatet af en typisk checksum funktion (Unix cksum værktøj).

En kontrolsum, checksum eller hash-sum er en algoritmebestemt størrelse data (kontrolsumsdata) beregnet fra en vilkårlig blok af digitale data med formålet at detektere fejl, som kan risikere at blive introduceret i dataene under datalagring eller datatransmission. Dataene består typisk af både kontrolsumsdata og data der kontrolsummes over. Kontrolsummers formål er at kontrollere dataenes korrekthed og i nogle tilfælde dataintegritet. Hvis kontrolsumsdataene ikke stemmer med den beregnede kontrolsum ved man at dataene er blevet ændret (enten bevidst eller ubevidst). Når kontrolsummen stemmer kan dataene være korrekte, men det afhænger af styrken af kontrolsumsfunktionen. Hvis eller når kontrolsumsfunktionen er "svag" kan dataene faktisk være forfalskede.

Algoritmen som beregner kontrolsummen fra dataene kaldes en kontrolsumsfunktion eller kontrolsumsalgoritme. En god checksumsalgoritme vil med stor sandsynlighed give et andet resultat hvis dataene har været udsat for tilfældige datafejl; hvis kontrolsummen stemmer, er der en stor sandsynlighed for at dataene er intakte.

Kontrolsumsfunktioner er relateret til hashfunktioner, fingeraftryk, tilfældighedsfunktioner og kryptografiske hash-funktioner. Men hver af disse begreber har andre anvendelser og har derfor andre designmål. Kontrolcifre og paritetsbits er specielle tilfælde af kontrolsummer, tilstrækkelige for små blokke af data (såsom personligt identifikationsnummer, bankkonti numre, computer ord, én enkelt byte, osv.). Nogle fejlkorrigerende koder er baseret på specielle kontrolsummer, som ikke alene detektere almindelige fejl, men i visse tilfælde også tillader at genetablere de originale data.

Der findes mange forskellige former for kontrolsummer og anvendelser:

Se også

  • Hammingkode

Eksterne henvisninger

Checksum – Hvordan kontrollerer man data for bitfejl? Arkiveret 14. juni 2018 hos Wayback Machine

Medier brugt på denne side

Checksum.svg
Shows a typical checksum function at work. Note that small differences in the input result in different checksums. The checksums seen here (in decimal format) were computed from the corresponding texts by the Unix cksum utility.