Computer Interfacing
Discussions about interfacing and electronics

CRC32 for one 24bit data

Is the CRC for all 16 mio input values unique?


       Computer Interfacing Forum Index -> Error detection and correction
Author Message
guest CRC32

Apr 09, 2014 9:34 am

Hello together. I have a short question for a special problem. We use the CRC32 (IEEE802.3) to calculate a checksum (in this special case) of one 24bit data. If neccessary it can be filled to 32 bit with a dummy byte.

My question is:
Does all 16 Mio input values (=24 bit) generate a unique output checksum? or if not: How many CS will be equal (x %, x ppm, ...)?

Thank you in advance for your support.

Apr 10, 2014 9:17 am

IMO the uniqueness follows from the fact, that
All burst errors of length n will be detected by any polynomial of degree n or greater which has a non-zero x^0 term.
(see e.g. the Wikipedia page Mathematics_of_cyclic_redundancy_checks). In your case 32 > 24 and the x^0 term is 1. If two 24-bit values would produce the same CRC-32 value, it would be a contradiction because this special (at most) 24-bit burst error could not be detected.
guest CRC32

May 14, 2014 7:25 am


I want to give you a feedback of our investigations.
We calculated all possible CRCs our usecase (three byte data, 16 mill possibilities) and stored it in an array to detect a double one. There was no double CRC.
Now did it on the the same way with four byte data (4 Mrd). And the result again is that no CRC was used twice. This was a surprise for me.
No, we did not analyze the polynom from mathematic side. This was the brut force method to get a fast result.
Maybe that this information will be helpful for other users.

Thanks and good bye.

       Computer Interfacing Forum Index -> Error detection and correction
Page 1 of 1

Running on php BB © 2001, 2009 php BB Group
   Lammert Bies     Interfacing     Sitemap     Forum