0

Summery of Problem:

I've read Proof of Cyclic Redundancy Check validity

I tried to understand with decimal.

And I encounter a problem: Why $$M(x)\cdot x^n = Q(x)G(x) + R(x)$$ equivalently $$R(x) =M(x)\cdot x^n + Q(x)G(x) $$

My thinking:

As far as I know, for example, assume that: $$M(x)\cdot x^n = 87*10^2 = 8700$$ and $$G(x) = 111$$ The $Q(x)$ should be $78$, $R(x)$ should be $42$.

So $$M(x)\cdot x^n = Q(x)G(x) + R(x) => 8700 = (111)(78) + 42$$

this is reasonable.

But for the equation: $$R(x) =M(x)\cdot x^n + Q(x)G(x) $$ Substitute above value: $$ 42 = 8700 + (111)(78)$$ Obviously, this is not correct.

What happens to my understanding?

curlywei
  • 103

1 Answers1

2

To say that the first equation is equivalent to the second is to say that $A=B+C \iff C=A+B$

This is obviously false if the letters denote real or integer numbers and the sign "$+$" means the addition operation in the usual arithmetic. The correct second equation would be $C=A-B$.

But that's not the case here. Here the letters are polynomials in some finite field, and "$+$" means the "addition" operation in that finite field. It's a different arithmetic, where many properties of the "usual" one apply, but some do not.

In particular, if we are dealing with a binary field (GF(2)), then addition is equivalent to substraction. That's why the first two equations are indeed equivalent.

Practically every textbook of error correcting codes has some chapter or appendix about arithmetic of polynomials over finite fields. You need to digest that if you want to understand the math behind cyclic codes and CRC.

leonbloy
  • 66,202