首页
社区
课程
招聘
[旧帖] Hash函数碰撞测试方法 0.00雪花
发表于: 2011-5-13 12:18 7994

[旧帖] Hash函数碰撞测试方法 0.00雪花

2011-5-13 12:18
7994
看到许多论文里面都用这个方法来对hash函数进行碰撞分析的测试,以此来判断该hash函数的抗碰撞性,可是我真的没看懂方法中的n(k)是怎么来的。
先将方法贴出来:
常见的一种测试方法是取一字节初始文本,即8bit ,其Hash 值也只取8bit ,均对应0 —255 的整数,这样初值空间与终值空间相同. 记终值空间中任一值对应初值空间中原像的个数记为k ,记终值空间中具有k 个原像的点的个数为n ( k) , n (1) 越大, n (0) 和其他各项越小,说明碰撞越少,混沌函数的散乱能力越强,用终值空间与初值空间的测度之比来定量衡量碰撞发生程度,令
                             P =(256-n(0))/256
P 的值越接近1 ,碰撞程度越低,等于1 时,完全没有碰撞发生.

我的问题为:(总结起来就是,我不知道n(k)值怎么算的,还有对应不同的hash函数,结果有什么不同)
1)在原像空间和像空间中都只有8bit数据吗?
2)如果是只有8bit那么不是只有一个数据吗??哪里还有什么个数呢??
3)如果不是只有8bit,那么这个方法的意思是以8bit为一个单位来进行比较吗?
4)我没懂这个方法怎么来测试不同的hash算法的

请大家帮我看看吧!最好能给我一个完整的例子,即有明文,有hash值,以及计算n(k)值的过程!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 21
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
或者,这个方法的意思是:明文的长度是8bit,就是256,散列值也取256,然后统计散列值中的每个数值的个数,比如,散列值为:caddefdac··那么n(2)=2,n(1)=2,n(3)=3???
2011-5-13 13:52
0
雪    币: 21
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
是,明文空间为0--255 ,消息摘要也取8位,重复256次,计算重复的消息摘要
2011-5-30 14:36
0
游客
登录 | 注册 方可回帖
返回
//