2012-04-27 10 views
3

このメッセージがあります。とROHC(ロバストヘッダー圧縮)CRC8多項式e0があるとします。逆メッセージCRC計算

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

私は元のメッセージでそれを計算していますかのように、私は後方に最後のバイトから始まるメッセージにCRCを計算し、同じ結果を得ることができる方法はありますか?

+1

を実装する際に注意してください、このメッセージのCRC8()のCRC8メッセージが有効であることを意味する0の場合、メッセージが有効であれば、逆転メッセージRCRC8()= 0に適用されると、RCRC8機能が必要になりますか?そうですか?メッセージ内のビットも反転されているのか、逆のバイトだけを考慮していますか? – guga

答えて

-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) 

だから、=そのCRC8が付加メッセージが で示されている場合、私の理解を確認するには、あなたのアルゴリズム;-)