Mathematics of cyclic redundancy checks

The cyclic redundancy check (CRC) is a check of the remainder after division in the ring of polynomials over GF(2) (the finite field of integers modulo 2). That is, the set of polynomials where each coefficient is either zero or one, and arithmetic operations wrap around.

Any string of bits can be interpreted as the coefficients of a polynomial of this sort, and a message has a valid CRC if it divisible by (i.e. is a multiple of) an agreed-on generator polynomial. As an example, the message is thought of as (which is divisible by , see Polynomial arithmetic modulo 2 below for more details). CRCs are convenient and popular because they have good error-detection properties and such a multiple may be easily constructed from any message polynomial by appending an -bit remainder polynomial to produce , where is the degree of the generator polynomial.

Although the separation of into the message part and the checksum part is convenient for use of CRCs, the error-detection properties do not make a distinction; errors are detected equally anywhere within .


© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search