
Computer Interfacing Discussions about interfacing and electronics


CRC32 for one 24bit data
Is the CRC for all 16 mio input values unique?

Author 
Message 
guest CRC32 Guest

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. 

Gammatester Guest

Apr 10, 2014 9:17 am 


IMO the uniqueness follows from the fact, that
Quote:  All burst errors of length n will be detected by any polynomial of degree n or greater which has a nonzero 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 24bit values would produce the same CRC32 value, it would be a contradiction because this special (at most) 24bit burst error could not be detected. 

guest CRC32 Guest

May 14, 2014 7:25 am 


Hello,
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. 

Running on php BB © 2001, 2009 php BB Group
