You are on page 1of 6

CRC

Bch khoa ton th m Wikipedia

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

3.1 Xung t m CRC

4 Xem thm 5 Tham kho 6 Lin kt ngoi

[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

hm CRC thng dng v c tiu chun ha

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

Cc biu din: thng thng hoc nghch o (o ca o)

CRC-1 x + 1 (hu ht phn cng; cn bit vi tn parity bit)

0x1 or 0x1 (0x1)

CRCx4 + x + 1 (ITU G.704, p. 12) 4-ITU

0x3 or 0xC (0x9)

CRCx5 + x4 + x2 + 1 (ITU G.704, p. 9) 5-ITU

0x15 or 0x15 (0x1A)

CRCx5 + x2 + 1 (USB token packets) 5-USB

0x05 or 0x14 (0x12)

CRCx6 + x + 1 (ITU G.704, p. 3) 6-ITU

0x03 or 0x30 (0x21)

CRC-7 x7 + x3 + 1 (Cc h thng vin thng, MMC,SD)

0x09 or 0x48 (0x44)

CRC8ATM

x8 + x2 + x + 1 (ATM HEC)

0x07 or 0xE0 (0x83)

CRC8x8 + x7 + x3 + x2 + 1 (1-Wire bus) CCITT

0x8D or 0xB1 (0xC6)

CRC8x8 + x5 + x4 + 1 (1-Wire bus) Dallas/ Maxim

0x31 or 0x8C (0x98)

CRC-8 x8 + x7 + x6 + x4 + x2 + 1

0xD5 or 0xAB (0xEA [3])

CRC8-SAE x8 + x4 + x3 + x2 + 1 J1850

0x1D or 0xB8 (0x8E)

CRC10

x10 + x9 + x5 + x4 + x + 1

0x233 or 0x331 (0x319)

CRC11

x11 + x9 + x8 + x7 + x2 + 1 (FlexRay)

0x385 or 0x50E (0x5C2)

CRC12

x12 + x11 + x3 + x2 + x + 1 (Cc h thng vin thng, [7][8] )

0x80F or 0xF01 (0xC07)

CRC15CAN

x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1

0x4599 or 0x4CD1 (0x62CC)

CRC16Khng phi mt CRC; xem Fletcher's checksum Fletch er

S dng trong Adler32 A & B CRC

CRC- x16 + x12 + x5 + 161 (X.25, V.41, CDMA, Bluetooth, XMODEM, HDLC,PPP, IrDA, BACnet; known CCITT as CRC-CCITT, MMC,SD)

0x1021 or 0x8408 (0x8810 [3])

CRC16DNP

x16 + x13 + x12 + x11 + x10 + x8 + x6 + x5 + x2 + 1 (DNP, IEC 870, M-Bus)

0x3D65 or 0xA6BC (0x9EB2)

CRC16IBM

x16 + x15 + x2 + 1 (SDLC, USB, khc; cn c bit l CRC-16)

0x8005 or 0xA001 (0xC002)

CRC24x24 + x23 + x18 + x17 + x14 + x11 + x10 + x7 + x6 + x5 + x4 + x3 + x + 1 (FlexRay) Radix64

0x864CFB or 0xDF3261 (0xC3267D)

CRC30

x30 + x29 + x21 + x20 + x15 + x13 + x12 + x11 + x8 + x7 + x6 + x2 + x + 1 (CDMA)

0x2030B9C 7 or 0x38E74301 (0x30185CE 3)

CRC32Adler

Khng phi mt CRC; xem Adler-32

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])

0x04C11DB 7 or 0xEDB8832 0 (0x82608ED

B [5])

CRC32C x32 + x28 + x27 + x26 + x25 + x23 + x22 + x20 + x19 + x18 + x14 + x13 + x11 + x10 + x9 + x8 + x6 (Casta + 1 gnoli)

0x1EDC6F4 1 or 0x82F63B78 (0x8F6E37A 0 [5])

CRC32K x32 + x30 + x29 + x28 + x26 + x20 + x19 + x17 + x16 + x15 + x11 + x10 + x7 + x6 + x4 + x2 + x + (Koop 1 man)

0x741B8CD 7 or 0xEB31D82 E (0xBA0DC6 6B[5])

CRC64ISO

x64 + x4 + x3 + x + 1 (HDLC ISO 3309)

0x00000000 0000001B or 0xD8000000 00000000 (0x8000000 00000000D)

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):

You might also like