Professional Documents
Culture Documents
CRC (cyclic redundancy check) l mt loi hm bm, c dng sinh ra gi tr kim th, ca mt chui bit c chiu di ngn v c nh, ca cc gi tin vn chuyn qua mng hay mt khi nh ca tp d liu. Gi tr kim th c dng d li khi d liu c truyn hay lu vo thit b lu tr. Gi tr ca CRC s c tnh ton v nh km vo d liu trc khi d liu c truyn i hay lu tr. Khi d liu c s dng, n s c kim th bng cch sinh ra m CRC v so khp vi m CRC trong d liu. CRC rt ph bin, v n rt n gin lp t trong cc my tnh s dng h c s nh phn, d dng phn tch tnh ng, v rt ph hp d cc li gy ra bi nhiu trong khi truyn d liu.
Mc lc
[n]
1 Gii thiu 2 Tnh ton CRC 3 Nhng hm CRC thng dng v c tiu chun ha
[sa]Gii
thiu
CRC l mt loi m pht hin li. Cch tnh ton ca n ging nh php ton chia s di trong thng s c loi b v s d l kt qu, im khc bit y l s dng cch tnh khng nh (carry-less arithmetic) ca mt trng hu hn. di ca s d lun nh hn hoc bng di ca s chia, do s chia s quyt nh di c th ca kt qu tr v. nh ngha i vi tng loi CRC c th quyt nh s chia no c s dng, cng nh nhiu rng buc khc. Mc d cc m CRC c th xy dng c bng cch s dng bt k trng hu hn no, nhng tt c cc m CRC thng dng u s dng trng hu hn GF(2). y l trng hai phn t, thng c k hiu l 0 v 1, ph hp vi kin trc my tnh. Phn cn li ca bi vit s ch cp n nhng m CRC thuc dng ny, nhng nguyn tc th khi qut hn. Mt l do quan trong l gii s ph bin ca m CRC trong pht hin s thay i ngu nhin ca d liu l hiu sut m bo. in hnh, mt m CRC n bit, c p dng cho mt on d liu c di ty , s pht hin c bt k li tn hiu n no c di khng qu n bit (ni cch khc, bt k s bin i n l no
c chiu di khng qu n bit ca d liu), v s pht hin mt phn 1-2-n ca tt c cc li tn hiu c di di hn th. Cc li trong c cc knh truyn d liu v phng tin b nh t dn n phn b khng ngu nhin (v.d, "bursty"), lm cho cc c tnh ca CRC tr nn hu dng hn nhng m khc nh Multiple Parity checks. H thng tm li n gin nht, bit parity (xet chn l), thc ra l mt m CRC dng tm thng: s dng s chia di 2 bit l 11.
[sa]Tnh
ton CRC
Bi chi tit: Tnh ton CRC tnh ton mt m nh phn n bit CRC, xp cc bt biu din u vo thnh mt hng, v t mu (n+1) bit biu din s chia ca CRC (gi l mt "a thc") vo bn di bn tri cui hng. Sau y l php tnh u tin tnh mt hm CRC 3 bt:
11010011101100 <--- u vo 1011 -------------01100011101100 <--- Kt qu (--> Li a vo u vo ca php tnh tip theo) <--- S chia (4 bit = 3 + 1 bit)
Nu dy nh phn u vo bn trn c bt cc t (u tin bn tri) l 0, khng lm g ht v dch s chia sang phi mt bt. Nu dy nh phn u vo bn trn c bt cc t l 1, ly dy s u vo tr i s chia (hay ni cch khc, ly tng bt dy s u vo trn tr i tng bt s chia). S chia sau dch v tr 1 bt sang phi, qu trnh c tip din nh vy n khi s chia chm ti tn cng bn phi ca dy s u vo. y l php tnh cui cng:
00000000001110 <--- Kt qu ca php nhn 1011 <--- S chia -------------00000000000101 <--- S d (3 bits)
Do cc t ca s chia s lm cc bt tng ng ca dy s u vo tr v 0 qua mi ln dch, khi qu trnh ny kt thc, ch cn nhng bt dy u vo c th khng l 0 tr thnh n bit cui bn phi ca dy s. n bit ny l s d ca bc chia, v cng s l gi tr hm CRC (tr khi hm CRC c chn c bit c gi cho mt s cng on tin x l).
[sa]Nhng
Cc dng m kim sot li CRC (cyclic redundancy check) c chia thnh nhiu tiu chun, chng khng c tiu chun ha thng nht cho 1 thut ton no mi mc trn ton cu: c 3 a thc CRC-12[1], t nht 8 bin th c trong ti liu ca CRC-16, v 3 bin th ca CRC-32[2] c bit n. Cc a thc thng c xem nh khng phi l ti u nht c th. Trong nhng nm t1993 n 2004, Koopman, Castagnoli v mt s nh khoa hc tin hnh tm kim trong khng gian cc a thc ln n 16[3], v khng gian 24 v 32 bit,[4][5] tm cc v d c hiu sut tt hn na (trong cc iu kin qung cch Hamming cho mt bc tin c kch thc cho trc) so vi cc thc trong cc giao thc trc , v xut bn nhng kt qu tt nht trong s chng vi mc ch ci thin nng tc tm li cho cac tiu chun trong tng lai[5]. Far from being arbitrarily chosen, a thc ph bin CRC-32 , c IEEE gii thiu v c dng trong V.42, Ethernet, FDDI v ZIP v cc file PNG cng nh nhiu ng dng khc, l mt a thc sinh ra t m Hamming v c chn tm li[6] trong cc knh truyn thng. D vy, n cn c hiu sut tt hn vi a thc Castagnoli CRC-32C s dng iSCSI[5] trong cc mi trng Internet SCSI. Bng di y ch lit k nhng a thc ca nhng thut ton a dng ang c s dng. Bt k giao thc c bit.
Tn
a thc
CRC8ATM
x8 + x2 + x + 1 (ATM HEC)
CRC-8 x8 + x7 + x6 + x4 + x2 + 1
CRC8-SAE x8 + x4 + x3 + x2 + 1 J1850
CRC10
x10 + x9 + x5 + x4 + x + 1
CRC11
x11 + x9 + x8 + x7 + x2 + 1 (FlexRay)
CRC12
CRC15CAN
CRC- x16 + x12 + x5 + 161 (X.25, V.41, CDMA, Bluetooth, XMODEM, HDLC,PPP, IrDA, BACnet; known CCITT as CRC-CCITT, MMC,SD)
CRC16DNP
CRC16IBM
CRC30
CRC32Adler
xem Adler32
CRC32IEEE 802.3
x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 (V.42, MPEG2, PNG [9])
B [5])
CRC32C x32 + x28 + x27 + x26 + x25 + x23 + x22 + x20 + x19 + x18 + x14 + x13 + x11 + x10 + x9 + x8 + x6 (Casta + 1 gnoli)
CRC32K x32 + x30 + x29 + x28 + x26 + x20 + x19 + x17 + x16 + x15 + x11 + x10 + x7 + x6 + x4 + x2 + x + (Koop 1 man)
CRC64ISO
0x42F0E1E BA9EA3693 CRCx64 + x62 + x57 + x55 + x54 + x53 + x52 + x47 + x46 + x45 + x40 + x39 + x38 + x37 + x35 + x33 + x or 6432 + x31 + x29 + x27 + x24 + x23 + x22 + x21 + x19+ x17 + x13 + x12 + x10 + x9 + x7 + x4 + x + 0xC96C579 ECMA 1 (as described in ECMA-182 p.63) 5D7870F42 -182 (0xA17870F 5D4F51B49)
tng tn ti, nhng khng cn s dng trong cng ngh -- hu ht c thay th bng cc hm mt m bm (cryptographic hash functions):