2008-01-21
灵机一动
前几天在阅读PuTTY密钥生成器说明书的时候受到启发,想到了一个关于MD5的问题。MD5散列算法的结果集合空间是2^128,如果假设MD5算法是完美的,那么对任意一个128位长度的二进制串进行散列计算之后,所得的散列值不会有重复的,同时对这些散列值排序之后,肯定会和0~2^128-1这些数字一一对应。既然如此,那么对任意一个256位长度的二进制串进行散列计算会有什么结果呢?384位呢?512位呢?根据抽屉原理,对256位长度的二进制串进行散列计算后,一定会产生冲突。如果能够发现这隐藏于冲突中的规律,也就是破解散列算法的一把钥匙。







评论排行榜