Find a message given a CRC and generating polynomial

  • Thread starter Thread starter JJBladester
  • Start date Start date
  • Tags Tags
    Polynomial
Click For Summary
SUMMARY

This discussion focuses on determining the original 31-bit input sequence that produces a specific CRC output using a CCIT CRC-16 block. The generating polynomial is defined as G(x) = 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1. The user successfully simulated the circuit and obtained a CRC of 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0. To find the original message M(x), the user suggests reversing the order of the bits in the CRC and feeding the data stream backward through the generator.

PREREQUISITES
  • Understanding of CRC (Cyclic Redundancy Check) concepts
  • Familiarity with polynomial representation of binary sequences
  • Experience with VisSim/Comm simulation software
  • Knowledge of binary bit manipulation techniques
NEXT STEPS
  • Study the mathematical foundations of CRC calculations
  • Learn about polynomial long division in binary
  • Explore advanced features of VisSim/Comm for CRC simulations
  • Research techniques for reversing binary sequences in data streams
USEFUL FOR

Engineers and developers working on error detection in digital communications, particularly those involved in circuit design and CRC implementation.

JJBladester
Gold Member
Messages
281
Reaction score
2
I am working on a circuit that inputs a 31-bit pseudo-random binary string into a CCIT CRC-16 block which generates a 16-bit CRC output.

I know that M(x)/G(x) = Q(x) + R(x) and the transmitted code will be R(x) appended to M(x).

When I simulated the circuit, I got a CRC of 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0. From the help file of the software (VisSim/Comm), I know that the generating polynomial is G(x) = 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1.

How do I determine the 31-bit input sequence that generated the CRC result?

Since M(x)/G(x) = Q(x) + R(x), we can say that M(x) = [Q(x) + R(x)]G(x). But we don't know Q(x). Assuming the 16-bit CRC is equal to R(x) and the G(x) is given, how do I go about finding M(x) without knowing Q(x)?
 
Engineering news on Phys.org
Because the generating polynomial is symmetrical = 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 you should be able to reverse the process in time without rewiring the generator.

First reverse the order of bits in your final CRC and load it into the generator. Then feed the data stream bits backward in time through the generator until you reach the original starting position.
 

Similar threads

  • · Replies 26 ·
Replies
26
Views
2K
  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 24 ·
Replies
24
Views
4K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K