algorithm - 查找特定除数的 CRC 冲突

标签 algorithm crc

我当前的教科书(信息安全:Mark Stamp 的原则和实践)讨论了如何通过长除法确定数据的 CRC,使用 XOR 而不是减法来确定余数。

如果我们的除数有 N 位,我们将 (N-1) 0 位附加到被除数(数据),然后使用长除法和 XOR 来求解 CRC。

例如:

Divisor: 10011
Dividend: 10101011

101010110000 / 10011 = 10110110 R 1010, where 1010 = CRC

我能够很好地执行此计算。不过书中提到,在除数为10011的情况下,很容易发现碰撞。

我在这里遗漏了一些东西 -- 为什么当除数为 10011 时更容易找到碰撞?

最佳答案

参见 http://en.wikipedia.org/wiki/Cyclic_redundancy_check#Designing_CRC_polynomials了解更多详情。

10011 对应于不可约的多项式 x^5+x+1。并且,使用此类代码可降低发生冲突的可能性。

关于algorithm - 查找特定除数的 CRC 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9476472/

相关文章:

c - 计算 CRC16 校验和的函数

python - 手动安装python分发包出现IOError : CRC check failed

python - Redis哈希函数和数据分区

algorithm - 查找所有 1's in a matrix having 1' 和 0 的最大尺寸子矩阵

algorithm - 图形视觉布局

algorithm - 如何用 "int"、模数和除法简化表达式?

c - 了解高效的 CRC-CCITT-16 实现

java - 在多个工作线程中平衡负载的算法

python - Redis 在给定分数附近获取用户集

reverse-engineering - 找出 RS232 数据的 CRC 或 CHECKSUM