CRC
CRC (engl. Cyclic redundancy check) on tarkistussumman luontiin tarkoitettu algoritmi. Ennen siirron tai säilytyksen aloittamista käsiteltävästä tiedosta lasketaan summa vastaamaan yhtä tavua tai suurempaa kokonaisuutta, kuten verkkoliikenteen pakettia tai tiedoston osaa. Saatua tarkistetta käytetään havaitsemaan siirron aikaisia virheitä, jotka ovat aiheutuneet siirtotien häiriöistä tai kohinasta. CRC ei kuitenkaan ole kryptografisesti vahva eikä sillä voida havaita viestien väärennystä.
CRC:n kehitti W. Wesley Peterson 1961. Tarkistussumma otettiin mukaan Ethernet-standardiin 1975. CRC:tä käytetään mm. Ethernet, USB, Bluetooth, Serial ATA, SCSI -väylissä, GSM-kontrolliväylässä, MPEG, ZIP, Gzip, PNG -tiedostoissa.
CRC on vain tarkistusta varten ja vikatilanteessa tiedot on lähetettävä uudelleen. Virheenkorjauskoodilla voidaan korjata pieni virhe ilman uudelleenlähetystä.
Tekniikka
[muokkaa | muokkaa wikitekstiä]CRC on perustuu jakolaskuun ja jakojäännös on tarkistussumma. Binäärilukuja ei käsitellä kokonaislukuina, vaan polynomeina, jossa esimerkiksi:[1]
0x25 = 0010 0101 = 0*x7 + 0*x6 + 1*x5 + 0*x4 + 0*x3 + 1*x2 + 0*x1 + 1*x0
CRC perustuu XOR-operaation käyttöön.[1]
Katso myös
[muokkaa | muokkaa wikitekstiä]Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ a b Understanding and implementing CRC (Cyclic Redundancy Check) calculation sunshine2k.de. Viitattu 30.10.2022. (englanniksi)