MIT 三人組:里維斯特、沙米爾與阿德爾曼(RSA)
「太棒的主意……這些真是令人驚訝的想法,」羅恩·里維斯特(Ron Rivest)回顧迪菲和赫爾曼在《密碼學新方向》中的論文時評論道,「但他們完全不知道如何實現這些想法。」1976 年 12 月,當里維斯特閱讀了迪菲和赫爾曼的文章時,他是麻省理工學院(MIT)計算機科學系的一名 29 歲助理教授。
里維斯特成長於紐約,後來獲得了耶魯大學的數學學位。在學期間,里維斯特參加過幾場越南抗議遊行,但並不像迪菲或 1990 年代的密碼朋克那樣具有強烈的政治動力。里維斯特在斯坦福大學獲得計算機科學博士學位後,來到 MIT。里維斯特的辦公室位於 MIT Tech Square,正好在幾年前迪菲曾工作的 AI 實驗室的樓下,但他們從未見過面。
幾週後,當倫納德·阿德爾曼走進里維斯特的辦公室時,里維斯特問道:「你有沒有看過這些迪菲和赫爾曼的最新研究?」阿德爾曼是一位數學家,就像里維斯特一樣,他的時間在計算機科學實驗室和數學系之間分配。阿德爾曼聽完里維斯特解釋《密碼學新方向》後回答:「嗯,這不錯,羅恩。」然後改變了話題。
阿德爾曼擁有加利福尼亞大學伯克利分校的數學博士學位。起初,他打算成為一名化學家,但在大學時期他的想法發生了改變;他回憶說:「突然間,某些人成為數學家的時候,就像是墜入愛河,這正是我所經歷的,我突然間幾乎在一個瞬間看到了它的內在美。」阿德爾曼對數論感興趣,他形容這是一門「非常古老的學科……它至少已經被研究了幾千年,在它的歷史中,它有過燦爛的時刻,也有過只是由其他人維持的微弱火光。」對阿德爾曼來說,數學的純粹理論才是吸引他的地方。當他聽到里維斯特提到《密碼學新方向》時,阿德爾曼回想道,「我當時想,我是想拯救科學的尊嚴,因為高斯告訴我這樣做,但這不會拯救科學的尊嚴。」對阿德爾曼來說,這些對話更像是「關於網絡和一些工程方面的事情」,並非數學之神(包括他個人的神高斯)願意為之犧牲他們有限的時間的事,「對我來說毫無意義。」
里維斯特在說服沙米爾(Adi Shamir)上卻更為成功,沙米爾是一位來自以色列的數學家,剛剛作為訪問教授來到 MIT 計算機科學系。當里維斯特走進沙米爾的辦公室時,沙米爾正在準備教授一門高級算法課程,而他對這個領域幾乎毫無了解。里維斯特解釋了迪菲和赫爾曼的論文後,沙米爾迅速同意與他合作,找到一個合適的單向函數,並讓公鑰密碼學成為現實,儘管他對密碼學知之甚少。
儘管阿德爾曼最初不願意參與這個項目,但由於他和里維斯特、沙米爾的密切友誼,在 1976 到 1977 年冬季,他被吸引進了他們的研究。阿德爾曼回憶道:
「我們是朋友,我們總是一起做所有事情,總是一起旅行、一起吃飯,我們總是合作,並且不斷在我們的共同學科——計算複雜性理論上合作。我們每天見面。」
阿德爾曼回憶道,里維斯特和沙米爾「變得著迷了,他們不斷談論這個問題,並且不斷提出可能的公鑰密碼系統。」最初,里維斯特和沙米爾並不滿意他們的想法,「我們對自己提出的方法不滿意,」里維斯特回憶道,「我們嘗試了很多不同的方法,包括對迪菲和赫爾曼建議的變體進行實驗,但一次又一次地,我們自己的算法被破解了。」MIT 三人組開始懷疑,迪菲和赫爾曼的突破是否只是一個錯誤的方向;他們改變策略,決定嘗試證明完全實現的公鑰密碼學系統更多的是一個神話而非現實的可能性——「我們沒走多遠,」里維斯特回憶道。
沙米爾承認,三人組是「完全的業餘愛好者——我們對密碼學一無所知。」然而,沙米爾認為這恰恰是他們的優勢:「我們極為幸運。如果我們當時知道任何關於密碼學的知識,了解過差分序列、Lucifer 和 DES,我們可能會被誤導,將那些想法擴展並應用於公鑰密碼學。」最終,里維斯特和沙米爾嘗試了數論的方法,但解決方案仍然遙不可及。阿德爾曼回憶道,他的同事們一次又一次將可能性展示給他,而他會回答:「不,我能破解那個。這個,這個,這個。Boom,搞定……大部分情況下就是這樣,而且這樣持續了幾個月。」偶爾,里維斯特和沙米爾會提出一個足夠挑戰性的系統,讓阿德爾曼帶回家工作,但到第二天早上,該算法就被破解了。
1977 年初,三人一起在一位學生家慶祝逾越節。里維斯特特別喝了很多酒,這是逾越節的習慣,直到晚上十一點派對才結束。里維斯特回到家躺在沙發上,閉上眼睛,「我就在想,」他回憶道。就在那時,解決方案在里維斯特的腦海中浮現。阿德爾曼的電話響了,「嘿,羅恩。這個怎麼樣?」阿德爾曼回憶道,「而他所說的 ‘blah-blah-blah’ 正是我們現在所知道的 RSA 密碼系統。」阿德爾曼聽後回答說:「恭喜你,羅恩。我想你終於做到了。」阿德爾曼說,里維斯特的算法看起來穩固:「這個,哇,我不會知道從哪裡開始破解它。嗯,我知道從哪裡開始,但我破解不了。」這一解決方案基於對兩個大質數(超過一百位數字)的分解問題。一個質數是只能被 1 和它自己整除的數字。將兩個大質數相乘會得到一個更大的非質數。反向過程,即從這個更大的數字中找出兩個質數的過程,稱為「分解」,這在歷史上是一個難度極高的數學問題。當時,對這一問題的關注並不多。里維斯特評論道:「當時分解並不是一個人們關心的問題。」雖然分解並不被認為是不可行的,但當時並沒有已知的簡單方法來確定這些質數,這就是里維斯特、沙米爾和阿德爾曼所尋找的單向函數。
第二天,里維斯特帶著手寫的論文見到阿德爾曼,這是他經過一整晚的寫作後的成果。該論文名為《技術備忘錄第82號:數字簽名和公鑰密碼系統的方法》,里維斯特、沙米爾和阿德爾曼被列為作者;「把我的名字去掉,」阿德爾曼說。里維斯特回應:「為什麼?」阿德爾曼回答:「你想到了這個想法。」里維斯特說:「不不,我們是作為一個團隊工作的。這是我們的團隊。你應該出現在這篇論文上。」最終,阿德爾曼接受了將自己的名字列在論文上的提議,心想,「沒人會讀這篇論文,但它會成為我簡歷上的另一條記錄。」阿德爾曼要求一個小小的讓步:希望將里維斯特的名字放在論文中的第一位,不是「阿德爾曼、沙米爾、里維斯特」,而是「里維斯特、沙米爾、阿德爾曼」——RSA,這個縮寫最終成為了安全的代名詞。