365bet亚洲官网网址-未来科学大奖得主访谈:王小云的数学和密码人生
2019-09-08 14:39:33 来源:本站
昨天 (9月7日),2019年“未来科学大奖”数学与计算机科学奖宣布授予密码学家王小云,奖励她在密码学领域的开创性贡献。王小云创造了一种毁灭性的密码分析方法,破解了一个又一个国际通用的算法。那么,她的数学和密码人生是怎样展开的呢?

来源 | 《数学文化》2019第10卷第2期

访问整理 | 王涛、王坤

王小云,1966年出生于山东诸城,1981年进入诸城一中学习,1983年起就读于山东大学数学系,先后获得学士、硕士、博士学位,师从潘承洞院士;1993年毕业后留校任教,历任讲师、副教授、教授;2005年6月受聘为清华大学高等研究院“杨振宁讲座教授”。现为第十三届全国人大代表、中国科协女科技工作者专门委员会委员、中国密码学会副理事长、中国数学会常务理事。

王小云的主要研究领域为密码学。在密码分析领域,她系统给出了包括 MD5, SHA-1 在内的系列 Hash 函数算法的碰撞攻击理论,提出了对多个重要 MAC 算法 ALPHA-MAC、MD5-MAC 和 PELICAN 等的子密钥恢复攻击,以及 HMAC-MD5 的区分攻击思想。在密码设计领域,主持设计了国家密码算法标准 Hash 函数 SM3,该算法在我国金融、交通、电力、社保、教育等重要领域得到广泛使用,并于2018年被成功纳入 ISO/IEC 国际密码算法标准。

由于杰出的科学成就,王小云于2005年获得国家自然科学基金杰出青年基金资助,2006年被聘为清华大学“长江学者特聘教授”,同年获得陈嘉庚科学奖、求是杰出科学家奖、第三届中国青年女科学家奖,2008年获得国家自然科学二等奖,2010 年获得苏步青应用数学奖,2014年获得中国密码学会密码创新奖特等奖,2017 年当选为中国科学院院士。

受《数学文化》杂志委托,王涛博士于2018年8月12日和2018年9月27日采访了王小云院士。以下为访谈的主要内容。

早年教育

问 :能否简单介绍一下您的家庭情况。

王 :我出生于一个教师家庭。父亲毕业于诸城师范学校的数学与化学班,所以我们姐弟五人从小就对数理化比较感兴趣。父亲的兴趣比较广泛,他喜欢中国文化,对古代文学很有研究,对中医也有一些研究,他有特别有效的中药方,这些药方曾帮助过很多人。另外父亲还擅长书法绘画,我上小学时,曾来人请他到潍坊市文化局举办文化展览。父亲是一个传统的中国知识分子,家里收藏了很多古书籍,比如《康熙字典》《二十四史》等,其中《二十四史》在文革期间烧掉了。我很遗憾自己没能继承父亲的这些兴趣与爱好,但在艺术方面我的女儿继承下来了。

在母校诸城一中作报告(2018年)

父亲常年在外教书,经常两周才能回来一次。为了让我们能安心学习,母亲承担起了全部的农活和家务,即便再苦再累她总能处理得井井有条。我们姐弟五人都先后考上了镇重点初中,每次离家返校,母亲都要几次起床看星星来判断时间给我们准备食物。后来家里买了钟表,母亲再也不用出屋看星星,可以安稳地多睡一会了。父亲当时感慨地说我们家里最重要的东西就是那个钟表。每当我们遇到想不通的事,母亲总是开导我们要想开,宰相肚里能撑船。当别人做的比我们好时,便教育我们不要嫉妒人家。母亲还告诉我们对待弱势群体要有善心和爱心。可以说,她的很多言行至今还在深深地影响着我,激励着我。母亲真的非常伟大,勤劳善良是她最优秀的品质。在我的记忆里,母亲每天都劳动到深夜,我很小时就陪母亲熬夜。也许正是这个经历,历练了我深夜工作的能力。

问 :您从小就对数学感兴趣了吗?

王 :我对数学有些兴趣,因为父亲给我讲过鸡兔同笼的问题。小学和初中时我基本上是边玩边学,偶尔去钻研一下,数学题也能做出来。我的数理化成绩不错,文科成绩不是特别好。中考的时候我学了40天,顺利地考入了诸城一中。其实我平常的成绩一般,那时最好的学生都上中专,到我们那一届改为最好的学生上高中。上高中后我进行了反思,40天的学习成绩竟然能提高这么多,意识到自己的学习潜力可能很大,便开始了认真地学习。

问 :高中有没有对您很有影响的老师?

王 :我的物理成绩非常好,平常在班里一直都是第一名。我喜欢物理有两个原因,一是初中时的物理不错,做物理题很有感觉;二是上了诸城一中以后,教物理的戴恩浦老师不断地鼓励我,说女孩子能学好物理的不多,一定要好好学。因此我学习物理的兴趣很高又很用功,成绩一直都在前面。

与物理相比,数学成绩只能算得上比较好。数学老师是我的班主任吴世业老师,他总觉得我的数学潜力还没有完全挖掘出来。吴老师的教学经验很丰富,有一次我们模拟考试,他提醒同学们答题要注意方法,若难题花太多时间做不出来,前边的简单题又由于粗心而错了很多,这样会得不偿失,其实我就属于这一类学生。那次考试我把前面的题目都做完了,正在做最后两道难题,吴老师对我说:“你别做了,先把前面的那些题检查一遍。”我就认真地把前面的题检查了一下,然后再做后面的题。平常我数学考不到前几名,结果那一次考得很好,数学老师对我的指导方法很有帮助。等到高考时,我的数学成绩竟然是班里的第一名。当然,数学考得好还另有原因,就是当时我擅长的物理考砸了,所以把追分的希望放在了数学上,竟然能梦想成真。

问 :那您物理考试不理想的原因是什么?

王 :我也不知道。我擅长的物理题目是能量守恒、力的平衡等,这类题目我很有感觉,一般很快就做出来了。但那年高考的物理题与我平常做的不太一样,反正是感觉不太好,最后只考了78分。物理考砸之后,我心想一定要把剩下的科目考好,把平时的成绩发挥出来应该还能考上一个不错的大学。

问 :您当年报考了山东大学。

王 :高考后老师根据我们平时的成绩,给我们拟填报了志愿。我在班里一般是第二名,我们的班长是第一名。老师给我填的志愿是浙江大学,我自己也感觉浙大应该问题不大,事实证明老师的建议是合理的。但我当时不愿意到外省去上大学,只想继续留在山东读书,所以坚持改成了山东大学。

在山大自习室学习

入读山大

问 :请您谈一下初到山东大学的经历。

王 :由于高考数学成绩较好,我报考了山大数学系。但在山大的第一年,我一直在想如何转到物理系去学习。虽然数学系的课也认真听,题也用心做,但绝没有后来做吉米多维奇《数学分析习题集》那么投入。当时一个年级有120多个人,一年级我得的是三等奖,成绩排名大约是20名左右,后来成绩越来越好。

问 :当时山大数学系的情况如何?

王 :我入学时的系主任是潘承洞老师,很快潘老师就相继出任了副校长和校长,系主任由郭大钧老师接替,书记是刘绍刚老师,再后来的系主任是于秀源老师和袁益让老师,书记是黎伯堂老师,印象最深刻的则是我后来刚工作时的系主任刘桂真老师。记得到数学系报到的时候,黑板上写着系里教授的名字:潘承洞、郭大钧、莫叶、袁益让、孙纳正等,那时整个山东大学的教授并不多,很多系都只有副教授,而数学系的教授却有好几个,所以当时山大数学系的师资力量是很雄厚的,给我们上课的都是专业上非常优秀的老师。

问 :您大概什么时候就没有想转系的想法了。

王 :第二年。由于辅导员告诉我,山大转系或许通过对换会更容易些,结果我一直没有等到对换的名额,我就开始专心学习数学了,成绩也不断提升。当时年级里一共有3个班,其中一等奖只有一个名额,二等奖有六到七个名额,我是二等奖获得者之一。

问 :您最喜欢的是哪一门数学课?

王 :我喜欢代数,与代数相关的近世代数、同调代数、交换代数我都选学了,成绩非常好。近世代数的任课老师是王树棠老师,他是印尼归国华侨,改革开放后回到山大,当时任致公党山东副主委,后来出任主委,也是我加入致公党的介绍人。本科时我写过两篇论文,其中一篇获得山大的五四科技论文三等奖,论文获奖与王树棠老师指导有关。印度数学家拉马努金(Ramanujan)的笔记本上有很多数学公式,但没有证明。王树棠老师给了我其中的一个题目,我做了整整一个星期,几乎连上课都在思考这个问题。我们班还有另外一个同学做了近一个月,最后也做出来了,我的证明特别简单只有几页纸,他的证明很复杂,最后我们两个人一起得了三等奖,证明的正确性是由山大的裘卓明教授和展涛教授独立验证的。

当选为致公党十五大代表(2017年)

另外我的点集拓扑学得也很好,点集拓扑的任课老师是李厚源老师,他讲课语速非常快,对学生要求也很严格,我当时考了89分便已经是班里的第一名了。我的实变函数与泛函分析学得也很好,班里很多同学都来向我请教问题。相反,我却没有修过初等数论这门课。

问 :您后来却读了数论方向的研究生。

王 :其实我原本计划读代数方向的研究生。当时山大数学系的代数方向比较薄弱,王树棠老师他们计划把代数发展一下,联系了中科院的万哲先院士帮山大带研究生。当年数学系给了3个名额,至少有一个名额是万院士的。王老师告诉我,读完这个研究生以后会有直接到中国科学院去读博士的机会。

当年加上我一共有4名同学想读代数。就在我们准备填报研究生志愿期间,发生了一件意外的事情。潘老师那时的名气很大,他与王元、陈景润关于“哥德巴赫猜想”的研究共同获得过国家自然科学一等奖,那时又出任山大的校长,因此他每年招收的研究生都是系里最优秀的学生,基本上就是基础数学专业的前两名,可是我们那一届其他优秀生已选好了导师。展涛老师便到我们年级给潘老师寻找优秀的学生。班干部和同学们认为我比较符合条件,便开始做我的思想工作,一开始我并没有同意。

后来报代数方向的同学也来劝我,在填报志愿的时候大家还在做我的工作,我最终同意填报了解析数论,他们三个人则报了代数。当晚王树棠老师非常高兴,以为我报了代数,当知道我报的是数论以后,他一下子变得特别失望,我也内疚了很久。

问 :您在改报数论前后是否与潘先生有过交流?

王 :没有。我报了数论之后也没去找潘老师,后来就直接去考试了,我的考研成绩很好,不是第一就是第二。由于潘老师之前没有带过女学生,对我也不熟悉,一度有些犹豫。于秀源老师是潘老师指导的第一个博士,也是中国首批18名博士之一,1982年毕业后留校任教,曾给我上过课,知道我的成绩很好,建议潘老师收下我这个女学生。就这样,我开始跟随潘老师学习解析数论。

由于潘老师担任校长非常繁忙,平时主要是于秀源老师和展涛老师指导我。于老师那时已经是硕士生导师,此前他主要是帮潘老师带学生,比如我的一个师兄李兆宗也是跟着于老师学习,后来我干脆把导师改成了于老师。一年多以后于老师调到杭州师范学院工作,等我硕士毕业时,学校通知我说导师必须是山大的老师,我就又把导师写回了潘老师。于老师调走后,展涛老师承担了对我的更多指导。

问 :您在研究生阶段如何学习数论?

王:那时潘承洞、潘承彪老师写了一本解析数论的教材,书稿完全是用手写的,正式出版前请于老师审稿校对,因此于老师手里有一份复印件,他就把这个复印件送给我了,让我好好学习。我对此特别珍惜,自己花钱将其精装订成三本,每个定理我都认真学习、亲自推导和验证。当我学到一本半的时候,潘老师和于老师建议我选学密码学,我就停下来了。当年只有我一个人有这套书,后来被一位师兄借去了。我对这套书很有感情,虽然没学成数论,但等到我毕业想收藏这套书的时候,师兄说书已经找不到了。此书于1991年由科学出版社正式出版,它就是《解析数论基础》。

《解析数论基础》

转学密码学

问 :这次转学密码学有没有心理上的波动?

王 :一开始我并不想转到密码学方向,因那时我已很喜欢数论,学起定理来感觉很顺畅,理解力也很好。但与报研究生志愿那次相比,转学密码学的心理波动并不大。那次是因为同学情谊在,劝来劝去最后我顶不住了,而转学密码是导师建议的,方式也比较容易接受。开始于秀源老师试探性地问我是愿意学解析数论还是密码学,我回答说解析数论,于老师便不再提及此事。后来潘老师和于老师最终还是决定安排师兄李兆宗和我学习密码学。

大概在88年国庆节后,日本京都大学的密码学专家一松信(Shin Hitotumatu)来中国讲学,要讲40天的公钥密码课程。当时国内学密码的人很少,山大计算机系的马绍汉老师找到了潘老师,请他让数学系支持一下密码学的研究。李师兄由于要写毕业论文没有时间去,于老师就派了我还有计算机系的一个同学去西安学习。日本专家讲课的内容与我在山大学的差不多,只是更细致,到后面相对深入。课程讲到一半的时候,日本专家由于摔倒受伤,我们的课程提前结束。

问 :是在西安电子科技大学吗?

王 :是的,是西电的张泽增老师组织的。西电是中国非军事高校密码研究的发源地,当时山大有因子分解和椭圆曲线方面的资料,但密码学方面的文献较少,所以课程结束后我就去西电的图书馆查找密码学方面的书籍。在西电我找到了一本讲解比特安全的书,作者是后来获得2012年图灵奖的沙菲·戈德瓦塞尔(Shafi Goldwasser)和西尔维奥·麦克林(Silvio Micali)。这本书的主要思想是求解一个比特等价于密码学难题,我觉得很有意思,便把这本书复印回来了。

我的硕士论文做的是基于丢番图方程的密码设计,相当于拿着初等数论的问题去找应用,还不是真正的密码学的数学问题研究。但有了那本书之后我开始真正学习密码理论了。那本书的视角很独特,以前破解RSA算法的密文需要分解因子问题即要找到素数 p 或者 q,现在只要研究破解一个比特明文的多项式时间算法,就可获得一种破解全部明文的多项式时间算法。

问 :研究生毕业后您又继续跟随潘先生读了博士。

王 :研究生毕业时我有两种选择,一是工作,二是继续读博士,我一时还没定下来。当时有一个进京指标,我可以到北京去工作。于老师问我下一步的打算,我那时还在工作与读博之间犹豫。那时不像现在有直博生,读博士都需要通过考试。我的意思是考一下试试,考不上就去工作。于老师对我要求很严格,说既然考试就要认真准备,考上了可以不读,但考不上再去工作有些丢人。经过认真复习,我顺利地考上了潘老师的博士研究生,并且是山大那个年级中唯一的一个女博士。

问 :潘先生如何指导您?

王 :潘老师虽然自己不做密码研究,但给我提供的参考文献都是最好的。当时流密码领域有一个杰出的密码专家詹姆斯·梅西(James Massey),他写了一本非常前沿的书稿给潘老师,潘老师把它送给了我。我那时正在学公钥密码,并没有认真学习那本书,等到工作后给学生讲授对称密码内容时,发现所有的内容那本书里都有,那真是一本极好的教材,后来我就是用它作参考书给学生们上课。潘老师还送给我一本分解因子的书,因子分解在公钥密码中非常重要。

此外,潘老师还会定期给我们开学术研讨会,询问我们的学习和科研情况,特别是给我们提供一些与专家交流的机会。潘老师认识到零知识证明和计算复杂性理论在密码学中的重要性,并且知道我们在这方面可能会遇到问题。零知识证明可用来构造安全的密码认证协议,计算复杂性理论可用来评估密码难题的破解难度。那个时候复旦大学的朱洪老师是零知识证明的专家,潘老师便把他请来给我们作报告。中科院的堵丁柱老师研究计算复杂性理论,也被潘老师请来作报告。还有一个对我的研究经历有重要影响的老师是蔡吉人院士,潘老师多次邀请蔡院士到山大交流,后来我们一直和蔡院士保持联系。事实证明,潘老师当年的安排非常具有前瞻性。

1993 年博士论文答辩会(左起:展涛,潘承彪,裴定一,潘承洞,王小云,袁益让,王炜,于秀源)

问 :潘先生当时就看准了这些方向?

王 :是的,他是一个具有战略眼光的数学家,对此我也十分惊讶,不知道他是如何做到这一点的。潘老师自己不研究密码,但现代的公钥密码学都是按照他给我的那些文献构建起来的。还有最重要的一点,与最近的抗量子计算密码有关,即安德鲁·奥德里兹科(Andrew Odlyzko)的低密度攻击。公钥密码体制提出来以后有两个大的密码算法,一个是 1977 年由罗恩·李维斯特(Ron Rivest)、阿迪·沙米尔( Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)提出的 RSA,他们三人后来获得了2002年图灵奖;还有一个是基于背包问题设计的密码算法,但这个算法被沙米尔用高维格基约化算法的前版本 LLL 算法破解了。LLL 是一个非常漂亮的算法,与之前解析数论的方法完全不同,采用的是最先进的工具,比如数论中的连分数算法是一维空间的逼近,而 LLL 算法则是多维逼近,比连分数的逼近要复杂得多。奥德里兹科是非常著名的数论专家,他直接把背包问题转化为格,用低密度攻击解释了背包问题的缺陷,事实上大部分的背包问题都是这样被破解的。

潘老师知道这篇论文非常重要,便给了展涛让他们学习,他们知道我做密码就又送给了我。当时我觉得这篇论文很好,但又看不懂,因此只能先把它放起来。那时我基础数学的思维一时还转不过来,理解不了这些算法的思想。到了 2006年我把 MD5 和 SHA-1 破解之后,回头再去看这篇开创性的文章时便觉得很容易了。

问 :从那时起您就开始注意算法了?

王 :是的。但我的博士论文主要还是受到了西电那次学习的影响,做的是比特安全。我读文献有自己的特点,一般只看三分之一左右便不再读下去了,剩下的自己推理揣测,如果论文特别深奥难懂,我会再往下多读一点。由于山大从事密码研究的人很少,我几乎找不到人讨论密码问题。鉴于此,于秀源老师便在1992年“五一”后邀请我去杭州讨论交流。

当时我正在做比特安全问题。在西电复印的那本书里的比特安全问题是基于 RSA 模运算的,模是公开的。我做的是离散对数问题的比特安全性,指数模是未知的。正是带着这个问题我到杭州交流讨论,结果到杭州一个星期之后,我结合之前的一些初步想法,解决了该问题。于老师便建议我回山大准备毕业论文。

留校任教

问 :博士毕业后您就留校工作了。

王 :1993年博士毕业后我面临找工作的问题,于老师和潘老师进行了沟通,最后潘老师决定推荐我到中创软件工作。我硕士毕业时,潘老师也推荐我去中创。当时我还真去了一趟中创,对方让我学习 Linux 操作系统,还有 C 语言。在回来的路上,我在山大新校(现中心校区)南门西边的一个书店,买了两本 Linux 和 C 语言的书,开始学习编程。其实我对这些内容并不排斥,没准以后我还真能做好软件开发。后来我想自己博士毕业到企业发展是不是选错路了,当时我爱人也希望我留校工作,便跟潘老师说自己还是想当老师,潘老师说可以考虑我的想法,后来我就留校了。

1993 年获得山东大学数学博士学位

问 :那您留校之后都教过什么课?

王 :我在数学系教过近世代数,给物理系学生讲过高等数学,后来山大在2002年成立了信息安全专业,我就开始给学生们讲“数论与代数”,这门课程的讲义是我和学生编写的。信息安全专业成立以后,我当时面临师资短缺问题,因为数学院(注:山大数学系 1996 年撤系建院,改为数学与系统科学学院,2008 年更名为数学学院,以下将简称数学院。)真正学密码的只有我一个。这个专业是由计算机系的李大兴老师与我一起申报的,批复后设置在数学院由我负责发展。李大兴老师也是潘老师的博士,毕业后在计算机系工作。

问 :您当时是如何设置信息安全专业课程的?

王 :关于课程设置我是经过研究和思考的,潘老师当年看准的零知识证明、计算复杂性理论都在课程之列。当时我在想一个问题,就是信息安全专业的学生如何快速地学懂密码学。我觉得概率论的课够了,信息论的熵也够了,唯独数论与代数的课程不够。当时只有基础数学专业的学生才选修近世代数和初等数论,但学密码的人又离不开它。那时吴臻老师(现山东大学人事处处长)负责院学科建设,便和我商量能不能把数论和代数合并在一起讲,这样可以使内容更容易理解一些。我是这样设计的,初等数论就讲到素数定理的证明,然后讲一些密码学中常用的素数判定,再介绍一些在密码学中应用广泛的数论难题。连分数在超越数论中才能学到,但它在密码分析中非常重要,可以攻破低加密指数的 RSA 算法,对此我们也加以介绍。特别是连分数方法能破解的,LLL 算法也能破解,有效性会更高,这恰能体现出一维与多维逼近算法的区别。为了增加一 些算法的介绍,我们还对格的基本知识作了讲解。再比如椭圆曲线讲起来比较难,我们就把它作为群的一个例子来讲。

在山东大学指导研究生(2005年)

问 :那真是极好的设计。

王 :我觉得自己当年还挺能折腾的,当然我的头脑也还是比较灵活的。在具体的编写中,需要很多的例子,我参考了一些其他文献,但更多的例子都是我自己设计的。我怕把例子写错了,便倒推求出来,然后再让学生们做一遍。开始时我是每天晚上写讲义,放假时则是白天、晚上都用上,基本上每天工作到凌晨一两点钟。经过一个多月的写作,“数论与代数结构”的讲义终于完成,后来展涛老师建议定名为“公钥密码学的数学基础”。这本讲义在2013年由科学出版社正式出版,被收录在李大潜院士主编的“大学数学科学丛书”中,位列第32本,潘承彪老师给这本书做了序。

问 :科学出版社是如何注意到这本讲义的?

王 :山大信息安全专业刚成立的时候,我曾与科学出版社的陈玉琢编辑交流过密码学的事情。此后她一直与我保持联系,建议我出一本关于密码学的书籍,我当时答应了,但一直没有时间来写。后来我想到了自己的这本讲义,便与教这门课的王明强、孟宪萌老师商量,增加了一些内容,同时也做了部分修改,这本书就是这样出版的。

后来科学出版社向国际出版商 CRC 推荐了一批数学著作,CRC 选中了我们这本书并进行英译,跟我们有多年科研合作的许光午承担了英文翻译的主要工作。这本书还在 2015 年入选了“经典中国出版国际工程”。多年的教学实践证明,这是一本好的教材。

破解MD5

问 :您是什么时候开始从事 Hash 函数研究的?

王 :密码学分为公钥密码与对称密码,我和李大兴老师都在做公钥密码研究,大概 1995 年的时候,他和我商量,我们二人进行了分工,他继续做公钥密码,我来做对称密码。李大兴老师在公钥密码领域做得非常好,那时国内还不太会做 RSA 的快速实现,他应该是中国密码学术领域第一个带头做 RSA 芯片实现的,这样他就有能力做加密机了。

读博士时我学的是公钥密码,对比特安全和可证明安全感兴趣,当时我对 Hash 函数根本没有概念,后来李大兴老师给我关于 Hash 函数介绍的一篇文章,上面显示电子签名都用 Hash 函数。我一看全世界的电子签名都在用这个算法,觉得有点不可思议,心想它到底安全吗?决定去分析一下它们的安全性。那个时候完全不懂,也不知道这些算法别人是怎么设计的。

在山大百年校庆时的留念

问 :然后您就开始研究 Hash 函数了?

王 :当然还有一些其他事情促使我从事 Hash 函数的研究。当时我向国家密码管理部门申请了一个研究 Hash 函数的项目,递交材料时见到有关负责人。他们表示既然申报了,一定会走程序,但这个项目主要支持重点单位的重点人才,难度很大。回来之后我就觉得肯定没希望了,便给于秀源老师打了一个电话,告诉他申报成功的希望不大,因为这个项目是我和他一起申报的。于老师安慰我不要放弃,说我的申请书写得很好,他之前评审过一些国家级的项目,认为我准备的材料并不差。结果在 1996 年元旦那一天,我接到电话说我申请到了一个6万的项目,比当时国家自然科学基金项目支持力度大,当时我根本不相信。

后来我才知道,是信息安全领域的几位老专家帮助了我,他们知道这个方向非常重要,当时在国内还是一个空白,建议给予立项。所以这完全是一件意外的事情,也突破了当时支持项目的基本原则。如果没有这个项目,我可能不会将 Hash 函数继续做下去。得到这个项目后,我高兴地跑去向潘老师汇报,他听完后高兴地用力拍着桌子,连说了几声太好了,于老师就更高兴了。于老师调到杭州师范学院后一直没有放弃对我的指导,我后来从事的 Hash 函数研究,尽管于老师觉得稍微有些偏离了数论,但他还是非常支持我的研究。

问 :那您当时是一个人在做研究?

王 :是的。那时大家普遍没有办公室,只有公共的教研室,我去的较少,主要在家里做研究。对 Hash 函数研究进行了三四个月后,我开始有了一些初步的想法,虽然整个算法我做不了,但是少数的几步我感觉雪崩很慢。克劳德·香农(Claude E. Shannon)有一个观点是任何一个密码算法如果产生强雪崩就是安全的,相当于你从输出完全找不到输入信息的任何数学规律。对于雪崩比较慢的几步,我就按比特来分析,看几步之后输出的差别。我总是假设加法没有比特进位,这样就会雪崩地特别慢,到了八步、十步、二十步还没有雪崩到全空间,但是虽然雪崩慢却不可能发生碰撞。如果考虑比特进位就全乱套了,很快变成随机的了。我就想能不能用方程来控制,如果能加上一个方程,只要这个方程成立,它就没有比特进位或者仅产生一个比特进位,这一下就打通了我的整个思路。