我有一个应用程序,当前正在使用Fletcher-16校验和进行错误检测。计算速度很重要。
但是我想知道,是否使用CRC-8算法(使用查找表)捕获的错误比Fletcher-16校验和还要多甚至更多?
我可以保留查找表所需的其他256个字节,这对于更快的计算速度来说似乎是公平的交易。 CRC-8查找表算法肯定比任何Fletcher-16算法都要快。
在网上搜索该主题似乎只会产生学术成果,说实话这超出了我的理解。
有人可以阐明这一点吗?谢谢!
答案 0 :(得分:1)
Theresa C. Maxino; Philip J. Koopman,“嵌入式控制网络的校验和的有效性”,IEEE Transactions on Dependable and Secure Computing, vol. 6, issue 1,2009年3月:
CRC-8,CRC-9和CRC-10在代码字长度分别小于128、256和512位的情况下均比Fletcher-16更好。
因此,如果要保护的代码字/消息长度小于128位,则CRC-8可能会优于Fletcher-16。
(请注意,并非所有的CRC多项式都是相等的:有些比其他多项式差很多。对于CRC-8,共识似乎是在0xEA上;例如参见Philip Koopman和Tridib Chakravarty的“ Cyclic Redundancy Code (CRC) Polynomial Selection For Embedded Networks”,2004年)