密码学家王小云:十年破解MD5和SHA1两大国际密码

密码学家王小云:十年破解MD5和SHA-1两大国际密码

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

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

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

破解两大国际密码算法

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

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

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

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

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

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

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

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

改变战争走向的古典密码

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

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

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

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

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

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

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

家国情怀塑造密码天才

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

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

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

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

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

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

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

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

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

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

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

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

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

“严师”与“慈母”

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

THE END
1.数据加密哈希算法加密哈希算法散列表(哈希表)、散列函数(哈希函数) 对称/非对称加密 信息摘要 图文彻底搞懂非对称加密(公钥密钥) 哈希算法 哈希思想:哈希表与哈希桶的深度解析 哈希表+哈希桶简介及实现 基本介绍 参考:hash算法详解 定义:散列算法(HashAlgorithm),又称哈希算法,杂凑算法,是将任意长度的二进制值串映射为固定长度的二进制值串,这https://blog.csdn.net/qq_38496750/article/details/135203924
2.介绍哈希算法及其在数字签名中的应用到目前为止,你已经了解如何使用加密来防止消息被窥探。 加密还用于验证数据(如文档和图像)是否被篡改。 通过称为哈希的过程完成此操作。 什么是哈希? 哈希使用算法(也称为哈希函数)将原始文本转换为固定长度的唯一值。 这称为哈希值。 每次使用同一算法对相同的文本进行哈希处理时,都会https://docs.microsoft.com/zh-cn/training/modules/describe-concepts-of-cryptography/4-describe-hashing-its-application-digital-signing/
3.深入研究哈希的概念和原理哈希函数 哈希函数采用可变长度的输入数据并产生固定长度的输出值。我们通常将其称为哈希码、摘要、哈希值或简称哈希。#优质作者榜#哈希函数有一些重要的属性:散列是一种单向过程。因此,我们无法从其哈希中检索原始数据。哈希函数是确定性的。因此,当我们将相同的输入传递给哈希函数时,它总是生成相同的输出哈希码,https://baijiahao.baidu.com/s?id=1786215886634044507&wfr=spider&for=pc
4.小白入门——哈希算法哈希(Hash)也称为散列,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,这个输出值就是散列值。 哈希表 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放https://www.jianshu.com/p/07d9b19bb265
5.未来科学大奖首位女得主王小云:多关注密码学界年轻人才—新京报王小云破解了5个国际通用哈希函数算法,她将成功的密码归因于“坚持”,“一个人能够坚持10年做一件事,一定能做成。” 新京报快讯(记者 张璐)今年9月7日,2019未来科学大奖揭晓,这项设立4年的大奖迎来首位女性得主——密码学家王小云。 在信息时代,金融服务、网络安全等背后都离不开密码系统的“护航”。在大众眼中,https://www.bjnews.com.cn/detail/157395355915964.html
6.Comunion区块链深度学习系列哈希碰撞原理什么是原像?函数有定义域,有词语,有对应关系。那么类比到这里,原像是指定义域里面的一些未知数。 引用哈希算法应用中挖矿的例子来说,X是定义域,里面的部分就是原像,Y就是一个值域。 我们来看其定义,几乎所有消息摘要,都难以用ppn算法计算出一个原像。 https://m.thepaper.cn/wap/resource/jsp/newsDetail_forward_8774038
7.王小云院士回顾展望密码前沿研究王小云院士是国际著名的密码学家。她提出了密码哈希函数的碰撞攻击理论,并以此攻破了多个以前被普遍认为是安全的密码哈希函数标准,推动并帮助了新一代密码哈希函数标准的设计,并已在金融、电网、交通等重要领域广泛使用。 11月1日,中国密码学会——密码安全与人工智能前沿研讨会在陕西省西安市召开。多位行业主管部门领导https://www.sxgmj.gov.cn/f/view-13-36704448610b44d9a8e321fcd4c66a21.html
8.hash函数的基本知识·点滴算法·看云将关键字分割成位数相同的几个部分(最后一部分位数可以不同),然后取这几个部分的叠加和(舍弃进位)作为哈希地址。 关键字位数很多,而且关键字中每一位数字分布大致均匀时,可以采用折叠法。 3 处理hash冲突 1)冲突是如何产生的? 上文中谈到,哈希函数是指如何对关键字进行编址的,这里的关键字的范围很广,可视为https://www.kancloud.cn/digest/pieces-algorithm/163623
9.科学网—[转载]基于区块链与函数加密的隐私数据安全共享模型研究步骤5:解密。DU首先利用Usk对链上获取的被Upk加密的sk进行解密。然后从CSP获取密文,并与链上的哈希值进行对比,验证文件是否被篡改,最后运行解密算法获取F(x)。 4 算法构造 下面详细阐述本文模型中使用的函数加密和零知识证明的具体算法设计及构造过程。 https://blog.sciencenet.cn/blog-3472670-1362036.html
10.熵选择多重二进制编码基于映射的哈希算法, 如LSH算法[7]和ITQ算法[14], 这类算法的哈希函数为线性映射函数。基于映射的哈希算法根据新样本点与线性哈希映射函数的映射结果的符号, 将新样本点编码为二进制编码。基于查找的哈希算法所生成的二进制编码对数据集在欧式空间内的分布特性有较强的自适应性, 近邻检索性能较好。但基于查找的http://xuebao.jlu.edu.cn/gxb/article/2017/1671-5497-47-1-218.html
11.什么是哈希算法?常见的哈希算法有哪些?区块链技术区块链哈希算法是一种数学函数或者算法,它可以将任意长度的数据(称为“消息”)转换为固定长度的字符串(称为“哈希值”或者简称“哈希”)。哈希算法的作用是将数据进行一次性的加密,从而生成一个唯一且不可逆的标识。哈希算法在数据安全、数据压缩、数据检索等领域有着广泛的应用。本文将介绍哈希算法的原理、特点、用途和常https://www.jb51.net/blockchain/891421.html
12.哈希算法(hash)加密解密腾讯云开发者社区一、哈希算法(hash)加密解密介绍 代码语言:javascript 复制 哈希,英文叫做 hash。 哈希函数(hashfunction)可以把 任意长度的数据(字节串)计算出一个为固定长度的结果数据。 我们习惯把 要计算 的数据称之为 源数据, 计算后的结果数据称之为 哈希值(hash value)或者摘要(digests)。 https://cloud.tencent.com/developer/article/2080658
13.80个常用的哈希算法Tangle:一种基于有向无环图(DAG)的哈希函数,用于IOTA加密货币的事务验证和存储。 Streebog:俄罗斯标准的哈希函数,生成256位和512位哈希值,广泛应用于密码学和安全领域。 Poly1305-AES:使用AES加密算法和Poly1305消息认证码生成哈希值,用于身份验证和数据完整性校验。 https://www.bilibili.com/read/cv23729219/
14.基于相似度驱动的线性哈希模型参数再优化方法无监督哈希学习算法在哈希函数设计或哈希码的学习过程中不需要样本标签信息, 其中, 谱哈希[2, 3]和迭代量化哈希[4]及其改进版本是两类典型的无监督哈希算法.近年来, 在图像检索领域, 结合样本的其他属性, 出现了很多无监督哈希学习算法[5-8], 例如, Zhu等人[5, 6]提出了利用文本辅助的语义迁移构造无监督哈希https://www.jos.org.cn/html/2020/4/5918.htm