反向消息CRC计算

时间:2012-04-27 16:01:28

标签: crc crc32 crc64

考虑您有此消息(ab,cd,ef)并且您拥有ROHC(强大的标头压缩)CRC8多项式e0

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

有没有什么方法可以从最后一个字节开始向后计算消息的CRC,并得到与我在原始消息上计算它的结果相同的结果?

1 个答案:

答案 0 :(得分:-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)

实施算法时要小心; - )

相关问题