Sjekksum

En sjekksum (fra engelsk checksum) eller kontrollsum er en kort kode som brukes til å sjekke integriteten av data, eller den matematiske funksjonen av dataene, algoritmen, som genererer koden, ofte kalt hash-funksjon. Informasjon i sjekksummen kan ikke brukes til å rette eventuelle feil i dataene; da er den i så fall en feilrettende kode. Lengden av sjekksummer er vilkårlige konstanter, uavhengig av inndata, og kan dermed brukes der feilrettende koder ville tatt for stor plass.

Prinsipp
I stedet for å lagre eller overføre, og så sammenlikne to kopier av dataene, blir en kortere sjekksum generert fra dataene, lagret og overført sammen med dataene, og så sammenliknet med en sjekksum generert på nytt fra de lagrede eller overførte dataene. Hvis dataene har endret seg, vil sjekksummen svært sannsynlig ikke stemme med det nye innholdet; hvis den likevel gjør det, kalles det en kollisjon.

Mulige kilder til datakorrupsjon 
 bitråte: feil ved lagring
 signaleringsfeil: feil ved overføring
 uhell
 bevisst, målrettet sabotasje

Kriterier for en god sjekksum-algoritme
Avhengig av hva slags datakorrupsjon man prøver å oppdage, kan flere kriterier komme inn her, men disse er vanlige:
 Evne til å absorbere mest mulig entropi fra dataene (detekterer bitråte, signaleringsfeil, uhell). Sannsynligheten for kollisjon er 2-(entropi i bit).
 ikke-reverserbarhet (for kryptografiske formål, beskytter mot mulig sabotasje)

Bruksområder
 Manuell kontroll av at filer er intakte etter langvarig lagring eller overføring over nettverk.
 Automatisk integritetssjekk i mange kommunikasjonsprotokoller og filformater.
 Kryptering av passord i innloggingssystemer. Av diskresjonshensyn bør passord eksistere minst mulig i klartekst. Passord kan sjekkes i sjekksumform, og trenger dermed aldri å dekrypteres til klartekst.

Referanser

Algoritmer