There are zillions of articles describing CRC. What can I read to (more deeply) understand what's really going on? Both from an algebraic perspective and a bit-manipulation perspective, I'd like to understand it well enough to have an intuitive feel for it.
(Also see Brute forcing CRC-32 )
They are linear in the weaker sense that $CRC(A \oplus B \oplus C) = CRC(A) \oplus CRC(B) \oplus CRC(C)$ for $A$, $B$, $C$ of identical length.
The archetipal 16-bit and 32-bit CRCs used in telecoms are defined in CCITT recommendation V42, sections 8.1.1.6.1 and 8.1.1.6.2. Often, "CRC-32" means the later, minus the details on transparency bits.
Variations abound in bit ordering, initialization, finalization, making the field a jungle. – fgrieu Sep 17 '11 at 07:48