当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: CSDN一篇报道说中国数学家王小云等在Crypto 2004上提出一种能成功攻破MD5的算法,GIGIX和王兄都在BLOG里引用了相关的报道。
 

 

    摘要:用cssl来配置个性化的csdn blog界面 进入csdn blog后,点\配置,选项,自定义css,写如以下代码即可以 body{background-color:#fbfaf4}table{line-height:20pt;font-size:9pt;background-color:#f97600} div{line-height:20pt;background-color:#dee4e1;border:1px solid #323d3......
 ·oracle9ias下j2ee应用程序部署    »显示摘要«
    摘要:oracle 9ias j2ee 应用程序发布和配置 安装配置应用服务器操作系统 安装oracle 9ias 9.0.2 企业版 ① oracle 9i application server infrastructure ; 其中:oracle 9ias infrastructure instance name :ora9ias_is;口令:ora9ias 安装目录:d:\ora9is ② oracle 9ias application ser......


关于王小云破解MD5之我见

csdn一篇报道说中国数学家王小云等在crypto 2004上提出一种能成功攻破md5的算法,gigix与王兄都在blog里引用了相关的报道。

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

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

王小云的发现证明了有方法可以产生碰撞,但正如gigix那边一位匿名兄所说,这只是非特定碰撞,而要伪造签名则必须能产生特定碰撞。所以说md5并未被完全攻破,但也已经是一个重大的突破了。 【扩展信息:函数指针point of functio

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

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


...   下一页
    摘要:大数量查询分页显示 微软的解决办法using system; using system.data; using system.data.sqlclient; using system.drawing; using system.windows.forms; public class pagingsample: form { // form controls. button prevbtn = new button(); button nextbtn =......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE