完美 32 位 CRC 的预期冲突
我正在尝试确定我的 crc 与“理想”32 位 crc 相比如何。
因此,我对超过 100 万个完全随机的数据样本运行了 crc,并收集了碰撞量,我想将此数字与我从“理想”crc 中预期的碰撞数进行比较。
有谁知道如何计算“理想”32 位 crc 的预期碰撞?
I'm trying to determine how my crc compares to an "ideal" 32bit crc.
So I ran my crc over 1 million completely random samples of data and collected the amount of collisions, I want to compare this number to the number of collisions I could expect from the "ideal" crc.
Does anyone know how to calculate the expected collision for an "ideal" 32bit crc?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将您自己的 CRC 与 0x1EDC6F41 进行比较,作为您的“理想”参考。
话虽如此,并不存在理想的 32 位 CRC。根据散列数据的长度,不同的多项式具有不同的碰撞特性。然而,Castagnoli 在 1993 年发表的一篇论文发现了在最广泛的数据长度范围内被认为是最佳的 32 位 CRC 值,即 0x1EDC6F41。此多项式由某些网络协议(例如 iSCSI)以及 x86 CRC32 指令使用。
Compare your own CRC with 0x1EDC6F41 as your "ideal" reference.
Having said that, there is no ideal 32-bit CRC. Different polynomials have different collision characteristics depending on the length of data hashed. However, a paper by Castagnoli in 1993 found what is considered the best 32-bit CRC value over the broadest range of data lengths, which is 0x1EDC6F41. This polynomial is used by some network protocols like iSCSI and also the x86 CRC32 instruction.