md5是什么文件格式(md5是什么文件怎么打开)

md5是什么,md5是什么文件格式?

来源:新华每日电讯

王小云在2019未来科学大奖颁奖典礼上。本报记者李牧鸣摄

2019年11月17日,梳着干练短发、带着金边眼镜的王小云,走进“未来科学大奖周”的报告厅,用一口淳朴的山东口音,开始讲述她与密码的往事。

首个由中国民间发起的“未来科学大奖”,迎来了首位女性得主——今年53岁的清华大学高等研究院杨振宁讲座教授王小云。她获得了“数学与计算机科学奖”,因为她“在密码学中的开创性贡献,她的创新性密码分析方式揭示了被广泛使用的密码哈希函数的弱点,促进了新一代密码哈希函数标准”。

破解两大国际密码算法

偶然间看到的一条注释,让吴彦冰决定跟着王小云读博士。

5年前,四川大学信息安全专业本科生吴彦冰,在阅读公认世界第一黑客的凯文·米特尼克所著《欺骗的艺术》时,发现一段文字中有个中国人的名字,这是一条关于“MD5已被王小云教授破解”的注释。

了解这条注释背后的故事后,吴彦冰被密码学深深吸引了。毕业前他向王小云发了邮件,决定探索密码学这个迷人的世界。如今,他已师从王小云,漫游密码世界。

时间回到2004年,对于国际密码学界来说,这注定是不同寻常的一年。

这年的8月,在美国加州圣巴巴拉召开的国际密码大会上,王小云宣读了自己和研究团队对于MD4、MD5、HAVAL-128和RIPEMD四个国际著名密码算法的破译结果。

这被认为是2004年密码学界最具突破性的结果,堪称学术界的一场强烈地震。当年国际密码大会总结报告上写道:我们该怎么办?MD5被重创了,它即将从应用中淘汰。SHA-1仍然活着……

多年来,由美国国家标准技术研究院(NIST)颁布的基于哈希函数的MD5和SHA-1算法,是国际上公认最先进、应用范围最广的两大重要算法,后者更被视为计算安全系统的基石,有着“白宫密码”之称。

没多久,SHA-1的末日降临。2005年2月,在美国召开的国家信息安全研讨会上,5名著名密码学家公布了哈希函数发展史上的重要研究进展——他们收到了来自中国的王小云等3位女研究者对SHA-1全算法的攻击。

2005年,美国《新科学家》杂志在一篇文章中,用了颇具震撼力的标题——《崩溃!密码学的危机》,报道了王小云团队花10年时间取得的学术成果。

2006年,NIST颁布了美国联邦机构2010年之前必须停止使用SHA-1的新政策,并于次年向全球密码学者征集新的国际标准密码算法。

改变战争走向的古典密码

王小云从事的密码学,是一个既古老又新兴的学科。在1949年以前,人类社会经历了漫长的古典密码时期。

从古到今,密码被频繁应用在战争中,保护己方秘密并洞悉对方情报成了克敌制胜的重要条件。

中国古代兵书《六韬》中记录了阴符和阴书两种加密通信方式。国君和在外主将之间用阴符秘密联络,八种不同尺寸长度的阴符,隐藏着不同的军情秘密。如需传递军机大事则用阴书:把书信拆成三部分,分派三人发出,每人拿一部分,只有三部分合在一起才能读懂信的内容。

大约在公元前700年,古希腊军队用一种圆木棍进行保密通信。公元前405年,雅典和斯巴达之间的伯罗奔尼撒战争进入尾声,斯巴达军队截获了雅典信使的一条重要加密情报并破译,由此改变了作战计划,赢得战争的最后胜利。

这种加密方法中,加密方把纸条缠绕在特定的木棒上,写上原信息,木棒撤掉之后,纸条上的字母变成了乱码。解密方收到这个纸条后,用相同的木棒就可以恢复原信息。

聪明的古人,用简单的置换方式就设计出一个密码。不过,古典密码的加密方式不能让人知道,一旦泄露密码就被破解。

当王小云走进密码学的世界时,这门学科已经发展到了公开加密方法的现代密码时期。

家国情怀塑造密码天才

1966年,王小云出生于山东诸城一个教师家庭。童年时,做数学老师的父亲讲“鸡兔同笼”的故事,就是她最早的数学启蒙。1983年,17岁的王小云考入山东大学数学系,师从著名数学家潘承洞。读完了本科、硕士与博士,她留在山东大学任教。后听从导师建议,将研究方向从解析数论转向密码学。

39岁时,王小云被聘为清华大学高等研究院杨振宁讲座教授,之后曾获得中国密码学会“密码创新奖特等奖”以及“网络安全优秀人才奖”,51岁当选中国科学院院士。

多年后,王小云回忆起读书经历时,提到老师潘承洞对学生的一个特别要求,不管是出国深造,还是做访问学者,两年或者三年,到了时间就得回来,坚决立足于国内发展。

或许是耳濡目染了老一代学者身上的这种家国情怀,破解了两大国际密码算法后,王小云放弃了参与设计美国向全球征集的新国际标准密码算法,转而设计国内的密码算法标准。

此后,王小云和国内其他专家设计了我国首个哈希函数算法标准SM3。如今,SM3已为我国多个行业保驾护航,在金融、国家电网、交通等国家重要经济领域广泛使用。

“密码破解非常重要,没有破解,就很难有密码应用的标准化、规范化,商用密码体系也很难加强起来。”王小云眼中的密码学是矛与盾的交锋,攻与防的艺术。

“天书”哈希函数到底是什么

今天,计算机网络、移动网络、物联网、卫星网络还有大数据、云计算,这些人们已经熟知的科技场景,都离不开密码技术的支撑,需要密码来解决安全问题。

王小云曾将密码比作钥匙:“没有密码的保障,就相当于有人偷了家里的钥匙,可以随时自由进出你家,而你却浑然不知。”

密码学重要到何种地步?不得不从一个密码学中的基本工具说起,它就是王小云打了多年交道的哈希函数。

这个时代的所有网络信息安全,需要满足机密性、可认证性、不可抵赖性、完整性与有效性这五大安全属性,才可以有效防御黑客的攻击。其中,有效性是指效率问题,而前四个属性中,机密算法保障机密性,即不被窃取、看到;数字签名算法满足的是可认证性和不可抵赖性;哈希函数算法保证信息的完整性。

不过,数字签名算法必须和哈希函数一起才能保证可认证性和不可抵赖性。因此,五大安全属性里有三个,都离不开哈希函数。

密码上的哈希函数,可以将任意长度的消息压缩成固定长度的哈希值,而哈希值就像每个人都拥有唯一的“指纹”一样,哈希函数的重要之处就是能够赋予每个消息唯一的“数字指纹”,即使更改该消息的一个比特,对应的哈希值也会变为截然不同的“指纹”。

清华大学高等研究院数学博士吴彦冰打了个比方,就像把一本书里的某一页或一个字更改了,但看书的人很难判断更改的地方,即便全书通读一遍也未必能发现,“但通过哈希函数,输入稍有不同,输出结果就会完全不同”。

“严师”与“慈母”

在现代密码学中,哈希函数占据着基础而又重要的地位。上世纪90年代,王小云开始进行哈希函数研究,1994年开始尝试破解MD5和SHA-1。

一种密码算法的破解往往需要花费十年,甚至更久的时间,即便如此,成功率也只有1%左右。这注定是一个要“坐冷板凳”的研究领域,王小云就是用了整整十年的时间,破解了MD5和SHA-1两大密码算法。

清华大学密码学博士生丛天硕觉得,导师王小云似乎对密码有特别的直觉,做科研“就像是在跟着电影里的世界级大师一起工作”。

有一次,丛天硕和师兄尝试去攻击破解一个密码算法,想了很久不清楚是否可行,后来去找导师咨询,“王老师听完,说你们直接去做就行,她一眼就明白怎么回事儿了”。在丛天硕看来,王小云总能看到很远的地方,让学生去尝试前沿的研究。

学生眼中,这位导师在学术上要求“特别严厉”。学生的论文,一定要做到最好才能发表,“如果做到第二或有稍微的改进空间,她都是不能接受的,会让学生继续深入做研究”。

学术之外,王小云又很慈祥。丛天硕打算申请一个国外实践时,王小云会对出行住宿仔仔细细问个清楚,担心学生的安全。“刚读博时,王老师会和学生沟通,根据我们的兴趣,制定培养计划,还给出很多研究方向,让我们去尝试。”丛天硕说。

解密的惊心动魄更多在内心

在一些电影大片中,常有特工或黑客破解密码的惊险镜头,短短几秒钟就成功进入了对方的内部系统。当迈进密码学的大门后,吴彦冰发现很多人对密码的认识并不准确,或许是看电影后形成的刻板印象,误把破解银行卡或邮箱密码当成密码学家的工作,“其实那不是真正的密码,只是一个简单的‘口令’”。

王小云在一档节目中做了这样的科普:当你输入一串字符,如果不经过任何处理直接送到服务器来验证,它一定不是密码,只是一个口令;如果输进去的字符,通过密码运算得出另外一个结果,那么这个结果可以验证你是否为合法用户时,这个口令就变成了密码。

“比如战争中传输了一段密文,当这段密文被拦截后,如果让密码学家上场,他们就会根据各自的数学方法和手段,推导出原文是什么,比简单破解银行卡密码要复杂很多。”吴彦冰说。

现实中密码学家的工作,没有电影中那样惊心动魄。吴彦冰甚至觉得,这是一个很枯燥的过程,不停地推导公式、做编程,然后用大型计算机验证,等待结果,“想尽各种方法,一个个去尝试,失败了再重来”。

在吴彦冰看来,破解密码有时就像走进了一个巨大的迷宫,一套密码是经过密码大师在设计中一遍遍确认,没有问题后才公布出来,很多时候用传统的方法和思维破解不了,可能在迷宫中碰壁多次也找不到出口。

像很多科学突破一样,破解密码也需要勤奋和灵感,熬夜攻关亦是常态。吴彦冰跟着王小云做科研时,有过几次这样的经历,“白天忙了一天,晚上脑袋里突然蹦出来一个灵感,会亢奋得睡不着,就要顺着把理论推导完,不断尝试到底行不行”。

吴彦冰曾听老师王小云讲起破解MD5的经历,“那时候王老师还没学过编程,就用手写推导的方式,写了400多页纸,几百个方程,推导了两三个月才得到结果。”

王小云沉浸在密码的美妙世界中,享受着外人无法体会的乐趣。生活中她喜欢在家里和实验室养花,有时候思考一个数学问题,却找不到答案时,就会起来打扫打扫卫生,或者是给花浇浇水,干点别的事情,但实际上脑子里一直没有放下科学问题。

科研过程中,王小云也把这种乐趣传递给学生们。他们既扮演着“设谜者”的角色,设计一套巧妙的密码算法,弥补前人的不足,希冀让攻击者无法突破;同时还扮演着“猜谜人”的角色,把别人设计精妙的体系一举攻破。“参与者会有很大的喜悦感和成就感。”吴彦冰说。

就如王小云在未来科学大奖的获奖致辞中所说,虽然目前密码学只被少数人所熟悉,但未来会有更多的年轻力量为密码学的发展助力,愿意尽自己的全力去帮助年轻的科学家们开拓密码学这门神秘而又充满力量的学科。(记者完颜文豪、李牧鸣)

以上内容就是小编分享的关于md5是什么文件怎么打开.jpg”/>

网友提问:

md5是什么,md5是什么算法?

md5是什么意思?

优质回答:

MD5值就像是这个文件的“数字指纹”。每个文件的MD5值是不同的,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”就会发生变化。比如下载服务器针对一个文件预先提供一个MD5值,用户下载完该文件后,用我这个算法重新计算下载文件的MD5值,通过比较这两个值是否相同,就能判断下载的文件是否出错,或者说下载的文件是否被篡改了。MD5实际上一种有损压缩技术,压缩前文件一样MD5值一定一样,反之MD5值一样并不能保证压缩前的数据是一样的。在密码学上发生这样的概率是很小的,所以MD5在密码加密领域有一席之地。但是专业的黑客甚至普通黑客也可以利用MD5值实际是有损压缩技术这一原理,将MD5的逆运算的值作为一张表俗称彩虹表的散列表来破解密码。 利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。

其他网友观点

MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。

1991年,Rivest开发出技术上更为趋近成熟的md5算法。它在MD4的基础上增加了”安全-带子”(safety-belts)的概念。虽然MD5比MD4复杂度大一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中,信息-摘要的大小和填充的必要条件与MD4完全相同。Den boer和Bosselaers曾发现MD5算法中的假冲突(pseudo-collisions),但除此之外就没有其他被发现的加密后结果了。

MD5应用

一致性验证MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在Unix下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如: [1] MD5 (tanajiya.tar.gz) = 38b8c2c1093dd0fec383a9d9ac940515这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。为了让读者朋友对MD5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程:大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为司法机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。具体来说文件的MD5值就像是这个文件的“数字指纹”。每个文件的MD5值是不同的,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”就会发生变化。比如下载服务器针对一个文件预先提供一个MD5值,用户下载完该文件后,用我这个算法重新计算下载文件的MD5值,通过比较这两个值是否相同,就能判断下载的文件是否出错,或者说下载的文件是否被篡改了。MD5实际上一种有损压缩技术,压缩前文件一样MD5值一定一样,反之MD5值一样并不能保证压缩前的数据是一样的。在密码学上发生这样的概率是很小的,所以MD5在密码加密领域有一席之地。但是专业的黑客甚至普通黑客也可以利用MD5值实际是有损压缩技术这一原理,将MD5的逆运算的值作为一张表俗称彩虹表的散列表来破解密码。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。数字签名MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。安全访问认证MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方面。如在Unix系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。MD5将任意长度的“字节串”映射为一个128bit的大整数,并且是通过该128bit反推原始字符串是困难的,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。所以,要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码的Hash值覆盖原来的Hash值就行了。正是因为这个原因,现在被黑客使用最多的一种破译密码的方法就是一种被称为”跑字典”的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。我们假设密码的最大长度为8位字节(8 Bytes),同时密码只能是字母和数字,共26+26+10=62个字节,排列组合出的字典的项数则是P(62,1)+P(62,2)….+P(62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘阵列,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。这种加密技术被广泛的应用于Unix系统中,这也是为什么Unix系统比一般操作系统更为坚固一个重要原因。算法原理对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。 [2] 总体流程如下图所示, 表示第i个分组,每次的运算都由前一轮的128位结果值和第i块512bit值进行运算。

图1.MD5算法的整体流程图

代码实现

与md5是什么相关的文章

版权声明