Tarkistussumma
Tarkistussumma (engl. checksum) on tietotekniikassa käytetty virheen havaitsemiseen käytettävä koodi, jolla voidaan todeta, onko siirretty, ladattu tai tallennusmedialta luettu tieto ehjää vai siirto-/tallennusvirheiden sotkemaa. Tarkistussumma toimii siten, että datasta muodostetaan algoritmilla vakiokokoinen luku. Datan oikeellisuus voidaan selvittää laskemalla tarkistussumma uudelleen, ja jos se ei täsmää edellisen summan kanssa, data on virheellistä.[1]
Yksinkertaisen tarkistussumman heikkouksia on muun muassa se, että toisaalla datassa oleva virhe voi varsin helposti "kompensoida" toisen virheen ja näin kaksi toisensa kumoavaa pientä virhettä saa datapaketin näyttämään ehjältä.[2] Yleisesti käytettyjä algoritmeja tarkistussumman laskemiseen ovat Adler-32 ja CRC, joilla virheellinen viesti voidaan havaita.
Yleisiä algoritmeja tarkistussummien laskemiseksi ovat mm. Unixin cksum, CRC32. Myös joitakin kryptografisia tiivistealgoritmeja (engl. hash) kuten MD5 ja SHA voidaan käyttää tarkistussummana, mutta niiden tavoitteet eroavat.
Yleisesti ottaen tarkistussumma, joka on laskettu esimerkiksi CRC-algoritmilla, ei voida käyttää tiivisteen tavoin koska se ei ole kryptografisesti vahva: kun useat eri viestit voivat tuottaa saman tarkistussumman tulosta ei voida käyttää tarkistamaan onko sisältö muuttunut tahallisesti (onko se väärennettyä).
Katso myös
Lähteet
- What Is a Checksum (and Why Should You Care)? How-To Geek. Viitattu 21.7.2019. (englanniksi)
- networking - Can a TCP checksum fail to detect an error? If yes, how is this dealt with? Stack Overflow. Viitattu 21.7.2019. (englanniksi)