论坛: 茶余饭后 标题: 密码学领域重大发现:山东大学王小云教授成功破解MD5[转帖] 复制本贴地址    
作者: BrideX [bridex]    论坛用户   登录
http://www.csdn.net/news/newstopic/17/17128.shtml

2004年8月17日的美国加州圣巴巴拉,正在召开的国际密码学会议(Crypto’2004)安排了三场关于杂凑函数的特别报告。在国际著名密码学家Eli Biham和Antoine Joux相继做了对SHA-1的分析与给出SHA-0的一个碰撞之后,来自山东大学的王小云教授做了破译MD5、HAVAL-128、 MD4和RIPEMD算法的报告。在会场上,当她公布了MD系列算法的破解结果之后,报告被激动的掌声打断。王小云教授的报告轰动了全场,得到了与会专家的赞叹。报告结束时,与会者长时间热烈鼓掌,部分学者起立鼓掌致敬,这在密码学会议上是少见的盛况。王小云教授的报告缘何引起如此大的反响?因为她的研究成果作为密码学领域的重大发现宣告了固若金汤的世界通行密码标准MD5的堡垒轰然倒塌,引发了密码学界的轩然大波。

会议总结报告这样写道:“我们该怎么办?MD5被重创了;它即将从应用中淘汰。SHA-1仍然活着,但也见到了它的末日。现在就得开始更换SHA-1了。”


关键词:碰撞=漏洞=别人可以伪造和冒用数字签名。


Hash函数与数字签名(数字手印)

HASH函数,又称杂凑函数,是在信息安全领域有广泛和重要应用的密码算法,它有一种类似于指纹的应用。在网络安全协议中,杂凑函数用来处理电子签名,将冗长的签名文件压缩为一段独特的数字信息,像指纹鉴别身份一样保证原来数字签名文件的合法性和安全性。在前面提到的SHA-1和MD5都是目前最常用的杂凑函数。经过这些算法的处理,原始信息即使只更动一个字母,对应的压缩信息也会变为截然不同的“指纹”,这就保证了经过处理信息的唯一性。为电子商务等提供了数字认证的可能性。

安全的杂凑函数在设计时必须满足两个要求:其一是寻找两个输入得到相同的输出值在计算上是不可行的,这就是我们通常所说的抗碰撞的;其二是找一个输入,能得到给定的输出在计算上是不可行的,即不可从结果推导出它的初始状态。现在使用的重要计算机安全协议,如SSL,PGP都用杂凑函数来进行签名,一旦找到两个文件可以产生相同的压缩值,就可以伪造签名,给网络安全领域带来巨大隐患。

MD5就是这样一个在国内外有着广泛的应用的杂凑函数算法,它曾一度被认为是非常安全的。然而,王小云教授发现,可以很快的找到MD5的“碰撞”,就是两个文件可以产生相同的“指纹”。这意味着,当你在网络上使用电子签名签署一份合同后,还可能找到另外一份具有相同签名但内容迥异的合同,这样两份合同的真伪性便无从辨别。王小云教授的研究成果证实了利用MD5算法的碰撞可以严重威胁信息系统安全,这一发现使目前电子签名的法律效力和技术体系受到挑战。因此,业界专家普林斯顿计算机教授Edward Felten等强烈呼吁信息系统的设计者尽快更换签名算法,而且他们强调这是一个需要立即解决的问题。


国际讲坛 王氏发现艳惊四座

面对Hash函数领域取得的重大研究进展,Crypto 2004 会议总主席StorageTek高级研究员Jim Hughes 17 日早晨表示,此消息太重要了,因此他已筹办该会成立24年来的首次网络广播(Webcast )。Hughes在会议上宣布:“会中将提出三份探讨杂凑碰撞(hash collisions )重要的研究报告。”其中一份是王小云等几位中国研究人员的研究发现。17日晚,王小云教授在会上把他们的研究成果做了宣读。这篇由王小云、冯登国、来学嘉、于红波四人共同完成的文章,囊括了对MD5、HAVAL-128、 MD4和RIPEMD四个著名HASH算法的破译结果。在王小云教授仅公布到他们的第三个惊人成果的时候,会场上已经是掌声四起,报告不得不一度中断。报告结束后,所有与会专家对他们的突出工作报以长时的热烈掌声,有些学者甚至起立鼓掌以示他们的祝贺和敬佩。当人们掌声渐息,来学嘉教授又对文章进行了一点颇有趣味的补充说明。由于版本问题,作者在提交会议论文时使用的一组常数和先行标准不同;在会议发现这一问题之后,王小云教授立即改变了那个常数,在很短的时间内就完成了新的数据分析,这段有惊无险的小插曲倒更加证明了他们论文的信服力,攻击方法的有效性,反而凸显了研究工作的成功。

会议结束时,很多专家围拢到王小云教授身边,既有简短的探讨,又有由衷的祝贺,褒誉之词不绝。包含公钥密码的主要创始人R. L. Rivest和A. Shamir在内的世界顶级的密码学专家也上前表示他们的欣喜和祝贺。

国际密码学专家对王小云教授等人的论文给予高度评价。

MD5的设计者,同时也是国际著名的公钥加密算法标准RSA的第一设计者R.Rivest在邮件中写道:“这些结果无疑给人非常深刻的印象,她应当得到我最热烈的祝贺,当然,我并不希望看到MD5就这样倒下,但人必须尊崇真理。”

Francois Grieu这样说:“王小云、冯登国、来学嘉和于红波的最新成果表明他们已经成功破译了MD4、MD5、HAVAL-128、RIPEMD-128。并且有望以更低的复杂度完成对SHA-0的攻击。一些初步的问题已经解决。他们赢得了非常热烈的掌声。”

另一位专家Greg Rose如此评价:“我刚刚听了Joux和王小云的报告,王所使用的技术能在任何初始值下用2^40次hash运算找出SHA-0的碰撞。她在报告中对四种HASH函数都给出了碰撞,她赢得了长时间的起立喝彩,(这在我印象中还是第一次)。…… 她是当今密码学界的巾帼英雄。……(王小云教授的工作)技术虽然没有公开,但结果是无庸质疑的,这种技术确实存在。…… 我坐在Ron Rivest前面,我听到他评论道:‘我们不得不做很多的重新思考了。’”



石破惊天 MD5堡垒轰然倒塌

一石击起千层浪,MD5的破译引起了密码学界的激烈反响。专家称这是密码学界近年来“最具实质性的研究进展”,各个密码学相关网站竞相报导这一惊人突破。


MD5破解专项网站关闭

MD5破解工程权威网站http://www.md5crk.com/ 是为了公开征集专门针对MD5的攻击而设立的,网站于2004年8月17日宣布:“中国研究人员发现了完整MD5算法的碰撞;Wang, Feng, Lai与Yu公布了MD5、MD4、HAVAL-128、RIPEMD-128几个 Hash函数的碰撞。这是近年来密码学领域最具实质性的研究进展。使用他们的技术,在数个小时内就可以找到MD5碰撞。……由于这个里程碑式的发现, MD5CRK项目将在随后48小时内结束”。

对此,http://www.readyresponse.org主页专门转载了该报道。
http://www.aspenleaf.com/distributed/distrib-recent.html和几个其它网站也进行了报道。


权威网站相继发表评论或者报告这一重大研究成果

经过统计,在论文发布两周之内,已经有近400个网站发布、引用和评论了这一成果。国内的许多新闻网站也以“演算法安全加密功能露出破绽密码学界一片哗然”为题报道了这一密码学界的重大事件。(报导见http: //www.technewsworld.com/perl/board/mboard.pl?board=lnitalkback&thread =895&id=896&display=1&tview=expanded&mview=flat,该消息在各新闻网站上多次转载。)


东方神韵  MD5终结者来自中国

MD5破解工作的主要成员王小云教授是一个瘦弱、矜持的女子,厚厚的镜片透射出双眸中数学的灵光。她于1990年在山东大学师从著名数学家潘承洞教授攻读数论与密码学专业博士,在潘先生、于秀源、展涛等多位著名教授的悉心指导下,她成功将数论知识应用到密码学中,取得了很多突出成果,先后获得863项目资助和国家自然科学基金项目资助,并且获得部级科技进步奖一项,撰写论文二十多篇。王小云教授从上世纪90年代末开始进行HASH函数的研究,她所带领的于红波、王美琴、孙秋梅、冯骐等组成的密码研究小组,同中科院冯登国教授,上海交大来学嘉等知名学者密切协作,经过长期坚持不懈的努力,找到了破解HASH 函数的关键技术,成功的破解了MD5和其它几个HASH函数。

近年来她的工作得到了山东大学和数学院领导的大力支持,特别投资建设了信息安全实验室。山东大学校长展涛教授高度重视王小云教授突出的科研成果。 2004年6月山东大学领导听取王小云教授的工作介绍后,展涛校长亲自签发邀请函邀请国内知名信息安全专家参加2004年7月在威海举办的“山东大学信息安全研究学术研讨会”,数学院院长刘建亚教授组织和主持了会议,会上王小云教授公布了MD5等算法的一系列研究成果,专家们对她的研究成果给予了充分的肯定,对其坚持不懈的科研态度大加赞扬。一位院士说,她的研究水平绝对不比国际上的差。这位院士的结论在时隔一个月之后的国际密码会上得到了验证,国外专家如此强烈的反响表明,我们的工作可以说不但不比国际上的差,而且是在破解HASH函数方面已领先一步。加拿大CertainKey公司早前宣布将给予发现 MD5算法第一个碰撞人员一定的奖励,CertainKey的初衷是利用并行计算机通过生日攻击来寻找碰撞,而王小云教授等的攻击相对生日攻击需要更少的计算时间。


数字认证 你的未来不是梦

由于MD5的破译,引发了关于MD5产品是否还能够使用的大辩论。在麻省理工大学Jeffrey I. Schiller教授主持的个人论坛上,许多密码学家在标题为“Bad day at the hash function factory”的辩论中发表了具有价值的意见(http: //jis.mit.edu/pipermail/saag/2004q3/000913.html)。

这次国际密码学会议的总主席Jimes Hughes发表评论说“我相信这(破解MD5)是真的,并且如果碰撞存在,HMAC也就不再是安全的了,…… 我认为我们应该抛开MD5了。” Hughes建议,程序设计人员最好开始舍弃MD5。他说:“既然现在这种算法的弱点已暴露出来,在有效的攻击发动之前,现在是撤离的时机。”

同样,在普林斯顿大学教授Edwards Felton的个人网站(http://www.freedom-to-tinker.com/archives/000664.html)上,也有类似的评论。他说:“留给我们的是什么呢?MD5已经受了重伤;它的应用就要淘汰。SHA-1仍然活着,但也不会很长,必须立即更换SHA-1,但是选用什么样的算法,这需要在密码研究人员达到共识。”

密码学家Markku-Juhani称“这是HASH函数分析领域激动人心的时刻。(http://www.tcs.hut.fi/~mjos/md5/)”

而著名计算机公司SUN的LINUIX专家Val Henson则说:“以前我们说"SHA-1可以放心用,其他的不是不安全就是未知", 现在我们只能这么总结了:"SHA-1不安全,其他的都完了"。

针对王小云教授等破译的以MD5为代表的Hash函数算法的报告,美国国家技术与标准局(NIST)于2004年8月24日发表专门评论,评论的主要内容为:“在最近的国际密码学会议(Crypto 2004)上,研究人员宣布他们发现了破解数种HASH算法的方法,其中包括MD4,MD5,HAVAL-128,RIPEMD还有 SHA-0。分析表明,于1994年替代SHA-0成为联邦信息处理标准的SHA-1的减弱条件的变种算法能够被破解;但完整的SHA-1并没有被破解,也没有找到SHA-1的碰撞。研究结果说明SHA-1的安全性暂时没有问题,但随着技术的发展,技术与标准局计划在2010年之前逐步淘汰SHA-1,换用其他更长更安全的算法(如SHA-224、SHA-256、SHA-384和SHA-512)来替代。”
详细评论见:http://csrc.nist.gov/hash_standards_comments.pdf

2004年8月28日,十届全国人大常委会第十一次会议表决通过了电子签名法。这部法律规定,可靠的电子签名与手写签名或者盖章具有同等的法律效力。电子签名法的通过,标志着我国首部“真正意义上的信息化法律”已正式诞生,将于2005年4月1日起施行。专家认为,这部法律将对我国电子商务、电子政务的发展起到极其重要的促进作用。王小云教授的发现无异于发现了信息化天空的一个惊人黑洞。我们期待着王小云教授和她的团队能够成就“女娲补天”的壮举,为人类的信息化之路保驾护航。
新闻来源:http://www.view.sdu.edu.cn/news/news/sdyw/2004-09-04/1094261946.html


关于王小云破解MD5之我见 [转帖]
选自 Raptor 的 Blog


MD5是一种摘要算法,所以理论上是不可能从签名取得原文(见下面说明)。认为要从MD5的结果中取得原文才算破解,本身就是对摘要算法的误解。它通常应用于数字签名中,用于标识原文的原始性--即在签名后未作任何的修改。如果可以用不同的原文可以产生相同的签名,这也就意味着签名可能失效,就已经可以证明这种摘要算法的不安全。

RL提供的王小云的报告我看了一下,因为我不是做这方面的,所以对MD5算法本身的实现,以及文中所引用的之前别人的理论都并不了解,所以不是很明白。在这份报告中,介绍MD5破解的部分只有一页半,并未细说具体的算法,但在末尾附了两对1024位原文的碰撞例子,较之96年别人提出的512位碰撞有了很大的进步,并且计算量据说在一个小时左右。

这些都是进步,如果把这说成是吹嘘就未免有点妄自菲薄了。

王小云的发现证明了有方法可以产生碰撞,但正如GIGIX那边一位匿名兄所说,这只是非特定碰撞,而要伪造签名则必须能产生特定碰撞。所以说MD5并未被完全攻破,但也已经是一个重大的突破了。

因为我手头没有像《应用密码学》这样的介绍具体密码算法的书,只有一本卢开澄的《计算机密码学》,主要是从数学的角度介绍了几类密码算法的原理及其适用领域。不过因为密码学是基于较为高深的数学理论,比如数论、群论、有限域等,但俺的数学不行,所以具体理论也说不出个一二三四来,只能泛泛地说个五六七八。^O^

首先要说的是为什么需要使用密码?因为我们通常的通信环境是不安全的。

那什么是不安全的通信环境呢?不安全至少表现在两个方面:一是通信的内容可能被窃取;二是通信的内容可能被篡改。

通常的密码使用就是为这解决这两方面的问题。

而如果有方法使某种密码的作用失效,就可以说这种密码被破解了。

当然不安全还有一些其它的方面,那些问题通常除了需要密码以外,还需要用一些特别的协议,很少碰到,这里就不提了。

常用的密码有很多种类,其中最常用的是这三种:
1、对称密码
2、非对称密码
3、摘要

对称密码的特点是:加密与解密用相同的密钥,甚至可能用相同的算法。比如从最简单的异或,到常用的DES、BLOWFISH、IDEA等。它们通常的用途是这样的:

发送方将源文(M)用密钥(K)加密:E=ENC(M,K)
然后将E通过不安全网络传给接收方,接收方用相同的密钥(K)解密:M=DEC(E,K)

只要算法足够好,并且保管好密钥(K),就可以保证这种通信是安全的,因为别人即使知道了密文(E)和算法ENC/DEC,也无法知道明文(M)。

对于这种密码来说,如果有方法可以从密文(E)和算法ENC/DEC中导到密钥(K)或明文(M),则意味这种密码被破解。比如简单异或算法就可以用统计分析法简单地破解掉。但即使是现在被认为不够安全的DES算法(已经有近三十年历史了),也需要有大量的明文/密文对(2的数十次方对),并需要大量的计算时间才能求得其密钥(K)。

非对称密码是因为这样的原因:因为在对称密码中,通信双方需要约定一个共同的密钥(K),如果这个约定过程也不安全,就可能出现密钥的泄露,而对于对称算法来说,密钥一旦泄露,之后的通信过程也就不攻自破了。

通常的非对称密码就是所谓的公钥密码算法,比如现在最常用的RSA(由R. L. Rivest和A. Shamir等人基于大数的因数分解极为困难的原理而创建),或是最近更为时髦的“椭圆曲线”,因为我的数学水平太差,具体算法也说不清楚,只知道大致是这样的:

顾名思义,它所用的算法特点在于加密与解密用的密钥是不一样的。做法大致如下:

发送方自己生成一对密钥:私钥(KA)和公钥(KPA)
接收方也生成一对密钥:(KB)和(KPB)
其中(KPA)和(KPB)是公开的
发送方用算法:E=ENC(ENC(M,KA),KPB)
进行两次加密,接收方用算法:M=DEC(DEC(E,KB),KPA)
进行两次解密,即可得到原文。
而其中双方都不需要知道对方的私钥,这就避免了约定密钥导致的不安全。
非对称密码的算法本身又决定了用私钥加密的内容必须用公钥才能解,反之亦然,并且算法还保证仅知道公钥和密文无法导出私钥,由此决定了通信的安全。

当然,如果有方法可以从公钥导出私钥来,则这种算法即告被破解。但至少目前RSA还是安全的,因为从现在的数学理论上可以证明RSA的算法是一类NPC(NP完备)类问题,只要密钥足够长(RSA要求至少是10的100次方以上,实际使用时更要大得多),以现在最先进的计算机来算,其时间成本也是不可能达到的。

摘要算法则与上面两种完全不同,前面两种密码是用于防止信息被窃取,而摘要算法的目标是用于证明原文的完整性,也就是说用于防止信息被篡改。通常也被称为:HASH算法、杂凑算法、签名算法。它的特点是:从不定长的原文中产生一个固定长度(如MD5是128位)的结果,称为“签名”(S),这个签名必须对原文非常敏感,即原文即使是有少量的变化,也会导致这个签名面目全非。比如传统的CRC或是现在要说的MD5、SHA等都是这类算法。

摘要算法的用途通常是这样的:

比如用户密码验证:如Linux或一些论坛用的方法,用户设置密码时,服务端只记录这个密码的MD5,而不记录密码本身,以后验证用户身份时,只需要将用户输入的密码再次做一下MD5后,与记录的MD5作一个比较即可验证其密码的合法性。

比如发布文件的完整性验证:比如发布一个程序,为了防止别人在你的程序里插入病毒或木马,你可以在发布这个程序的同时,公开这个程序文件的MD5码,这样别人只需要在任何地方下载这个程序后做一次MD5,然后跟公开的这个MD5作一个比较就知道这个程序是否被第三方修改过。

一个安全的摘要算法在设计时必须满足两个要求:其一是寻找两个输入得到相同的输出值在计算上是不可行的,这就是我们通常所说的抗碰撞的;其二是找一个输入,能得到给定的输出在计算上是不可行的,即不可从结果推导出它的初始状态。

反之,如果某种摘要算法不能同时满足上面两个条件,则它就是不安全的。其实主要还是前一个条件,因为从理论上很容易证明后面一个条件基本上都是可以满足的:

摘要算法对任意长的原文产生定长的签名,按照香农的信息论,当原文的长度超过一定的程度的时候,签名中就无法记录原文中的所有信息,这意味着存在着信息的丢失,所以我说理论上不可能从签名中恢复原文。

为什么说理论上呢?就是说当这种摘要算法被完全攻破时,也就是说可以从签名恢复出任意原文,注意:是任意原文,因为所有的摘要算法的特点就是存在着一个无穷大的碰撞原文的集合。而真正的原文只是其中一份。对应这个无穷大的集合来说,这就是一个无穷小,便是我曾经说过的:

可能性为零,不表示不可能。

解释得具体一点是这样:假设原文含有信息量(I),而签名的长度有限(如MD5的128位),则它的信息量只有(i),因为通常 i < I (除非原文非常短),所以可以这么说:I=i+i'。因为I没有限制,而i有限制,则 i' 也是一个没有限制的量。当进行摘要算法后,i' 信息就丢失了。

反过来,如果现在这种摘要算法被攻破了,可以从 i 反推回去,但因为 i' 信息已经丢失,意味着 i + I' (其中 I' 为任意信息)都可能是 I (碰撞)。但 I' 是一个无穷集合,并且 i' 属于 I'。这说明:理论上可以从 I' 中找到 i' 从而恢复出原文 I ,但是可能性为零(1/∞=0)。

但要做到前面一点就不容易了。因为绝对无碰撞的算法不可能是一个摘要算法,而只能是一个无损压缩算法。它必须包含原文的所有信息,也就意味着它一但被攻破,可以唯一地恢复出原文。并且它的结果肯定是不定长的,因为它需要包含原文的所有信息,当然会根据原文的长度而变。仅这两点就决定了,它不可能是一个好的签名算法。

最主要的一点是:摘要算法的用途决定了,它只要能找到碰撞就足以让它失效,并不需要找到原文。

以前面的两个例子来说:

比如Linux的用户安全机制,只要得到用户密码文件(其中记录了密码的MD5),然后随便生成一个碰撞的原文(不一定要跟原密码相同),就可以用这个密码登录了。

但后面的程序发布的例子就要难得多,因为它必须能生成特定的碰撞,即在程序中插入病毒或木马后再填充一些数据使之生成与原来相同的MD5。

不过我昨天仔细想了一下,以MD5为例,要产生特定的碰撞应该还是不太可能的,因为MD5的128位信息量已经有点大了,如果要产生特定碰撞,需要填充的数据可能非常之大,导致伪造的原文比真实的原文大得多,可能达到若干个数量级的差别,这样的伪造就已经失去意义了。

王小云的成果已经完全使Linux用的那种基于MD5的身份验证技术失效了。但要说“动摇了差不多整个数字签名界的根基”(令狐语),还为时尚早。

BTW:毕竟不是专业干这个的,可能有些地方不对,还请大家斧正一下。^O^



作者Blog:http://blog.csdn.net/Raptor/






主题 MD4/MD5/HAVAL-128算法被中国大学机构彻底击破! &laquo; 上一主题 | 下一主题 &raquo;

watercloud 发表于:2004-08-19 17:08 回复

发帖: 663
积分: 79
注册: 2001-04-16
国际密码协会最新消息。

Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD.

睡了一觉,醒来世界就不一样了!!

附件 199.pdf ( 下载次数: 535 )

Auril 发表于:2004-08-20 11:52 回复

发帖: 5
积分: 0
注册: 2004-08-19
我也听说MD5是不可逆的啊

MD5加密算法简介

一、算法实现(转载自绿色兵团)
1、MD5算法是对输入的数据进行补位,使得如果数据位长度LEN对512求余的结果
是448。
即数据扩展至K*512+448位。即K*64+56个字节,K为整数。
具体补位操作:补一个1,然后补0至满足上述要求
2、补数据长度:
用一个64位的数字表示数据的原始长度B,把B用两个32位数表示。这时,数据
就被填
补成长度为512位的倍数。
3. 初始化MD5参数
四个32位整数 (A,B,C,D) 用来计算信息摘要,初始化使用的是十六进制表示
的数字
A=0X01234567
B=0X89abcdef
C=0Xfedcba98
D=0X76543210
4、处理位操作函数
X,Y,Z为32位整数。
F(X,Y,Z) = X&Y|NOT(X)&Z
G(X,Y,Z) = X&Z|Y&not;(Z)
H(X,Y,Z) = X xor Y xor Z
I(X,Y,Z) = Y xor (X|not(Z))
5、主要变换过程:
使用常数组T[1 ... 64], T[i]为32位整数用16进制表示,数据用16个32位的

数数组M[]表示。
具体过程如下:
/* 处理数据原文 */
For i = 0 to N/16-1 do
/*每一次,把数据原文存放在16个元素的数组X中. */
For j = 0 to 15 do
Set X[j] to M[i*16+j].
end /结束对J的循环
/* Save A as AA, B as BB, C as CC, and D as DD. */
AA = A
BB = B
CC = C
DD = D
/* 第1轮*/
/* 以 [abcd k s i]表示如下操作
a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */
/* Do the following 16 operations. */
[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4]
[ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]
[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]
[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]
/* 第2轮* */
/* 以 [abcd k s i]表示如下操作
a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */
/* Do the following 16 operations. */
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]
[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]
[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]
/* 第3轮*/
/* 以 [abcd k s i]表示如下操作
a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */
/* Do the following 16 operations. */
[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]
[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]
[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]
/* 第4轮*/
/* 以 [abcd k s i]表示如下操作
a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */
/* Do the following 16 operations. */
[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]
/* 然后进行如下操作 */
A = A + AA
B = B + BB
C = C + CC
D = D + DD
end /* 结束对I的循环*/
6、输出结果。


以上代码来自: 源代码数据库(SourceDataBase)
当前版本: 1.0.423
作者: Shawls
个人主页: Http://Shawls.Yeah.Net
E-Mail: ShawFile@163.Net
QQ: 9181729
Auril 发表于:2004-08-20 11:54 回复

发帖: 5
积分: 0
注册: 2004-08-19
因为MD5加密之后的结果长度都是一样的
而且是一一对应的
确定长度首先就是一个难题
楼主的消息是哪里得到的
varlin 发表于:2004-08-20 13:39 回复

发帖: 34
积分: 0
注册: 2004-03-26
那个表格的意思是不是
字符 M 加密后可能对应 表格里的值
nethorse 发表于:2004-08-20 18:56 回复

发帖: 45
积分: 0
注册: 2003-02-12
王小云

女,1966年8月声于山东诸城,博士,副教授。
通讯地址:山东大学数学系,济南 250100
电话:0531-8567998 E-mail:xywang@sdu.edu.cn

学历:
1983.9-1987.6:于山东大学数学系读本科,1987年6月获理学学士学位。
专业:基础数学
1987.9-1990.7:于山东大学数学系读研究生,1990年6月获硕士学位。
专业:数论于密码学
1990.9-1993.7:于山东大学数学系读博士学位,1993年6月获博士学位。
专业:数论于密码学 导师:潘承洞,中科院院士
博士论文:Zpq*中离散对数问题及其在密码血中的应用。

教学与研究工作:(1993.7-至今)
研究工作:1 公钥密码体制的分析于设计。
2 Zpq*中离散对数问题及其在密码学中的应用。
3 Hash函数的分析与设计。

教学任务:1 近世代数
2 高等数学

下附公开发表论文及未发表论文二十余篇:

序号 作者 ・论文标题・书名・课题名称・ ・期刊名称・出版社・
鉴定单位 期刊卷号 发表日期 备注
1 王小云 建立新的公开钥密码体制 中国计算机学会信息保密专业委员会论文集 第一卷 1989.9
2 于秀源
王小云 符合加密的公开钥密码体制 杭州师范学院学报 总第54期 1990.3
3 王小云 素数在密码中的几点使用 通信保密 总第53期 1993.1
4 王小云 基于Z*pq中离散对数问题的零知识证明方案 通信保密 总第57期 1994.1
5 王小云 丢番图--背包型公开钥密码体制 山东大学学报 第27卷 1992.3
6 李大兴
王小云 (书名:密码学进展-CHINACRYPT'94)
关于广义码公开钥密码体制的密码分析 科学出版社 1994
7 王小云 Z*pq中离散对数问题的安全谓词 计算机学报 第18卷第3期 1995.3
8 王小云 等价于Z*pq中离散对数问题的密钥交换体制 通信学报 第16卷第2期 1995.3
9 王小云
李大兴 (书名:密码学进展-CHINACRYPT'96)
写于并行化的单向Hash函数的设计 科学出版社 1996
10 王小云 关于广义GM体制的多项式安全性证明 第五届通信保密现状研讨会论文集 1995.10
11 王小云
周大水 单向Hash函数的一种构造方法 软件科学 增刊 1996
12 王小云 广义GM概率公开钥密码体制的多项式安全性证明 通信学报 第17卷第5期 1996
13 王小云
张金清 MD5报文摘要算法的各圈函数碰撞分析 计算机工程 科学 1996第2期 1996
14 王小云
陈垠如 离散对数概率加密体制 通信保密 1996第3期 1996
15 王小云 基于模N HASH函数的分析与设计 待发表
16 王小云 存储桶HASH函数的破译 待发表
17 王小云 CONSTRUCTING SECURE AND FAST MACS 待发表
18 王小云 安全杂凑函数(SHA-体制)的攻击 待发表
19 王小云 THE ATTACK AGAINST SHA 待发表
20 王小云 THE ATTACK AGAINST HAVAI 待发表
21 王小云 THE ATTACK AGAINST RIPEMD-128 待发表
22 王小云
于秀源
王炜 HASH函数MD4的攻击 待发表

 
---
我没有笔记本电脑,我想有一台!
nethorse 发表于:2004-08-20 19:04 回复

发帖: 45
积分: 0
注册: 2003-02-12
二十世纪八十年代后期,信息技术产业兴起的浪潮传到我国,潘承洞敏锐地意识到数论将在信息科学中有广阔的应用前景,他做了一个大胆的决策,连续两年招收王小云、李大兴为博士研究生,研究的主攻方向改为数论在密码学中的应用。这样,山东大学密码学领域的研究从无到有,现在已成为我国重要的密码学研究基地之一,相关成果已初步形成产业化。既开拓了新的研究领域,也产生了可观的经济效益
---
我没有笔记本电脑,我想有一台!
nethorse 发表于:2004-08-20 19:16 回复

发帖: 45
积分: 0
注册: 2003-02-12
数学家潘承洞

潘承洞 1934年5月26日生于江苏省苏州市, 1997年12月27日于济南逝世, 生前任山东大学校长、中国科学院院士、全国人大代表。

潘承洞院士是当代著名数学家, 专长解析数论, 尤以对“Goldbach猜想”的研究成果为中外数学家所赞誉。在国内外学术刊物上发表论文50余篇, 出版专著及教材共8部。共培养博士研究生14名, 硕士生20余名。1979年他被国务院授予全国劳动模范称号, 1984年获国家首批有突出贡献的中青年专家称号, 1991年他当选为中国科学院院士, 1995年荣获香港何梁何利基金会科学与技术进步奖。

(一)潘承洞于1934年5月26日生于江苏省苏州市一个旧式大家庭中, 他的父亲名子起, 号艮斋, 母亲高嘉懿, 江苏省常州市人, 出身贫苦家庭, 不识字。他们生有一女两子。父亲的忠厚, 母亲的劳动妇女的优良品德与严格管教, 使子女能够健康成长, 激励他们奋发图强。

潘承洞在1946年8月考入苏州振声中学初中, 1949年毕业后考入苏州桃坞中学高中。潘承洞小时候十分爱玩, 棋、牌、足球、乒乓球、台球……,样样都喜欢, 玩得高兴时就什么都忘了。因此, 上小学时曾留级一年。读高中时, 教他数学的是上海、苏州地区有名望的祝忠俊先生。一次, 他发现《范氏大代数》一书中一道有关循环排列题的解答是错的, 并作了改正。这使得教了20多年书而忽略了这一点的祝老师对他不迷信书本, 善于发现问题, 进行独立思考的才能十分赞赏。潘承洞在1952年高中毕业, 同年考入北京大学数学力学系。当时, 全国高校刚调整院系, 许多箸名学者如江泽涵、段学复、戴文赛、闵嗣鹤、程民德、吴光磊等, 为他们讲授基础课。以具有许多简明、优美的猜想为特点的数学分支――数论, 在历史上一直使各个时期的数学大师着迷。 但是, 这些猜想中的大多数仍是未解决的问题。它们深深地吸引了潘承洞。闵嗣鹤对潘承洞循循善诱,引导他选学了解析数论专门化。潘承洞1956年大学毕业, 留北京大学数学力学系工作。翌年二月, 成为闵嗣鹤的研究生。

20世纪50年代前后是近代解析数论的一个重要发展时期, 为了研究数论中的著名猜想, 一些重要的新的解析方法, 如大筛法、Riemann zeta函数与Dirichlet L函数的零点分布、Selberg筛法等, 相继被提出, 成为当时解析数论界研究的中心。闵嗣鹤教授极有远见地为潘承洞确定了研究方向:Dirichlet L函数的零点分布, 及其在著名数论问题中的应用。在学习期间, 他还有幸参加了华罗庚教授在中国科学院数学研究所主持的Goldbach猜想讨论班, 并与陈景润, 王元等一起讨论, 互相学习和启发。在闵嗣鹤教授的指导下, 潘承洞在解析数论的基础理论和研究方法上打下了坚实的基础,为后来的研究工作埋下了成功的伏笔。1961年3月研究生毕业后,他被分配到山东大学数学系任助教。刚到山东大学的最初几年里,潘承洞对于解析数论研究的执著就得到了淋漓尽致的表现,在不到一年的时间里,他就自己的研究心得与中国科学院数学研究所的王元竟通信六十多次!而同一时期他与未婚妻李淑英仅通了两封信。往往因为一个问题,双方在信上你来我往几个回合。在学术上的争论更加深了他们之间的友谊,这种真挚的友谊一直延续下来,成为数论界的一段佳话。

1978年, 潘承洞晋升为教授, 1981年他加入中国共产党。1979年至1986年,先后 任山东大学数学系主任、数学研究所所长、任山东大学副校长。1986年底, 被任命为山东大学校长。1991年, 潘承洞当选为中国科学院学部委员。潘承洞是第五、六、七、八届全国人大代表。他还担任了一些社会工作, 生前任山东省科协主席, 中国数学会副理事长, 山东省自然科学基金委员会副主任, 国务院学位委员会数学学科评议组成员, 《数学年刊》常务编委, 他还参加了国家自然科学基金委员会数学学科评审的领导工作。

1978年潘承洞荣获全国科学大会奖,并获全国科技先进工作者称号; 1982年, 因在Goldbach猜想研究中的突出贡献, 与陈景润、王元一起获国家自然科学奖一等奖;1984年, 被评为我国首批有突出贡献的中青年专家;1988年获山东省首批专业技术拔尖人才荣誉称号。

潘承洞的兴趣爱好非常广泛,擅长桥牌、象棋和乒乓球。他在北京大学读书期间,就曾在北京市高校乒乓球比赛中获奖。在1986年举办的山东大学教工桥牌赛上,他不但登场献技,赛后还亲自为获奖选手书写并颁发了获奖证书。

潘承洞因患肠癌曾经两次住院动手术,第一次是在1983年,第二次在1994年。1997年12月27日,潘承洞因肠癌转移于山东省济南市逝世,享年仅63岁。

(二)在北京大学就读研究生期间,潘承洞完成的主要论文有“论算术级数中的最小素数”和“堆垒素数论中的一些新结果”。其中前一篇将算术级数中最小素数问题的研究归结为与Dirichlet L-函数有关的三个常数的估计,为这一问题的研究建立了基本的框架。到山东大学后的几年中, 他着重研究了位列解析数论中最著名难题之一的Goldbach问题,证明了命题{1,5},即每一个充分大的偶数都可以表成一个素数与一个素因子个数不超过5的奇数之和。这是对当时Goldbach猜想研究所进的一大步,是一个出人意料的重大进展。因为在这之前的最好结果是Rényi所证明的命题{1,η},其中η是由Rényi方法只能证明其存在性,但不能确定具体数值的常数。如果按照Rényi的方法来计算η的数值,只能得到一个天文数字。潘承洞的工作建立在他本人对算术级数中素数分布均值定理的改进上,后来E. Bombieri由于对这一定理的进一步改进(即Bombieri-Vinogradov定理)获得菲尔兹奖。对此,后来的数论学家E. Fouvry和H. Iwaniec曾评论道:“Bombieri-Vinogradov定理是在Linnik、Rényi、潘承洞、Barban等人开创性工作的基础上得到的。”这一时期他还在广义解析函数论及其在薄壳上的应用、数论在近似分析中的应用等方面做了许多有价值的工作。

1966年开始的“文化大革命”, 严重地搅乱了科学研究, 尤其是基础理论研究的正常秩序。这使得潘承洞无法再正常进行他的解析数论研究工作。出于当时的形势要求,潘承洞从纯理论的研究转向数学一些应用领域的研究,例如样条函数理论、滤波分析等。他在样条函数上的工作至今仍经常被这一领域的研究者所引用。1973年, 陈景润关于Goldbach猜想的著名论文发表后, 潘承洞又开始了解析数论研究。这一时期工作的代表性论文是“一个新的均值定理及其应用”。他的主要贡献是提出并证明了一类新的有关算术级数中素数分布的均值定理, 给出了这一定理对包括Goldbach猜想在内的许多著名数论问题的重要应用。根据这一均值定理,潘承洞给出了陈景润定理的一个简化证明,此证明被公认为全世界五个陈氏定理简化证明中最好的一个。1979年7月, 在英国Durham举行的国际解析数论会议上, 潘承洞应邀以此为题作了一小时的报告, 受到与会者的高度评价。在1988年“纪念华罗庚国际数论与分析会议”上,德国数学家E. Richert把Bombieri-Vinogradov定理、陈景润定理与潘承洞的新均值定理称为这一领域中三项最重要的结果。1982年, 潘承洞发表了论文“研究Goldbach猜想的一个新尝试”, 提出了与已有研究截然不同的方法, 对Goldbach猜想作了有益的探索。

1988―1990年间, 他与潘承彪以“小区间上的素变数三角和估计”为题发表了三篇论文, 提出了用纯分析方法估计小区间上的素变数三角和, 第一次严格地证明了小区间上的三素数定理,即任一充分大的奇数均可表为几乎相等的三个素数之和,且解数有渐进公式。他们所使用的方法,不仅为研究小区间上素变数三角和估计提供了一条新途径,而且已被应用于其它解析数论问题中,显示出进一步发展和应用的潜力。他还与陈景润合作,得到了Goldbach数例外集合估计的一个重要结果。

在三十多年的研究历程中,潘承洞在国内外重要学术刊物上发表论文50多篇。论文“大偶数理论”于1978年获得全国科学大会奖;“均值定理与Goldbach猜想”获山东省科委一等奖;1982年,他由于在Goldbach猜想上的研究成果与王元、陈景润共同获得国家自然科学一等奖。在国际数论界,人们把他与华罗庚、王元、陈景润并称为中国数论学派的代表人物。1981 年科学出版社出版了潘承洞与潘承彪合著的《Goldbach猜想》, 对猜想的研究历史、主要研究方法及研究成果作了系统的介绍与有价值的总结, 得到了国内外数学界的一致好评。国际上两大权威数学评论都认为:“这是一部很有价值的专著”,“不仅对中国从事解析数论的数学家会有重要影响,若成功地译成英文,将使西方世界同样受益”。王元教授称该书“绝非材料的简单堆积,而是对过去研究成果的创造性总结”。1992年,科学出版社又出版了该书的英文版。潘承洞还与潘承彪合著了《素数定理的初等证明》(1988),亲自撰写了科普读物《素数分布与Goldbach猜想》(1979)。这些著作对我国数论的研究、教学和人才培养起到了很好的作用。

(三)潘承洞另一值得称道的方面是为国家培养人才方面做的工作。在山东大学数学系任教的 30 多年中, 始终工作在教学第一线, 为大学生、研究生开设了10多门课程, 如数学分析、高等数学、实变函数论、复变函数论、阶的估计、计算方法、初等数论、拟保角变换、素数分布、堆垒素数论、Goldbach猜想等等。他讲课从不照本宣科,而是提纲挈领,讲透精华。他对教学认真负责,对学生循循善诱,最大程度地激发学生的创造性。

他讲课的一个特点是风趣幽默、引人入胜,常常把一个原本枯燥的内容描绘得趣味盎然;另一个特点是粗线条的讲授,不在细枝末节上用太多的语言,而着重讲清问题的来龙去脉和其中蕴含的思想,对理论体系的发展、方法、结果加以分析,高屋建瓴,独辟蹊径。七、八十年代刚刚恢复高考制度后的前几届大学生,他们大多经历坎坷,十分珍惜在大学学习的机会,对于老师讲过的每一段话都会在课下反复领会,直到弄懂弄通为止。因此潘承洞的讲授使大家能领会到更多的思想,掌握更多的数学方法,他的课程也因此受到了绝大多数同学的欢迎。

潘承洞对于教学工作非常热爱,即使是在他担任山东大学校长期间,工作非常繁忙,身体也不好,他也坚持抽出时间,担任一定的本科生教学任务。在他的带领下,数学系的教师不仅对科研非常重视,对教学也非常认真。1992年,山东大学数学系被教育部评为首批“国家基础科学研究人才培养基地”。1995年,他特地提出要求,让数学系的教务员给他安排了“阶的估计”课,由他本人亲自讲授,足见他对教学工作的重视。

结合多年科研工作的体会,潘承洞与于秀源合著了《阶的估计》一书,与潘承彪合著了《初等代数数论》、《解析数论基础》(1991), 《初等数论》(1992)三本教材。这几本书作为数学系本科生高年级和研究生的选修教材,给出了丰富的应用素材,是数学系本科生进一步深造的经典书籍,是多年来教学工作的深刻总结。《阶的估计》一书综合了各种阶的估计方法,如Euler-MacLaurent求和公式、鞍点法、Tauber型定理、Fourier积分等,是至今为止国内唯一的一本讲述阶的估计方法的专门教材,对数学专业分析类各研究方向都是非常有用的。

在培养更高级的人才――研究生方面,潘承洞更是硕果累累,桃李满天下。从1978年国家重新开始招收研究生起,至1997年去世,他总共指导培养了14名博士研究生和20多名硕士研究生, 其中包括我国首批博士学位获得者之一于秀源。他不仅教授他的学生们知识,传授他们进行独立科研工作的本领,还以自己对数论研究的执著和一丝不苟的严谨态度示范做人,特别是作一个数学家所应有的素质。潘承洞对每个研究生的论著都倾注了大量的心血,出主意,定方案,呕心沥血,但他从来也不让研究生在发表论文时署上他的名字。目前,他培养的研究生已成为我国解析数论研究的中坚力量。他的两个研究生于秀源和展涛,都被评为有突出贡献的博士学位获得者,其中于秀源现任杭州师范学院的副院长、博士生导师,展涛现任山东大学校长、博士生导师、教育部跨世纪人才。他的另外几个学生,如王炜、张文鹏、李红泽、李大兴、郑志勇、刘建亚等,都在各自的岗位上取得了出色的成绩,均为博士生导师,其中郑志勇获得了国家杰出人才奖励基金,王炜获得国家教委科技进步二等奖、教育部跨世纪人才基金,刘建亚任山东大学数学与系统科学学院副院长,教育部跨世纪人才。

二十世纪八十年代后期,信息技术产业兴起的浪潮传到我国,潘承洞敏锐地意识到数论将在信息科学中有广阔的应用前景,他做了一个大胆的决策,连续两年招收王小云、李大兴为博士研究生,研究的主攻方向改为数论在密码学中的应用。这样,山东大学密码学领域的研究从无到有,现在已成为我国重要的密码学研究基地之一,相关成果已初步形成产业化。既开拓了新的研究领域,也产生了可观的经济效益。李大兴现为山东大学博士生导师,并获得了国家科技进步三等奖。

(四)1987年潘承洞出任以文史见长的山东大学的校长,恰好面临新科技的挑战,他的治校方针是“文理并举,新老并进”。在注重综合性大学的基础理论研究,发展原有重点学科的同时,积极扶持建设一批高新技术学科,使得山东大学的人才培养工作尽快适应新的社会形势。他的社会工作是繁重的,要经常地召集大家开会、制定规划、听各方面的汇报,还要深入群众进行调查研究,但在这个天地里,他依然如鱼得水,各种事情处理的得心应手,深得群众的爱戴和拥护。

不拘一格降人才,不讲门户爱人才,潘承洞对同辈、对同行无私坦荡,宽以待人,严于律己。他总是想方设法让尽可能多的人才、尽可能年轻的人才脱颖而出。在任校长期间,潘承洞着重抓了山东大学青年后备科研人才的培养和各学科教学科研梯队的建设,创造条件使青年学者能尽早地脱颖而出。1987年,他拍板制定了给有博士学位的青年教师优先分配二室一厅住房的政策,使留校的或从兄弟院校引进的博士毕业研究生都获得了较好的居住条件,为他们解决了一定的后顾之忧。这在当时全国各高等院校中都是不多见的,这一政策一直延续至今。以前山东大学在评定职称的时候论资排辈的现象严重,在一定程度上阻碍了有才华的年轻学者尽快走上科研第一线。潘承洞为改变这种状况作了很大的努力。曾经有几位现在已非常知名的教授如彭实戈等人,当初晋升教授时因为资历的欠缺,遇到了不同程度的阻力,在潘承洞的过问下得到了及时解决。1992年底他又主持制定了“破格教授”政策,即40岁以下的年轻教师晋升教授职称可不占用所在单位名额,由学校统一筛选。这样,1993年3月,学校一次提拔了40岁以下的16位年轻教师为山东大学破格教授,最年轻的当时只有30岁。这些人后来都在科研工作中独当一面,成为各自领域的佼佼者,有不少走上了教学科研或行政工作的领导岗位。这些措施的实施,在山东大学职称评定工作中逐步形成了重能力、重成果、轻资历的良好风气。

在潘承洞的倡议下,山东大学提出了“面向山东、立足山东、服务山东”的口号,自1994年起,山东大学得到了来自教育部和山东省的两方面大力支持,为学校的长久可持续发展打下了良好的基础。后来,山东大学在办学过程中得到山东省政府和济南市政府的多方面支持,顺利通过了国家“211工程”的立项,建设资金也陆续到位。这对改善办学条件,提高学校的总体水平起到了关键的作用。1997年12月,在省政府的帮助下,山东大学80多位博士生导师喜迁新居,住进了户均总建筑面积达到至少100平方米的“博导楼”。
---
我没有笔记本电脑,我想有一台!
leaf_ 发表于:2004-08-21 16:57 回复

发帖: 40
积分: 0
注册: 2004-08-12
原文的大意是 
-------  
   MD5是一种HASH函数,是MD4的加强版本。1933年BERT DEN BOER和ANTOON BOSSELAERS发现MD5的伪冲突,同样一个信息来自两个不同的初始值。H.DOBBERTIN发现一个自由起始的冲突包含两个不同的512位的信息(来自于一个选定的初始值IV’)
   我们的攻击能找到许多真冲突,它们有两个1024位的信息组成(与IV0进行MD5运算前的原文有关系)

IV0:
A0=ox67452301,B0=oxefcdab89,
C0=0x98badcfe,D0=0x10325476

    M'=M+C1,C1=(0,0,0,0,2^31,..,2^15,..,2^31,0)
  
    Ni'=Ni+C2,C2=(0,0,0,0,2^31,..,-2^15,..,2^31,0)
          
         (4,11,t 14 位为非零)

  由此可得

      MD5(M,NI)=MD5(M',NI')

在IBM P690主机上,大约需要一小时来获得这样的M和M',之后只需要15秒至5分钟就能解出Ni和Ni',这样(M,Ni)和(M',Ni')能产生同样的HASH值。此外,我们的攻击对任何给定的初始值均有效。

下面是两对1024位信息产生的冲突,这两个实例有着相同第一部分的一半512位
。。。。。。。。。。。略。
------------
我的理解是并没有通过什么MD5逆运算得到原文,只是说发现了不同的原文可以得到相同的HASH值(原文称为冲突)。而利用冲突HASH可以通过某种运算(可能是某种算法高明的猜解),能得出两对1024位的信息组(即M,N和M',N')M,N为原文,M',N'为可以和原文产生相同HASH(冲突)的信息。得出M对应的M'需要1小时左右。而后只需要15秒至5分钟就能得出N和N'。文章只能两组1024位的信息做了论证,并宣称对于任意长度的信息均可破解。
呵呵 至于这么快的算法和算法实现的代码是有了,可是一般人是看不到喽。。

不知我的理解是否有误??
------
挺有意思,想像一下两个人用不同密码进入UNIX,而系统文件里两人的MD5值居然是相同的~~!
leaf_ 发表于:2004-08-21 16:59 回复

发帖: 40
积分: 0
注册: 2004-08-12
paper 中提到的服务器

IBM P690 
-----------------
1.9GHz Power4+处理器的pSeries 690服务器。IBM还计划推出一款新存储器卡,使这种高端系统可以支持的内存数量翻一番。

p690是IBM pSeries系列Unix服务器的最高机型,配置8~32颗处理器。目前它支持高达512GB内存。6月25日IBM将推出新的128GB DIMM存储器卡,把最高内存数量提高到1TB。

另讯 IBM eServer p690服务器在其最新的TPC-C基准测试中,以每分钟可完成1025486次事务处理创造了新的性能纪录。这台运行DB2通用数据库v8.1的IBM eServer p690服务器拥有32个Power4+微处理器,从而使这台p690系统的性价比一举达到了5.43美元/tpmC。
-------
穷人还是玩不起这种游戏地。。
-------
denglu 发表于:2004-08-21 17:58 回复

发帖: 5
积分: 0
注册: 2004-08-20
3 Collisions for MD4
MD4 is designed by R. L. Rivest[8] . Attack of H. Dobbertin in Eurocrypto'96[2] can find collision with
probability 1/222. Our attack can find collision with hand calculation, such that
) 0 , 0 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 2 , 2 , 0 ( , 16 31 28 31 C C M M
and ) ( 4 ) ( 4 M MD M MD .
M1
4d7a9c83 56cb927a b9d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dd8e31 97e31fe5 2794bf08 b9e8c3e9
M1
4d7a9c83 d6cb927a 29d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dc8e31 97e31fe5 2794bf08 b9e8c3e9
H 5f5c1a0d 71b36046 1b5435da 9b0d807a
M2
4d7a9c83 56cb927a b9d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dd8e31 97e31fe5 f713c240 a7b8cf69
M2
4d7a9c83 d6cb927a 29d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dc8e31 97e31fe5 f713c240 a7b8cf69
H e0f76122 c429c56c ebb5e256 b809793
Table 3 Two pairs of collisions for MD4

我翻译一下关于MD4冲突的部分

MD4的冲突

MD4是被R. L. Rivest[8] . Attack of H. Dobbertin所设计的,发表在Eurocrypto'96[2] ,
按照这个算法发现冲突的可能性是 1/2^22 我们的攻击能手动计算的发现冲突

如下:
M'=M'+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )

注:这里他是按照 4*8=32 作为一个单元来处理

下面是例子
M1的消息内容是(16进制表示)

4d7a9c83 56cb927a b9d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f c69d71b3 f9e99198 d79f805e a63bb2e8 45dd8e31 97e31fe5 2794bf08 b9e8c3e9

那么按照上面的计算得到的M1'是

4d7a9c83 d6cb927a 29d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f c69d71b3 f9e99198 d79f805e a63bb2e8 45dc8e31 97e31fe5 2794bf08 b9e8c3e9


那么比较一下你会发现就是上面的 0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0

算MD4的时候,你会发现

MD4(M1)=MD4(M1')=5f5c1a0d 71b36046 1b5435da 9b0d807a

他妈的,真牛!!!

MD5(M,NI)=MD5(M',NI')

这个好像是那个论文里面的,把1024切割成为2块,每个512

denglu 编辑于 2004-08-21 18:03
---
生亦欣然,死亦无憾,清风明月,随逸而安
leaf_ 发表于:2004-08-21 19:00 回复

发帖: 40
积分: 0
注册: 2004-08-12
M,N信息1:各1024位。M',N'也是。
M的前512和M'的前512位是相同的。
N的前512和N'的前512位是相同的。
可是在那俩个例子中的第一个里面有几组有出入啊。
leaf_ 发表于:2004-08-21 21:10 回复

发帖: 40
积分: 0
注册: 2004-08-12
MD4的冲突

MD4是被R. L. Rivest[8] . Attack of H. Dobbertin所设计的,发表在Eurocrypto'96[2] ,
按照这个算法发现冲突的可能性是 1/2^22 我们的攻击能手动计算的发现冲突

如下:
M'=M'+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )

注:这里他是按照 4*8=32 作为一个单元来处理

下面是例子
M1的消息内容是(16进制表示)

4d7a9c83 56cb927a b9d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f c69d71b3 f9e99198 d79f805e a63bb2e8 45dd8e31 97e31fe5 2794bf08 b9e8c3e9

那么按照上面的计算得到的M1'是

4d7a9c83 d6cb927a 29d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f c69d71b3 f9e99198 d79f805e a63bb2e8 45dc8e31 97e31fe5 2794bf08 b9e8c3e9


那么比较一下你会发现就是上面的 0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0

算MD4的时候,你会发现

MD4(M1)=MD4(M1')=5f5c1a0d 71b36046 1b5435da 9b0d807a
--------------------
兄弟~!这么说在M'的基础上可以用M'=M'+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )继续对M'处理得到M''再得到M'''。。。。。。。。。。晕啊。。。
robur 发表于:2004-08-22 04:31 回复

发帖: 59
积分: 0
注册: 2004-04-23
上边有人提到了p690的配置,真是。。。。现在手上能像我这样有双志强机器的人都很少,何况这么变态的配置,要是拿p4处理器,得算多长时间啊?
不过两个原文可以运算成一个密文很正常,像这种消息摘要试的函数,不可能逃离这个规律的。有冲突又有什么用呢?伪造?
打个比方,假设你得到一个用户的口令的MD5值(例如e10adc3949ba59abbe56e057f20f883e,这个值应该对应123456),然后你去运算。不知算了多久,终于找到了一个通过MD5函数后,散列值是e10adc3949ba59abbe56e057f20f883e的一个我也不知道是什么的字符串(反正不是123456,先这样叫吧)。然后你把这个字符串复制到密码框里,填好用户名,点击“登录”。可谁知道服务器端的asp是这样写的:
pwd=Request.Form("pwd")
pwd=Replace(pwd,"'","")
if Not IsNumeric(request("pwd")) then
response.write "提交参数非法!"
response.end
end if
回头一看,注册页面上写着:“请使用数字作为密码,否则不能注册!”
举个例子,当然不是真的。

robur 编辑于 2004-08-22 04:32
---
安全永远都是一个严肃的话题,谁失去了安全,那么就是失去了权力。必须严谨地对待每一个安全问题,细致地处理每一个安全隐患,这样才能给自己一个放松的理由。
denglu 发表于:2004-08-22 10:22 回复

发帖: 5
积分: 0
注册: 2004-08-20
引用 (leaf_ @ 2004-08-21 21:10)
MD4的冲突

MD4是被R. L. Rivest[8] . Attack of H. Dobbertin所设计的,发表在Eurocrypto'96[2] ,
按照这个算法发现冲突的可能性是 1/2^22 我们的攻击能手动计算的发现冲突

如下:
M'=M'+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )

注:这里他是按照 4*8=32 作为一个单元来处理

下面是例子
M1的消息内容是(16进制表示)

4d7a9c83 56cb927a b9d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f c69d71b3 f9e99198 d79f805e a63bb2e8 45dd8e31 97e31fe5 2794bf08 b9e8c3e9

那么按照上面的计算得到的M1'是

4d7a9c83 d6cb927a 29d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f c69d71b3 f9e99198 d79f805e a63bb2e8 45dc8e31 97e31fe5 2794bf08 b9e8c3e9


那么比较一下你会发现就是上面的 0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0

算MD4的时候,你会发现

MD4(M1)=MD4(M1')=5f5c1a0d 71b36046 1b5435da 9b0d807a
--------------------
兄弟~!这么说在M'的基础上可以用M'=M'+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )继续对M'处理得到M''再得到M'''。。。。。。。。。。晕啊。。。

如下:
M'=M'+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )

这里我写错了

实际是

M'=M+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )

这里的M是原消息

M'是新的消息



另外关于MD5他那个我不是很明白,后来查了查,感觉原因是对于
Dobbertin[3] found a free-start collision which consists of two different 512-bit
messages with a chosen initial value 0 V I .

的不理解
---
生亦欣然,死亦无憾,清风明月,随逸而安
denglu 发表于:2004-08-22 10:32 回复

发帖: 5
积分: 0
注册: 2004-08-20
那个H.DOBBERTIN的论文

关于这个论文,提一下最后的部分

The computation of such a collision takes about 10 hours on a Pentium PC

也就是说,这个冲突大概经过pentium 10个小时的计算就可以发现了

关于p690 ,的确差不多是除了Z系列以外IBM的性能最好的(如果错了,欢迎指正)

但是p690跑一个小时的,并不是说我们PC就要跑1年了:)

denglu 编辑于 2004-08-22 10:49

附件 dobbertin.pdf ( 下载次数: 30 )

---
生亦欣然,死亦无憾,清风明月,随逸而安
leaf_ 发表于:2004-08-22 14:34 回复

发帖: 40
积分: 0
注册: 2004-08-12
M'=M+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )

这里的M是原消息

M'是新的消息
--------------------------
我明白你的意思。我的意思是得到M'后可以再套这个公式M''=M'+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )

得到M''这样反复叠代不就有N个与M产生冲突的信息了吗?(M'',M''',M''''..............)
算法是死的,生成的摘要也是死的。不可能由已知摘要生成任意信息,依然没有利用价值。
MD5依然很强。。
---------------
free-start collision which consists of two different 512-bit
messages with a chosen initial value 0 V I .
我的理解是 对于任意起始产生冲突的信息来说 它总是由两个不同的512位信息伴随一个选定的初始值0VI组成/由两个512位信息组成,与原文IV0有关。
-----------
晕。。。。。。。。。
sunsiliang 发表于:2004-08-22 22:37 回复

发帖: 72
积分: 0
注册: 2002-11-27
如果是真的,微软的操作系统又得改了,使用MD5算法加密的软件又不安全了。
starvalley 发表于:2004-08-23 09:38 回复

发帖: 11
积分: 0
注册: 2004-06-23
没那么夸张的,MD5本来就不是加密算法,只是摘要算法,它的特性就是多对一,从处理后的字符串是不可能逆向推出原文的
thinkahead 发表于:2004-08-23 13:33 回复

发帖: 12
积分: 1
注册: 2004-08-20
没错,MD5主要用于签名,
但是,试想如果你在一张借款单上签上了自己的名字,表示你借了别人100元,
但是别人拿出另外一个伪造得一模一样的有你签名的借款单,只不过在100后面
又多出了N个0来,你还觉得无所谓吗?

对于一个这样用途的一个算法来说,需要具有必要的特征是:(转贴)
(1) Given a digest, it must be essentially impossible to figure out what data generated that digest. (2) It must be essentially impossible to find find a "collision", that is, to find two different data values that have the same digest.
--摘自http://www.freedom-to-tinker.com/archives/000661.html
所以,我们要说的是第二个特征出现问题,不是第一个特征。
尽管如此,如前所述,这也是非常可怕的事情。

thinkahead 编辑于 2004-08-23 13:34
bingle 发表于:2004-08-23 14:05 回复

发帖: 246
积分: 0
注册: 2001-04-29
问题是md5摘要是128位,那么也就是说最后的摘要共有2^128种可能,可输入的数据呢?不只这么多把,我们就以这2^128种摘要结果作为输入,假设他们没有冲突,恰好一一对应。我要是再来任何一个非128位的输入,那么结果是什么?不论是什么也必然和前边的2^128种之一重复,也就是冲突。

其他摘要也是一样呀,所以定长摘要没有冲突是不可能的呀,不明白什么样才能满足:"(2) It must be essentially impossible to find find a "collision", that is, to find two different data values that have the same digest."

不懂加密,乱说的,只是想不明白而已。
--- www.BingleSite.net
thinkahead 发表于:2004-08-23 14:46 回复

发帖: 12
积分: 1
注册: 2004-08-20
引用 (bingle @ 2004-08-23 14:05)
问题是md5摘要是128位,那么也就是说最后的摘要共有2^128种可能,可输入的数据呢?不只这么多把,我们就以这2^128种摘要结果作为输入,假设他们没有冲突,恰好一一对应。我要是再来任何一个非128位的输入,那么结果是什么?不论是什么也必然和前边的2^128种之一重复,也就是冲突。

其他摘要也是一样呀,所以定长摘要没有冲突是不可能的呀,不明白什么样才能满足:"(2) It must be essentially impossible to find find a "collision", that is, to find two different data values that have the same digest."

不懂加密,乱说的,只是想不明白而已。

这里并不是说我们的算法要避免冲突,正如你所说,这是不可能的!
而是说,即使我们知道一定会有许多的输入数据会生成同样的摘要值,
但是算法能够做到我们“几乎不可能”找到这样的两个值出来!

这在过去看是几乎不可能的事情,需要2^128次运算,耗费几百万年的时间。
现在可能了!能够降到2^40次运算,耗费几天的时间而已!

我也没有仔细研究,现在暂时的理解是这样。
watercloud 发表于:2004-08-23 14:57 回复

发帖: 663
积分: 79
注册: 2001-04-16
第二点说的几乎不可能出现两个不同数据摘要相同,
当然不是完全没有这种可能性,而是发生几率极小,
如100万年可能出现几次。

安全算法定义的标准参考于数据计算量导致的不可计算性。

当有人想伪造签名需要动用全球所有计算机,并考虑
计算机计算能力2年翻番的效应也需要计算几万年,那么
这个签名算法也是安全的。

但现在的问题是MD4/MD5,已知摘要情况下仅仅需要几小时
就能获得一个冲突串!!!这证明了该算法非安全性。
而在此之前大家都认为此算法是安全的,并得到了政府/商业/军事
的应用,因此影响非常大!

生活中论坛/操作系统中都大量的使用了该算法!

128不是指可输入的数据长度,而是算法每轮处理输入的长度。
XCyber 发表于:2004-08-23 15:18 回复

发帖: 13
积分: 0
注册: 2003-07-31
MD5被击破,SHA-1也有弱点,那还有什么可以替代的hash算法呢?
leaf_ 发表于:2004-08-23 15:20 回复

发帖: 40
积分: 0
注册: 2004-08-12
但现在的问题是MD4/MD5,已知摘要情况下仅仅需要几小时
就能获得一个冲突串!!!这证明了该算法非安全性。
----------
如何利用?
watercloud 发表于:2004-08-23 15:31 回复

发帖: 663
积分: 79
注册: 2001-04-16
如何利用?

如果能快速得到一个冲突串的话,一个简单的利用就是:

Linux的口令文件存放的是MD5,不需要像以前那样
需要john等工具根据字典来暴力破解UNIX口令文件了。
直接得到一个冲突串就可以用来登陆了!
watercloud 发表于:2004-08-23 15:43 回复

发帖: 663
积分: 79
注册: 2001-04-16
贴个新闻稿,大家了解一下事情发展现状吧。

千龙新闻网

  消息传出,嵌入常用安全加密技术的演算法可能隐含先前未发觉的弱点,引起加密技术人员议论纷纷。

  上周四(12日)法国电脑科学家Antoine Joux宣布,已在常用的一种演算法中,找到一个弱点;这种演算法称为“MD5”(讯息摘要5 ),常搭配数字签名(digital signature )使用。紧接着,四位中国研究员发布报告指出,有办法破解另一种称为“SHA-0”(安全杂凑演算法0 )的演算法。

  虽然这些只是初步的研究结果,但新的发现到头来可能让有心人士更轻易在电脑程序中植入不容易察觉的后门,或伪造电子签名――除非改用不同的、更安全的演算法。

  第三个可能更具爆炸力的宣布,订于周二(17日)晚间在加州圣塔芭芭拉举行的Crypto 2004会议上发布。

  以色列科技研究所研究员Eli Biham和Rafi Chen原本计划在会中发布报告,指出几种破解“SHA-0”演算法安全功能的方法。现在,他们打算在会议中进一步谈论有关“SHA-1”演算法的“劲爆消息”。这场会议订于太平洋夏令时间17日晚间7时开始。

  “SHA-0”不完美,是己知的事实;但若“SHA-1”发现重大弱点,视细节而定,可能震撼电脑安全界。

  目前被奉为同级演算法中的圭臬,“SHA-1”嵌入诸如加密软件(PGP )和安全插座层协定(SSL )等使用广泛的程序中。“SHA-1”已获美国标准与技术研究院(NIST)的认证,而且是唯一获准用于美国政府“数字签名标准”的签名演算法。“SHA-1”产生160位的数字与字串,长度比MD5产生的128位更长,因此被视为更安全。

  Crypto 2004会议总主席StorageTek高级研究员Jim Hughes 17日早晨表示,此讯息太重要了,因此他已筹办该会成立24年来的首次网络广播(Webcast )。在传至加密学相关邮件清单的投书中,Hughes透露:“会中将提出三份探讨杂凑冲撞(hash collisions )重要的研究报告。”其中一份是Joux的研究发现。

  接受电话访问时,Hughes说:“若你发现,有两份合同经杂凑处理的数字签名相同,你大可用甲合同替代乙合同。闹上法庭时,哪一份才是有效的合同,至少有个灰色地带。那种可能性极高。”

  不论是“MD5”、“SHA-0”或“SHA-1”演算法,都使用电脑科学家所谓的杂凑函数(hash functions)。运用这些演算法,可把电子邮件讯息乃至操作系统核心等各式各样的信息内容混杂起来,产生理论上应是独一无二的指纹档(fingerprint )。原始信息内容稍有改变,即使只更动一个字母,再使用一次演算法后产生的指纹档也会截然不同。

  安全应用程序的防护机制是建筑在指纹档的独一无二性之上。万一某个不怀好意的黑客有办法以不同的信息内容产生相同的指纹档,则那个复制指纹档――即“杂凑冲撞”(hash collision)――就会把被植入后门的软件确认为安全无虞,可供使用者下载和执行。这么一来,有心人士便可趁机假冒电子邮件签名,指示把某人的银行帐户搬空。

  研究员长久来就知道,没有一种可实际使用的加密演算法是绝对安全的;他们所能做的,是设法设计出一种需要旷日废时方能复制指纹档的演算法。“SHA-1”被视为安全可靠,系因研究员相信,运用目前已知的技巧,不可能刻意制造出杂凑冲撞。

  但若是“SHA-0”潜在的弱点也出现在“SHA-1”之中,那意味复制出指纹档的速度可加快大约5亿倍――若把一堆高速个人电脑连结成网,有能力达此目标。

  “MD5”演算法的弱点是更迫在眉睫的威胁。开放源代码的Apache网络服务器产品使用“MD5”杂凑,以确保数十个映像网站上的源代码不被窜改,可安全执行。SunSolaris Fingerprint Database也采用相同的杂凑演算法技术。

  近日来被揪出的“MD5”弱点,意味黑客可能在数小时之内用标准个人电脑产生出杂凑冲撞。但要编写特定的后门程序,再覆以相同的杂凑冲撞,则可能更费时。

  话虽如此,Hughes建议,程序设计人员最好开始舍弃“MD5”。他说:“既然现在这种演算法的弱点已暴露出来,在有效的攻击发动之前,现在是撤离的时机。
leaf_ 发表于:2004-08-23 15:49 回复

发帖: 40
积分: 0
注册: 2004-08-12
如何利用?

如果能快速得到一个冲突串的话,一个简单的利用就是:

Linux的口令文件存放的是MD5,不需要像以前那样
需要john等工具根据字典来暴力破解UNIX口令文件了。
直接得到一个冲突串就可以用来登陆了!
--------------
可是文章只是提到了由产生冲突摘要的信息推出另一信息的方法 并没有写如何由摘要快捷的算出冲突信息啊。。
watercloud 发表于:2004-08-23 16:04 回复

发帖: 663
积分: 79
注册: 2001-04-16
那么修改被签名的信息可能可以用上。
leaf_ 发表于:2004-08-23 16:16 回复

发帖: 40
积分: 0
注册: 2004-08-12
不能人为刻意的伪造签名,但签名的唯一性没有可靠的理论依据了  
至少MD5的不安全可以让交易一方以此为借口 抵赖自己的交易行为。
flashsky 发表于:2004-08-23 18:38 回复

发帖: 756
积分: 63
注册: 2002-09-04
我大致读了一下他的文章,感觉没那么严重

她的意思不是说所有的M,N都能找到碰撞的M‘,N’
而是一些特殊的薄弱的M,N可以找到
不过这些特殊的M、N相对分布比较广泛,使用她说的那机器可以在1个小时内穷举找到这样的M、N,而对应碰撞的M‘与N’是与M、N有一个固定算法来计算出来的,否则就难以理解要1个小时的时间来计算是如何的
她的“与初始值无关”就是说穷举从任意的M、N开始,都大概可以在1个小时左右找到符合碰撞的值,也就是说这些碰撞是均态分析的。

因此我觉得这个对目前使用MD5算法的系统影响还是比较小的
但是使用MD5做签名的会受到冲击,因为理论上的唯一性是被证明失效了,可能产生的M,N是可以被别人伪造的
但决大部分的的M,N还是安全的

flashsky 编辑于 2004-08-23 18:38
---
买赋长门车马喧,争饮豕槽醉既眠。
悟空五湖三山树,禅枯半月一溪天。
断路蚍蜉本是梦,菜菊东篱聊为仙。
行痴莫笑无孔窍,钓雪何妨年复年。
www.xfocus.net www.flashsky.org
bingle 发表于:2004-08-24 10:13 回复

发帖: 246
积分: 0
注册: 2001-04-29
"并没有写如何由摘要快捷的算出冲突信息啊",如果确实存在这样的问题,我想算法会很快出来把;利用就如watercloud 所说了。
这里有一个演示冲突代码和数据,只是演示一下冲突的存在,不是从一个签名如何快速获取一个数据或他的冲突。 http://www.rtfm.com/movabletype/archives/2004_08.html#001053
--- www.BingleSite.net
denglu 发表于:2004-08-24 19:03 回复

发帖: 5
积分: 0
注册: 2004-08-20
z:\md5coll>MAKE.bat
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

MD5 (X1.bin) = e115410841d7a06f2913be15e1760fd1
MD5 (X1prime.bin) = 7005ea821bcc0e64d0eb9852f2bec2bd
MD5 (X1.bin) = 8ada1581c24565adac73a2d27160ca90
MD5 (X1prime.bin) = 8ada1581c24565adac73a2d27160ca90
MD5 (X2.bin) = 55f94e8f79e8a9795fad79f4c6ab5f11
MD5 (X2prime.bin) = 47aaf6e98d0799f9a85db9fd86cb392a
MD5 (X2.bin) = 1a2a1d55c87318422367ae3462143fb6
MD5 (X2prime.bin) = 1a2a1d55c87318422367ae3462143fb6

******************************************************************************
@echo off
REM file name MAKE.BAT(windows version)
REM original file Makefile(unix version)
REM download http://www.rtfm.com/md5coll.tar.gz and extract to a directory and copy those code to a file named make.bat
REM SYSTEM REQUIRE: MICROSOFT STUDIO C++ 6.0
REM modify by vulgatecn@msn.com



rem md5
del *.obj /s >null
cl -o md5 -DMD=5 md5.c mddriver.c >nul

rem md5prime
del *.obj /s >null
cl -o md5prime -DINVERT_STATE -DMD=5 md5.c mddriver.c >nul





rem X1 and X1' with ordinary MD5--no collision
md5 X1.bin
md5 X1prime.bin

rem X1 and X1' with md5prime--collision
md5prime X1.bin
md5prime X1prime.bin


rem X2 and X2' with ordinary MD5
md5 X2.bin
md5 X2prime.bin

rem X2 and X2' with md5prime
md5prime X2.bin
md5prime X2prime.bin

@echo on

denglu 编辑于 2004-08-24 20:01
---
生亦欣然,死亦无憾,清风明月,随逸而安
xlk_vs_xlk 发表于:2004-09-01 16:06 回复

发帖: 3
积分: 0
注册: 2004-08-31
Here is some discus about this message http://www.webservertalk.com/message361631.html
---
官人................我要!!!!!!!!!!
笔记本呀!!!
摄像机呀!!!
照相机呀!!!
官人................我要!!!!!!!!!!
thinkahead 发表于:2004-09-04 17:33 回复

发帖: 12
积分: 1
注册: 2004-08-20 http://www.view.sdu.edu.cn/news/news/sdyw/2004-09-04/1094261946.html
kingskill 发表于:2004-09-20 11:45 回复

发帖: 32
积分: 0
注册: 2003-06-16
denglu:

你的make.bat,以及下载下来的那个md5coll,总在linux,98里报error。

linux中大概是:gcc2.96:installation error,unable to find "as":????????……error 1
98中就都是command not found之类的了,似乎环境变量没有装上。

我在98里装了vs6,不过只能用到vc++6,vb和foxpro都装不上(d盘问题),是否连带上了环境变量了?

初学者,初级问题,望答复。







地主 发表时间: 04-11-05 10:04

回复: tuzi [tuzi]   版主   登录
中国人啊

受不了了

仔细看了看
只是collision attack而不是preimage attack
collision attack可以找出两个MSG具有相同的HASH值,可以用来伪造签名什么的,而不是偶们平常说的逆向破解。

所以问题可能没有大家想象的那么严重,就是给你一个MD5 HASH值,你还是不可能算出明文,当然一些暴力破解除外。
最后严重BS写这篇文章的人,术语也不去问问这些老师是怎么翻译比较好

以上是别人在回帖中写的


[此贴被 带脚镣跳舞(tuzi) 在 11月05日14时35分 编辑过]

B1层 发表时间: 04-11-05 14:34

论坛: 茶余饭后

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号