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

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

Lähteet

  1. Understanding and implementing CRC (Cyclic Redundancy Check) calculation sunshine2k.de. Viitattu 30.10.2022. (englanniksi)
    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.