'未來科學大獎得主訪談:王小云的數學和密碼人生'

"

昨天 (9月7日),2019年“未來科學大獎”數學與計算機科學獎宣佈授予密碼學家王小云,獎勵她在密碼學領域的開創性貢獻。王小云創造了一種毀滅性的密碼分析方法,破解了一個又一個國際通用的算法。那麼,她的數學和密碼人生是怎樣展開的呢?

來源 | 《數學文化》2019第10卷第2期

訪問整理 | 王濤、王坤

"

昨天 (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日採訪了王小云院士。以下為訪談的主要內容。


早年教育


問 :能否簡單介紹一下您的家庭情況。

王 :我出生於一個教師家庭。父親畢業於諸城師範學校的數學與化學班,所以我們姐弟五人從小就對數理化比較感興趣。父親的興趣比較廣泛,他喜歡中國文化,對古代文學很有研究,對中醫也有一些研究,他有特別有效的中藥方,這些藥方曾幫助過很多人。另外父親還擅長書法繪畫,我上小學時,曾來人請他到濰坊市文化局舉辦文化展覽。父親是一個傳統的中國知識分子,家裡收藏了很多古書籍,比如《康熙字典》《二十四史》等,其中《二十四史》在文革期間燒掉了。我很遺憾自己沒能繼承父親的這些興趣與愛好,但在藝術方面我的女兒繼承下來了。

"

昨天 (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分。物理考砸之後,我心想一定要把剩下的科目考好,把平時的成績發揮出來應該還能考上一個不錯的大學。

問 :您當年報考了山東大學。

王 :高考後老師根據我們平時的成績,給我們擬填報了志願。我在班裡一般是第二名,我們的班長是第一名。老師給我填的志願是浙江大學,我自己也感覺浙大應該問題不大,事實證明老師的建議是合理的。但我當時不願意到外省去上大學,只想繼續留在山東讀書,所以堅持改成了山東大學。

"

昨天 (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)的筆記本上有很多數學公式,但沒有證明。王樹棠老師給了我其中的一個題目,我做了整整一個星期,幾乎連上課都在思考這個問題。我們班還有另外一個同學做了近一個月,最後也做出來了,我的證明特別簡單隻有幾頁紙,他的證明很複雜,最後我們兩個人一起得了三等獎,證明的正確性是由山大的裘卓明教授和展濤教授獨立驗證的。


"

昨天 (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年由科學出版社正式出版,它就是《解析數論基礎》。


"

昨天 (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),他寫了一本非常前沿的書稿給潘老師,潘老師把它送給了我。我那時正在學公鑰密碼,並沒有認真學習那本書,等到工作後給學生講授對稱密碼內容時,發現所有的內容那本書裡都有,那真是一本極好的教材,後來我就是用它作參考書給學生們上課。潘老師還送給我一本分解因子的書,因子分解在公鑰密碼中非常重要。

此外,潘老師還會定期給我們開學術研討會,詢問我們的學習和科研情況,特別是給我們提供一些與專家交流的機會。潘老師認識到零知識證明和計算複雜性理論在密碼學中的重要性,並且知道我們在這方面可能會遇到問題。零知識證明可用來構造安全的密碼認證協議,計算複雜性理論可用來評估密碼難題的破解難度。那個時候復旦大學的朱洪老師是零知識證明的專家,潘老師便把他請來給我們作報告。中科院的堵丁柱老師研究計算複雜性理論,也被潘老師請來作報告。還有一個對我的研究經歷有重要影響的老師是蔡吉人院士,潘老師多次邀請蔡院士到山大交流,後來我們一直和蔡院士保持聯繫。事實證明,潘老師當年的安排非常具有前瞻性。

"

昨天 (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 語言的書,開始學習編程。其實我對這些內容並不排斥,沒準以後我還真能做好軟件開發。後來我想自己博士畢業到企業發展是不是選錯路了,當時我愛人也希望我留校工作,便跟潘老師說自己還是想當老師,潘老師說可以考慮我的想法,後來我就留校了。

"

昨天 (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 算法也能破解,有效性會更高,這恰能體現出一維與多維逼近算法的區別。為了增加一 些算法的介紹,我們還對格的基本知識作了講解。再比如橢圓曲線講起來比較難,我們就把它作為群的一個例子來講。

"

昨天 (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 函數。我一看全世界的電子簽名都在用這個算法,覺得有點不可思議,心想它到底安全嗎?決定去分析一下它們的安全性。那個時候完全不懂,也不知道這些算法別人是怎麼設計的。


"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

未來科學大獎得主訪談:王小云的數學和密碼人生

2004年美密會宣佈破解 MD5


國際著名 PGP 公司負責人菲利普·齊默曼(Philip R. Zimmermann)在會議現場當眾對我說:“憑藉這一成果,你可以在美國任何一所大學獲得職位。”然後大家都很激動,Rump Session 主席斯圖爾特·哈伯(Stuart Haber)高興地到處跑來跑去,直到多年後他在北京見到我回想起那次大會還很激動。

當時整個現場非常震驚,大家建議我把結果放在網上,讓其他密碼學家去驗證正確性。我和來學嘉老師工作到凌晨三點後把結果放到了網上,結果早上8點來老師來敲我的門,說他的郵箱爆了。郵件中大家都說我的其他算法攻擊結果沒有問題,但對 MD5 的攻擊結果不對。吃飯時還有人說 MD5 的結果有問題,我說肯定沒問題。到了會場後,比哈姆也說我的 MD5 結果不對,我建議兩個人來一個現場測試。我們倆人各自迅速打開了電腦,MD5 一共有64步,我們從倒數第一步開始搜索,不得不說比哈姆這樣頂級的密碼分析學家真是厲害,他的速度非常之快,我的反應也很快,結果從倒數第一步到第一步都不一樣,我心想壞了。那時我腦子很靈光,馬上判斷出兩個人有一個初始值不同。比哈姆說他的是標準程序,我說我用的是《密碼學與安全:從理論到應用》(Cryptography and Security: From Theory to Applications)書上的,比哈姆電腦裡恰好有這本書的電子版,馬上把它放進去運行。結果不到一秒鐘,聽到比哈姆說“congratulation,you break MD5”。

問 :是在會場嗎?

王 :就在會場。會上他祝賀了我,茶歇的時候他告訴別人我破解的 MD5 沒有問題,其他人也開始祝賀我。然後到了 Rump Session 報告的時候,當我講到用手(by hand)破解 MD4 的時候,會場響起了雷鳴般的掌聲,當時把我嚇得還以為自己講錯了。我講完後,幾乎全場的人都站起來鼓掌,掌聲持續了好久。密碼學家 Yvo Desmedt 當時胳膊骨折了,他用另一隻手擊打大腿表示鼓掌,我當時都蒙了。

問 :Rump Session 時您有照片留下嗎?

王 :作報告時我愛人有一些錄像,但報告一結束,許多密碼專家把我給包圍了,現代密碼學的奠基人之一沙米爾等人都過來向我表示祝賀,人太多把我愛人擠到外面去了。這也成為我愛人很遺憾的一件事。當時場面太熱烈他也蒙了,都不知道去拍照錄像了。不過那年美密會我還是有幾張珍貴照片留下,其中一張是我正在聊天,被惠特菲爾德·迪菲(Whitfield Diffie)等拉過去拍了一張照片。雖然當時沒有留下很多的影像,但是後來 Arjen K. Lenstra(格基約化算法 LLL 以及數域篩法的第一作者)對這個場面進行了描述“從上世紀九十年代初起,我參加過幾乎所有在國際上最重要的密碼學會議(亞密會、美密會和歐密會),但我從沒有經歷過像今年會上的盛況;當王教授陳述其報告的時候,在場聆聽報告的人們彼此相望,幾乎不相信王教授的驚人發現,然而在她的報告結束後,全場立刻起立給王教授報以長久而熱烈的掌聲,人們擁向講臺向她表示衷心的祝賀,她帶去的報告材料被一搶而光。那的確是個令人難以忘懷的時刻。”

"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

未來科學大獎得主訪談:王小云的數學和密碼人生

2004年美密會宣佈破解 MD5


國際著名 PGP 公司負責人菲利普·齊默曼(Philip R. Zimmermann)在會議現場當眾對我說:“憑藉這一成果,你可以在美國任何一所大學獲得職位。”然後大家都很激動,Rump Session 主席斯圖爾特·哈伯(Stuart Haber)高興地到處跑來跑去,直到多年後他在北京見到我回想起那次大會還很激動。

當時整個現場非常震驚,大家建議我把結果放在網上,讓其他密碼學家去驗證正確性。我和來學嘉老師工作到凌晨三點後把結果放到了網上,結果早上8點來老師來敲我的門,說他的郵箱爆了。郵件中大家都說我的其他算法攻擊結果沒有問題,但對 MD5 的攻擊結果不對。吃飯時還有人說 MD5 的結果有問題,我說肯定沒問題。到了會場後,比哈姆也說我的 MD5 結果不對,我建議兩個人來一個現場測試。我們倆人各自迅速打開了電腦,MD5 一共有64步,我們從倒數第一步開始搜索,不得不說比哈姆這樣頂級的密碼分析學家真是厲害,他的速度非常之快,我的反應也很快,結果從倒數第一步到第一步都不一樣,我心想壞了。那時我腦子很靈光,馬上判斷出兩個人有一個初始值不同。比哈姆說他的是標準程序,我說我用的是《密碼學與安全:從理論到應用》(Cryptography and Security: From Theory to Applications)書上的,比哈姆電腦裡恰好有這本書的電子版,馬上把它放進去運行。結果不到一秒鐘,聽到比哈姆說“congratulation,you break MD5”。

問 :是在會場嗎?

王 :就在會場。會上他祝賀了我,茶歇的時候他告訴別人我破解的 MD5 沒有問題,其他人也開始祝賀我。然後到了 Rump Session 報告的時候,當我講到用手(by hand)破解 MD4 的時候,會場響起了雷鳴般的掌聲,當時把我嚇得還以為自己講錯了。我講完後,幾乎全場的人都站起來鼓掌,掌聲持續了好久。密碼學家 Yvo Desmedt 當時胳膊骨折了,他用另一隻手擊打大腿表示鼓掌,我當時都蒙了。

問 :Rump Session 時您有照片留下嗎?

王 :作報告時我愛人有一些錄像,但報告一結束,許多密碼專家把我給包圍了,現代密碼學的奠基人之一沙米爾等人都過來向我表示祝賀,人太多把我愛人擠到外面去了。這也成為我愛人很遺憾的一件事。當時場面太熱烈他也蒙了,都不知道去拍照錄像了。不過那年美密會我還是有幾張珍貴照片留下,其中一張是我正在聊天,被惠特菲爾德·迪菲(Whitfield Diffie)等拉過去拍了一張照片。雖然當時沒有留下很多的影像,但是後來 Arjen K. Lenstra(格基約化算法 LLL 以及數域篩法的第一作者)對這個場面進行了描述“從上世紀九十年代初起,我參加過幾乎所有在國際上最重要的密碼學會議(亞密會、美密會和歐密會),但我從沒有經歷過像今年會上的盛況;當王教授陳述其報告的時候,在場聆聽報告的人們彼此相望,幾乎不相信王教授的驚人發現,然而在她的報告結束後,全場立刻起立給王教授報以長久而熱烈的掌聲,人們擁向講臺向她表示衷心的祝賀,她帶去的報告材料被一搶而光。那的確是個令人難以忘懷的時刻。”

未來科學大獎得主訪談:王小云的數學和密碼人生

與迪菲(左 2)在 2004 年美密會上的合影

問 :2004 年美密會應該是您一生比較重要的時刻之一吧?

王 :是的。但當時還有一個問題,雖然我把 MD5 破了,但是初始值不同,雖然被驗證攻擊方法正確,還需要計算正確初始值下的破解結果。當時我很著急,但由於沒有國際漫遊,我只能打國際長途電話給自己的學生於紅波。那時我腦子很混亂,只記得好多人給我提供幫助,比如提供賬號,但最後由我愛人陪著我在校園的電話亭裡打國際長途。於紅波非常負責任,她知道我去美國開會這件事情比較重要,便在假期裡提早回到了學校。我打電話問她在哪裡,她說在山大,我說太好了,MD5 的初始值錯了,看能不能更換正確的初始值再運行一下。我讓她找到彭實戈老師的女兒,她和另外一位老師負責山大高性能計算機的運行,此前我也多次在週末麻煩她們。程序經過運行很快新的正確結果出來了。

所以等到 Rump Session 的時候,我宣佈的是正確結果。其他密碼學家都很吃驚,知道我一定有破解技術,把錯誤的初始值換成一個正確的初始值後能在短時間內運算出正確結果。第二天早上吃飯的時候,一個密碼專家對我說,他們政府詢問他 what happened。還有一個日本的密碼專家, 告訴我她是為日本政府工作的,他們政府讓她諮詢我哪個 Hash 函數還是安全的。後來在 2005 年的歐密會上,比哈姆更是感慨地對我說:“你知道嗎?破解 MD5 是我一生的夢想。現在你破解了,你贏了,這就是遊戲規則。”

"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

未來科學大獎得主訪談:王小云的數學和密碼人生

2004年美密會宣佈破解 MD5


國際著名 PGP 公司負責人菲利普·齊默曼(Philip R. Zimmermann)在會議現場當眾對我說:“憑藉這一成果,你可以在美國任何一所大學獲得職位。”然後大家都很激動,Rump Session 主席斯圖爾特·哈伯(Stuart Haber)高興地到處跑來跑去,直到多年後他在北京見到我回想起那次大會還很激動。

當時整個現場非常震驚,大家建議我把結果放在網上,讓其他密碼學家去驗證正確性。我和來學嘉老師工作到凌晨三點後把結果放到了網上,結果早上8點來老師來敲我的門,說他的郵箱爆了。郵件中大家都說我的其他算法攻擊結果沒有問題,但對 MD5 的攻擊結果不對。吃飯時還有人說 MD5 的結果有問題,我說肯定沒問題。到了會場後,比哈姆也說我的 MD5 結果不對,我建議兩個人來一個現場測試。我們倆人各自迅速打開了電腦,MD5 一共有64步,我們從倒數第一步開始搜索,不得不說比哈姆這樣頂級的密碼分析學家真是厲害,他的速度非常之快,我的反應也很快,結果從倒數第一步到第一步都不一樣,我心想壞了。那時我腦子很靈光,馬上判斷出兩個人有一個初始值不同。比哈姆說他的是標準程序,我說我用的是《密碼學與安全:從理論到應用》(Cryptography and Security: From Theory to Applications)書上的,比哈姆電腦裡恰好有這本書的電子版,馬上把它放進去運行。結果不到一秒鐘,聽到比哈姆說“congratulation,you break MD5”。

問 :是在會場嗎?

王 :就在會場。會上他祝賀了我,茶歇的時候他告訴別人我破解的 MD5 沒有問題,其他人也開始祝賀我。然後到了 Rump Session 報告的時候,當我講到用手(by hand)破解 MD4 的時候,會場響起了雷鳴般的掌聲,當時把我嚇得還以為自己講錯了。我講完後,幾乎全場的人都站起來鼓掌,掌聲持續了好久。密碼學家 Yvo Desmedt 當時胳膊骨折了,他用另一隻手擊打大腿表示鼓掌,我當時都蒙了。

問 :Rump Session 時您有照片留下嗎?

王 :作報告時我愛人有一些錄像,但報告一結束,許多密碼專家把我給包圍了,現代密碼學的奠基人之一沙米爾等人都過來向我表示祝賀,人太多把我愛人擠到外面去了。這也成為我愛人很遺憾的一件事。當時場面太熱烈他也蒙了,都不知道去拍照錄像了。不過那年美密會我還是有幾張珍貴照片留下,其中一張是我正在聊天,被惠特菲爾德·迪菲(Whitfield Diffie)等拉過去拍了一張照片。雖然當時沒有留下很多的影像,但是後來 Arjen K. Lenstra(格基約化算法 LLL 以及數域篩法的第一作者)對這個場面進行了描述“從上世紀九十年代初起,我參加過幾乎所有在國際上最重要的密碼學會議(亞密會、美密會和歐密會),但我從沒有經歷過像今年會上的盛況;當王教授陳述其報告的時候,在場聆聽報告的人們彼此相望,幾乎不相信王教授的驚人發現,然而在她的報告結束後,全場立刻起立給王教授報以長久而熱烈的掌聲,人們擁向講臺向她表示衷心的祝賀,她帶去的報告材料被一搶而光。那的確是個令人難以忘懷的時刻。”

未來科學大獎得主訪談:王小云的數學和密碼人生

與迪菲(左 2)在 2004 年美密會上的合影

問 :2004 年美密會應該是您一生比較重要的時刻之一吧?

王 :是的。但當時還有一個問題,雖然我把 MD5 破了,但是初始值不同,雖然被驗證攻擊方法正確,還需要計算正確初始值下的破解結果。當時我很著急,但由於沒有國際漫遊,我只能打國際長途電話給自己的學生於紅波。那時我腦子很混亂,只記得好多人給我提供幫助,比如提供賬號,但最後由我愛人陪著我在校園的電話亭裡打國際長途。於紅波非常負責任,她知道我去美國開會這件事情比較重要,便在假期裡提早回到了學校。我打電話問她在哪裡,她說在山大,我說太好了,MD5 的初始值錯了,看能不能更換正確的初始值再運行一下。我讓她找到彭實戈老師的女兒,她和另外一位老師負責山大高性能計算機的運行,此前我也多次在週末麻煩她們。程序經過運行很快新的正確結果出來了。

所以等到 Rump Session 的時候,我宣佈的是正確結果。其他密碼學家都很吃驚,知道我一定有破解技術,把錯誤的初始值換成一個正確的初始值後能在短時間內運算出正確結果。第二天早上吃飯的時候,一個密碼專家對我說,他們政府詢問他 what happened。還有一個日本的密碼專家, 告訴我她是為日本政府工作的,他們政府讓她諮詢我哪個 Hash 函數還是安全的。後來在 2005 年的歐密會上,比哈姆更是感慨地對我說:“你知道嗎?破解 MD5 是我一生的夢想。現在你破解了,你贏了,這就是遊戲規則。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2006 年榮獲“求是傑出科學家獎”(左起:查濟民女兒,周光召,劉璧如,王小云,楊振寧,姚期智)


破解SHA-1


問 :您又是如何破解 SHA-1 的?

王 :2004年 11月,多伯丁請我去他那裡訪問。他是德國波鴻大學的教授,當時歐洲密碼工程的總體負責人。多伯丁是研究 Hash 函數的著名專家,就是他首次給出 MD4 的碰撞結果,他評估過 SHA-0,所以比較瞭解 SHA-0 和 SHA-1 的安全性。和我交流時,他預測了2005年密碼領域的兩個重要工作,其中一個工作他希望 SHA-1 可以被破到 57 步,當時其他人只能破到 40 步。我當時心想自己肯定能找到 57 步的碰撞,便隨口說了回去試試。其實破解SHA-1 我們只用了不到 3 個月,這期間發生了很多有趣和不可思議的事情。當時美國國家標準與技術研究院(NIST) 密碼的技術負責人公開說 MD5 雖然被破解了,但是 SHA-1 還沒發現任何安全隱患,結果沒過幾天就被我們給破解了。

從德國回來後我對於紅波說要把 SHA-1 分析到 57 步。SHA-1 有一個不 好的地方,它存在不可能差分。有一些看似很好的攻擊路線(差分路線),但是會在某個比特產生矛盾,這樣的路線是行不通的,因為不可能一個比特方程等於 1 和 0 同時並存。後來有一天我跟學生聊天說,如果把不可能變成可能就好了,學生說這是不可能的事。後來學生走了,我花了兩週時間什麼都不幹,把不可能差分變為可能差分,這樣整個攻擊就成功了,剩下的就是編程找到一個 57 步的實例了,並給出全算法的攻擊路線。


"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

未來科學大獎得主訪談:王小云的數學和密碼人生

2004年美密會宣佈破解 MD5


國際著名 PGP 公司負責人菲利普·齊默曼(Philip R. Zimmermann)在會議現場當眾對我說:“憑藉這一成果,你可以在美國任何一所大學獲得職位。”然後大家都很激動,Rump Session 主席斯圖爾特·哈伯(Stuart Haber)高興地到處跑來跑去,直到多年後他在北京見到我回想起那次大會還很激動。

當時整個現場非常震驚,大家建議我把結果放在網上,讓其他密碼學家去驗證正確性。我和來學嘉老師工作到凌晨三點後把結果放到了網上,結果早上8點來老師來敲我的門,說他的郵箱爆了。郵件中大家都說我的其他算法攻擊結果沒有問題,但對 MD5 的攻擊結果不對。吃飯時還有人說 MD5 的結果有問題,我說肯定沒問題。到了會場後,比哈姆也說我的 MD5 結果不對,我建議兩個人來一個現場測試。我們倆人各自迅速打開了電腦,MD5 一共有64步,我們從倒數第一步開始搜索,不得不說比哈姆這樣頂級的密碼分析學家真是厲害,他的速度非常之快,我的反應也很快,結果從倒數第一步到第一步都不一樣,我心想壞了。那時我腦子很靈光,馬上判斷出兩個人有一個初始值不同。比哈姆說他的是標準程序,我說我用的是《密碼學與安全:從理論到應用》(Cryptography and Security: From Theory to Applications)書上的,比哈姆電腦裡恰好有這本書的電子版,馬上把它放進去運行。結果不到一秒鐘,聽到比哈姆說“congratulation,you break MD5”。

問 :是在會場嗎?

王 :就在會場。會上他祝賀了我,茶歇的時候他告訴別人我破解的 MD5 沒有問題,其他人也開始祝賀我。然後到了 Rump Session 報告的時候,當我講到用手(by hand)破解 MD4 的時候,會場響起了雷鳴般的掌聲,當時把我嚇得還以為自己講錯了。我講完後,幾乎全場的人都站起來鼓掌,掌聲持續了好久。密碼學家 Yvo Desmedt 當時胳膊骨折了,他用另一隻手擊打大腿表示鼓掌,我當時都蒙了。

問 :Rump Session 時您有照片留下嗎?

王 :作報告時我愛人有一些錄像,但報告一結束,許多密碼專家把我給包圍了,現代密碼學的奠基人之一沙米爾等人都過來向我表示祝賀,人太多把我愛人擠到外面去了。這也成為我愛人很遺憾的一件事。當時場面太熱烈他也蒙了,都不知道去拍照錄像了。不過那年美密會我還是有幾張珍貴照片留下,其中一張是我正在聊天,被惠特菲爾德·迪菲(Whitfield Diffie)等拉過去拍了一張照片。雖然當時沒有留下很多的影像,但是後來 Arjen K. Lenstra(格基約化算法 LLL 以及數域篩法的第一作者)對這個場面進行了描述“從上世紀九十年代初起,我參加過幾乎所有在國際上最重要的密碼學會議(亞密會、美密會和歐密會),但我從沒有經歷過像今年會上的盛況;當王教授陳述其報告的時候,在場聆聽報告的人們彼此相望,幾乎不相信王教授的驚人發現,然而在她的報告結束後,全場立刻起立給王教授報以長久而熱烈的掌聲,人們擁向講臺向她表示衷心的祝賀,她帶去的報告材料被一搶而光。那的確是個令人難以忘懷的時刻。”

未來科學大獎得主訪談:王小云的數學和密碼人生

與迪菲(左 2)在 2004 年美密會上的合影

問 :2004 年美密會應該是您一生比較重要的時刻之一吧?

王 :是的。但當時還有一個問題,雖然我把 MD5 破了,但是初始值不同,雖然被驗證攻擊方法正確,還需要計算正確初始值下的破解結果。當時我很著急,但由於沒有國際漫遊,我只能打國際長途電話給自己的學生於紅波。那時我腦子很混亂,只記得好多人給我提供幫助,比如提供賬號,但最後由我愛人陪著我在校園的電話亭裡打國際長途。於紅波非常負責任,她知道我去美國開會這件事情比較重要,便在假期裡提早回到了學校。我打電話問她在哪裡,她說在山大,我說太好了,MD5 的初始值錯了,看能不能更換正確的初始值再運行一下。我讓她找到彭實戈老師的女兒,她和另外一位老師負責山大高性能計算機的運行,此前我也多次在週末麻煩她們。程序經過運行很快新的正確結果出來了。

所以等到 Rump Session 的時候,我宣佈的是正確結果。其他密碼學家都很吃驚,知道我一定有破解技術,把錯誤的初始值換成一個正確的初始值後能在短時間內運算出正確結果。第二天早上吃飯的時候,一個密碼專家對我說,他們政府詢問他 what happened。還有一個日本的密碼專家, 告訴我她是為日本政府工作的,他們政府讓她諮詢我哪個 Hash 函數還是安全的。後來在 2005 年的歐密會上,比哈姆更是感慨地對我說:“你知道嗎?破解 MD5 是我一生的夢想。現在你破解了,你贏了,這就是遊戲規則。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2006 年榮獲“求是傑出科學家獎”(左起:查濟民女兒,周光召,劉璧如,王小云,楊振寧,姚期智)


破解SHA-1


問 :您又是如何破解 SHA-1 的?

王 :2004年 11月,多伯丁請我去他那裡訪問。他是德國波鴻大學的教授,當時歐洲密碼工程的總體負責人。多伯丁是研究 Hash 函數的著名專家,就是他首次給出 MD4 的碰撞結果,他評估過 SHA-0,所以比較瞭解 SHA-0 和 SHA-1 的安全性。和我交流時,他預測了2005年密碼領域的兩個重要工作,其中一個工作他希望 SHA-1 可以被破到 57 步,當時其他人只能破到 40 步。我當時心想自己肯定能找到 57 步的碰撞,便隨口說了回去試試。其實破解SHA-1 我們只用了不到 3 個月,這期間發生了很多有趣和不可思議的事情。當時美國國家標準與技術研究院(NIST) 密碼的技術負責人公開說 MD5 雖然被破解了,但是 SHA-1 還沒發現任何安全隱患,結果沒過幾天就被我們給破解了。

從德國回來後我對於紅波說要把 SHA-1 分析到 57 步。SHA-1 有一個不 好的地方,它存在不可能差分。有一些看似很好的攻擊路線(差分路線),但是會在某個比特產生矛盾,這樣的路線是行不通的,因為不可能一個比特方程等於 1 和 0 同時並存。後來有一天我跟學生聊天說,如果把不可能變成可能就好了,學生說這是不可能的事。後來學生走了,我花了兩週時間什麼都不幹,把不可能差分變為可能差分,這樣整個攻擊就成功了,剩下的就是編程找到一個 57 步的實例了,並給出全算法的攻擊路線。


未來科學大獎得主訪談:王小云的數學和密碼人生


在山東大學工作(2005年)


問 :後面應該很順利了吧。

王 :也不盡然。我開始讓學生協助編程,編好後把山大數學院的機房的所有電腦停下來運行 SHA-1。當時寒假已經開始,我讓學生把程序弄好後回家,由我來負責監督計算機的運行。春節前的一天,我陪愛人去看望了他的導師曲音波老師,曲老師已經知道我破解 MD5 的事情非常高興。那時濟南已經冰天雪地,曲老師非要出門送我們回去,一直送到了高架橋上,我說還要回山大查看程序運行結果,那些程序已經運行 8 天了。按照道理,那麼多電腦一天就可以運行出來。結果到了山大以後,我發現一個結果都沒有出來,我失望之下便把所有電腦都給關了,然後就回家了。

"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

未來科學大獎得主訪談:王小云的數學和密碼人生

2004年美密會宣佈破解 MD5


國際著名 PGP 公司負責人菲利普·齊默曼(Philip R. Zimmermann)在會議現場當眾對我說:“憑藉這一成果,你可以在美國任何一所大學獲得職位。”然後大家都很激動,Rump Session 主席斯圖爾特·哈伯(Stuart Haber)高興地到處跑來跑去,直到多年後他在北京見到我回想起那次大會還很激動。

當時整個現場非常震驚,大家建議我把結果放在網上,讓其他密碼學家去驗證正確性。我和來學嘉老師工作到凌晨三點後把結果放到了網上,結果早上8點來老師來敲我的門,說他的郵箱爆了。郵件中大家都說我的其他算法攻擊結果沒有問題,但對 MD5 的攻擊結果不對。吃飯時還有人說 MD5 的結果有問題,我說肯定沒問題。到了會場後,比哈姆也說我的 MD5 結果不對,我建議兩個人來一個現場測試。我們倆人各自迅速打開了電腦,MD5 一共有64步,我們從倒數第一步開始搜索,不得不說比哈姆這樣頂級的密碼分析學家真是厲害,他的速度非常之快,我的反應也很快,結果從倒數第一步到第一步都不一樣,我心想壞了。那時我腦子很靈光,馬上判斷出兩個人有一個初始值不同。比哈姆說他的是標準程序,我說我用的是《密碼學與安全:從理論到應用》(Cryptography and Security: From Theory to Applications)書上的,比哈姆電腦裡恰好有這本書的電子版,馬上把它放進去運行。結果不到一秒鐘,聽到比哈姆說“congratulation,you break MD5”。

問 :是在會場嗎?

王 :就在會場。會上他祝賀了我,茶歇的時候他告訴別人我破解的 MD5 沒有問題,其他人也開始祝賀我。然後到了 Rump Session 報告的時候,當我講到用手(by hand)破解 MD4 的時候,會場響起了雷鳴般的掌聲,當時把我嚇得還以為自己講錯了。我講完後,幾乎全場的人都站起來鼓掌,掌聲持續了好久。密碼學家 Yvo Desmedt 當時胳膊骨折了,他用另一隻手擊打大腿表示鼓掌,我當時都蒙了。

問 :Rump Session 時您有照片留下嗎?

王 :作報告時我愛人有一些錄像,但報告一結束,許多密碼專家把我給包圍了,現代密碼學的奠基人之一沙米爾等人都過來向我表示祝賀,人太多把我愛人擠到外面去了。這也成為我愛人很遺憾的一件事。當時場面太熱烈他也蒙了,都不知道去拍照錄像了。不過那年美密會我還是有幾張珍貴照片留下,其中一張是我正在聊天,被惠特菲爾德·迪菲(Whitfield Diffie)等拉過去拍了一張照片。雖然當時沒有留下很多的影像,但是後來 Arjen K. Lenstra(格基約化算法 LLL 以及數域篩法的第一作者)對這個場面進行了描述“從上世紀九十年代初起,我參加過幾乎所有在國際上最重要的密碼學會議(亞密會、美密會和歐密會),但我從沒有經歷過像今年會上的盛況;當王教授陳述其報告的時候,在場聆聽報告的人們彼此相望,幾乎不相信王教授的驚人發現,然而在她的報告結束後,全場立刻起立給王教授報以長久而熱烈的掌聲,人們擁向講臺向她表示衷心的祝賀,她帶去的報告材料被一搶而光。那的確是個令人難以忘懷的時刻。”

未來科學大獎得主訪談:王小云的數學和密碼人生

與迪菲(左 2)在 2004 年美密會上的合影

問 :2004 年美密會應該是您一生比較重要的時刻之一吧?

王 :是的。但當時還有一個問題,雖然我把 MD5 破了,但是初始值不同,雖然被驗證攻擊方法正確,還需要計算正確初始值下的破解結果。當時我很著急,但由於沒有國際漫遊,我只能打國際長途電話給自己的學生於紅波。那時我腦子很混亂,只記得好多人給我提供幫助,比如提供賬號,但最後由我愛人陪著我在校園的電話亭裡打國際長途。於紅波非常負責任,她知道我去美國開會這件事情比較重要,便在假期裡提早回到了學校。我打電話問她在哪裡,她說在山大,我說太好了,MD5 的初始值錯了,看能不能更換正確的初始值再運行一下。我讓她找到彭實戈老師的女兒,她和另外一位老師負責山大高性能計算機的運行,此前我也多次在週末麻煩她們。程序經過運行很快新的正確結果出來了。

所以等到 Rump Session 的時候,我宣佈的是正確結果。其他密碼學家都很吃驚,知道我一定有破解技術,把錯誤的初始值換成一個正確的初始值後能在短時間內運算出正確結果。第二天早上吃飯的時候,一個密碼專家對我說,他們政府詢問他 what happened。還有一個日本的密碼專家, 告訴我她是為日本政府工作的,他們政府讓她諮詢我哪個 Hash 函數還是安全的。後來在 2005 年的歐密會上,比哈姆更是感慨地對我說:“你知道嗎?破解 MD5 是我一生的夢想。現在你破解了,你贏了,這就是遊戲規則。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2006 年榮獲“求是傑出科學家獎”(左起:查濟民女兒,周光召,劉璧如,王小云,楊振寧,姚期智)


破解SHA-1


問 :您又是如何破解 SHA-1 的?

王 :2004年 11月,多伯丁請我去他那裡訪問。他是德國波鴻大學的教授,當時歐洲密碼工程的總體負責人。多伯丁是研究 Hash 函數的著名專家,就是他首次給出 MD4 的碰撞結果,他評估過 SHA-0,所以比較瞭解 SHA-0 和 SHA-1 的安全性。和我交流時,他預測了2005年密碼領域的兩個重要工作,其中一個工作他希望 SHA-1 可以被破到 57 步,當時其他人只能破到 40 步。我當時心想自己肯定能找到 57 步的碰撞,便隨口說了回去試試。其實破解SHA-1 我們只用了不到 3 個月,這期間發生了很多有趣和不可思議的事情。當時美國國家標準與技術研究院(NIST) 密碼的技術負責人公開說 MD5 雖然被破解了,但是 SHA-1 還沒發現任何安全隱患,結果沒過幾天就被我們給破解了。

從德國回來後我對於紅波說要把 SHA-1 分析到 57 步。SHA-1 有一個不 好的地方,它存在不可能差分。有一些看似很好的攻擊路線(差分路線),但是會在某個比特產生矛盾,這樣的路線是行不通的,因為不可能一個比特方程等於 1 和 0 同時並存。後來有一天我跟學生聊天說,如果把不可能變成可能就好了,學生說這是不可能的事。後來學生走了,我花了兩週時間什麼都不幹,把不可能差分變為可能差分,這樣整個攻擊就成功了,剩下的就是編程找到一個 57 步的實例了,並給出全算法的攻擊路線。


未來科學大獎得主訪談:王小云的數學和密碼人生


在山東大學工作(2005年)


問 :後面應該很順利了吧。

王 :也不盡然。我開始讓學生協助編程,編好後把山大數學院的機房的所有電腦停下來運行 SHA-1。當時寒假已經開始,我讓學生把程序弄好後回家,由我來負責監督計算機的運行。春節前的一天,我陪愛人去看望了他的導師曲音波老師,曲老師已經知道我破解 MD5 的事情非常高興。那時濟南已經冰天雪地,曲老師非要出門送我們回去,一直送到了高架橋上,我說還要回山大查看程序運行結果,那些程序已經運行 8 天了。按照道理,那麼多電腦一天就可以運行出來。結果到了山大以後,我發現一個結果都沒有出來,我失望之下便把所有電腦都給關了,然後就回家了。

未來科學大獎得主訪談:王小云的數學和密碼人生


我把信息量改過來之後,所有程序的運行就如我估計的那樣。一開始十分鐘出一個縮短輪的破解結果,一個小時出一個更多輪的破解結果,如果一個小時出的結果沒問題,那說明後面的攻擊路線就不會有問題了。我利用自己僅有的一臺電腦,用大量的數學方程控制它出我想要的結果。比如我設 47 步,15 分鐘就出來了結果;再比如我設 49 步,半個小時就出來了我想要的結果;我又挑戰 50 步,我判斷一個小時的運行時間,結果一個小時出來兩三個。在等待這些結果的時候,我就在那裡玩“蜘蛛紙牌”。說來奇怪,那天晚上每一局我都贏了。第二天我在有 64 個 CPU 的計算機上運行計算所有步數的結果。

問 :您又是如何公佈破解 SHA-1 結果的?

王:最後就是寫論文了。展濤校長知道我們破解 SHA-1 後,對此事非常關心,在論文完成的最後階段和投稿期間給予高度關注。

我們是在 05 年 2 月 14 號投稿給美密會,把論文發給了沙米爾與李維斯特。這之後還有一個故事,2 月 15 日正好世界 RSA 大會召開,這個會議的規模很龐大,有上萬人蔘加,正式註冊的有幾千人。比爾蓋茨等一些公司的總裁都要作演講。其中有一個密碼討論板塊,由五位頂級的密碼專家(包括三位圖靈獎得主沙米爾、李維斯特和迪菲),基本上都是現代密碼學的奠基人,要介紹密碼學的最新進展,SHA-1 自然是要討論的。沙米爾收到我們的論文後,便給我們(王小云、於紅波、尹伊群)寫信,詢問是否允許他們幫我們宣佈這一破解結果。尹伊群打電話找我,表示她已經同意,我也表示了同意,那時我正在農村老家休息,也不怎麼上網,結果又翻天了,全世界都在報道。事後從發佈的視頻得知宣佈時間 7 分鐘。沙米爾認為 SHA-1 的破解將引起軒然大波。

"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

未來科學大獎得主訪談:王小云的數學和密碼人生

2004年美密會宣佈破解 MD5


國際著名 PGP 公司負責人菲利普·齊默曼(Philip R. Zimmermann)在會議現場當眾對我說:“憑藉這一成果,你可以在美國任何一所大學獲得職位。”然後大家都很激動,Rump Session 主席斯圖爾特·哈伯(Stuart Haber)高興地到處跑來跑去,直到多年後他在北京見到我回想起那次大會還很激動。

當時整個現場非常震驚,大家建議我把結果放在網上,讓其他密碼學家去驗證正確性。我和來學嘉老師工作到凌晨三點後把結果放到了網上,結果早上8點來老師來敲我的門,說他的郵箱爆了。郵件中大家都說我的其他算法攻擊結果沒有問題,但對 MD5 的攻擊結果不對。吃飯時還有人說 MD5 的結果有問題,我說肯定沒問題。到了會場後,比哈姆也說我的 MD5 結果不對,我建議兩個人來一個現場測試。我們倆人各自迅速打開了電腦,MD5 一共有64步,我們從倒數第一步開始搜索,不得不說比哈姆這樣頂級的密碼分析學家真是厲害,他的速度非常之快,我的反應也很快,結果從倒數第一步到第一步都不一樣,我心想壞了。那時我腦子很靈光,馬上判斷出兩個人有一個初始值不同。比哈姆說他的是標準程序,我說我用的是《密碼學與安全:從理論到應用》(Cryptography and Security: From Theory to Applications)書上的,比哈姆電腦裡恰好有這本書的電子版,馬上把它放進去運行。結果不到一秒鐘,聽到比哈姆說“congratulation,you break MD5”。

問 :是在會場嗎?

王 :就在會場。會上他祝賀了我,茶歇的時候他告訴別人我破解的 MD5 沒有問題,其他人也開始祝賀我。然後到了 Rump Session 報告的時候,當我講到用手(by hand)破解 MD4 的時候,會場響起了雷鳴般的掌聲,當時把我嚇得還以為自己講錯了。我講完後,幾乎全場的人都站起來鼓掌,掌聲持續了好久。密碼學家 Yvo Desmedt 當時胳膊骨折了,他用另一隻手擊打大腿表示鼓掌,我當時都蒙了。

問 :Rump Session 時您有照片留下嗎?

王 :作報告時我愛人有一些錄像,但報告一結束,許多密碼專家把我給包圍了,現代密碼學的奠基人之一沙米爾等人都過來向我表示祝賀,人太多把我愛人擠到外面去了。這也成為我愛人很遺憾的一件事。當時場面太熱烈他也蒙了,都不知道去拍照錄像了。不過那年美密會我還是有幾張珍貴照片留下,其中一張是我正在聊天,被惠特菲爾德·迪菲(Whitfield Diffie)等拉過去拍了一張照片。雖然當時沒有留下很多的影像,但是後來 Arjen K. Lenstra(格基約化算法 LLL 以及數域篩法的第一作者)對這個場面進行了描述“從上世紀九十年代初起,我參加過幾乎所有在國際上最重要的密碼學會議(亞密會、美密會和歐密會),但我從沒有經歷過像今年會上的盛況;當王教授陳述其報告的時候,在場聆聽報告的人們彼此相望,幾乎不相信王教授的驚人發現,然而在她的報告結束後,全場立刻起立給王教授報以長久而熱烈的掌聲,人們擁向講臺向她表示衷心的祝賀,她帶去的報告材料被一搶而光。那的確是個令人難以忘懷的時刻。”

未來科學大獎得主訪談:王小云的數學和密碼人生

與迪菲(左 2)在 2004 年美密會上的合影

問 :2004 年美密會應該是您一生比較重要的時刻之一吧?

王 :是的。但當時還有一個問題,雖然我把 MD5 破了,但是初始值不同,雖然被驗證攻擊方法正確,還需要計算正確初始值下的破解結果。當時我很著急,但由於沒有國際漫遊,我只能打國際長途電話給自己的學生於紅波。那時我腦子很混亂,只記得好多人給我提供幫助,比如提供賬號,但最後由我愛人陪著我在校園的電話亭裡打國際長途。於紅波非常負責任,她知道我去美國開會這件事情比較重要,便在假期裡提早回到了學校。我打電話問她在哪裡,她說在山大,我說太好了,MD5 的初始值錯了,看能不能更換正確的初始值再運行一下。我讓她找到彭實戈老師的女兒,她和另外一位老師負責山大高性能計算機的運行,此前我也多次在週末麻煩她們。程序經過運行很快新的正確結果出來了。

所以等到 Rump Session 的時候,我宣佈的是正確結果。其他密碼學家都很吃驚,知道我一定有破解技術,把錯誤的初始值換成一個正確的初始值後能在短時間內運算出正確結果。第二天早上吃飯的時候,一個密碼專家對我說,他們政府詢問他 what happened。還有一個日本的密碼專家, 告訴我她是為日本政府工作的,他們政府讓她諮詢我哪個 Hash 函數還是安全的。後來在 2005 年的歐密會上,比哈姆更是感慨地對我說:“你知道嗎?破解 MD5 是我一生的夢想。現在你破解了,你贏了,這就是遊戲規則。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2006 年榮獲“求是傑出科學家獎”(左起:查濟民女兒,周光召,劉璧如,王小云,楊振寧,姚期智)


破解SHA-1


問 :您又是如何破解 SHA-1 的?

王 :2004年 11月,多伯丁請我去他那裡訪問。他是德國波鴻大學的教授,當時歐洲密碼工程的總體負責人。多伯丁是研究 Hash 函數的著名專家,就是他首次給出 MD4 的碰撞結果,他評估過 SHA-0,所以比較瞭解 SHA-0 和 SHA-1 的安全性。和我交流時,他預測了2005年密碼領域的兩個重要工作,其中一個工作他希望 SHA-1 可以被破到 57 步,當時其他人只能破到 40 步。我當時心想自己肯定能找到 57 步的碰撞,便隨口說了回去試試。其實破解SHA-1 我們只用了不到 3 個月,這期間發生了很多有趣和不可思議的事情。當時美國國家標準與技術研究院(NIST) 密碼的技術負責人公開說 MD5 雖然被破解了,但是 SHA-1 還沒發現任何安全隱患,結果沒過幾天就被我們給破解了。

從德國回來後我對於紅波說要把 SHA-1 分析到 57 步。SHA-1 有一個不 好的地方,它存在不可能差分。有一些看似很好的攻擊路線(差分路線),但是會在某個比特產生矛盾,這樣的路線是行不通的,因為不可能一個比特方程等於 1 和 0 同時並存。後來有一天我跟學生聊天說,如果把不可能變成可能就好了,學生說這是不可能的事。後來學生走了,我花了兩週時間什麼都不幹,把不可能差分變為可能差分,這樣整個攻擊就成功了,剩下的就是編程找到一個 57 步的實例了,並給出全算法的攻擊路線。


未來科學大獎得主訪談:王小云的數學和密碼人生


在山東大學工作(2005年)


問 :後面應該很順利了吧。

王 :也不盡然。我開始讓學生協助編程,編好後把山大數學院的機房的所有電腦停下來運行 SHA-1。當時寒假已經開始,我讓學生把程序弄好後回家,由我來負責監督計算機的運行。春節前的一天,我陪愛人去看望了他的導師曲音波老師,曲老師已經知道我破解 MD5 的事情非常高興。那時濟南已經冰天雪地,曲老師非要出門送我們回去,一直送到了高架橋上,我說還要回山大查看程序運行結果,那些程序已經運行 8 天了。按照道理,那麼多電腦一天就可以運行出來。結果到了山大以後,我發現一個結果都沒有出來,我失望之下便把所有電腦都給關了,然後就回家了。

未來科學大獎得主訪談:王小云的數學和密碼人生


我把信息量改過來之後,所有程序的運行就如我估計的那樣。一開始十分鐘出一個縮短輪的破解結果,一個小時出一個更多輪的破解結果,如果一個小時出的結果沒問題,那說明後面的攻擊路線就不會有問題了。我利用自己僅有的一臺電腦,用大量的數學方程控制它出我想要的結果。比如我設 47 步,15 分鐘就出來了結果;再比如我設 49 步,半個小時就出來了我想要的結果;我又挑戰 50 步,我判斷一個小時的運行時間,結果一個小時出來兩三個。在等待這些結果的時候,我就在那裡玩“蜘蛛紙牌”。說來奇怪,那天晚上每一局我都贏了。第二天我在有 64 個 CPU 的計算機上運行計算所有步數的結果。

問 :您又是如何公佈破解 SHA-1 結果的?

王:最後就是寫論文了。展濤校長知道我們破解 SHA-1 後,對此事非常關心,在論文完成的最後階段和投稿期間給予高度關注。

我們是在 05 年 2 月 14 號投稿給美密會,把論文發給了沙米爾與李維斯特。這之後還有一個故事,2 月 15 日正好世界 RSA 大會召開,這個會議的規模很龐大,有上萬人蔘加,正式註冊的有幾千人。比爾蓋茨等一些公司的總裁都要作演講。其中有一個密碼討論板塊,由五位頂級的密碼專家(包括三位圖靈獎得主沙米爾、李維斯特和迪菲),基本上都是現代密碼學的奠基人,要介紹密碼學的最新進展,SHA-1 自然是要討論的。沙米爾收到我們的論文後,便給我們(王小云、於紅波、尹伊群)寫信,詢問是否允許他們幫我們宣佈這一破解結果。尹伊群打電話找我,表示她已經同意,我也表示了同意,那時我正在農村老家休息,也不怎麼上網,結果又翻天了,全世界都在報道。事後從發佈的視頻得知宣佈時間 7 分鐘。沙米爾認為 SHA-1 的破解將引起軒然大波。

未來科學大獎得主訪談:王小云的數學和密碼人生

與比哈姆教授討論 Hash 函數(2005年歐密會)


問 :Hash 函數破解對業界帶來的影響以及國際同行的評價是什麼?

王 :針對 MD5 和 SHA-1 的破解,美國 NIST 於 2005 年和 2006 年專門舉辦兩次研討會探討 MD5 和 SHA-1 破解帶來的安全威脅,研究徵集新的 Hash 函數標準的競爭策略,並出臺了 Hash 函數新標準 SHA-3 的五年設計工程。針對我們對 SHA-1 破解的進一步改進結果,NIST 發文宣佈王教授確實發現了 SHA-1 的實際碰撞攻擊。2006 年 3 月 15 日,NIST 出臺了 Hash 函數新政策, 規定美國聯邦機構應該停止 SHA-1 在數字簽名、數字時間戳以及其他基於 SHA-1 無碰撞特性的密碼應用,並在 2010 年以後使用 SHA-2。美國數學會發表“數學與網絡安全”專欄文章,介紹了 14 世紀以來包括圖靈,沙米爾等五位圖靈獎得主在內的 19 位密碼學家的工作,我是其中之一。


"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

未來科學大獎得主訪談:王小云的數學和密碼人生

2004年美密會宣佈破解 MD5


國際著名 PGP 公司負責人菲利普·齊默曼(Philip R. Zimmermann)在會議現場當眾對我說:“憑藉這一成果,你可以在美國任何一所大學獲得職位。”然後大家都很激動,Rump Session 主席斯圖爾特·哈伯(Stuart Haber)高興地到處跑來跑去,直到多年後他在北京見到我回想起那次大會還很激動。

當時整個現場非常震驚,大家建議我把結果放在網上,讓其他密碼學家去驗證正確性。我和來學嘉老師工作到凌晨三點後把結果放到了網上,結果早上8點來老師來敲我的門,說他的郵箱爆了。郵件中大家都說我的其他算法攻擊結果沒有問題,但對 MD5 的攻擊結果不對。吃飯時還有人說 MD5 的結果有問題,我說肯定沒問題。到了會場後,比哈姆也說我的 MD5 結果不對,我建議兩個人來一個現場測試。我們倆人各自迅速打開了電腦,MD5 一共有64步,我們從倒數第一步開始搜索,不得不說比哈姆這樣頂級的密碼分析學家真是厲害,他的速度非常之快,我的反應也很快,結果從倒數第一步到第一步都不一樣,我心想壞了。那時我腦子很靈光,馬上判斷出兩個人有一個初始值不同。比哈姆說他的是標準程序,我說我用的是《密碼學與安全:從理論到應用》(Cryptography and Security: From Theory to Applications)書上的,比哈姆電腦裡恰好有這本書的電子版,馬上把它放進去運行。結果不到一秒鐘,聽到比哈姆說“congratulation,you break MD5”。

問 :是在會場嗎?

王 :就在會場。會上他祝賀了我,茶歇的時候他告訴別人我破解的 MD5 沒有問題,其他人也開始祝賀我。然後到了 Rump Session 報告的時候,當我講到用手(by hand)破解 MD4 的時候,會場響起了雷鳴般的掌聲,當時把我嚇得還以為自己講錯了。我講完後,幾乎全場的人都站起來鼓掌,掌聲持續了好久。密碼學家 Yvo Desmedt 當時胳膊骨折了,他用另一隻手擊打大腿表示鼓掌,我當時都蒙了。

問 :Rump Session 時您有照片留下嗎?

王 :作報告時我愛人有一些錄像,但報告一結束,許多密碼專家把我給包圍了,現代密碼學的奠基人之一沙米爾等人都過來向我表示祝賀,人太多把我愛人擠到外面去了。這也成為我愛人很遺憾的一件事。當時場面太熱烈他也蒙了,都不知道去拍照錄像了。不過那年美密會我還是有幾張珍貴照片留下,其中一張是我正在聊天,被惠特菲爾德·迪菲(Whitfield Diffie)等拉過去拍了一張照片。雖然當時沒有留下很多的影像,但是後來 Arjen K. Lenstra(格基約化算法 LLL 以及數域篩法的第一作者)對這個場面進行了描述“從上世紀九十年代初起,我參加過幾乎所有在國際上最重要的密碼學會議(亞密會、美密會和歐密會),但我從沒有經歷過像今年會上的盛況;當王教授陳述其報告的時候,在場聆聽報告的人們彼此相望,幾乎不相信王教授的驚人發現,然而在她的報告結束後,全場立刻起立給王教授報以長久而熱烈的掌聲,人們擁向講臺向她表示衷心的祝賀,她帶去的報告材料被一搶而光。那的確是個令人難以忘懷的時刻。”

未來科學大獎得主訪談:王小云的數學和密碼人生

與迪菲(左 2)在 2004 年美密會上的合影

問 :2004 年美密會應該是您一生比較重要的時刻之一吧?

王 :是的。但當時還有一個問題,雖然我把 MD5 破了,但是初始值不同,雖然被驗證攻擊方法正確,還需要計算正確初始值下的破解結果。當時我很著急,但由於沒有國際漫遊,我只能打國際長途電話給自己的學生於紅波。那時我腦子很混亂,只記得好多人給我提供幫助,比如提供賬號,但最後由我愛人陪著我在校園的電話亭裡打國際長途。於紅波非常負責任,她知道我去美國開會這件事情比較重要,便在假期裡提早回到了學校。我打電話問她在哪裡,她說在山大,我說太好了,MD5 的初始值錯了,看能不能更換正確的初始值再運行一下。我讓她找到彭實戈老師的女兒,她和另外一位老師負責山大高性能計算機的運行,此前我也多次在週末麻煩她們。程序經過運行很快新的正確結果出來了。

所以等到 Rump Session 的時候,我宣佈的是正確結果。其他密碼學家都很吃驚,知道我一定有破解技術,把錯誤的初始值換成一個正確的初始值後能在短時間內運算出正確結果。第二天早上吃飯的時候,一個密碼專家對我說,他們政府詢問他 what happened。還有一個日本的密碼專家, 告訴我她是為日本政府工作的,他們政府讓她諮詢我哪個 Hash 函數還是安全的。後來在 2005 年的歐密會上,比哈姆更是感慨地對我說:“你知道嗎?破解 MD5 是我一生的夢想。現在你破解了,你贏了,這就是遊戲規則。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2006 年榮獲“求是傑出科學家獎”(左起:查濟民女兒,周光召,劉璧如,王小云,楊振寧,姚期智)


破解SHA-1


問 :您又是如何破解 SHA-1 的?

王 :2004年 11月,多伯丁請我去他那裡訪問。他是德國波鴻大學的教授,當時歐洲密碼工程的總體負責人。多伯丁是研究 Hash 函數的著名專家,就是他首次給出 MD4 的碰撞結果,他評估過 SHA-0,所以比較瞭解 SHA-0 和 SHA-1 的安全性。和我交流時,他預測了2005年密碼領域的兩個重要工作,其中一個工作他希望 SHA-1 可以被破到 57 步,當時其他人只能破到 40 步。我當時心想自己肯定能找到 57 步的碰撞,便隨口說了回去試試。其實破解SHA-1 我們只用了不到 3 個月,這期間發生了很多有趣和不可思議的事情。當時美國國家標準與技術研究院(NIST) 密碼的技術負責人公開說 MD5 雖然被破解了,但是 SHA-1 還沒發現任何安全隱患,結果沒過幾天就被我們給破解了。

從德國回來後我對於紅波說要把 SHA-1 分析到 57 步。SHA-1 有一個不 好的地方,它存在不可能差分。有一些看似很好的攻擊路線(差分路線),但是會在某個比特產生矛盾,這樣的路線是行不通的,因為不可能一個比特方程等於 1 和 0 同時並存。後來有一天我跟學生聊天說,如果把不可能變成可能就好了,學生說這是不可能的事。後來學生走了,我花了兩週時間什麼都不幹,把不可能差分變為可能差分,這樣整個攻擊就成功了,剩下的就是編程找到一個 57 步的實例了,並給出全算法的攻擊路線。


未來科學大獎得主訪談:王小云的數學和密碼人生


在山東大學工作(2005年)


問 :後面應該很順利了吧。

王 :也不盡然。我開始讓學生協助編程,編好後把山大數學院的機房的所有電腦停下來運行 SHA-1。當時寒假已經開始,我讓學生把程序弄好後回家,由我來負責監督計算機的運行。春節前的一天,我陪愛人去看望了他的導師曲音波老師,曲老師已經知道我破解 MD5 的事情非常高興。那時濟南已經冰天雪地,曲老師非要出門送我們回去,一直送到了高架橋上,我說還要回山大查看程序運行結果,那些程序已經運行 8 天了。按照道理,那麼多電腦一天就可以運行出來。結果到了山大以後,我發現一個結果都沒有出來,我失望之下便把所有電腦都給關了,然後就回家了。

未來科學大獎得主訪談:王小云的數學和密碼人生


我把信息量改過來之後,所有程序的運行就如我估計的那樣。一開始十分鐘出一個縮短輪的破解結果,一個小時出一個更多輪的破解結果,如果一個小時出的結果沒問題,那說明後面的攻擊路線就不會有問題了。我利用自己僅有的一臺電腦,用大量的數學方程控制它出我想要的結果。比如我設 47 步,15 分鐘就出來了結果;再比如我設 49 步,半個小時就出來了我想要的結果;我又挑戰 50 步,我判斷一個小時的運行時間,結果一個小時出來兩三個。在等待這些結果的時候,我就在那裡玩“蜘蛛紙牌”。說來奇怪,那天晚上每一局我都贏了。第二天我在有 64 個 CPU 的計算機上運行計算所有步數的結果。

問 :您又是如何公佈破解 SHA-1 結果的?

王:最後就是寫論文了。展濤校長知道我們破解 SHA-1 後,對此事非常關心,在論文完成的最後階段和投稿期間給予高度關注。

我們是在 05 年 2 月 14 號投稿給美密會,把論文發給了沙米爾與李維斯特。這之後還有一個故事,2 月 15 日正好世界 RSA 大會召開,這個會議的規模很龐大,有上萬人蔘加,正式註冊的有幾千人。比爾蓋茨等一些公司的總裁都要作演講。其中有一個密碼討論板塊,由五位頂級的密碼專家(包括三位圖靈獎得主沙米爾、李維斯特和迪菲),基本上都是現代密碼學的奠基人,要介紹密碼學的最新進展,SHA-1 自然是要討論的。沙米爾收到我們的論文後,便給我們(王小云、於紅波、尹伊群)寫信,詢問是否允許他們幫我們宣佈這一破解結果。尹伊群打電話找我,表示她已經同意,我也表示了同意,那時我正在農村老家休息,也不怎麼上網,結果又翻天了,全世界都在報道。事後從發佈的視頻得知宣佈時間 7 分鐘。沙米爾認為 SHA-1 的破解將引起軒然大波。

未來科學大獎得主訪談:王小云的數學和密碼人生

與比哈姆教授討論 Hash 函數(2005年歐密會)


問 :Hash 函數破解對業界帶來的影響以及國際同行的評價是什麼?

王 :針對 MD5 和 SHA-1 的破解,美國 NIST 於 2005 年和 2006 年專門舉辦兩次研討會探討 MD5 和 SHA-1 破解帶來的安全威脅,研究徵集新的 Hash 函數標準的競爭策略,並出臺了 Hash 函數新標準 SHA-3 的五年設計工程。針對我們對 SHA-1 破解的進一步改進結果,NIST 發文宣佈王教授確實發現了 SHA-1 的實際碰撞攻擊。2006 年 3 月 15 日,NIST 出臺了 Hash 函數新政策, 規定美國聯邦機構應該停止 SHA-1 在數字簽名、數字時間戳以及其他基於 SHA-1 無碰撞特性的密碼應用,並在 2010 年以後使用 SHA-2。美國數學會發表“數學與網絡安全”專欄文章,介紹了 14 世紀以來包括圖靈,沙米爾等五位圖靈獎得主在內的 19 位密碼學家的工作,我是其中之一。


未來科學大獎得主訪談:王小云的數學和密碼人生


2005年獲得歐密會最佳論文


國際密碼專家也對我們的工作給予了高度評價,如圖靈獎得主李維斯特評價“鑑於哈希函數毀滅性攻擊,必須採用新的算法取代 SHA-1”;國際密碼學會前主席 Preneel 等多篇論文給予評價:“王等攻擊暴露了當前被廣泛採納和部署的 Hash 函數 SHA-1 的安全漏洞”;“王等突破性工作引發了該領域理論研究與結構設計的研究熱潮”。AES 的發明者之一 Vincent Rijmen 評價“對 Hash 函數攻擊結果的公佈,重新喚起了該類密碼算法設計與分析的興趣”;沙米爾評價“MD5 的破解成果是 2004 年度密碼學研究領域中最了不起的發展,並對該領域的理論研究及實際應用產生了極大的影響”;Arjen K.Lenstra 評價 :“全世界的其他密碼學家現在仍然在努力試圖跟上王教授,理解她的結果和方法,這對於正確地估價其影響是至關重要的。”

"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

未來科學大獎得主訪談:王小云的數學和密碼人生

2004年美密會宣佈破解 MD5


國際著名 PGP 公司負責人菲利普·齊默曼(Philip R. Zimmermann)在會議現場當眾對我說:“憑藉這一成果,你可以在美國任何一所大學獲得職位。”然後大家都很激動,Rump Session 主席斯圖爾特·哈伯(Stuart Haber)高興地到處跑來跑去,直到多年後他在北京見到我回想起那次大會還很激動。

當時整個現場非常震驚,大家建議我把結果放在網上,讓其他密碼學家去驗證正確性。我和來學嘉老師工作到凌晨三點後把結果放到了網上,結果早上8點來老師來敲我的門,說他的郵箱爆了。郵件中大家都說我的其他算法攻擊結果沒有問題,但對 MD5 的攻擊結果不對。吃飯時還有人說 MD5 的結果有問題,我說肯定沒問題。到了會場後,比哈姆也說我的 MD5 結果不對,我建議兩個人來一個現場測試。我們倆人各自迅速打開了電腦,MD5 一共有64步,我們從倒數第一步開始搜索,不得不說比哈姆這樣頂級的密碼分析學家真是厲害,他的速度非常之快,我的反應也很快,結果從倒數第一步到第一步都不一樣,我心想壞了。那時我腦子很靈光,馬上判斷出兩個人有一個初始值不同。比哈姆說他的是標準程序,我說我用的是《密碼學與安全:從理論到應用》(Cryptography and Security: From Theory to Applications)書上的,比哈姆電腦裡恰好有這本書的電子版,馬上把它放進去運行。結果不到一秒鐘,聽到比哈姆說“congratulation,you break MD5”。

問 :是在會場嗎?

王 :就在會場。會上他祝賀了我,茶歇的時候他告訴別人我破解的 MD5 沒有問題,其他人也開始祝賀我。然後到了 Rump Session 報告的時候,當我講到用手(by hand)破解 MD4 的時候,會場響起了雷鳴般的掌聲,當時把我嚇得還以為自己講錯了。我講完後,幾乎全場的人都站起來鼓掌,掌聲持續了好久。密碼學家 Yvo Desmedt 當時胳膊骨折了,他用另一隻手擊打大腿表示鼓掌,我當時都蒙了。

問 :Rump Session 時您有照片留下嗎?

王 :作報告時我愛人有一些錄像,但報告一結束,許多密碼專家把我給包圍了,現代密碼學的奠基人之一沙米爾等人都過來向我表示祝賀,人太多把我愛人擠到外面去了。這也成為我愛人很遺憾的一件事。當時場面太熱烈他也蒙了,都不知道去拍照錄像了。不過那年美密會我還是有幾張珍貴照片留下,其中一張是我正在聊天,被惠特菲爾德·迪菲(Whitfield Diffie)等拉過去拍了一張照片。雖然當時沒有留下很多的影像,但是後來 Arjen K. Lenstra(格基約化算法 LLL 以及數域篩法的第一作者)對這個場面進行了描述“從上世紀九十年代初起,我參加過幾乎所有在國際上最重要的密碼學會議(亞密會、美密會和歐密會),但我從沒有經歷過像今年會上的盛況;當王教授陳述其報告的時候,在場聆聽報告的人們彼此相望,幾乎不相信王教授的驚人發現,然而在她的報告結束後,全場立刻起立給王教授報以長久而熱烈的掌聲,人們擁向講臺向她表示衷心的祝賀,她帶去的報告材料被一搶而光。那的確是個令人難以忘懷的時刻。”

未來科學大獎得主訪談:王小云的數學和密碼人生

與迪菲(左 2)在 2004 年美密會上的合影

問 :2004 年美密會應該是您一生比較重要的時刻之一吧?

王 :是的。但當時還有一個問題,雖然我把 MD5 破了,但是初始值不同,雖然被驗證攻擊方法正確,還需要計算正確初始值下的破解結果。當時我很著急,但由於沒有國際漫遊,我只能打國際長途電話給自己的學生於紅波。那時我腦子很混亂,只記得好多人給我提供幫助,比如提供賬號,但最後由我愛人陪著我在校園的電話亭裡打國際長途。於紅波非常負責任,她知道我去美國開會這件事情比較重要,便在假期裡提早回到了學校。我打電話問她在哪裡,她說在山大,我說太好了,MD5 的初始值錯了,看能不能更換正確的初始值再運行一下。我讓她找到彭實戈老師的女兒,她和另外一位老師負責山大高性能計算機的運行,此前我也多次在週末麻煩她們。程序經過運行很快新的正確結果出來了。

所以等到 Rump Session 的時候,我宣佈的是正確結果。其他密碼學家都很吃驚,知道我一定有破解技術,把錯誤的初始值換成一個正確的初始值後能在短時間內運算出正確結果。第二天早上吃飯的時候,一個密碼專家對我說,他們政府詢問他 what happened。還有一個日本的密碼專家, 告訴我她是為日本政府工作的,他們政府讓她諮詢我哪個 Hash 函數還是安全的。後來在 2005 年的歐密會上,比哈姆更是感慨地對我說:“你知道嗎?破解 MD5 是我一生的夢想。現在你破解了,你贏了,這就是遊戲規則。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2006 年榮獲“求是傑出科學家獎”(左起:查濟民女兒,周光召,劉璧如,王小云,楊振寧,姚期智)


破解SHA-1


問 :您又是如何破解 SHA-1 的?

王 :2004年 11月,多伯丁請我去他那裡訪問。他是德國波鴻大學的教授,當時歐洲密碼工程的總體負責人。多伯丁是研究 Hash 函數的著名專家,就是他首次給出 MD4 的碰撞結果,他評估過 SHA-0,所以比較瞭解 SHA-0 和 SHA-1 的安全性。和我交流時,他預測了2005年密碼領域的兩個重要工作,其中一個工作他希望 SHA-1 可以被破到 57 步,當時其他人只能破到 40 步。我當時心想自己肯定能找到 57 步的碰撞,便隨口說了回去試試。其實破解SHA-1 我們只用了不到 3 個月,這期間發生了很多有趣和不可思議的事情。當時美國國家標準與技術研究院(NIST) 密碼的技術負責人公開說 MD5 雖然被破解了,但是 SHA-1 還沒發現任何安全隱患,結果沒過幾天就被我們給破解了。

從德國回來後我對於紅波說要把 SHA-1 分析到 57 步。SHA-1 有一個不 好的地方,它存在不可能差分。有一些看似很好的攻擊路線(差分路線),但是會在某個比特產生矛盾,這樣的路線是行不通的,因為不可能一個比特方程等於 1 和 0 同時並存。後來有一天我跟學生聊天說,如果把不可能變成可能就好了,學生說這是不可能的事。後來學生走了,我花了兩週時間什麼都不幹,把不可能差分變為可能差分,這樣整個攻擊就成功了,剩下的就是編程找到一個 57 步的實例了,並給出全算法的攻擊路線。


未來科學大獎得主訪談:王小云的數學和密碼人生


在山東大學工作(2005年)


問 :後面應該很順利了吧。

王 :也不盡然。我開始讓學生協助編程,編好後把山大數學院的機房的所有電腦停下來運行 SHA-1。當時寒假已經開始,我讓學生把程序弄好後回家,由我來負責監督計算機的運行。春節前的一天,我陪愛人去看望了他的導師曲音波老師,曲老師已經知道我破解 MD5 的事情非常高興。那時濟南已經冰天雪地,曲老師非要出門送我們回去,一直送到了高架橋上,我說還要回山大查看程序運行結果,那些程序已經運行 8 天了。按照道理,那麼多電腦一天就可以運行出來。結果到了山大以後,我發現一個結果都沒有出來,我失望之下便把所有電腦都給關了,然後就回家了。

未來科學大獎得主訪談:王小云的數學和密碼人生


我把信息量改過來之後,所有程序的運行就如我估計的那樣。一開始十分鐘出一個縮短輪的破解結果,一個小時出一個更多輪的破解結果,如果一個小時出的結果沒問題,那說明後面的攻擊路線就不會有問題了。我利用自己僅有的一臺電腦,用大量的數學方程控制它出我想要的結果。比如我設 47 步,15 分鐘就出來了結果;再比如我設 49 步,半個小時就出來了我想要的結果;我又挑戰 50 步,我判斷一個小時的運行時間,結果一個小時出來兩三個。在等待這些結果的時候,我就在那裡玩“蜘蛛紙牌”。說來奇怪,那天晚上每一局我都贏了。第二天我在有 64 個 CPU 的計算機上運行計算所有步數的結果。

問 :您又是如何公佈破解 SHA-1 結果的?

王:最後就是寫論文了。展濤校長知道我們破解 SHA-1 後,對此事非常關心,在論文完成的最後階段和投稿期間給予高度關注。

我們是在 05 年 2 月 14 號投稿給美密會,把論文發給了沙米爾與李維斯特。這之後還有一個故事,2 月 15 日正好世界 RSA 大會召開,這個會議的規模很龐大,有上萬人蔘加,正式註冊的有幾千人。比爾蓋茨等一些公司的總裁都要作演講。其中有一個密碼討論板塊,由五位頂級的密碼專家(包括三位圖靈獎得主沙米爾、李維斯特和迪菲),基本上都是現代密碼學的奠基人,要介紹密碼學的最新進展,SHA-1 自然是要討論的。沙米爾收到我們的論文後,便給我們(王小云、於紅波、尹伊群)寫信,詢問是否允許他們幫我們宣佈這一破解結果。尹伊群打電話找我,表示她已經同意,我也表示了同意,那時我正在農村老家休息,也不怎麼上網,結果又翻天了,全世界都在報道。事後從發佈的視頻得知宣佈時間 7 分鐘。沙米爾認為 SHA-1 的破解將引起軒然大波。

未來科學大獎得主訪談:王小云的數學和密碼人生

與比哈姆教授討論 Hash 函數(2005年歐密會)


問 :Hash 函數破解對業界帶來的影響以及國際同行的評價是什麼?

王 :針對 MD5 和 SHA-1 的破解,美國 NIST 於 2005 年和 2006 年專門舉辦兩次研討會探討 MD5 和 SHA-1 破解帶來的安全威脅,研究徵集新的 Hash 函數標準的競爭策略,並出臺了 Hash 函數新標準 SHA-3 的五年設計工程。針對我們對 SHA-1 破解的進一步改進結果,NIST 發文宣佈王教授確實發現了 SHA-1 的實際碰撞攻擊。2006 年 3 月 15 日,NIST 出臺了 Hash 函數新政策, 規定美國聯邦機構應該停止 SHA-1 在數字簽名、數字時間戳以及其他基於 SHA-1 無碰撞特性的密碼應用,並在 2010 年以後使用 SHA-2。美國數學會發表“數學與網絡安全”專欄文章,介紹了 14 世紀以來包括圖靈,沙米爾等五位圖靈獎得主在內的 19 位密碼學家的工作,我是其中之一。


未來科學大獎得主訪談:王小云的數學和密碼人生


2005年獲得歐密會最佳論文


國際密碼專家也對我們的工作給予了高度評價,如圖靈獎得主李維斯特評價“鑑於哈希函數毀滅性攻擊,必須採用新的算法取代 SHA-1”;國際密碼學會前主席 Preneel 等多篇論文給予評價:“王等攻擊暴露了當前被廣泛採納和部署的 Hash 函數 SHA-1 的安全漏洞”;“王等突破性工作引發了該領域理論研究與結構設計的研究熱潮”。AES 的發明者之一 Vincent Rijmen 評價“對 Hash 函數攻擊結果的公佈,重新喚起了該類密碼算法設計與分析的興趣”;沙米爾評價“MD5 的破解成果是 2004 年度密碼學研究領域中最了不起的發展,並對該領域的理論研究及實際應用產生了極大的影響”;Arjen K.Lenstra 評價 :“全世界的其他密碼學家現在仍然在努力試圖跟上王教授,理解她的結果和方法,這對於正確地估價其影響是至關重要的。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2005年受聘成為楊振寧講座教授(左起:楊振寧、王小云、顧秉林)


十年堅守,方得始終。面對這些褒獎,雖然它們是對我研究成果的認可,但我更認為這是對我團隊的肯定,是對我國密碼學界工作的肯定。

任職清華


問 :後來您到了清華大學高等研究院工作。

王 :離開山大原因是多方面的,其中兩個原因是我要認真考慮的。一是 2004年 11 月,姚期智先生邀請我到清華大學高等研究院作報告,應是楊振寧先生和姚先生共同的決定,他們想讓我到清華去工作。楊先生去山大訪問,一下飛機便問展濤校長我能不能到清華工作。

二是正好那時我愛人完成了博士後研究,面臨著找工作的問題,他希望到北京去工作。這時清華邀請我,我們一家面臨著到底是留在山大還是去清華的問題。後來我去找展濤校長彙報了此事,展校長說他認為我到清華與大師們一起工作,對我將來的事業發展是有幫助的,但是作為校長,從山大的發展角度來說,他不同意我離開山大。


"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

未來科學大獎得主訪談:王小云的數學和密碼人生

2004年美密會宣佈破解 MD5


國際著名 PGP 公司負責人菲利普·齊默曼(Philip R. Zimmermann)在會議現場當眾對我說:“憑藉這一成果,你可以在美國任何一所大學獲得職位。”然後大家都很激動,Rump Session 主席斯圖爾特·哈伯(Stuart Haber)高興地到處跑來跑去,直到多年後他在北京見到我回想起那次大會還很激動。

當時整個現場非常震驚,大家建議我把結果放在網上,讓其他密碼學家去驗證正確性。我和來學嘉老師工作到凌晨三點後把結果放到了網上,結果早上8點來老師來敲我的門,說他的郵箱爆了。郵件中大家都說我的其他算法攻擊結果沒有問題,但對 MD5 的攻擊結果不對。吃飯時還有人說 MD5 的結果有問題,我說肯定沒問題。到了會場後,比哈姆也說我的 MD5 結果不對,我建議兩個人來一個現場測試。我們倆人各自迅速打開了電腦,MD5 一共有64步,我們從倒數第一步開始搜索,不得不說比哈姆這樣頂級的密碼分析學家真是厲害,他的速度非常之快,我的反應也很快,結果從倒數第一步到第一步都不一樣,我心想壞了。那時我腦子很靈光,馬上判斷出兩個人有一個初始值不同。比哈姆說他的是標準程序,我說我用的是《密碼學與安全:從理論到應用》(Cryptography and Security: From Theory to Applications)書上的,比哈姆電腦裡恰好有這本書的電子版,馬上把它放進去運行。結果不到一秒鐘,聽到比哈姆說“congratulation,you break MD5”。

問 :是在會場嗎?

王 :就在會場。會上他祝賀了我,茶歇的時候他告訴別人我破解的 MD5 沒有問題,其他人也開始祝賀我。然後到了 Rump Session 報告的時候,當我講到用手(by hand)破解 MD4 的時候,會場響起了雷鳴般的掌聲,當時把我嚇得還以為自己講錯了。我講完後,幾乎全場的人都站起來鼓掌,掌聲持續了好久。密碼學家 Yvo Desmedt 當時胳膊骨折了,他用另一隻手擊打大腿表示鼓掌,我當時都蒙了。

問 :Rump Session 時您有照片留下嗎?

王 :作報告時我愛人有一些錄像,但報告一結束,許多密碼專家把我給包圍了,現代密碼學的奠基人之一沙米爾等人都過來向我表示祝賀,人太多把我愛人擠到外面去了。這也成為我愛人很遺憾的一件事。當時場面太熱烈他也蒙了,都不知道去拍照錄像了。不過那年美密會我還是有幾張珍貴照片留下,其中一張是我正在聊天,被惠特菲爾德·迪菲(Whitfield Diffie)等拉過去拍了一張照片。雖然當時沒有留下很多的影像,但是後來 Arjen K. Lenstra(格基約化算法 LLL 以及數域篩法的第一作者)對這個場面進行了描述“從上世紀九十年代初起,我參加過幾乎所有在國際上最重要的密碼學會議(亞密會、美密會和歐密會),但我從沒有經歷過像今年會上的盛況;當王教授陳述其報告的時候,在場聆聽報告的人們彼此相望,幾乎不相信王教授的驚人發現,然而在她的報告結束後,全場立刻起立給王教授報以長久而熱烈的掌聲,人們擁向講臺向她表示衷心的祝賀,她帶去的報告材料被一搶而光。那的確是個令人難以忘懷的時刻。”

未來科學大獎得主訪談:王小云的數學和密碼人生

與迪菲(左 2)在 2004 年美密會上的合影

問 :2004 年美密會應該是您一生比較重要的時刻之一吧?

王 :是的。但當時還有一個問題,雖然我把 MD5 破了,但是初始值不同,雖然被驗證攻擊方法正確,還需要計算正確初始值下的破解結果。當時我很著急,但由於沒有國際漫遊,我只能打國際長途電話給自己的學生於紅波。那時我腦子很混亂,只記得好多人給我提供幫助,比如提供賬號,但最後由我愛人陪著我在校園的電話亭裡打國際長途。於紅波非常負責任,她知道我去美國開會這件事情比較重要,便在假期裡提早回到了學校。我打電話問她在哪裡,她說在山大,我說太好了,MD5 的初始值錯了,看能不能更換正確的初始值再運行一下。我讓她找到彭實戈老師的女兒,她和另外一位老師負責山大高性能計算機的運行,此前我也多次在週末麻煩她們。程序經過運行很快新的正確結果出來了。

所以等到 Rump Session 的時候,我宣佈的是正確結果。其他密碼學家都很吃驚,知道我一定有破解技術,把錯誤的初始值換成一個正確的初始值後能在短時間內運算出正確結果。第二天早上吃飯的時候,一個密碼專家對我說,他們政府詢問他 what happened。還有一個日本的密碼專家, 告訴我她是為日本政府工作的,他們政府讓她諮詢我哪個 Hash 函數還是安全的。後來在 2005 年的歐密會上,比哈姆更是感慨地對我說:“你知道嗎?破解 MD5 是我一生的夢想。現在你破解了,你贏了,這就是遊戲規則。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2006 年榮獲“求是傑出科學家獎”(左起:查濟民女兒,周光召,劉璧如,王小云,楊振寧,姚期智)


破解SHA-1


問 :您又是如何破解 SHA-1 的?

王 :2004年 11月,多伯丁請我去他那裡訪問。他是德國波鴻大學的教授,當時歐洲密碼工程的總體負責人。多伯丁是研究 Hash 函數的著名專家,就是他首次給出 MD4 的碰撞結果,他評估過 SHA-0,所以比較瞭解 SHA-0 和 SHA-1 的安全性。和我交流時,他預測了2005年密碼領域的兩個重要工作,其中一個工作他希望 SHA-1 可以被破到 57 步,當時其他人只能破到 40 步。我當時心想自己肯定能找到 57 步的碰撞,便隨口說了回去試試。其實破解SHA-1 我們只用了不到 3 個月,這期間發生了很多有趣和不可思議的事情。當時美國國家標準與技術研究院(NIST) 密碼的技術負責人公開說 MD5 雖然被破解了,但是 SHA-1 還沒發現任何安全隱患,結果沒過幾天就被我們給破解了。

從德國回來後我對於紅波說要把 SHA-1 分析到 57 步。SHA-1 有一個不 好的地方,它存在不可能差分。有一些看似很好的攻擊路線(差分路線),但是會在某個比特產生矛盾,這樣的路線是行不通的,因為不可能一個比特方程等於 1 和 0 同時並存。後來有一天我跟學生聊天說,如果把不可能變成可能就好了,學生說這是不可能的事。後來學生走了,我花了兩週時間什麼都不幹,把不可能差分變為可能差分,這樣整個攻擊就成功了,剩下的就是編程找到一個 57 步的實例了,並給出全算法的攻擊路線。


未來科學大獎得主訪談:王小云的數學和密碼人生


在山東大學工作(2005年)


問 :後面應該很順利了吧。

王 :也不盡然。我開始讓學生協助編程,編好後把山大數學院的機房的所有電腦停下來運行 SHA-1。當時寒假已經開始,我讓學生把程序弄好後回家,由我來負責監督計算機的運行。春節前的一天,我陪愛人去看望了他的導師曲音波老師,曲老師已經知道我破解 MD5 的事情非常高興。那時濟南已經冰天雪地,曲老師非要出門送我們回去,一直送到了高架橋上,我說還要回山大查看程序運行結果,那些程序已經運行 8 天了。按照道理,那麼多電腦一天就可以運行出來。結果到了山大以後,我發現一個結果都沒有出來,我失望之下便把所有電腦都給關了,然後就回家了。

未來科學大獎得主訪談:王小云的數學和密碼人生


我把信息量改過來之後,所有程序的運行就如我估計的那樣。一開始十分鐘出一個縮短輪的破解結果,一個小時出一個更多輪的破解結果,如果一個小時出的結果沒問題,那說明後面的攻擊路線就不會有問題了。我利用自己僅有的一臺電腦,用大量的數學方程控制它出我想要的結果。比如我設 47 步,15 分鐘就出來了結果;再比如我設 49 步,半個小時就出來了我想要的結果;我又挑戰 50 步,我判斷一個小時的運行時間,結果一個小時出來兩三個。在等待這些結果的時候,我就在那裡玩“蜘蛛紙牌”。說來奇怪,那天晚上每一局我都贏了。第二天我在有 64 個 CPU 的計算機上運行計算所有步數的結果。

問 :您又是如何公佈破解 SHA-1 結果的?

王:最後就是寫論文了。展濤校長知道我們破解 SHA-1 後,對此事非常關心,在論文完成的最後階段和投稿期間給予高度關注。

我們是在 05 年 2 月 14 號投稿給美密會,把論文發給了沙米爾與李維斯特。這之後還有一個故事,2 月 15 日正好世界 RSA 大會召開,這個會議的規模很龐大,有上萬人蔘加,正式註冊的有幾千人。比爾蓋茨等一些公司的總裁都要作演講。其中有一個密碼討論板塊,由五位頂級的密碼專家(包括三位圖靈獎得主沙米爾、李維斯特和迪菲),基本上都是現代密碼學的奠基人,要介紹密碼學的最新進展,SHA-1 自然是要討論的。沙米爾收到我們的論文後,便給我們(王小云、於紅波、尹伊群)寫信,詢問是否允許他們幫我們宣佈這一破解結果。尹伊群打電話找我,表示她已經同意,我也表示了同意,那時我正在農村老家休息,也不怎麼上網,結果又翻天了,全世界都在報道。事後從發佈的視頻得知宣佈時間 7 分鐘。沙米爾認為 SHA-1 的破解將引起軒然大波。

未來科學大獎得主訪談:王小云的數學和密碼人生

與比哈姆教授討論 Hash 函數(2005年歐密會)


問 :Hash 函數破解對業界帶來的影響以及國際同行的評價是什麼?

王 :針對 MD5 和 SHA-1 的破解,美國 NIST 於 2005 年和 2006 年專門舉辦兩次研討會探討 MD5 和 SHA-1 破解帶來的安全威脅,研究徵集新的 Hash 函數標準的競爭策略,並出臺了 Hash 函數新標準 SHA-3 的五年設計工程。針對我們對 SHA-1 破解的進一步改進結果,NIST 發文宣佈王教授確實發現了 SHA-1 的實際碰撞攻擊。2006 年 3 月 15 日,NIST 出臺了 Hash 函數新政策, 規定美國聯邦機構應該停止 SHA-1 在數字簽名、數字時間戳以及其他基於 SHA-1 無碰撞特性的密碼應用,並在 2010 年以後使用 SHA-2。美國數學會發表“數學與網絡安全”專欄文章,介紹了 14 世紀以來包括圖靈,沙米爾等五位圖靈獎得主在內的 19 位密碼學家的工作,我是其中之一。


未來科學大獎得主訪談:王小云的數學和密碼人生


2005年獲得歐密會最佳論文


國際密碼專家也對我們的工作給予了高度評價,如圖靈獎得主李維斯特評價“鑑於哈希函數毀滅性攻擊,必須採用新的算法取代 SHA-1”;國際密碼學會前主席 Preneel 等多篇論文給予評價:“王等攻擊暴露了當前被廣泛採納和部署的 Hash 函數 SHA-1 的安全漏洞”;“王等突破性工作引發了該領域理論研究與結構設計的研究熱潮”。AES 的發明者之一 Vincent Rijmen 評價“對 Hash 函數攻擊結果的公佈,重新喚起了該類密碼算法設計與分析的興趣”;沙米爾評價“MD5 的破解成果是 2004 年度密碼學研究領域中最了不起的發展,並對該領域的理論研究及實際應用產生了極大的影響”;Arjen K.Lenstra 評價 :“全世界的其他密碼學家現在仍然在努力試圖跟上王教授,理解她的結果和方法,這對於正確地估價其影響是至關重要的。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2005年受聘成為楊振寧講座教授(左起:楊振寧、王小云、顧秉林)


十年堅守,方得始終。面對這些褒獎,雖然它們是對我研究成果的認可,但我更認為這是對我團隊的肯定,是對我國密碼學界工作的肯定。

任職清華


問 :後來您到了清華大學高等研究院工作。

王 :離開山大原因是多方面的,其中兩個原因是我要認真考慮的。一是 2004年 11 月,姚期智先生邀請我到清華大學高等研究院作報告,應是楊振寧先生和姚先生共同的決定,他們想讓我到清華去工作。楊先生去山大訪問,一下飛機便問展濤校長我能不能到清華工作。

二是正好那時我愛人完成了博士後研究,面臨著找工作的問題,他希望到北京去工作。這時清華邀請我,我們一家面臨著到底是留在山大還是去清華的問題。後來我去找展濤校長彙報了此事,展校長說他認為我到清華與大師們一起工作,對我將來的事業發展是有幫助的,但是作為校長,從山大的發展角度來說,他不同意我離開山大。


未來科學大獎得主訪談:王小云的數學和密碼人生


與楊振寧先生交流(2012年清華大學高等研究院成立 15 週年)


問 :所以還是需要您自己做最後的決定。


王 :後來我想要不就去試試吧。我很理解山大老師與同學們對我的深厚感情,畢竟山大培養了我,所以我把自己的所有成果留給了山大,比如我的國家自然科學獎的獲獎單位就是山東大學,清華大學並沒有擁有我的這些成果。直到現在我一直是山大與清華雙聘教授,除了停止了本科生的教學,在山大的其他工作依然正常進行。現在在北京工作,我可以更多地站在國家的角度思考問題,雖然在濟南和北京都能為國家做貢獻,但北京畢竟是學術中心,許多會議都在北京召開,開完會後我可以立刻回到辦公室工作,這是我堅持一線工作的最好選擇。

當年 MD5 和 SHA-1 破解,我申報了國家自然科學一等獎,但最後評定為二等獎,我當時沒有接受,覺得申報得有些倉促,國際影響力還不凸顯,另外我個人覺得這個成果申報一等獎是有資格的, 所以最後沒有接受。第二年我繼續申報,還是得了二等獎,這次我接受了。我認為第一次我不接受代表了我的學術觀點,第二次接受則是尊重大家 的評審, 這就是我看待這個問題的觀點。或許一項成果在不太好判斷的情況下,評定為二等獎是比較穩妥的。另外一等獎也確實比較難獲得,只有像潘承洞、王元、陳景潤等學術大師的研究成果,才配得上國家自然科學一等獎。

問 :能不能談一下與姚期智先生的合作?

王 :姚先生是研究計算複雜性理論的,他的隨機性理論在密碼學中有很重要的應用,是開創性的工作,他對密碼學做了重要的貢獻。我和姚先生合作是很自然的一件事情,我們在一起合作了兩年多的時間,我們的 973 項目的合作對中國密碼學發展起到了很好的推動作用。


"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

未來科學大獎得主訪談:王小云的數學和密碼人生

2004年美密會宣佈破解 MD5


國際著名 PGP 公司負責人菲利普·齊默曼(Philip R. Zimmermann)在會議現場當眾對我說:“憑藉這一成果,你可以在美國任何一所大學獲得職位。”然後大家都很激動,Rump Session 主席斯圖爾特·哈伯(Stuart Haber)高興地到處跑來跑去,直到多年後他在北京見到我回想起那次大會還很激動。

當時整個現場非常震驚,大家建議我把結果放在網上,讓其他密碼學家去驗證正確性。我和來學嘉老師工作到凌晨三點後把結果放到了網上,結果早上8點來老師來敲我的門,說他的郵箱爆了。郵件中大家都說我的其他算法攻擊結果沒有問題,但對 MD5 的攻擊結果不對。吃飯時還有人說 MD5 的結果有問題,我說肯定沒問題。到了會場後,比哈姆也說我的 MD5 結果不對,我建議兩個人來一個現場測試。我們倆人各自迅速打開了電腦,MD5 一共有64步,我們從倒數第一步開始搜索,不得不說比哈姆這樣頂級的密碼分析學家真是厲害,他的速度非常之快,我的反應也很快,結果從倒數第一步到第一步都不一樣,我心想壞了。那時我腦子很靈光,馬上判斷出兩個人有一個初始值不同。比哈姆說他的是標準程序,我說我用的是《密碼學與安全:從理論到應用》(Cryptography and Security: From Theory to Applications)書上的,比哈姆電腦裡恰好有這本書的電子版,馬上把它放進去運行。結果不到一秒鐘,聽到比哈姆說“congratulation,you break MD5”。

問 :是在會場嗎?

王 :就在會場。會上他祝賀了我,茶歇的時候他告訴別人我破解的 MD5 沒有問題,其他人也開始祝賀我。然後到了 Rump Session 報告的時候,當我講到用手(by hand)破解 MD4 的時候,會場響起了雷鳴般的掌聲,當時把我嚇得還以為自己講錯了。我講完後,幾乎全場的人都站起來鼓掌,掌聲持續了好久。密碼學家 Yvo Desmedt 當時胳膊骨折了,他用另一隻手擊打大腿表示鼓掌,我當時都蒙了。

問 :Rump Session 時您有照片留下嗎?

王 :作報告時我愛人有一些錄像,但報告一結束,許多密碼專家把我給包圍了,現代密碼學的奠基人之一沙米爾等人都過來向我表示祝賀,人太多把我愛人擠到外面去了。這也成為我愛人很遺憾的一件事。當時場面太熱烈他也蒙了,都不知道去拍照錄像了。不過那年美密會我還是有幾張珍貴照片留下,其中一張是我正在聊天,被惠特菲爾德·迪菲(Whitfield Diffie)等拉過去拍了一張照片。雖然當時沒有留下很多的影像,但是後來 Arjen K. Lenstra(格基約化算法 LLL 以及數域篩法的第一作者)對這個場面進行了描述“從上世紀九十年代初起,我參加過幾乎所有在國際上最重要的密碼學會議(亞密會、美密會和歐密會),但我從沒有經歷過像今年會上的盛況;當王教授陳述其報告的時候,在場聆聽報告的人們彼此相望,幾乎不相信王教授的驚人發現,然而在她的報告結束後,全場立刻起立給王教授報以長久而熱烈的掌聲,人們擁向講臺向她表示衷心的祝賀,她帶去的報告材料被一搶而光。那的確是個令人難以忘懷的時刻。”

未來科學大獎得主訪談:王小云的數學和密碼人生

與迪菲(左 2)在 2004 年美密會上的合影

問 :2004 年美密會應該是您一生比較重要的時刻之一吧?

王 :是的。但當時還有一個問題,雖然我把 MD5 破了,但是初始值不同,雖然被驗證攻擊方法正確,還需要計算正確初始值下的破解結果。當時我很著急,但由於沒有國際漫遊,我只能打國際長途電話給自己的學生於紅波。那時我腦子很混亂,只記得好多人給我提供幫助,比如提供賬號,但最後由我愛人陪著我在校園的電話亭裡打國際長途。於紅波非常負責任,她知道我去美國開會這件事情比較重要,便在假期裡提早回到了學校。我打電話問她在哪裡,她說在山大,我說太好了,MD5 的初始值錯了,看能不能更換正確的初始值再運行一下。我讓她找到彭實戈老師的女兒,她和另外一位老師負責山大高性能計算機的運行,此前我也多次在週末麻煩她們。程序經過運行很快新的正確結果出來了。

所以等到 Rump Session 的時候,我宣佈的是正確結果。其他密碼學家都很吃驚,知道我一定有破解技術,把錯誤的初始值換成一個正確的初始值後能在短時間內運算出正確結果。第二天早上吃飯的時候,一個密碼專家對我說,他們政府詢問他 what happened。還有一個日本的密碼專家, 告訴我她是為日本政府工作的,他們政府讓她諮詢我哪個 Hash 函數還是安全的。後來在 2005 年的歐密會上,比哈姆更是感慨地對我說:“你知道嗎?破解 MD5 是我一生的夢想。現在你破解了,你贏了,這就是遊戲規則。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2006 年榮獲“求是傑出科學家獎”(左起:查濟民女兒,周光召,劉璧如,王小云,楊振寧,姚期智)


破解SHA-1


問 :您又是如何破解 SHA-1 的?

王 :2004年 11月,多伯丁請我去他那裡訪問。他是德國波鴻大學的教授,當時歐洲密碼工程的總體負責人。多伯丁是研究 Hash 函數的著名專家,就是他首次給出 MD4 的碰撞結果,他評估過 SHA-0,所以比較瞭解 SHA-0 和 SHA-1 的安全性。和我交流時,他預測了2005年密碼領域的兩個重要工作,其中一個工作他希望 SHA-1 可以被破到 57 步,當時其他人只能破到 40 步。我當時心想自己肯定能找到 57 步的碰撞,便隨口說了回去試試。其實破解SHA-1 我們只用了不到 3 個月,這期間發生了很多有趣和不可思議的事情。當時美國國家標準與技術研究院(NIST) 密碼的技術負責人公開說 MD5 雖然被破解了,但是 SHA-1 還沒發現任何安全隱患,結果沒過幾天就被我們給破解了。

從德國回來後我對於紅波說要把 SHA-1 分析到 57 步。SHA-1 有一個不 好的地方,它存在不可能差分。有一些看似很好的攻擊路線(差分路線),但是會在某個比特產生矛盾,這樣的路線是行不通的,因為不可能一個比特方程等於 1 和 0 同時並存。後來有一天我跟學生聊天說,如果把不可能變成可能就好了,學生說這是不可能的事。後來學生走了,我花了兩週時間什麼都不幹,把不可能差分變為可能差分,這樣整個攻擊就成功了,剩下的就是編程找到一個 57 步的實例了,並給出全算法的攻擊路線。


未來科學大獎得主訪談:王小云的數學和密碼人生


在山東大學工作(2005年)


問 :後面應該很順利了吧。

王 :也不盡然。我開始讓學生協助編程,編好後把山大數學院的機房的所有電腦停下來運行 SHA-1。當時寒假已經開始,我讓學生把程序弄好後回家,由我來負責監督計算機的運行。春節前的一天,我陪愛人去看望了他的導師曲音波老師,曲老師已經知道我破解 MD5 的事情非常高興。那時濟南已經冰天雪地,曲老師非要出門送我們回去,一直送到了高架橋上,我說還要回山大查看程序運行結果,那些程序已經運行 8 天了。按照道理,那麼多電腦一天就可以運行出來。結果到了山大以後,我發現一個結果都沒有出來,我失望之下便把所有電腦都給關了,然後就回家了。

未來科學大獎得主訪談:王小云的數學和密碼人生


我把信息量改過來之後,所有程序的運行就如我估計的那樣。一開始十分鐘出一個縮短輪的破解結果,一個小時出一個更多輪的破解結果,如果一個小時出的結果沒問題,那說明後面的攻擊路線就不會有問題了。我利用自己僅有的一臺電腦,用大量的數學方程控制它出我想要的結果。比如我設 47 步,15 分鐘就出來了結果;再比如我設 49 步,半個小時就出來了我想要的結果;我又挑戰 50 步,我判斷一個小時的運行時間,結果一個小時出來兩三個。在等待這些結果的時候,我就在那裡玩“蜘蛛紙牌”。說來奇怪,那天晚上每一局我都贏了。第二天我在有 64 個 CPU 的計算機上運行計算所有步數的結果。

問 :您又是如何公佈破解 SHA-1 結果的?

王:最後就是寫論文了。展濤校長知道我們破解 SHA-1 後,對此事非常關心,在論文完成的最後階段和投稿期間給予高度關注。

我們是在 05 年 2 月 14 號投稿給美密會,把論文發給了沙米爾與李維斯特。這之後還有一個故事,2 月 15 日正好世界 RSA 大會召開,這個會議的規模很龐大,有上萬人蔘加,正式註冊的有幾千人。比爾蓋茨等一些公司的總裁都要作演講。其中有一個密碼討論板塊,由五位頂級的密碼專家(包括三位圖靈獎得主沙米爾、李維斯特和迪菲),基本上都是現代密碼學的奠基人,要介紹密碼學的最新進展,SHA-1 自然是要討論的。沙米爾收到我們的論文後,便給我們(王小云、於紅波、尹伊群)寫信,詢問是否允許他們幫我們宣佈這一破解結果。尹伊群打電話找我,表示她已經同意,我也表示了同意,那時我正在農村老家休息,也不怎麼上網,結果又翻天了,全世界都在報道。事後從發佈的視頻得知宣佈時間 7 分鐘。沙米爾認為 SHA-1 的破解將引起軒然大波。

未來科學大獎得主訪談:王小云的數學和密碼人生

與比哈姆教授討論 Hash 函數(2005年歐密會)


問 :Hash 函數破解對業界帶來的影響以及國際同行的評價是什麼?

王 :針對 MD5 和 SHA-1 的破解,美國 NIST 於 2005 年和 2006 年專門舉辦兩次研討會探討 MD5 和 SHA-1 破解帶來的安全威脅,研究徵集新的 Hash 函數標準的競爭策略,並出臺了 Hash 函數新標準 SHA-3 的五年設計工程。針對我們對 SHA-1 破解的進一步改進結果,NIST 發文宣佈王教授確實發現了 SHA-1 的實際碰撞攻擊。2006 年 3 月 15 日,NIST 出臺了 Hash 函數新政策, 規定美國聯邦機構應該停止 SHA-1 在數字簽名、數字時間戳以及其他基於 SHA-1 無碰撞特性的密碼應用,並在 2010 年以後使用 SHA-2。美國數學會發表“數學與網絡安全”專欄文章,介紹了 14 世紀以來包括圖靈,沙米爾等五位圖靈獎得主在內的 19 位密碼學家的工作,我是其中之一。


未來科學大獎得主訪談:王小云的數學和密碼人生


2005年獲得歐密會最佳論文


國際密碼專家也對我們的工作給予了高度評價,如圖靈獎得主李維斯特評價“鑑於哈希函數毀滅性攻擊,必須採用新的算法取代 SHA-1”;國際密碼學會前主席 Preneel 等多篇論文給予評價:“王等攻擊暴露了當前被廣泛採納和部署的 Hash 函數 SHA-1 的安全漏洞”;“王等突破性工作引發了該領域理論研究與結構設計的研究熱潮”。AES 的發明者之一 Vincent Rijmen 評價“對 Hash 函數攻擊結果的公佈,重新喚起了該類密碼算法設計與分析的興趣”;沙米爾評價“MD5 的破解成果是 2004 年度密碼學研究領域中最了不起的發展,並對該領域的理論研究及實際應用產生了極大的影響”;Arjen K.Lenstra 評價 :“全世界的其他密碼學家現在仍然在努力試圖跟上王教授,理解她的結果和方法,這對於正確地估價其影響是至關重要的。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2005年受聘成為楊振寧講座教授(左起:楊振寧、王小云、顧秉林)


十年堅守,方得始終。面對這些褒獎,雖然它們是對我研究成果的認可,但我更認為這是對我團隊的肯定,是對我國密碼學界工作的肯定。

任職清華


問 :後來您到了清華大學高等研究院工作。

王 :離開山大原因是多方面的,其中兩個原因是我要認真考慮的。一是 2004年 11 月,姚期智先生邀請我到清華大學高等研究院作報告,應是楊振寧先生和姚先生共同的決定,他們想讓我到清華去工作。楊先生去山大訪問,一下飛機便問展濤校長我能不能到清華工作。

二是正好那時我愛人完成了博士後研究,面臨著找工作的問題,他希望到北京去工作。這時清華邀請我,我們一家面臨著到底是留在山大還是去清華的問題。後來我去找展濤校長彙報了此事,展校長說他認為我到清華與大師們一起工作,對我將來的事業發展是有幫助的,但是作為校長,從山大的發展角度來說,他不同意我離開山大。


未來科學大獎得主訪談:王小云的數學和密碼人生


與楊振寧先生交流(2012年清華大學高等研究院成立 15 週年)


問 :所以還是需要您自己做最後的決定。


王 :後來我想要不就去試試吧。我很理解山大老師與同學們對我的深厚感情,畢竟山大培養了我,所以我把自己的所有成果留給了山大,比如我的國家自然科學獎的獲獎單位就是山東大學,清華大學並沒有擁有我的這些成果。直到現在我一直是山大與清華雙聘教授,除了停止了本科生的教學,在山大的其他工作依然正常進行。現在在北京工作,我可以更多地站在國家的角度思考問題,雖然在濟南和北京都能為國家做貢獻,但北京畢竟是學術中心,許多會議都在北京召開,開完會後我可以立刻回到辦公室工作,這是我堅持一線工作的最好選擇。

當年 MD5 和 SHA-1 破解,我申報了國家自然科學一等獎,但最後評定為二等獎,我當時沒有接受,覺得申報得有些倉促,國際影響力還不凸顯,另外我個人覺得這個成果申報一等獎是有資格的, 所以最後沒有接受。第二年我繼續申報,還是得了二等獎,這次我接受了。我認為第一次我不接受代表了我的學術觀點,第二次接受則是尊重大家 的評審, 這就是我看待這個問題的觀點。或許一項成果在不太好判斷的情況下,評定為二等獎是比較穩妥的。另外一等獎也確實比較難獲得,只有像潘承洞、王元、陳景潤等學術大師的研究成果,才配得上國家自然科學一等獎。

問 :能不能談一下與姚期智先生的合作?

王 :姚先生是研究計算複雜性理論的,他的隨機性理論在密碼學中有很重要的應用,是開創性的工作,他對密碼學做了重要的貢獻。我和姚先生合作是很自然的一件事情,我們在一起合作了兩年多的時間,我們的 973 項目的合作對中國密碼學發展起到了很好的推動作用。


未來科學大獎得主訪談:王小云的數學和密碼人生


與研究生在清華大學辦公室討論問題(2018)


問 :那您與楊振寧先生的接觸多嗎?

王 :與楊先生的接觸很多。他經常到高等研究院的辦公室來工作,還不時組織或參加高等研究院的一些活動。楊先生經常給我講一些物理學界好的工作和他本人的一些經歷,另外談論數學也比較多,特別是提到數學家閔嗣鶴先生。楊先生的父親楊武之先生是數學家,與閔嗣鶴先生是世交,楊先生曾經談及昆明居住期間,閔先生經常到楊先生家聊天,談自己工作中面臨的苦惱,有時用詩抒發感情。談到上世紀 30 年代華羅庚來楊先生家和楊武之討論數學,還談到 1928 年至 1929 年期間在廈門柯召和楊武之下圍棋的情景。另外也問一些潘承洞老師的事情。我覺得楊先生對密碼很關心,經常問我一些密碼學的問題。最近楊先生還希望我寫一篇區塊鏈的普及文章,他想了解一下區塊鏈的問題。


問 :您在清華做研究還和在山大一樣嗎?

王 :在山大時我主要是在家中一個人做研究,在清華則主要是在辦公室裡指導學生做研究,我覺得兩個形式不大一樣。在山大時我推路線也編程,學生主要幫我部分編程和調整路線,到清華的前半階段我還是和在山大差不多,後來我發現帶出來的學生總體效果欠佳。我開始逐漸調整,把重心放在人才培養上,現在基本上以我指導為主,主要由學生來做。現在流密碼的團隊已經建立起來了,2012 年開始做這個方向,我指導了三批學生,最後一個學生做成了,當然前面的學生也做了很多工作,但這些工作與問題的解決差距仍很大,主要還是和大量的方程控制和長久堅持有關。現在我主要把握研究方向和思路,提供可能的方法和需要解決的關鍵技術,激發學生的潛能,使創新成為常態,就跟自己當年做 MD5 和 SHA-1 一樣。經過多年的努力,現在終於做出了一些優秀成果。

"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

未來科學大獎得主訪談:王小云的數學和密碼人生

2004年美密會宣佈破解 MD5


國際著名 PGP 公司負責人菲利普·齊默曼(Philip R. Zimmermann)在會議現場當眾對我說:“憑藉這一成果,你可以在美國任何一所大學獲得職位。”然後大家都很激動,Rump Session 主席斯圖爾特·哈伯(Stuart Haber)高興地到處跑來跑去,直到多年後他在北京見到我回想起那次大會還很激動。

當時整個現場非常震驚,大家建議我把結果放在網上,讓其他密碼學家去驗證正確性。我和來學嘉老師工作到凌晨三點後把結果放到了網上,結果早上8點來老師來敲我的門,說他的郵箱爆了。郵件中大家都說我的其他算法攻擊結果沒有問題,但對 MD5 的攻擊結果不對。吃飯時還有人說 MD5 的結果有問題,我說肯定沒問題。到了會場後,比哈姆也說我的 MD5 結果不對,我建議兩個人來一個現場測試。我們倆人各自迅速打開了電腦,MD5 一共有64步,我們從倒數第一步開始搜索,不得不說比哈姆這樣頂級的密碼分析學家真是厲害,他的速度非常之快,我的反應也很快,結果從倒數第一步到第一步都不一樣,我心想壞了。那時我腦子很靈光,馬上判斷出兩個人有一個初始值不同。比哈姆說他的是標準程序,我說我用的是《密碼學與安全:從理論到應用》(Cryptography and Security: From Theory to Applications)書上的,比哈姆電腦裡恰好有這本書的電子版,馬上把它放進去運行。結果不到一秒鐘,聽到比哈姆說“congratulation,you break MD5”。

問 :是在會場嗎?

王 :就在會場。會上他祝賀了我,茶歇的時候他告訴別人我破解的 MD5 沒有問題,其他人也開始祝賀我。然後到了 Rump Session 報告的時候,當我講到用手(by hand)破解 MD4 的時候,會場響起了雷鳴般的掌聲,當時把我嚇得還以為自己講錯了。我講完後,幾乎全場的人都站起來鼓掌,掌聲持續了好久。密碼學家 Yvo Desmedt 當時胳膊骨折了,他用另一隻手擊打大腿表示鼓掌,我當時都蒙了。

問 :Rump Session 時您有照片留下嗎?

王 :作報告時我愛人有一些錄像,但報告一結束,許多密碼專家把我給包圍了,現代密碼學的奠基人之一沙米爾等人都過來向我表示祝賀,人太多把我愛人擠到外面去了。這也成為我愛人很遺憾的一件事。當時場面太熱烈他也蒙了,都不知道去拍照錄像了。不過那年美密會我還是有幾張珍貴照片留下,其中一張是我正在聊天,被惠特菲爾德·迪菲(Whitfield Diffie)等拉過去拍了一張照片。雖然當時沒有留下很多的影像,但是後來 Arjen K. Lenstra(格基約化算法 LLL 以及數域篩法的第一作者)對這個場面進行了描述“從上世紀九十年代初起,我參加過幾乎所有在國際上最重要的密碼學會議(亞密會、美密會和歐密會),但我從沒有經歷過像今年會上的盛況;當王教授陳述其報告的時候,在場聆聽報告的人們彼此相望,幾乎不相信王教授的驚人發現,然而在她的報告結束後,全場立刻起立給王教授報以長久而熱烈的掌聲,人們擁向講臺向她表示衷心的祝賀,她帶去的報告材料被一搶而光。那的確是個令人難以忘懷的時刻。”

未來科學大獎得主訪談:王小云的數學和密碼人生

與迪菲(左 2)在 2004 年美密會上的合影

問 :2004 年美密會應該是您一生比較重要的時刻之一吧?

王 :是的。但當時還有一個問題,雖然我把 MD5 破了,但是初始值不同,雖然被驗證攻擊方法正確,還需要計算正確初始值下的破解結果。當時我很著急,但由於沒有國際漫遊,我只能打國際長途電話給自己的學生於紅波。那時我腦子很混亂,只記得好多人給我提供幫助,比如提供賬號,但最後由我愛人陪著我在校園的電話亭裡打國際長途。於紅波非常負責任,她知道我去美國開會這件事情比較重要,便在假期裡提早回到了學校。我打電話問她在哪裡,她說在山大,我說太好了,MD5 的初始值錯了,看能不能更換正確的初始值再運行一下。我讓她找到彭實戈老師的女兒,她和另外一位老師負責山大高性能計算機的運行,此前我也多次在週末麻煩她們。程序經過運行很快新的正確結果出來了。

所以等到 Rump Session 的時候,我宣佈的是正確結果。其他密碼學家都很吃驚,知道我一定有破解技術,把錯誤的初始值換成一個正確的初始值後能在短時間內運算出正確結果。第二天早上吃飯的時候,一個密碼專家對我說,他們政府詢問他 what happened。還有一個日本的密碼專家, 告訴我她是為日本政府工作的,他們政府讓她諮詢我哪個 Hash 函數還是安全的。後來在 2005 年的歐密會上,比哈姆更是感慨地對我說:“你知道嗎?破解 MD5 是我一生的夢想。現在你破解了,你贏了,這就是遊戲規則。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2006 年榮獲“求是傑出科學家獎”(左起:查濟民女兒,周光召,劉璧如,王小云,楊振寧,姚期智)


破解SHA-1


問 :您又是如何破解 SHA-1 的?

王 :2004年 11月,多伯丁請我去他那裡訪問。他是德國波鴻大學的教授,當時歐洲密碼工程的總體負責人。多伯丁是研究 Hash 函數的著名專家,就是他首次給出 MD4 的碰撞結果,他評估過 SHA-0,所以比較瞭解 SHA-0 和 SHA-1 的安全性。和我交流時,他預測了2005年密碼領域的兩個重要工作,其中一個工作他希望 SHA-1 可以被破到 57 步,當時其他人只能破到 40 步。我當時心想自己肯定能找到 57 步的碰撞,便隨口說了回去試試。其實破解SHA-1 我們只用了不到 3 個月,這期間發生了很多有趣和不可思議的事情。當時美國國家標準與技術研究院(NIST) 密碼的技術負責人公開說 MD5 雖然被破解了,但是 SHA-1 還沒發現任何安全隱患,結果沒過幾天就被我們給破解了。

從德國回來後我對於紅波說要把 SHA-1 分析到 57 步。SHA-1 有一個不 好的地方,它存在不可能差分。有一些看似很好的攻擊路線(差分路線),但是會在某個比特產生矛盾,這樣的路線是行不通的,因為不可能一個比特方程等於 1 和 0 同時並存。後來有一天我跟學生聊天說,如果把不可能變成可能就好了,學生說這是不可能的事。後來學生走了,我花了兩週時間什麼都不幹,把不可能差分變為可能差分,這樣整個攻擊就成功了,剩下的就是編程找到一個 57 步的實例了,並給出全算法的攻擊路線。


未來科學大獎得主訪談:王小云的數學和密碼人生


在山東大學工作(2005年)


問 :後面應該很順利了吧。

王 :也不盡然。我開始讓學生協助編程,編好後把山大數學院的機房的所有電腦停下來運行 SHA-1。當時寒假已經開始,我讓學生把程序弄好後回家,由我來負責監督計算機的運行。春節前的一天,我陪愛人去看望了他的導師曲音波老師,曲老師已經知道我破解 MD5 的事情非常高興。那時濟南已經冰天雪地,曲老師非要出門送我們回去,一直送到了高架橋上,我說還要回山大查看程序運行結果,那些程序已經運行 8 天了。按照道理,那麼多電腦一天就可以運行出來。結果到了山大以後,我發現一個結果都沒有出來,我失望之下便把所有電腦都給關了,然後就回家了。

未來科學大獎得主訪談:王小云的數學和密碼人生


我把信息量改過來之後,所有程序的運行就如我估計的那樣。一開始十分鐘出一個縮短輪的破解結果,一個小時出一個更多輪的破解結果,如果一個小時出的結果沒問題,那說明後面的攻擊路線就不會有問題了。我利用自己僅有的一臺電腦,用大量的數學方程控制它出我想要的結果。比如我設 47 步,15 分鐘就出來了結果;再比如我設 49 步,半個小時就出來了我想要的結果;我又挑戰 50 步,我判斷一個小時的運行時間,結果一個小時出來兩三個。在等待這些結果的時候,我就在那裡玩“蜘蛛紙牌”。說來奇怪,那天晚上每一局我都贏了。第二天我在有 64 個 CPU 的計算機上運行計算所有步數的結果。

問 :您又是如何公佈破解 SHA-1 結果的?

王:最後就是寫論文了。展濤校長知道我們破解 SHA-1 後,對此事非常關心,在論文完成的最後階段和投稿期間給予高度關注。

我們是在 05 年 2 月 14 號投稿給美密會,把論文發給了沙米爾與李維斯特。這之後還有一個故事,2 月 15 日正好世界 RSA 大會召開,這個會議的規模很龐大,有上萬人蔘加,正式註冊的有幾千人。比爾蓋茨等一些公司的總裁都要作演講。其中有一個密碼討論板塊,由五位頂級的密碼專家(包括三位圖靈獎得主沙米爾、李維斯特和迪菲),基本上都是現代密碼學的奠基人,要介紹密碼學的最新進展,SHA-1 自然是要討論的。沙米爾收到我們的論文後,便給我們(王小云、於紅波、尹伊群)寫信,詢問是否允許他們幫我們宣佈這一破解結果。尹伊群打電話找我,表示她已經同意,我也表示了同意,那時我正在農村老家休息,也不怎麼上網,結果又翻天了,全世界都在報道。事後從發佈的視頻得知宣佈時間 7 分鐘。沙米爾認為 SHA-1 的破解將引起軒然大波。

未來科學大獎得主訪談:王小云的數學和密碼人生

與比哈姆教授討論 Hash 函數(2005年歐密會)


問 :Hash 函數破解對業界帶來的影響以及國際同行的評價是什麼?

王 :針對 MD5 和 SHA-1 的破解,美國 NIST 於 2005 年和 2006 年專門舉辦兩次研討會探討 MD5 和 SHA-1 破解帶來的安全威脅,研究徵集新的 Hash 函數標準的競爭策略,並出臺了 Hash 函數新標準 SHA-3 的五年設計工程。針對我們對 SHA-1 破解的進一步改進結果,NIST 發文宣佈王教授確實發現了 SHA-1 的實際碰撞攻擊。2006 年 3 月 15 日,NIST 出臺了 Hash 函數新政策, 規定美國聯邦機構應該停止 SHA-1 在數字簽名、數字時間戳以及其他基於 SHA-1 無碰撞特性的密碼應用,並在 2010 年以後使用 SHA-2。美國數學會發表“數學與網絡安全”專欄文章,介紹了 14 世紀以來包括圖靈,沙米爾等五位圖靈獎得主在內的 19 位密碼學家的工作,我是其中之一。


未來科學大獎得主訪談:王小云的數學和密碼人生


2005年獲得歐密會最佳論文


國際密碼專家也對我們的工作給予了高度評價,如圖靈獎得主李維斯特評價“鑑於哈希函數毀滅性攻擊,必須採用新的算法取代 SHA-1”;國際密碼學會前主席 Preneel 等多篇論文給予評價:“王等攻擊暴露了當前被廣泛採納和部署的 Hash 函數 SHA-1 的安全漏洞”;“王等突破性工作引發了該領域理論研究與結構設計的研究熱潮”。AES 的發明者之一 Vincent Rijmen 評價“對 Hash 函數攻擊結果的公佈,重新喚起了該類密碼算法設計與分析的興趣”;沙米爾評價“MD5 的破解成果是 2004 年度密碼學研究領域中最了不起的發展,並對該領域的理論研究及實際應用產生了極大的影響”;Arjen K.Lenstra 評價 :“全世界的其他密碼學家現在仍然在努力試圖跟上王教授,理解她的結果和方法,這對於正確地估價其影響是至關重要的。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2005年受聘成為楊振寧講座教授(左起:楊振寧、王小云、顧秉林)


十年堅守,方得始終。面對這些褒獎,雖然它們是對我研究成果的認可,但我更認為這是對我團隊的肯定,是對我國密碼學界工作的肯定。

任職清華


問 :後來您到了清華大學高等研究院工作。

王 :離開山大原因是多方面的,其中兩個原因是我要認真考慮的。一是 2004年 11 月,姚期智先生邀請我到清華大學高等研究院作報告,應是楊振寧先生和姚先生共同的決定,他們想讓我到清華去工作。楊先生去山大訪問,一下飛機便問展濤校長我能不能到清華工作。

二是正好那時我愛人完成了博士後研究,面臨著找工作的問題,他希望到北京去工作。這時清華邀請我,我們一家面臨著到底是留在山大還是去清華的問題。後來我去找展濤校長彙報了此事,展校長說他認為我到清華與大師們一起工作,對我將來的事業發展是有幫助的,但是作為校長,從山大的發展角度來說,他不同意我離開山大。


未來科學大獎得主訪談:王小云的數學和密碼人生


與楊振寧先生交流(2012年清華大學高等研究院成立 15 週年)


問 :所以還是需要您自己做最後的決定。


王 :後來我想要不就去試試吧。我很理解山大老師與同學們對我的深厚感情,畢竟山大培養了我,所以我把自己的所有成果留給了山大,比如我的國家自然科學獎的獲獎單位就是山東大學,清華大學並沒有擁有我的這些成果。直到現在我一直是山大與清華雙聘教授,除了停止了本科生的教學,在山大的其他工作依然正常進行。現在在北京工作,我可以更多地站在國家的角度思考問題,雖然在濟南和北京都能為國家做貢獻,但北京畢竟是學術中心,許多會議都在北京召開,開完會後我可以立刻回到辦公室工作,這是我堅持一線工作的最好選擇。

當年 MD5 和 SHA-1 破解,我申報了國家自然科學一等獎,但最後評定為二等獎,我當時沒有接受,覺得申報得有些倉促,國際影響力還不凸顯,另外我個人覺得這個成果申報一等獎是有資格的, 所以最後沒有接受。第二年我繼續申報,還是得了二等獎,這次我接受了。我認為第一次我不接受代表了我的學術觀點,第二次接受則是尊重大家 的評審, 這就是我看待這個問題的觀點。或許一項成果在不太好判斷的情況下,評定為二等獎是比較穩妥的。另外一等獎也確實比較難獲得,只有像潘承洞、王元、陳景潤等學術大師的研究成果,才配得上國家自然科學一等獎。

問 :能不能談一下與姚期智先生的合作?

王 :姚先生是研究計算複雜性理論的,他的隨機性理論在密碼學中有很重要的應用,是開創性的工作,他對密碼學做了重要的貢獻。我和姚先生合作是很自然的一件事情,我們在一起合作了兩年多的時間,我們的 973 項目的合作對中國密碼學發展起到了很好的推動作用。


未來科學大獎得主訪談:王小云的數學和密碼人生


與研究生在清華大學辦公室討論問題(2018)


問 :那您與楊振寧先生的接觸多嗎?

王 :與楊先生的接觸很多。他經常到高等研究院的辦公室來工作,還不時組織或參加高等研究院的一些活動。楊先生經常給我講一些物理學界好的工作和他本人的一些經歷,另外談論數學也比較多,特別是提到數學家閔嗣鶴先生。楊先生的父親楊武之先生是數學家,與閔嗣鶴先生是世交,楊先生曾經談及昆明居住期間,閔先生經常到楊先生家聊天,談自己工作中面臨的苦惱,有時用詩抒發感情。談到上世紀 30 年代華羅庚來楊先生家和楊武之討論數學,還談到 1928 年至 1929 年期間在廈門柯召和楊武之下圍棋的情景。另外也問一些潘承洞老師的事情。我覺得楊先生對密碼很關心,經常問我一些密碼學的問題。最近楊先生還希望我寫一篇區塊鏈的普及文章,他想了解一下區塊鏈的問題。


問 :您在清華做研究還和在山大一樣嗎?

王 :在山大時我主要是在家中一個人做研究,在清華則主要是在辦公室裡指導學生做研究,我覺得兩個形式不大一樣。在山大時我推路線也編程,學生主要幫我部分編程和調整路線,到清華的前半階段我還是和在山大差不多,後來我發現帶出來的學生總體效果欠佳。我開始逐漸調整,把重心放在人才培養上,現在基本上以我指導為主,主要由學生來做。現在流密碼的團隊已經建立起來了,2012 年開始做這個方向,我指導了三批學生,最後一個學生做成了,當然前面的學生也做了很多工作,但這些工作與問題的解決差距仍很大,主要還是和大量的方程控制和長久堅持有關。現在我主要把握研究方向和思路,提供可能的方法和需要解決的關鍵技術,激發學生的潛能,使創新成為常態,就跟自己當年做 MD5 和 SHA-1 一樣。經過多年的努力,現在終於做出了一些優秀成果。

未來科學大獎得主訪談:王小云的數學和密碼人生

從白春禮院長手中接過院士聘書


問 :您在去年(2017)當選為中國科學院院士。

王 :我之前申報過四次院士,都是在信息學部。其實一開始朱邦芬老師就建議我從數理學部申報,但更多的密碼專家建議我從信息學部申報,我覺得院士申報多次很正常,誰先當選都沒有問題。近年來,中國科學院的院士選舉進行了改革,國家開始重視交叉領域,因為學科交叉能推動科技創新,國家的重大需求也需要交叉學科。我很幸運第一次在數理學部走交叉就成功了。數理學部的評選非常客觀,對我的學術成果比較瞭解和認同。我非常感謝國家對交叉學科的重視和支持,這是一個積極的信號,將來還會有其他交叉學科的研究人員從中受益。

密碼普及


問 :能不能談一下您和一些數學家的交往經歷?

王 :從我在山大讀書開始,由於當時的原因與國內數學家接觸比較多的是王元院士和潘承彪老師,還有彭實戈老師,他們對我的影響較大。在山大數學院工作時和彭老師是同事,我們常在一起開會交流,他對數學的熱愛簡直到了痴迷的程度,對密碼學的數學問題一直很關心,並且興趣非常高。我們經常討論密碼數學問題。

"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

未來科學大獎得主訪談:王小云的數學和密碼人生

2004年美密會宣佈破解 MD5


國際著名 PGP 公司負責人菲利普·齊默曼(Philip R. Zimmermann)在會議現場當眾對我說:“憑藉這一成果,你可以在美國任何一所大學獲得職位。”然後大家都很激動,Rump Session 主席斯圖爾特·哈伯(Stuart Haber)高興地到處跑來跑去,直到多年後他在北京見到我回想起那次大會還很激動。

當時整個現場非常震驚,大家建議我把結果放在網上,讓其他密碼學家去驗證正確性。我和來學嘉老師工作到凌晨三點後把結果放到了網上,結果早上8點來老師來敲我的門,說他的郵箱爆了。郵件中大家都說我的其他算法攻擊結果沒有問題,但對 MD5 的攻擊結果不對。吃飯時還有人說 MD5 的結果有問題,我說肯定沒問題。到了會場後,比哈姆也說我的 MD5 結果不對,我建議兩個人來一個現場測試。我們倆人各自迅速打開了電腦,MD5 一共有64步,我們從倒數第一步開始搜索,不得不說比哈姆這樣頂級的密碼分析學家真是厲害,他的速度非常之快,我的反應也很快,結果從倒數第一步到第一步都不一樣,我心想壞了。那時我腦子很靈光,馬上判斷出兩個人有一個初始值不同。比哈姆說他的是標準程序,我說我用的是《密碼學與安全:從理論到應用》(Cryptography and Security: From Theory to Applications)書上的,比哈姆電腦裡恰好有這本書的電子版,馬上把它放進去運行。結果不到一秒鐘,聽到比哈姆說“congratulation,you break MD5”。

問 :是在會場嗎?

王 :就在會場。會上他祝賀了我,茶歇的時候他告訴別人我破解的 MD5 沒有問題,其他人也開始祝賀我。然後到了 Rump Session 報告的時候,當我講到用手(by hand)破解 MD4 的時候,會場響起了雷鳴般的掌聲,當時把我嚇得還以為自己講錯了。我講完後,幾乎全場的人都站起來鼓掌,掌聲持續了好久。密碼學家 Yvo Desmedt 當時胳膊骨折了,他用另一隻手擊打大腿表示鼓掌,我當時都蒙了。

問 :Rump Session 時您有照片留下嗎?

王 :作報告時我愛人有一些錄像,但報告一結束,許多密碼專家把我給包圍了,現代密碼學的奠基人之一沙米爾等人都過來向我表示祝賀,人太多把我愛人擠到外面去了。這也成為我愛人很遺憾的一件事。當時場面太熱烈他也蒙了,都不知道去拍照錄像了。不過那年美密會我還是有幾張珍貴照片留下,其中一張是我正在聊天,被惠特菲爾德·迪菲(Whitfield Diffie)等拉過去拍了一張照片。雖然當時沒有留下很多的影像,但是後來 Arjen K. Lenstra(格基約化算法 LLL 以及數域篩法的第一作者)對這個場面進行了描述“從上世紀九十年代初起,我參加過幾乎所有在國際上最重要的密碼學會議(亞密會、美密會和歐密會),但我從沒有經歷過像今年會上的盛況;當王教授陳述其報告的時候,在場聆聽報告的人們彼此相望,幾乎不相信王教授的驚人發現,然而在她的報告結束後,全場立刻起立給王教授報以長久而熱烈的掌聲,人們擁向講臺向她表示衷心的祝賀,她帶去的報告材料被一搶而光。那的確是個令人難以忘懷的時刻。”

未來科學大獎得主訪談:王小云的數學和密碼人生

與迪菲(左 2)在 2004 年美密會上的合影

問 :2004 年美密會應該是您一生比較重要的時刻之一吧?

王 :是的。但當時還有一個問題,雖然我把 MD5 破了,但是初始值不同,雖然被驗證攻擊方法正確,還需要計算正確初始值下的破解結果。當時我很著急,但由於沒有國際漫遊,我只能打國際長途電話給自己的學生於紅波。那時我腦子很混亂,只記得好多人給我提供幫助,比如提供賬號,但最後由我愛人陪著我在校園的電話亭裡打國際長途。於紅波非常負責任,她知道我去美國開會這件事情比較重要,便在假期裡提早回到了學校。我打電話問她在哪裡,她說在山大,我說太好了,MD5 的初始值錯了,看能不能更換正確的初始值再運行一下。我讓她找到彭實戈老師的女兒,她和另外一位老師負責山大高性能計算機的運行,此前我也多次在週末麻煩她們。程序經過運行很快新的正確結果出來了。

所以等到 Rump Session 的時候,我宣佈的是正確結果。其他密碼學家都很吃驚,知道我一定有破解技術,把錯誤的初始值換成一個正確的初始值後能在短時間內運算出正確結果。第二天早上吃飯的時候,一個密碼專家對我說,他們政府詢問他 what happened。還有一個日本的密碼專家, 告訴我她是為日本政府工作的,他們政府讓她諮詢我哪個 Hash 函數還是安全的。後來在 2005 年的歐密會上,比哈姆更是感慨地對我說:“你知道嗎?破解 MD5 是我一生的夢想。現在你破解了,你贏了,這就是遊戲規則。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2006 年榮獲“求是傑出科學家獎”(左起:查濟民女兒,周光召,劉璧如,王小云,楊振寧,姚期智)


破解SHA-1


問 :您又是如何破解 SHA-1 的?

王 :2004年 11月,多伯丁請我去他那裡訪問。他是德國波鴻大學的教授,當時歐洲密碼工程的總體負責人。多伯丁是研究 Hash 函數的著名專家,就是他首次給出 MD4 的碰撞結果,他評估過 SHA-0,所以比較瞭解 SHA-0 和 SHA-1 的安全性。和我交流時,他預測了2005年密碼領域的兩個重要工作,其中一個工作他希望 SHA-1 可以被破到 57 步,當時其他人只能破到 40 步。我當時心想自己肯定能找到 57 步的碰撞,便隨口說了回去試試。其實破解SHA-1 我們只用了不到 3 個月,這期間發生了很多有趣和不可思議的事情。當時美國國家標準與技術研究院(NIST) 密碼的技術負責人公開說 MD5 雖然被破解了,但是 SHA-1 還沒發現任何安全隱患,結果沒過幾天就被我們給破解了。

從德國回來後我對於紅波說要把 SHA-1 分析到 57 步。SHA-1 有一個不 好的地方,它存在不可能差分。有一些看似很好的攻擊路線(差分路線),但是會在某個比特產生矛盾,這樣的路線是行不通的,因為不可能一個比特方程等於 1 和 0 同時並存。後來有一天我跟學生聊天說,如果把不可能變成可能就好了,學生說這是不可能的事。後來學生走了,我花了兩週時間什麼都不幹,把不可能差分變為可能差分,這樣整個攻擊就成功了,剩下的就是編程找到一個 57 步的實例了,並給出全算法的攻擊路線。


未來科學大獎得主訪談:王小云的數學和密碼人生


在山東大學工作(2005年)


問 :後面應該很順利了吧。

王 :也不盡然。我開始讓學生協助編程,編好後把山大數學院的機房的所有電腦停下來運行 SHA-1。當時寒假已經開始,我讓學生把程序弄好後回家,由我來負責監督計算機的運行。春節前的一天,我陪愛人去看望了他的導師曲音波老師,曲老師已經知道我破解 MD5 的事情非常高興。那時濟南已經冰天雪地,曲老師非要出門送我們回去,一直送到了高架橋上,我說還要回山大查看程序運行結果,那些程序已經運行 8 天了。按照道理,那麼多電腦一天就可以運行出來。結果到了山大以後,我發現一個結果都沒有出來,我失望之下便把所有電腦都給關了,然後就回家了。

未來科學大獎得主訪談:王小云的數學和密碼人生


我把信息量改過來之後,所有程序的運行就如我估計的那樣。一開始十分鐘出一個縮短輪的破解結果,一個小時出一個更多輪的破解結果,如果一個小時出的結果沒問題,那說明後面的攻擊路線就不會有問題了。我利用自己僅有的一臺電腦,用大量的數學方程控制它出我想要的結果。比如我設 47 步,15 分鐘就出來了結果;再比如我設 49 步,半個小時就出來了我想要的結果;我又挑戰 50 步,我判斷一個小時的運行時間,結果一個小時出來兩三個。在等待這些結果的時候,我就在那裡玩“蜘蛛紙牌”。說來奇怪,那天晚上每一局我都贏了。第二天我在有 64 個 CPU 的計算機上運行計算所有步數的結果。

問 :您又是如何公佈破解 SHA-1 結果的?

王:最後就是寫論文了。展濤校長知道我們破解 SHA-1 後,對此事非常關心,在論文完成的最後階段和投稿期間給予高度關注。

我們是在 05 年 2 月 14 號投稿給美密會,把論文發給了沙米爾與李維斯特。這之後還有一個故事,2 月 15 日正好世界 RSA 大會召開,這個會議的規模很龐大,有上萬人蔘加,正式註冊的有幾千人。比爾蓋茨等一些公司的總裁都要作演講。其中有一個密碼討論板塊,由五位頂級的密碼專家(包括三位圖靈獎得主沙米爾、李維斯特和迪菲),基本上都是現代密碼學的奠基人,要介紹密碼學的最新進展,SHA-1 自然是要討論的。沙米爾收到我們的論文後,便給我們(王小云、於紅波、尹伊群)寫信,詢問是否允許他們幫我們宣佈這一破解結果。尹伊群打電話找我,表示她已經同意,我也表示了同意,那時我正在農村老家休息,也不怎麼上網,結果又翻天了,全世界都在報道。事後從發佈的視頻得知宣佈時間 7 分鐘。沙米爾認為 SHA-1 的破解將引起軒然大波。

未來科學大獎得主訪談:王小云的數學和密碼人生

與比哈姆教授討論 Hash 函數(2005年歐密會)


問 :Hash 函數破解對業界帶來的影響以及國際同行的評價是什麼?

王 :針對 MD5 和 SHA-1 的破解,美國 NIST 於 2005 年和 2006 年專門舉辦兩次研討會探討 MD5 和 SHA-1 破解帶來的安全威脅,研究徵集新的 Hash 函數標準的競爭策略,並出臺了 Hash 函數新標準 SHA-3 的五年設計工程。針對我們對 SHA-1 破解的進一步改進結果,NIST 發文宣佈王教授確實發現了 SHA-1 的實際碰撞攻擊。2006 年 3 月 15 日,NIST 出臺了 Hash 函數新政策, 規定美國聯邦機構應該停止 SHA-1 在數字簽名、數字時間戳以及其他基於 SHA-1 無碰撞特性的密碼應用,並在 2010 年以後使用 SHA-2。美國數學會發表“數學與網絡安全”專欄文章,介紹了 14 世紀以來包括圖靈,沙米爾等五位圖靈獎得主在內的 19 位密碼學家的工作,我是其中之一。


未來科學大獎得主訪談:王小云的數學和密碼人生


2005年獲得歐密會最佳論文


國際密碼專家也對我們的工作給予了高度評價,如圖靈獎得主李維斯特評價“鑑於哈希函數毀滅性攻擊,必須採用新的算法取代 SHA-1”;國際密碼學會前主席 Preneel 等多篇論文給予評價:“王等攻擊暴露了當前被廣泛採納和部署的 Hash 函數 SHA-1 的安全漏洞”;“王等突破性工作引發了該領域理論研究與結構設計的研究熱潮”。AES 的發明者之一 Vincent Rijmen 評價“對 Hash 函數攻擊結果的公佈,重新喚起了該類密碼算法設計與分析的興趣”;沙米爾評價“MD5 的破解成果是 2004 年度密碼學研究領域中最了不起的發展,並對該領域的理論研究及實際應用產生了極大的影響”;Arjen K.Lenstra 評價 :“全世界的其他密碼學家現在仍然在努力試圖跟上王教授,理解她的結果和方法,這對於正確地估價其影響是至關重要的。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2005年受聘成為楊振寧講座教授(左起:楊振寧、王小云、顧秉林)


十年堅守,方得始終。面對這些褒獎,雖然它們是對我研究成果的認可,但我更認為這是對我團隊的肯定,是對我國密碼學界工作的肯定。

任職清華


問 :後來您到了清華大學高等研究院工作。

王 :離開山大原因是多方面的,其中兩個原因是我要認真考慮的。一是 2004年 11 月,姚期智先生邀請我到清華大學高等研究院作報告,應是楊振寧先生和姚先生共同的決定,他們想讓我到清華去工作。楊先生去山大訪問,一下飛機便問展濤校長我能不能到清華工作。

二是正好那時我愛人完成了博士後研究,面臨著找工作的問題,他希望到北京去工作。這時清華邀請我,我們一家面臨著到底是留在山大還是去清華的問題。後來我去找展濤校長彙報了此事,展校長說他認為我到清華與大師們一起工作,對我將來的事業發展是有幫助的,但是作為校長,從山大的發展角度來說,他不同意我離開山大。


未來科學大獎得主訪談:王小云的數學和密碼人生


與楊振寧先生交流(2012年清華大學高等研究院成立 15 週年)


問 :所以還是需要您自己做最後的決定。


王 :後來我想要不就去試試吧。我很理解山大老師與同學們對我的深厚感情,畢竟山大培養了我,所以我把自己的所有成果留給了山大,比如我的國家自然科學獎的獲獎單位就是山東大學,清華大學並沒有擁有我的這些成果。直到現在我一直是山大與清華雙聘教授,除了停止了本科生的教學,在山大的其他工作依然正常進行。現在在北京工作,我可以更多地站在國家的角度思考問題,雖然在濟南和北京都能為國家做貢獻,但北京畢竟是學術中心,許多會議都在北京召開,開完會後我可以立刻回到辦公室工作,這是我堅持一線工作的最好選擇。

當年 MD5 和 SHA-1 破解,我申報了國家自然科學一等獎,但最後評定為二等獎,我當時沒有接受,覺得申報得有些倉促,國際影響力還不凸顯,另外我個人覺得這個成果申報一等獎是有資格的, 所以最後沒有接受。第二年我繼續申報,還是得了二等獎,這次我接受了。我認為第一次我不接受代表了我的學術觀點,第二次接受則是尊重大家 的評審, 這就是我看待這個問題的觀點。或許一項成果在不太好判斷的情況下,評定為二等獎是比較穩妥的。另外一等獎也確實比較難獲得,只有像潘承洞、王元、陳景潤等學術大師的研究成果,才配得上國家自然科學一等獎。

問 :能不能談一下與姚期智先生的合作?

王 :姚先生是研究計算複雜性理論的,他的隨機性理論在密碼學中有很重要的應用,是開創性的工作,他對密碼學做了重要的貢獻。我和姚先生合作是很自然的一件事情,我們在一起合作了兩年多的時間,我們的 973 項目的合作對中國密碼學發展起到了很好的推動作用。


未來科學大獎得主訪談:王小云的數學和密碼人生


與研究生在清華大學辦公室討論問題(2018)


問 :那您與楊振寧先生的接觸多嗎?

王 :與楊先生的接觸很多。他經常到高等研究院的辦公室來工作,還不時組織或參加高等研究院的一些活動。楊先生經常給我講一些物理學界好的工作和他本人的一些經歷,另外談論數學也比較多,特別是提到數學家閔嗣鶴先生。楊先生的父親楊武之先生是數學家,與閔嗣鶴先生是世交,楊先生曾經談及昆明居住期間,閔先生經常到楊先生家聊天,談自己工作中面臨的苦惱,有時用詩抒發感情。談到上世紀 30 年代華羅庚來楊先生家和楊武之討論數學,還談到 1928 年至 1929 年期間在廈門柯召和楊武之下圍棋的情景。另外也問一些潘承洞老師的事情。我覺得楊先生對密碼很關心,經常問我一些密碼學的問題。最近楊先生還希望我寫一篇區塊鏈的普及文章,他想了解一下區塊鏈的問題。


問 :您在清華做研究還和在山大一樣嗎?

王 :在山大時我主要是在家中一個人做研究,在清華則主要是在辦公室裡指導學生做研究,我覺得兩個形式不大一樣。在山大時我推路線也編程,學生主要幫我部分編程和調整路線,到清華的前半階段我還是和在山大差不多,後來我發現帶出來的學生總體效果欠佳。我開始逐漸調整,把重心放在人才培養上,現在基本上以我指導為主,主要由學生來做。現在流密碼的團隊已經建立起來了,2012 年開始做這個方向,我指導了三批學生,最後一個學生做成了,當然前面的學生也做了很多工作,但這些工作與問題的解決差距仍很大,主要還是和大量的方程控制和長久堅持有關。現在我主要把握研究方向和思路,提供可能的方法和需要解決的關鍵技術,激發學生的潛能,使創新成為常態,就跟自己當年做 MD5 和 SHA-1 一樣。經過多年的努力,現在終於做出了一些優秀成果。

未來科學大獎得主訪談:王小云的數學和密碼人生

從白春禮院長手中接過院士聘書


問 :您在去年(2017)當選為中國科學院院士。

王 :我之前申報過四次院士,都是在信息學部。其實一開始朱邦芬老師就建議我從數理學部申報,但更多的密碼專家建議我從信息學部申報,我覺得院士申報多次很正常,誰先當選都沒有問題。近年來,中國科學院的院士選舉進行了改革,國家開始重視交叉領域,因為學科交叉能推動科技創新,國家的重大需求也需要交叉學科。我很幸運第一次在數理學部走交叉就成功了。數理學部的評選非常客觀,對我的學術成果比較瞭解和認同。我非常感謝國家對交叉學科的重視和支持,這是一個積極的信號,將來還會有其他交叉學科的研究人員從中受益。

密碼普及


問 :能不能談一下您和一些數學家的交往經歷?

王 :從我在山大讀書開始,由於當時的原因與國內數學家接觸比較多的是王元院士和潘承彪老師,還有彭實戈老師,他們對我的影響較大。在山大數學院工作時和彭老師是同事,我們常在一起開會交流,他對數學的熱愛簡直到了痴迷的程度,對密碼學的數學問題一直很關心,並且興趣非常高。我們經常討論密碼數學問題。

未來科學大獎得主訪談:王小云的數學和密碼人生

與裴定一(左 1)、李淑英(左 2)、於秀源(左 3)教授合影


潘承洞老師任校長時比較忙,實際上我的博士論文和幾個師兄的一些論文都得到了潘承彪老師的認真審核,得到了他的細緻指導,相當於又多了一個導師。潘老師兄弟對中國數論的發展貢獻很大,在人才培養方面做得也很成功。我對潘老師最敬佩的是當年山大數論老師都有在國外交流與工作機會,於秀源、展濤、王瑋他們曾出國交流,並且已在國際上嶄露頭角,潘老師寫信讓他們按時回國,所有成員都做到了,為國家留住了人才。潘老師當年在山大出臺了很多博士、博士後引進計劃。

我自己培養人才也是按照這個模式。我培養的學生有的已獲得了國家科技進步一等獎,還有一名女學生王美琴的密碼分析工作很出色,剛獲得省部級的一等獎。我鼓勵學生們出國留學,但並不支持他們在國外待那麼長的時間,不一定以“青千”的身份引進才回來。當然,是否是“青千”在待遇上的差別很大,不過我相信國家和學校很快會做出調整,讓更多真正有能力的學者待遇得到大幅度提高。目前國家人才計劃入選者非常優秀,但沒有頭銜同樣優秀的人仍然很多,如何通過支持他們加大國家科技創新能力與水平是一個需要思考的問題。

問 :您剛才談了與幾位數學家的交往,那信息安全專家呢?

王 :信息安全專家主要是蔡吉人院士,他對我的影響是比較深刻的,也是一生的。蔡院士在很多公開場合提到要學習王小云十年磨一劍的精神,我很感動。我特別感動的是蔡院士讀了國外頂級密碼專家給我的學術評價激動地說感謝你為國家爭得了榮譽。還有沈昌祥院士,在學科建設方面給我很多指導,我們同在教育部信息安全指導委員會裡任職,他是主任,我是副主任。再有就是肖國鎮老師,還有裴定一老師,裴定一老師曾擔任中國密碼學會理事長。

問 :最後想問您一下數學與密碼普及的問題,這方面您有什麼好的建議?

王 :我現在主要從事密碼學的研究,對數學的普及沒有發言權,但我自己可以做一些與密碼相關的數學普及。比如分解因子是密碼學和數學的交叉領域,從埃氏搜索到連分數方法、數域篩法,計算機能夠分解幾十比特到 700 多個比特的整數,到今天量子計算機分解十幾個比特的整數等。目前國內這方面的書籍並不多,需要下功夫來寫。從因子分解的經典數學算法到量子計算算法,裡面有很多內容是可以介紹的。

對於密碼普及我們已開始做了一些工作,比如在網絡空間安全教材體系的規劃中,我們為密碼普及做了很好的計劃。由於密碼與網絡攻擊有關,我認為密碼普及適合採用書本和網站這兩種形式。密碼的普及網站可以介紹密碼是什麼、密碼的重要性、密碼如何保護信息和網絡安全、密碼中的數學問題、密碼攻擊事件、網絡安全事件,用書本的方式向公眾普及密碼知識,2017 年 10 月,人民出版社出版的《商用密碼知識與政策幹部讀本》就是一本很好的密碼應用和科普書籍。楊振寧先生很重視科學普及,他曾送我一本《郵票上的物理學史》,是清華大學出版社出版的,只是忙於工作我只閱讀了少部分。

問 :目前公眾對密碼的理解是不是還有很大偏差?

王 :是的,經常有人來找我破行李箱密碼和計算機的口令(笑)。實際上口令 與密碼是不一樣的,如果有密碼技術才可以叫密碼,否則就是口令。還有一點就是大家對破譯與破解的認識有很大的差異,這個一定要解釋清楚,否則對中國的密碼和信息安全學術領域是有一定影響的。英文中有兩個單詞 break 和 attack,我們統一譯做破解與攻擊。如果一個密碼算法的破解難度是 2128 次計算,你用了 2100 次運算破了是破解,230 次運算破了也是破解。2000 年左右學術界把大於 264 次計算的破解叫做理論破解,小於 264 次計算的破解叫做實際破解,即大型計算機可以把結果運算出來,當然這個標準是會隨著計算機的速度而調整的,目前比特幣運算時間可提升至 270 次左右。2006 年我們破解的 SHA-1 是263 次運算,美國的 NIST 官方網站定為實際攻擊(practical attack),這在學術界還是比較嚴格的。十年後,Marc Steven 在谷歌的支持下找到的 SHA-1 碰撞實例也驗證了 NIST 的斷言,其計算複雜度約為 263 ,與 2006 年我們宣佈的攻擊複雜度相當。

由於之前的密碼學只有加密算法,我們國家一般把明文譯出來叫破譯,這是延續了傳統的概念,是正確的。然而現代密碼在計算機網絡中有 3 類算法:加密算法、簽名算法和 Hash 函數算法。按照原來的定義,只有將加密算法恢復出明文才能叫做破譯,其他算法的破解一般不叫做破譯,而只能叫做破解。即使就加密算法而言,大量的加密算法由於具有過高的計算複雜度而只能做到理論破解,因此也不能叫做破譯。在現代密碼學的學術研究中,不管是求出明文或密鑰,還是得到了簽名私鑰或者偽造了簽名、給出了 Hash 函數的碰撞攻擊,破解了區塊鏈等我們統一都叫破解,破譯只是針對其中的一種破解形式。

英文中其實並沒有專門對應破譯的單詞,為此我專門查了牛津字典和百科全書,破譯和破解是一個單詞 break。這個問題給我造成了一定的困惑,過去十多年大家普遍關心的就是我到底有沒有破譯。我回應說沒有破譯,而是破解。大家一聽你說沒破譯,就覺得我沒破解算法。由此可見密碼普及的重要性。

問 :這還是密碼普及得不夠。

王 :是的,普及不夠,概念不清就容易混亂。這個問題也是我被問到次數最多的問題。國際上就是 break(attack),國內追究破譯與破解,後來我明白了可能還是受文化的一些影響。破譯叫破解沒問題,但是破解可不可以叫破譯呢?沒人對此下定義。實際上很簡單,統一叫破解沒有任何問題。

我也很想有時間了專門寫一篇關於密碼方面的科普文章,也許投給《數學文化》是一個不錯的選擇。如果我們搞密碼的人不重視這件事情,那誰還會去做這件事呢,這也是我們密碼人義不容辭的責任。

問 :那文章一定會極受歡迎。非常感謝您接受《數學文化》的訪談,祝您生活愉快!

王小云院士審閱了全文,湯濤教授對本文的訪問整理給予了大力支持與鼓勵,特此致謝。


"

昨天 (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)有一個觀點是任何一個密碼算法如果產生強雪崩就是安全的,相當於你從輸出完全找不到輸入信息的任何數學規律。對於雪崩比較慢的幾步,我就按比特來分析,看幾步之後輸出的差別。我總是假設加法沒有比特進位,這樣就會雪崩地特別慢,到了八步、十步、二十步還沒有雪崩到全空間,但是雖然雪崩慢卻不可能發生碰撞。如果考慮比特進位就全亂套了,很快變成隨機的了。我就想能不能用方程來控制,如果能加上一個方程,只要這個方程成立,它就沒有比特進位或者僅產生一個比特進位,這一下就打通了我的整個思路。


未來科學大獎得主訪談:王小云的數學和密碼人生


工作之餘喜歡養花(2004 年)


問 :您是如何想到這一點的?

王 :我覺得就是數學中的函數思想。數學無非就是函數和方程,比如以前學習的是解析數論的函數,而密碼算法看起來是一個雜亂無章的函數,本質上還是一個寫不出的複雜方程,我還是用方程來控制。只是領域不同,方程不同。我從 96 年初開始研究這個問題,到了 97 年就給出 SHA-0 的 碰撞攻擊。98 年至 99 年,我又破解了 HAVAL-128 和 RIPEMD 等算法。

在1998年的歐密會上,安東尼·茹(Antoine Joux)宣佈破解了 SHA-0。實際上,我們兩個人幾乎是同時獨立破解了 SHA-0,也許我比他還要更早一點,只不過他是通過美密會(CRYPTO)投稿發表的。美密會是每年2月15號截止投稿,8月16日左右正式開會。我則是在97年12月正式提交了 SHA-0 破解的技術報告。

問 :您當時並沒有公佈這個破解。

王:由於當時研究項目的要求是技術報告,因此我並沒有發表 SHA-0 的破解結果。茹教授因為破解 SHA-0,從而成為國際上傑出的密碼分析專家。我直到後來 公佈破解 MD5 和 SHA-1 之後,才被國際上認識,比茹教授要晚了七、八年。儘管當時國際密碼領域不知道我們獨立發現了 SHA-0 的破解,但是茹和他 的合作者在論文中描述“我們的成果是一種創新的攻擊模式,這類毀滅性攻擊破解了 MD5、SHA-0、SHA-1 等”,這個描述讓我非常敬佩茹教授的為人。

問 :所以項目部門是知道您破解了 SHA-0 的。

王 :是的,蔡院士當時就知道了,他對我一直很支持。後來有個師兄對我說, 你破解了這麼多算法,但沒有一個是有實例的,別人都看不懂,只有蔡院士能看懂,為什麼不出個實例?2003 年我正好申請到一個 863 項目,為此我努力工作了整整一年,把所有能出結果的算法都實現了,是一項非常漂亮的工作,也非常的不容易。後來我又去申請了國家自然科學基金的項目,基金委很重視我的工作,直接給我升級為重點項目進行支持。

其實 MD5 的破解與 863 項目有直接關係,在 863 項目的鑑定會上,一些專家認為我破了這麼多算法很好,但是計算機網絡大量使用 MD5,為什麼不去破 MD5。後來同領域一些密碼專家也很想知道 MD5 是否安全。我想自己破解了那麼多算法,但 SHA-1 和 MD5 是廣泛通用國際密碼算法標準,我就決定分析 MD5,結果兩個月就取得了突破。

問 :兩個月就破出來了!

王 :是的,因為之前我已經有了一套比較系統完備的破解理論。當然還有一些其他技術上的難題,這就需要進一步創新方法來解決。我這個人不願意服輸,破解 MD5 的時候用我之前的那些技術不太有效,我必須知道如何控制複雜環境下的比特進位。之前用的每步僅有幾個比特進位的攻擊路線一般需要一兩百個方程的控制,我就想如何進行大幅度的控制。對於 MD5,漢斯·多伯丁(Hans Dobbertin)教授曾給出偽碰撞攻擊的結果,其中有幾步複雜的分析結果,這個結果他肯定是用計算機窮盡搜索出來的,後來我發現可以用比特方程把它解析出來,這說明我可以成功控制長比特進位的攻擊路線,使得破解 MD5 成為可能。關鍵還是方程,沒有方程不行。我首先將 MD5 瞬間打亂讓它產生雪崩,然後再用許多方程把它控制回來,這樣選擇的餘地會大一些。當然,想把雪崩拉回來是很難的,會出現好多矛盾的條件,後來這在密碼學上被稱作不兼容。但只要路線沒有問題,通過調整,這些不兼容是可以克服的。

美密會


問 :請您介紹一下參加美密會的經歷。

王 :參加美密會之前還有一個故事。當時我已經找到了 HAVAL-128,MD4, MD5 的碰撞實例,但 RIPEMD 只是給出了破解路線,並沒有編程去找實例。在隨機假設的條件下,RIPEMD 攻擊路線在理論上沒有任何問題,但 RIPEMD 與其它算法不同,它有兩個並行的算法,這意味著一個明文(32 個比特)有時要保證超過 32 個左右的條件成立,這就不可能了。我在編程的時候發現了這個問題,與之前遇到的條件不兼容不同,這次主要是明文信息量不夠。密碼破解一般需要隨機假設,但當信息量不夠時,便不再滿足隨機假設這個前提條件。密碼分析容易犯錯誤的地方就在於隨機假設的條件一旦不成立,攻擊路線就會存在問題。

比如一個路線第一輪有16步,如果第一輪沒有問題,那後面肯定沒有問題,因為信息量是足夠的。但如果第一輪前幾步的信息量就不夠,這樣就比較麻煩。有3個月的時間,我幾乎每天晚上都在調整攻擊路線和對應的比特方程。每天哄女兒睡著後,我便起來工作繼續編程到深夜。第二天送女兒上學後,趕緊回家繼續尋找新的攻擊路線。我的電腦裡保存著比較好的攻擊路線就有17條,你就可以想象沒有保存的路線有多少。我是用電腦寫的這些方程,要是按照以前手寫的話紙張也有一大堆了。破解密碼現在都是利用計算機來分析,不像以前都是打算盤、寫草稿,那個時代已經一去不復返了。

由於比特方程太多了,我腦子根本記不住,只能把所有的比特方程都打出來,並且把每一步的比特值列出來,然後開始找矛盾。每天一步一步地看,非常痛苦,經常是第一天解決了其中的某一步,第二天時又發現了別的問題。這個工作堅持了3個月才完成。那時我愛人正在美國做博士後,後來我去訪問了他一段時間。RIPEMD 的攻擊路線雖然找到了,但碰撞實例沒有找到。我愛人白天去上班後,我便開始在家調程序找碰撞實例。剩下的唯一問題就是搜索空間不大,當我發現信息空間不夠時,就把前面的條件修改一下,再釋放些空間出來。我用自己的那臺小電腦跑程序,遇到搜索空間不夠會產生死循環,就手工調整一下,讓它繼續運行下去,這樣可以搜索出很多中間結果。那時電腦一般工作一個小時後就會死循環,有時候晚上我愛人會起來幫我設置一下電腦讓它繼續運行下去,基本上就是這樣一種狀態。運算結果在美密會召開的兩三天之前正好出來了。

問 :您04年在美密會上公佈破解 MD5 等算法後,場面一定很火爆吧。

王 :是的,當時整個會場的人都在討論 MD5 算法。在美密會召開的當天晚上有一個草坪宴會,我把破解 MD5 的數據給了大會主席詹姆斯·休斯(James Hughes)。他看完之後非常興奮,不停地與我聊天。當天晚上他宣佈有人破解了一系列的 Hash 函數,大家都震驚了。美密會有一個 Rump Session 自由交流的板塊,被選中的參會人員每人有3-5分鐘來介紹自己的工作。會議特地在 Rump Session 中給我安排了15分鐘的 Hash 函數報告板塊,當時茹和艾力·比哈姆(Eli Biham)也有關於 Hash 函數工作的報告,但他們並沒有破解,只是中間的一些分析結果。

未來科學大獎得主訪談:王小云的數學和密碼人生

2004年美密會宣佈破解 MD5


國際著名 PGP 公司負責人菲利普·齊默曼(Philip R. Zimmermann)在會議現場當眾對我說:“憑藉這一成果,你可以在美國任何一所大學獲得職位。”然後大家都很激動,Rump Session 主席斯圖爾特·哈伯(Stuart Haber)高興地到處跑來跑去,直到多年後他在北京見到我回想起那次大會還很激動。

當時整個現場非常震驚,大家建議我把結果放在網上,讓其他密碼學家去驗證正確性。我和來學嘉老師工作到凌晨三點後把結果放到了網上,結果早上8點來老師來敲我的門,說他的郵箱爆了。郵件中大家都說我的其他算法攻擊結果沒有問題,但對 MD5 的攻擊結果不對。吃飯時還有人說 MD5 的結果有問題,我說肯定沒問題。到了會場後,比哈姆也說我的 MD5 結果不對,我建議兩個人來一個現場測試。我們倆人各自迅速打開了電腦,MD5 一共有64步,我們從倒數第一步開始搜索,不得不說比哈姆這樣頂級的密碼分析學家真是厲害,他的速度非常之快,我的反應也很快,結果從倒數第一步到第一步都不一樣,我心想壞了。那時我腦子很靈光,馬上判斷出兩個人有一個初始值不同。比哈姆說他的是標準程序,我說我用的是《密碼學與安全:從理論到應用》(Cryptography and Security: From Theory to Applications)書上的,比哈姆電腦裡恰好有這本書的電子版,馬上把它放進去運行。結果不到一秒鐘,聽到比哈姆說“congratulation,you break MD5”。

問 :是在會場嗎?

王 :就在會場。會上他祝賀了我,茶歇的時候他告訴別人我破解的 MD5 沒有問題,其他人也開始祝賀我。然後到了 Rump Session 報告的時候,當我講到用手(by hand)破解 MD4 的時候,會場響起了雷鳴般的掌聲,當時把我嚇得還以為自己講錯了。我講完後,幾乎全場的人都站起來鼓掌,掌聲持續了好久。密碼學家 Yvo Desmedt 當時胳膊骨折了,他用另一隻手擊打大腿表示鼓掌,我當時都蒙了。

問 :Rump Session 時您有照片留下嗎?

王 :作報告時我愛人有一些錄像,但報告一結束,許多密碼專家把我給包圍了,現代密碼學的奠基人之一沙米爾等人都過來向我表示祝賀,人太多把我愛人擠到外面去了。這也成為我愛人很遺憾的一件事。當時場面太熱烈他也蒙了,都不知道去拍照錄像了。不過那年美密會我還是有幾張珍貴照片留下,其中一張是我正在聊天,被惠特菲爾德·迪菲(Whitfield Diffie)等拉過去拍了一張照片。雖然當時沒有留下很多的影像,但是後來 Arjen K. Lenstra(格基約化算法 LLL 以及數域篩法的第一作者)對這個場面進行了描述“從上世紀九十年代初起,我參加過幾乎所有在國際上最重要的密碼學會議(亞密會、美密會和歐密會),但我從沒有經歷過像今年會上的盛況;當王教授陳述其報告的時候,在場聆聽報告的人們彼此相望,幾乎不相信王教授的驚人發現,然而在她的報告結束後,全場立刻起立給王教授報以長久而熱烈的掌聲,人們擁向講臺向她表示衷心的祝賀,她帶去的報告材料被一搶而光。那的確是個令人難以忘懷的時刻。”

未來科學大獎得主訪談:王小云的數學和密碼人生

與迪菲(左 2)在 2004 年美密會上的合影

問 :2004 年美密會應該是您一生比較重要的時刻之一吧?

王 :是的。但當時還有一個問題,雖然我把 MD5 破了,但是初始值不同,雖然被驗證攻擊方法正確,還需要計算正確初始值下的破解結果。當時我很著急,但由於沒有國際漫遊,我只能打國際長途電話給自己的學生於紅波。那時我腦子很混亂,只記得好多人給我提供幫助,比如提供賬號,但最後由我愛人陪著我在校園的電話亭裡打國際長途。於紅波非常負責任,她知道我去美國開會這件事情比較重要,便在假期裡提早回到了學校。我打電話問她在哪裡,她說在山大,我說太好了,MD5 的初始值錯了,看能不能更換正確的初始值再運行一下。我讓她找到彭實戈老師的女兒,她和另外一位老師負責山大高性能計算機的運行,此前我也多次在週末麻煩她們。程序經過運行很快新的正確結果出來了。

所以等到 Rump Session 的時候,我宣佈的是正確結果。其他密碼學家都很吃驚,知道我一定有破解技術,把錯誤的初始值換成一個正確的初始值後能在短時間內運算出正確結果。第二天早上吃飯的時候,一個密碼專家對我說,他們政府詢問他 what happened。還有一個日本的密碼專家, 告訴我她是為日本政府工作的,他們政府讓她諮詢我哪個 Hash 函數還是安全的。後來在 2005 年的歐密會上,比哈姆更是感慨地對我說:“你知道嗎?破解 MD5 是我一生的夢想。現在你破解了,你贏了,這就是遊戲規則。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2006 年榮獲“求是傑出科學家獎”(左起:查濟民女兒,周光召,劉璧如,王小云,楊振寧,姚期智)


破解SHA-1


問 :您又是如何破解 SHA-1 的?

王 :2004年 11月,多伯丁請我去他那裡訪問。他是德國波鴻大學的教授,當時歐洲密碼工程的總體負責人。多伯丁是研究 Hash 函數的著名專家,就是他首次給出 MD4 的碰撞結果,他評估過 SHA-0,所以比較瞭解 SHA-0 和 SHA-1 的安全性。和我交流時,他預測了2005年密碼領域的兩個重要工作,其中一個工作他希望 SHA-1 可以被破到 57 步,當時其他人只能破到 40 步。我當時心想自己肯定能找到 57 步的碰撞,便隨口說了回去試試。其實破解SHA-1 我們只用了不到 3 個月,這期間發生了很多有趣和不可思議的事情。當時美國國家標準與技術研究院(NIST) 密碼的技術負責人公開說 MD5 雖然被破解了,但是 SHA-1 還沒發現任何安全隱患,結果沒過幾天就被我們給破解了。

從德國回來後我對於紅波說要把 SHA-1 分析到 57 步。SHA-1 有一個不 好的地方,它存在不可能差分。有一些看似很好的攻擊路線(差分路線),但是會在某個比特產生矛盾,這樣的路線是行不通的,因為不可能一個比特方程等於 1 和 0 同時並存。後來有一天我跟學生聊天說,如果把不可能變成可能就好了,學生說這是不可能的事。後來學生走了,我花了兩週時間什麼都不幹,把不可能差分變為可能差分,這樣整個攻擊就成功了,剩下的就是編程找到一個 57 步的實例了,並給出全算法的攻擊路線。


未來科學大獎得主訪談:王小云的數學和密碼人生


在山東大學工作(2005年)


問 :後面應該很順利了吧。

王 :也不盡然。我開始讓學生協助編程,編好後把山大數學院的機房的所有電腦停下來運行 SHA-1。當時寒假已經開始,我讓學生把程序弄好後回家,由我來負責監督計算機的運行。春節前的一天,我陪愛人去看望了他的導師曲音波老師,曲老師已經知道我破解 MD5 的事情非常高興。那時濟南已經冰天雪地,曲老師非要出門送我們回去,一直送到了高架橋上,我說還要回山大查看程序運行結果,那些程序已經運行 8 天了。按照道理,那麼多電腦一天就可以運行出來。結果到了山大以後,我發現一個結果都沒有出來,我失望之下便把所有電腦都給關了,然後就回家了。

未來科學大獎得主訪談:王小云的數學和密碼人生


我把信息量改過來之後,所有程序的運行就如我估計的那樣。一開始十分鐘出一個縮短輪的破解結果,一個小時出一個更多輪的破解結果,如果一個小時出的結果沒問題,那說明後面的攻擊路線就不會有問題了。我利用自己僅有的一臺電腦,用大量的數學方程控制它出我想要的結果。比如我設 47 步,15 分鐘就出來了結果;再比如我設 49 步,半個小時就出來了我想要的結果;我又挑戰 50 步,我判斷一個小時的運行時間,結果一個小時出來兩三個。在等待這些結果的時候,我就在那裡玩“蜘蛛紙牌”。說來奇怪,那天晚上每一局我都贏了。第二天我在有 64 個 CPU 的計算機上運行計算所有步數的結果。

問 :您又是如何公佈破解 SHA-1 結果的?

王:最後就是寫論文了。展濤校長知道我們破解 SHA-1 後,對此事非常關心,在論文完成的最後階段和投稿期間給予高度關注。

我們是在 05 年 2 月 14 號投稿給美密會,把論文發給了沙米爾與李維斯特。這之後還有一個故事,2 月 15 日正好世界 RSA 大會召開,這個會議的規模很龐大,有上萬人蔘加,正式註冊的有幾千人。比爾蓋茨等一些公司的總裁都要作演講。其中有一個密碼討論板塊,由五位頂級的密碼專家(包括三位圖靈獎得主沙米爾、李維斯特和迪菲),基本上都是現代密碼學的奠基人,要介紹密碼學的最新進展,SHA-1 自然是要討論的。沙米爾收到我們的論文後,便給我們(王小云、於紅波、尹伊群)寫信,詢問是否允許他們幫我們宣佈這一破解結果。尹伊群打電話找我,表示她已經同意,我也表示了同意,那時我正在農村老家休息,也不怎麼上網,結果又翻天了,全世界都在報道。事後從發佈的視頻得知宣佈時間 7 分鐘。沙米爾認為 SHA-1 的破解將引起軒然大波。

未來科學大獎得主訪談:王小云的數學和密碼人生

與比哈姆教授討論 Hash 函數(2005年歐密會)


問 :Hash 函數破解對業界帶來的影響以及國際同行的評價是什麼?

王 :針對 MD5 和 SHA-1 的破解,美國 NIST 於 2005 年和 2006 年專門舉辦兩次研討會探討 MD5 和 SHA-1 破解帶來的安全威脅,研究徵集新的 Hash 函數標準的競爭策略,並出臺了 Hash 函數新標準 SHA-3 的五年設計工程。針對我們對 SHA-1 破解的進一步改進結果,NIST 發文宣佈王教授確實發現了 SHA-1 的實際碰撞攻擊。2006 年 3 月 15 日,NIST 出臺了 Hash 函數新政策, 規定美國聯邦機構應該停止 SHA-1 在數字簽名、數字時間戳以及其他基於 SHA-1 無碰撞特性的密碼應用,並在 2010 年以後使用 SHA-2。美國數學會發表“數學與網絡安全”專欄文章,介紹了 14 世紀以來包括圖靈,沙米爾等五位圖靈獎得主在內的 19 位密碼學家的工作,我是其中之一。


未來科學大獎得主訪談:王小云的數學和密碼人生


2005年獲得歐密會最佳論文


國際密碼專家也對我們的工作給予了高度評價,如圖靈獎得主李維斯特評價“鑑於哈希函數毀滅性攻擊,必須採用新的算法取代 SHA-1”;國際密碼學會前主席 Preneel 等多篇論文給予評價:“王等攻擊暴露了當前被廣泛採納和部署的 Hash 函數 SHA-1 的安全漏洞”;“王等突破性工作引發了該領域理論研究與結構設計的研究熱潮”。AES 的發明者之一 Vincent Rijmen 評價“對 Hash 函數攻擊結果的公佈,重新喚起了該類密碼算法設計與分析的興趣”;沙米爾評價“MD5 的破解成果是 2004 年度密碼學研究領域中最了不起的發展,並對該領域的理論研究及實際應用產生了極大的影響”;Arjen K.Lenstra 評價 :“全世界的其他密碼學家現在仍然在努力試圖跟上王教授,理解她的結果和方法,這對於正確地估價其影響是至關重要的。”

未來科學大獎得主訪談:王小云的數學和密碼人生

2005年受聘成為楊振寧講座教授(左起:楊振寧、王小云、顧秉林)


十年堅守,方得始終。面對這些褒獎,雖然它們是對我研究成果的認可,但我更認為這是對我團隊的肯定,是對我國密碼學界工作的肯定。

任職清華


問 :後來您到了清華大學高等研究院工作。

王 :離開山大原因是多方面的,其中兩個原因是我要認真考慮的。一是 2004年 11 月,姚期智先生邀請我到清華大學高等研究院作報告,應是楊振寧先生和姚先生共同的決定,他們想讓我到清華去工作。楊先生去山大訪問,一下飛機便問展濤校長我能不能到清華工作。

二是正好那時我愛人完成了博士後研究,面臨著找工作的問題,他希望到北京去工作。這時清華邀請我,我們一家面臨著到底是留在山大還是去清華的問題。後來我去找展濤校長彙報了此事,展校長說他認為我到清華與大師們一起工作,對我將來的事業發展是有幫助的,但是作為校長,從山大的發展角度來說,他不同意我離開山大。


未來科學大獎得主訪談:王小云的數學和密碼人生


與楊振寧先生交流(2012年清華大學高等研究院成立 15 週年)


問 :所以還是需要您自己做最後的決定。


王 :後來我想要不就去試試吧。我很理解山大老師與同學們對我的深厚感情,畢竟山大培養了我,所以我把自己的所有成果留給了山大,比如我的國家自然科學獎的獲獎單位就是山東大學,清華大學並沒有擁有我的這些成果。直到現在我一直是山大與清華雙聘教授,除了停止了本科生的教學,在山大的其他工作依然正常進行。現在在北京工作,我可以更多地站在國家的角度思考問題,雖然在濟南和北京都能為國家做貢獻,但北京畢竟是學術中心,許多會議都在北京召開,開完會後我可以立刻回到辦公室工作,這是我堅持一線工作的最好選擇。

當年 MD5 和 SHA-1 破解,我申報了國家自然科學一等獎,但最後評定為二等獎,我當時沒有接受,覺得申報得有些倉促,國際影響力還不凸顯,另外我個人覺得這個成果申報一等獎是有資格的, 所以最後沒有接受。第二年我繼續申報,還是得了二等獎,這次我接受了。我認為第一次我不接受代表了我的學術觀點,第二次接受則是尊重大家 的評審, 這就是我看待這個問題的觀點。或許一項成果在不太好判斷的情況下,評定為二等獎是比較穩妥的。另外一等獎也確實比較難獲得,只有像潘承洞、王元、陳景潤等學術大師的研究成果,才配得上國家自然科學一等獎。

問 :能不能談一下與姚期智先生的合作?

王 :姚先生是研究計算複雜性理論的,他的隨機性理論在密碼學中有很重要的應用,是開創性的工作,他對密碼學做了重要的貢獻。我和姚先生合作是很自然的一件事情,我們在一起合作了兩年多的時間,我們的 973 項目的合作對中國密碼學發展起到了很好的推動作用。


未來科學大獎得主訪談:王小云的數學和密碼人生


與研究生在清華大學辦公室討論問題(2018)


問 :那您與楊振寧先生的接觸多嗎?

王 :與楊先生的接觸很多。他經常到高等研究院的辦公室來工作,還不時組織或參加高等研究院的一些活動。楊先生經常給我講一些物理學界好的工作和他本人的一些經歷,另外談論數學也比較多,特別是提到數學家閔嗣鶴先生。楊先生的父親楊武之先生是數學家,與閔嗣鶴先生是世交,楊先生曾經談及昆明居住期間,閔先生經常到楊先生家聊天,談自己工作中面臨的苦惱,有時用詩抒發感情。談到上世紀 30 年代華羅庚來楊先生家和楊武之討論數學,還談到 1928 年至 1929 年期間在廈門柯召和楊武之下圍棋的情景。另外也問一些潘承洞老師的事情。我覺得楊先生對密碼很關心,經常問我一些密碼學的問題。最近楊先生還希望我寫一篇區塊鏈的普及文章,他想了解一下區塊鏈的問題。


問 :您在清華做研究還和在山大一樣嗎?

王 :在山大時我主要是在家中一個人做研究,在清華則主要是在辦公室裡指導學生做研究,我覺得兩個形式不大一樣。在山大時我推路線也編程,學生主要幫我部分編程和調整路線,到清華的前半階段我還是和在山大差不多,後來我發現帶出來的學生總體效果欠佳。我開始逐漸調整,把重心放在人才培養上,現在基本上以我指導為主,主要由學生來做。現在流密碼的團隊已經建立起來了,2012 年開始做這個方向,我指導了三批學生,最後一個學生做成了,當然前面的學生也做了很多工作,但這些工作與問題的解決差距仍很大,主要還是和大量的方程控制和長久堅持有關。現在我主要把握研究方向和思路,提供可能的方法和需要解決的關鍵技術,激發學生的潛能,使創新成為常態,就跟自己當年做 MD5 和 SHA-1 一樣。經過多年的努力,現在終於做出了一些優秀成果。

未來科學大獎得主訪談:王小云的數學和密碼人生

從白春禮院長手中接過院士聘書


問 :您在去年(2017)當選為中國科學院院士。

王 :我之前申報過四次院士,都是在信息學部。其實一開始朱邦芬老師就建議我從數理學部申報,但更多的密碼專家建議我從信息學部申報,我覺得院士申報多次很正常,誰先當選都沒有問題。近年來,中國科學院的院士選舉進行了改革,國家開始重視交叉領域,因為學科交叉能推動科技創新,國家的重大需求也需要交叉學科。我很幸運第一次在數理學部走交叉就成功了。數理學部的評選非常客觀,對我的學術成果比較瞭解和認同。我非常感謝國家對交叉學科的重視和支持,這是一個積極的信號,將來還會有其他交叉學科的研究人員從中受益。

密碼普及


問 :能不能談一下您和一些數學家的交往經歷?

王 :從我在山大讀書開始,由於當時的原因與國內數學家接觸比較多的是王元院士和潘承彪老師,還有彭實戈老師,他們對我的影響較大。在山大數學院工作時和彭老師是同事,我們常在一起開會交流,他對數學的熱愛簡直到了痴迷的程度,對密碼學的數學問題一直很關心,並且興趣非常高。我們經常討論密碼數學問題。

未來科學大獎得主訪談:王小云的數學和密碼人生

與裴定一(左 1)、李淑英(左 2)、於秀源(左 3)教授合影


潘承洞老師任校長時比較忙,實際上我的博士論文和幾個師兄的一些論文都得到了潘承彪老師的認真審核,得到了他的細緻指導,相當於又多了一個導師。潘老師兄弟對中國數論的發展貢獻很大,在人才培養方面做得也很成功。我對潘老師最敬佩的是當年山大數論老師都有在國外交流與工作機會,於秀源、展濤、王瑋他們曾出國交流,並且已在國際上嶄露頭角,潘老師寫信讓他們按時回國,所有成員都做到了,為國家留住了人才。潘老師當年在山大出臺了很多博士、博士後引進計劃。

我自己培養人才也是按照這個模式。我培養的學生有的已獲得了國家科技進步一等獎,還有一名女學生王美琴的密碼分析工作很出色,剛獲得省部級的一等獎。我鼓勵學生們出國留學,但並不支持他們在國外待那麼長的時間,不一定以“青千”的身份引進才回來。當然,是否是“青千”在待遇上的差別很大,不過我相信國家和學校很快會做出調整,讓更多真正有能力的學者待遇得到大幅度提高。目前國家人才計劃入選者非常優秀,但沒有頭銜同樣優秀的人仍然很多,如何通過支持他們加大國家科技創新能力與水平是一個需要思考的問題。

問 :您剛才談了與幾位數學家的交往,那信息安全專家呢?

王 :信息安全專家主要是蔡吉人院士,他對我的影響是比較深刻的,也是一生的。蔡院士在很多公開場合提到要學習王小云十年磨一劍的精神,我很感動。我特別感動的是蔡院士讀了國外頂級密碼專家給我的學術評價激動地說感謝你為國家爭得了榮譽。還有沈昌祥院士,在學科建設方面給我很多指導,我們同在教育部信息安全指導委員會裡任職,他是主任,我是副主任。再有就是肖國鎮老師,還有裴定一老師,裴定一老師曾擔任中國密碼學會理事長。

問 :最後想問您一下數學與密碼普及的問題,這方面您有什麼好的建議?

王 :我現在主要從事密碼學的研究,對數學的普及沒有發言權,但我自己可以做一些與密碼相關的數學普及。比如分解因子是密碼學和數學的交叉領域,從埃氏搜索到連分數方法、數域篩法,計算機能夠分解幾十比特到 700 多個比特的整數,到今天量子計算機分解十幾個比特的整數等。目前國內這方面的書籍並不多,需要下功夫來寫。從因子分解的經典數學算法到量子計算算法,裡面有很多內容是可以介紹的。

對於密碼普及我們已開始做了一些工作,比如在網絡空間安全教材體系的規劃中,我們為密碼普及做了很好的計劃。由於密碼與網絡攻擊有關,我認為密碼普及適合採用書本和網站這兩種形式。密碼的普及網站可以介紹密碼是什麼、密碼的重要性、密碼如何保護信息和網絡安全、密碼中的數學問題、密碼攻擊事件、網絡安全事件,用書本的方式向公眾普及密碼知識,2017 年 10 月,人民出版社出版的《商用密碼知識與政策幹部讀本》就是一本很好的密碼應用和科普書籍。楊振寧先生很重視科學普及,他曾送我一本《郵票上的物理學史》,是清華大學出版社出版的,只是忙於工作我只閱讀了少部分。

問 :目前公眾對密碼的理解是不是還有很大偏差?

王 :是的,經常有人來找我破行李箱密碼和計算機的口令(笑)。實際上口令 與密碼是不一樣的,如果有密碼技術才可以叫密碼,否則就是口令。還有一點就是大家對破譯與破解的認識有很大的差異,這個一定要解釋清楚,否則對中國的密碼和信息安全學術領域是有一定影響的。英文中有兩個單詞 break 和 attack,我們統一譯做破解與攻擊。如果一個密碼算法的破解難度是 2128 次計算,你用了 2100 次運算破了是破解,230 次運算破了也是破解。2000 年左右學術界把大於 264 次計算的破解叫做理論破解,小於 264 次計算的破解叫做實際破解,即大型計算機可以把結果運算出來,當然這個標準是會隨著計算機的速度而調整的,目前比特幣運算時間可提升至 270 次左右。2006 年我們破解的 SHA-1 是263 次運算,美國的 NIST 官方網站定為實際攻擊(practical attack),這在學術界還是比較嚴格的。十年後,Marc Steven 在谷歌的支持下找到的 SHA-1 碰撞實例也驗證了 NIST 的斷言,其計算複雜度約為 263 ,與 2006 年我們宣佈的攻擊複雜度相當。

由於之前的密碼學只有加密算法,我們國家一般把明文譯出來叫破譯,這是延續了傳統的概念,是正確的。然而現代密碼在計算機網絡中有 3 類算法:加密算法、簽名算法和 Hash 函數算法。按照原來的定義,只有將加密算法恢復出明文才能叫做破譯,其他算法的破解一般不叫做破譯,而只能叫做破解。即使就加密算法而言,大量的加密算法由於具有過高的計算複雜度而只能做到理論破解,因此也不能叫做破譯。在現代密碼學的學術研究中,不管是求出明文或密鑰,還是得到了簽名私鑰或者偽造了簽名、給出了 Hash 函數的碰撞攻擊,破解了區塊鏈等我們統一都叫破解,破譯只是針對其中的一種破解形式。

英文中其實並沒有專門對應破譯的單詞,為此我專門查了牛津字典和百科全書,破譯和破解是一個單詞 break。這個問題給我造成了一定的困惑,過去十多年大家普遍關心的就是我到底有沒有破譯。我回應說沒有破譯,而是破解。大家一聽你說沒破譯,就覺得我沒破解算法。由此可見密碼普及的重要性。

問 :這還是密碼普及得不夠。

王 :是的,普及不夠,概念不清就容易混亂。這個問題也是我被問到次數最多的問題。國際上就是 break(attack),國內追究破譯與破解,後來我明白了可能還是受文化的一些影響。破譯叫破解沒問題,但是破解可不可以叫破譯呢?沒人對此下定義。實際上很簡單,統一叫破解沒有任何問題。

我也很想有時間了專門寫一篇關於密碼方面的科普文章,也許投給《數學文化》是一個不錯的選擇。如果我們搞密碼的人不重視這件事情,那誰還會去做這件事呢,這也是我們密碼人義不容辭的責任。

問 :那文章一定會極受歡迎。非常感謝您接受《數學文化》的訪談,祝您生活愉快!

王小云院士審閱了全文,湯濤教授對本文的訪問整理給予了大力支持與鼓勵,特此致謝。


未來科學大獎得主訪談:王小云的數學和密碼人生


特 別 提 示

1. 進入『返樸』微信公眾號底部菜單“精品專欄“,可查閱不同主題系列科普文章。

2. 『返樸』開通了按月檢索文章功能。關注公眾號,回覆四位數組成的年份+月份,如“1903”,可獲取2019年3月的文章索引,以此類推。

《返樸》,科學家領航的好科普。國際著名物理學家文小剛與生物學家顏寧共同出任總編輯,與數十位不同領域一流學者組成的編委會一起,與你共同求索。關注《返樸》(微信號:fanpu2019)參與更多討論。二次轉載或合作請聯繫[email protected]

"

相關推薦

推薦中...