3
$\begingroup$

Looking at the Wikipedia page for CRCs I see that they list a bunch of standard CRC polynomials along with the Reversed Polynomials of each.

If I have a value that was calculated with a certain polynomial, is there a simple transform that I can use to obtain the result that would have been produced had I used the Reversed polynomial?

In other words, here is an example of what I want to do:

Using polynomial 0x04C11DB7, the result of a CRC is x.
The reversed polynomial of 0x04C11DB7 is 0xEDB88320.
Using polynomial 0xEDB88320, the result of the CRC is y.
Given x is it simple to calculate y?
$\endgroup$
3
  • $\begingroup$ What they call "reverse" is just another notation for the same polynomial, so the remainder of the polynomial division is the same, because you divide by the same polynomial. But there is also little-endian big-endian business going on introducing a lot of variation. $\endgroup$ Nov 19, 2013 at 20:36
  • $\begingroup$ Also the reciprocal of a good CRC-polynomial is another good choice for a CRC-polynomial. So if you're asking (I'm not sure, this is my best guess actually) about the relation between the remainders by a check polynomial and its reciprocal, then unfortunately they are largely unrelated. This is because a CRC-polynomial typically does not have a large common factor with its reciprocal ($1+D$ or may be just $1$). Then the Chinese Remainder Theorem tells that given any two remainders, equal modulo that gcd, then there exists a message with those remainders modulo the original and its reciprocal. $\endgroup$ Nov 19, 2013 at 20:42
  • $\begingroup$ So if the gcd is $1$, then $x$ and $y$ are totally unrelated. If gcd is $1+D$, then we know that $x$ and $y$ have the same parity, but nothing else. $\endgroup$ Nov 19, 2013 at 20:43

0

You must log in to answer this question.

Browse other questions tagged .