我试图确定我的 crc 与“理想”的 32 位 crc 相比如何。
因此,我运行我的 crc 超过 100 万个完全随机的数据样本并收集了碰撞数量,我想将此数字与我可以从“理想”crc 中预期的碰撞数量进行比较。
有谁知道如何计算“理想”32 位 crc 的预期碰撞?
我试图确定我的 crc 与“理想”的 32 位 crc 相比如何。
因此,我运行我的 crc 超过 100 万个完全随机的数据样本并收集了碰撞数量,我想将此数字与我可以从“理想”crc 中预期的碰撞数量进行比较。
有谁知道如何计算“理想”32 位 crc 的预期碰撞?
将您自己的 CRC 与 0x1EDC6F41 作为您的“理想”参考进行比较。
话虽如此,没有理想的 32 位 CRC。根据散列数据的长度,不同的多项式具有不同的碰撞特性。然而,Castagnoli 在 1993 年的一篇论文发现了在最广泛的数据长度范围内被认为是最佳的 32 位 CRC 值,即 0x1EDC6F41。这个多项式被一些网络协议使用,比如 iSCSI 和 x86 CRC32 指令。
这很好地解释了“生日问题”以及所有关于预测碰撞概率CRC32 Hash Collision Probability