能力值:
( LV4,RANK:50 )
|
-
-
2 楼
所谓碰撞,一般是对Hash函数而言,即不同的数据,得到了相同Hash值,就称之为一次碰撞。
用数学语言表示,即对函数f(x),找到了x1,x2,且x1不等于x2,有f(x1)=f(x2)。
一般来说,Hash算法的设计都要求是collision-free的,即不存在碰撞,或很难找到碰撞。
然而目前比较流行的Hash算法,如MD5,SHA-1都已经被证明存在碰撞,NIST正在开发SHA
的更安全版本。更多内容可以参考http://csrc.nist.gov/groups/ST/toolkit/index.html关于
SECURE HASHING部分的内容。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
数学语言表示,即对函数f(x),找到了x1,x2,且x1不等于x2,有f(x1)=f(x2)。但不一定限于hash之类的函数而言,例如对AES密钥的碰撞攻击(http://www.cnki.com.cn/Article/CJFDTOTAL-SDDX200704001.htm)。但其思想都和数学描述相同。
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
学习:
http://www.eccsdk.com/bbs/read.php?tid=1590
两个MD5碰撞消息块:
M=a810f20f aedd5ef2 b09723da 1b2be0c4 1140f224 7babbc70 020ffa84 c6d90efd
8d2a999e 1f934c26 eb8f5387 fd2d6bb0 0650d511 36399ccf ad0b276a 4ea42a27
c95ff756 9777a0a7 67600052 c4209421 6e645cb9 fa3c63a5 ba9003b7 f6f49eef
2c841745 1ae67694 d64be8cb 913638ed 34a5912a 6a0afffa 14e70245 00a67040
M'=a810f20f aedd5ef2 b09722da 1b2be0c4 1140f224 7babbc70 020ffa84 c6d90efd
8d2a999e 1f934c26 eb8f5387 fd2d6bb0 0650d511 36399ccf ad0b276a 4ea42a27
c95ff756 9777a0a7 67600152 c4209421 6e645cb9 fa3c63a5 ba9003b7 f6f49eef
2c841745 1ae67694 d64be8cb 913638ed 34a5912a 6a0afffa 14e70245 00a67040
注意上面的数值为16进制数。
有兴趣的各位同学可以很容易的验证如下的碰撞关系:
MD5(M)=MD5(M’)=0x 01b747db 0ca93420 febbcff8 58bdc1ec
。
上述例子的两个消息块M和M’只有两个byte的位的值不同。
把这两段代码转化为两个bin文件,对bin文件进行MD5校验(用的网上的校验工具),结果一致】
要注意大端模式和小端模式,我最后那贴就没注意,所以不对
|
|
|