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

rediger

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

rediger

Kriterier for en god sjekksum-algoritme

rediger

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

rediger
  • 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.

Eksterne lenker

rediger