2012-04-27 103 views
3

考虑你有这个消息(ab,cd,ef)并且你有ROHC(鲁棒头压缩)CRC8多项式e0反向消息CRC计算

C(x) = x^0 + x^1 + x^2 + x^8 

有什么办法,我可以计算从最后一个字节开始向后消息的CRC,并得到相同的结果,如果我在原来的消息计算呢?

+1

要检查我的理解,如果其CRC8附加的邮件被表示,此消息CRC8的CRC8时,所以要小心()= 0意味着消息有效,你想要一个函数RCRC8,当它应用于反向消息RCRC8时()= 0如果消息有效吗?是对的吗?消息中的位是否也颠倒过来了,还是只考虑了反向字节? – guga 2012-04-27 19:01:47

回答

-1

不,这对于您的多项式(100000111)通常是不可能的。

EG: 110100111/100000111 = 011010011 
but: 111001011/xxxxxxxxx != 011010011 (in general) 

但是,如果事先知道CRC,仍然可以检查消息的有效性。

EG: 110100111/100000111 = 01101001 
    => message transmitted = 11010011 01101001 
    => message received (reversed) = 10010110 11001011 

then: 10010110 11001011/111000001 == 0 
(where: 111000001 = reversed(100000111)) 

=> crc(reversed(11001011)) = crc(11010011) == reversed(10010110) = 01101001 

请注意,这只有在消息被逆转的情况下才是正确的。

IE: reversed(ABC) = reversed(101010111100) = 001111010101 
= 3D5 = reversed(ABC) != CBA = 110010111010 != reversed(101010111100) 

实现你的算法;-)