东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

中国密码女天才,破解美国运算 100 万年才可能解开的密码

  • 2019-09-12
  • 本文字数:2498 字

    阅读完需:约 8 分钟

中国密码女天才,破解美国运算100万年才可能解开的密码

王小云,中国密码学第一人。她不仅成功破解了五大国际著名密码算法——MD5、HAVAL-128、MD4 、RIPEMD 和 SHA-1,而且在密码学中做出开创性贡献,荣获 2019 未来科学大奖。



近日,有“中国版诺贝尔奖”之称的第四届“未来科学大奖”公布获奖名单。其中,清华大学教授王小云荣获“数学与计算机科学奖”。未来科学大奖开设四年来,她是首位女性得主,获得 100 万美元奖金。


未来科学大奖成立于 2016 年,是中国大陆首个非官方、非营利、民间发起的科学奖项,关注原创性的基础科学研究,奖励在大中华区做出杰出科技成果的科学家(不限国籍)。目前,未来科学大奖设置“生命科学”、“物质科学”和“数学与计算机科学”三大奖项,单项奖金 100 万美金。


王小云的获奖理由是:


奖励她在密码学中的开创性贡献,她的创新性密码学分析方法揭示了被广泛使用的密码哈希函数的弱点,促使了新一代密码哈希函数标准。


在互联网世界,信息安全是一切的基础。而信息安全的基础之一就是密码学。简单来说,密码学是研究编制密码和破译密码的技术科学。


基于数学难题保障其安全性的现代密码学是 1976 年开始发展起来的新兴学科。现代密码学分为公钥密钥与对称密码两个分支。密码学可以保障网络信息的机密性、合法性、不可抵赖性以及完整性。除了机密性外,其它的三个属性大都需要 Hash 函数保驾护航。



随着密码学的发展,它被应用于许多方面,比如身份认证、密码管理器等。当前,备受关注的比特币、区块链技术,都有大量密码学知识的应用。


据悉,一种先进的密码被设计出来后,要破解需要 10 年左右时间,而设计一种新的密码大约需要 8 年时间。一种密码算法,一旦被人破译,这种算法就会从应用中淘汰,因为它不再安全可靠。为保证安全性,人们会采用一种未破译且更安全的密码算法。

破解 5 大国际加密算法

2004 年 8 月,在美国加州圣巴巴拉召开的国际密码大会(简称“美密会”)上,王小云“石破天惊”,她宣布自己和研究团队成功破解四个国际著名密码算法MD5、HAVAL-128、MD4RIPEMD 。消息一经宣布,引起巨大轰动。


一位国际科研工作者 Arjen K. Lenstra 这样描述当时场面,“从上世纪九十年代初起,我参加过几乎所有在国际上最重要的密码学会议,但我从没有经历过像 2004 年美密会上的盛况:当王小云教授报告结束后,大家几乎不敢相信她的惊人成就,会场起立给王教授,报以长久而热烈的掌声,人们拥向讲台向她表示衷心的祝贺,她带去的报告材料被一抢而光,那的确是个令人难以忘怀的时刻。”

攻克号称全球最安全的密码—MD5

值得注意的是,这四个国际著名密码算法中,MD5 被称为“密码学家们心目中最无望攻克的领域”。


MD5 是由美国标准技术局颁布的算法,全球计算机网络大量使用,运算量达到 2 的 80 次方,即使采用现在最快的巨型计算机,也要运算 100 万年以上才可能破解。


许多顶尖密码学家尝试破译 MD5,他们在这个难题上摸索了 15 年之久,都没有取得突破性成果。


王小云提出的密码哈希函数的碰撞攻击理论,即模差分比特分析法,成功破解 MD5 哈希函数算法。


当年大会总结报告上写道:我们该怎么办?MD5 被重创了,它即将从应用中淘汰。


鉴于王小云成功破解 MD5,美国国家标准与技术研究院宣布,美国政府 5 年内不再使用 MD5。

SHA-1 密码算法迎来末日

虽然 MD5 被破解,但是 SHA-1 仍然被美国视为是安全可靠的。事实上,SHA-1 也到了末日。


据了解,SHA-1 是一种由美国国家标准技术研究院(NIST)和美国国家安全局(NSA)设计的密码散列函数,它被视为计算机安全系统的基石。


仅在 MD5 被破解 5 个月后,即 2005 年 2 月,在美国召开的国际信息安全 RSA 研讨会上,王小云又宣布成功破译 SHA-1,而且只用了 2 个多月,再次引起轰动。


更厉害的是,王小云破解密码的方法与众不同。在大家都借助电脑破解密码时,她破译密码大部分是手算。两个国际最安全的密码,竟然大部分是手算的。


因此,美国国家标准技术研究院宣布,美国政府五年内不再使用 SHA-1。



一直以来,MD5 和 SHA-1 被公认为国际最先进、应用范围最广的两大重要算法。现在,这两大算法均被破解,证明电子签名在现实中的安全性难以完全保证。


对于自己的工作,王小云认为,“在公众理解上,密码分析者很像黑客,但我们的工作与黑客是有明显区别的。黑客是盗取密码保护的信息以获取利益,而密码分析家从事的是基础理论研究,是为了评估密码算法的安全性,找到其漏洞,以设计出更安全的密码算法。”


2007 年,在王小云带领下,科学家们为我国设计了第一个哈希函数算法标准 SM3,经过国内外顶尖密码专家评估,它的安全性极高。她还主持设计了国家密码算法标准 Hash 函数 SM3,该算法在我国金融、交通、电力、社保、教育等重要领域得到广泛使用。


附:著名密码算法介绍:


MD4——MD4 是麻省理工学院教授 Ronald Rivest 于 1990 年设计的一种信息摘要算法。它是一种用来测试信息完整性的密码散列函数的实行。其摘要长度为 128 位,一般 128 位长的 MD4 散列被表示为 32 位的十六进制数字。这个算法影响了后来的算法如 MD5、SHA 家族和 RIPEMD 等。


MD5——MD5 信息摘要算法,英文 MD5 Message-Digest Algorithm,一种被广泛使用的密码散列函数,可以产生出一个 128 位(16 字节)的散列值(hash value),用于确保信息传输完整一致。MD5 由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于 1992 年公开,用以取代 MD4 算法。


RIPEMD——RACE Integrity Primitives Evaluation Message Digest,中文即 RACE 原始完整性校验消息摘要,是 Hans Dobbertin 等 3 人在 Md4、Md5 的基础上,于 1996 年提出来的。算法共有 4 个标准 128、160、256 和 320,其对应输出长度分别为 16 字节、20 字节、32 字节和 40 字节。


SHA-1——SHA-1,全称 Secure Hash Algorithm 1,中文名即安全散列算法 1。它是一种密码散列函数,由美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1 可以生成一个被称为消息摘要的 160 位(20 字节)散列值,散列值通常的呈现形式为 40 个十六进制数。


相关链接:


刚刚,奖金711万!"中国宝妈"破解美国运算100万年才可能解开的密码!


未来科学大奖产生第一位女性得主,其他是谁?


2019-09-12 14:065545

评论 1 条评论

发布
用户头像
是找出不同报文同hash值吧,破解这词在这用是不是不太合适?
2019-09-12 15:23
回复
没有更多了
发现更多内容

线程的三种等待唤醒机制(面试必问)

hepingfly

Java 线程 等待唤醒

学习“利益相关者”后对自己工作的一点思考

隋泽

认识产品经理

ALone

Java-可重入锁

hepingfly

Java 可重入锁

请用思维导图画出架构师训练营所有技术知识点

DL

大数据知识专栏 - 数据仓库

小马哥

大数据 hive 数据仓库 七日更

第九周作业

Binary

机器学习·学习笔记之:无监督学习

Nydia

【JS】Array.of() 创建数组

德育处主任

JavaScript 大前端 js ES6 28天写作

云游戏的那些事儿!读《大厂们的下一件大事儿》有感

李忠良

28天写作

LeetCode题解:105. 从前序与中序遍历序列构造二叉树,Simple O(n) without map,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

产品 0 期 - 第一章作业

让时间说真话

产品经理

产品经理训练营第二周作业-利益相关者

隋泽

产品经理训练营

第二章作业

DF

如何基于海思芯片快速搭建Agora RTC应用

Hanson

WebRTC

架构师训练营第4周作业



GNUCash 2: 缺点

lidaobing

GNUCash 28天写作

吐血整理:推荐几款顶级好用的IDEA插件

Silently9527

Java intellij-idea idea插件

【CSS】页面顶部阴影

德育处主任

CSS 大前端 html/css CSS小技巧 28天写作

微信直播也有跳舞小姐姐了 | 视频号28天(17)

赵新龙

28天写作

时间复杂度与常见排列算法

Changing Lin

算法

JavaScript07 - 流程控制语句

Mr.Cactus

JavaScript

JVM 垃圾收集算法

看山

JVM 垃圾回收算法

架构师训练营第四周作业 - 学习总结

阿德儿

【函数计算实践】一个应用案例

程序员架构进阶

阿里云 架构 项目实战 函数计算 28天写作

【JS】Array.from() 将伪数组转换成数组

德育处主任

JavaScript js ES6 array 28天写作

批判性思维自修课(一)

石君

28天写作 批判性思维

JavaScript08 - 数组

Mr.Cactus

JavaScript

架构师训练营第四周作业 - 命题作业

阿德儿

开发质量提升系列:checklist投产检查列表(上)

罗小龙

代码质量 28天写作 checklist

28天瞎写的第二百二十七天:离开后要留下什么?

树上

28天写作

中国密码女天才,破解美国运算100万年才可能解开的密码_安全_万佳_InfoQ精选文章