Finding CRC collisions for specific divisor My current textbook (Information Security: Principles and Practice by Mark Stamp) discusses how to determine the CRC of data via long-division, using XOR instead of subtraction to determine the remainder.

If our divisor has N-bits, we append (N-1) 0 bits to the dividend (the data) and then use long-division with XOR to solve for the CRC.

For example:

Divisor: 10011
Dividend: 10101011

101010110000 / 10011 = 10110110 R 1010, where 1010 = CRC


I'm able to perform this computation fine. However, the book mentions that in the case of the divisor being 10011, it's easy to find collisions.

I'm missing something here -- why is it easier to find a collision when the divisor is 10011?
I don't have that book, but I suspect that you are misreading it.

It's always easy to find collisions with CRC, no matter what the divisor (more conventionally known as a polynomial) is.  One easy way is to take the divisor and exclusive-or that bit pattern into an arbitrary place in the message (dividend); as in:

 10011    : Divisor (polynomial)
10101011  : Dividend (message)
11100111  : Modified message

111001110000 / 10011 = 11110110 R 1010


Here, we picked an arbitrary place in the message (starting at the second bit), and bit-wise exclusive-or'ed the divisor there, flipping any bit of the message where the divisor had a 1 bit.  The resulting modified message has exactly the same CRC as the original message.  Also, note that the quotient that we came up with is exactly as the original quotient with the second bit flipped; this is not a coincidence.

Given how easy this is, there wouldn't appear to be an even easier way that is specific to this polynomial.