Re: CRC32 : theory and pratice.



Rene Tschaggelar wrote:
Olivier Pons wrote:

Tell me if I'm wrong : CRC32 is an algorithm that, given a unique sequence of bytes, generates a corresponding unique 32 bits number.

This means that if just one bit (not one byte but one bit) of the unique sequence changes, the CRC32 is not valid anymore.

Am I right ?

If so, I don't understand how it works but I'm just wondering : are we *sure* of that, and what is the maximum number of bytes that a CRC32 can uniquely identify ?

A CRC32 is made to detect single and double bit errors
in up to 2^32 bits. Meaning it already is not really
suited against burst errors, where a longer passage
of bits is corrupted.

Rene


Depends on implementation. Sometimes CRC is implemented with a "Long Check" which enforces even parity on each bit. This come from tape drives for example. Then, if a "channel" (all the bit 3's for example) is bad you know which one, and along with CRC can have even limited error correction. In conjunction with byte parity you can find and correct even random errors. Usually though bad blocks are just re-transmitted or re-read in tape drives and communications that implement this three-way check.

Hope that helps.

--
Will R
PMC Consulting
.



Relevant Pages

  • Re: Minimum steps
    ... the parity of any number reachable in k moves is equal to ... that of the kth triangular number (because any sequence of k moves ...
    (rec.puzzles)
  • Re: Discrete with fast method...
    ... I can make a sequence with ... we may start with one way fillings, ... Points have a given parity: ... And accordingly belong to A or to B ... ...
    (sci.math)