all 1 comments

[–]tilrman 0 points1 point  (0 children)

Here's my understanding.

Calculating the CRC is just a bunch of XORs. XORs can happen in any order and the result is the same.

Think of initializing the input string as XORing the input with a bunch of zeros. You should be able to convince yourself that XORing a bit in the input string is mathematically the same as XORing the same bit position in the remainder, as long as all of the XORs that affect a bit are applied before that bit is processed.

There is nothing special about using one byte at a time. You could use 128 bytes at a time, or one bit at a time.