风云剑
发表于 2008-10-22 12:50:36
试了下速度,C版的大约能到2M/s,估计要达到10M/s很困难。
Mgccl
发表于 2008-10-22 14:11:10
原帖由 mathe 于 2008-10-22 10:55 发表 http://bbs.emath.ac.cn/images/common/back.gif
这个问题通过穷举不是正确的方法.$2^128$这个数目太大了.应该先从数学分析入手.
恩恩,初步算了一下.如果MD5(x)的功能=返回0-2^128-1里面任意一个数字...则可能遇到x = md5(x)的概率为1/2^128.
expect要查2^127个才能得到结果...看来无希望了...
只能分析先...
gxqcn
发表于 2008-10-22 18:42:38
关于 MD5,我曾有个古怪的问题:
谁可以构造一个文件,在其末尾写有其本身的 MD5 字串?
无心人
发表于 2008-10-22 19:49:04
等价于问题1
gxqcn
发表于 2008-10-22 20:08:19
应该并不等同吧。
假如有那么一牛人,得到了一牛算法:
可以对已知的文件其后添加适当的字串,从而改变当前文件的MD5值,而该MD5值恰好是刚才追加的字串。
那多么神奇!(如果不公开算法,甚至仅凭此即可做为该牛人的签名认证了)
medie2005
发表于 2008-10-23 09:16:58
呵呵,哪位给出一个使md5(x)是回文串的x?
mathe
发表于 2008-10-23 10:10:56
原帖由 medie2005 于 2008-10-23 09:16 发表 http://bbs.emath.ac.cn/images/common/back.gif
呵呵,哪位给出一个使md5(x)是回文串的x?
这个问题现在的技术应该已经可以解决,只是时间问题:lol
无心人
发表于 2008-10-23 10:15:28
15#
此牛人手边至少应该有个由100万亿次光CPU 1024 * 1024个组成的,16TB * 1024 * 32磁盘阵列,每CPU4GB * 32内存价值1000万亿美元的一台超超超巨型机
即使有这么豪华的设备,且假定一个CPU时间能计算10^8个MD5,也要10^10秒,共300多年才能找到
而此时的实际查找速度达到了10^28/秒,我想短期内没有这么恐怖的算法吧
gxqcn
发表于 2008-10-23 18:44:20
上述推导的依据是建立在遍历试探的基础上的,万一该“牛人”用的是构造性的算法呢?
不过能得到此结果的不是“牛人”,是否为地球人还难说了,
所以才说几乎可作为“数字签名”了。:)
无心人
发表于 2008-10-23 19:33:56
:)
呵呵,如果真存在那种人
恐怕也不屑用MD5作签名
真牛人要用一种语言作签名
比如Ander的 C#和Delphi
呵呵