当前位置:   article > 正文

CRC碰撞概率 与CRC校验长度的理解_crc16碰撞概率

crc16碰撞概率

Clear["Global`*"]
prst0[n_, d_] := 1 - d!/(d^n (d - n)!);  (*取值空间为d,取值范围为n*)
prst1[n_, d_] := 1 - E^(-((n (n - 1))/(2 d)));
prst0[2, 255] // N   (*8 bit*)
prst0[8, 8*32] // N
prst0[8, 8*8192] // N
Plot[prst1[x, 8*32], {x, 1, 50}]  (*16 bit*)
Plot[prst1[x, 8*8192], {x, 1, 800}]  (*16 bit*)
Plot[prst1[128, 8*y], {y, 1000, 8192}]  (*16 bit*)

 看上面这二张图

1.就是8BIT  CRC8 同时错10个BIT 碰撞的概率是20% ,同时错50个BIT 碰撞的概率约是99% 

 2.就是16BIT  CRC16 同时错200个BIT 碰撞的概率是20% ,同时错800个BIT 碰撞的概率约是99% 

而不管校验的长度是多少字节,只要同时错这么多个位。不管你校验多长的字节数,CRC8的计算结果都是256BIT    CRC16 是65536BIT

CRC32也同理可得:

 如图所示 

欢迎批评指正,我是这样理解的。

 参考

1.hash碰撞的概率推导(生日攻击生日问题)_grin_star的博客-CSDN博客

2.哈希碰撞概率计算_ZTao-z的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/683758
推荐阅读
相关标签
  

闽ICP备14008679号