為大眾提供加密技術:菲利普·齊默曼

齊默曼第一次在Usenet討論區上讀到S.266法案,該文伴隨著一條匿名評論:「我建議你趁現在還能夠買到加密裝置儘快囤積。」該條款中的「國會意見」並不具約束力,但根據密碼學社群對政府的不信任,齊默曼認為此類裝置常常被用來「鋪設政治基礎,以便將來能夠將其變成硬性法律。」

齊默曼在邁阿密長大。他十歲時,在1964年讀了他的第一本關於加密的書《代碼與秘密書寫》(Codes and Secret Writing),作者是赫伯特·S·津(Herbert S. Zim)。從津的書中,齊默曼學會了摩爾斯電碼和盲文,還學會了如何用檸檬汁製作隱形墨水——他的密碼學熱情由此被點燃。

齊默曼於1978年從佛羅里達大西洋大學畢業,最初的主修是物理學,但他覺得太難了,「微積分把我搞垮了」,他這樣評論道。齊默曼在隨後的主修科目——計算機科學上,學習速度更快。當時的同學史蒂夫·韋爾奇(Steve Welch)回憶說,齊默曼在轉學後的一個深夜,與他在計算機實驗室見面。韋爾奇指出,齊默曼「對計算機一無所知,但在一週內,他已經成為比我更出色的程序員。」在學習期間,齊默曼讀了馬丁·加德納(Martin Gardner)的《數學遊戲》(Mathematical Games)文章,文章詳細介紹了公開密鑰加密的發現與完善。齊默曼向里維斯特(Rivest)寫信,請求一份進一步描述他們工作的論文。正是這篇文章,在八年後催生了齊默曼的項目,旨在將公開密鑰加密技術普及到大眾,並使加密技術成為「社會變革的力量。」

齊默曼畢業後成為了一名活動家。水門事件最初將齊默曼引入政治,他回憶道:「那時候,我開始質疑政府做的許多事情。」齊默曼花了一年時間在強姦危機中心的求助熱線工作,他表示:「那段時間,我變得更加人道主義。」作為政治研究的一部分,齊默曼對核戰爭對他家庭的威脅有了深刻的認識,他回憶說:「我們迎來了第一個孩子,我開始思考未來以及對這個未來的威脅。」齊默曼回憶道,1980年代「看起來事情會變得很糟糕。當時有關邪惡帝國的討論。雷根瘋狂地增加軍事預算。情況看起來相當絕望。」齊默曼擔心美國會發動核戰爭,「我們這一方正在建造旨在發動先發制人的武器。」齊默曼一家決定新西蘭,這個無核地區,是他們安全的最佳選擇——他們在1982年初成功申請了簽證和工作許可。正是在這段時間,齊默曼和他的妻子參加了在丹佛舉行的核停戰會議。丹尼爾·艾爾斯伯格(Daniel Ellsberg)以泄露一份高度批評美國在越南政策的極機密政府研究(即五角大樓文件)而聞名,他在會議上發表了演講,齊默曼認為這次經歷「讓人清醒,但也讓人充滿力量。」齊默曼一家受到了啟發。艾爾斯伯格的行動讓公眾得以知情,幫助捍衛了新聞自由,並塑造了推動政策改變的公共輿論。齊默曼一家認為他們也應該嘗試改變,談到核武器凍結運動時,齊默曼說:「看起來這是一個有成功機會的政治運動…我們決定留下來並奮鬥。」

齊默曼是一位專注的學生。他廣泛閱讀軍事戰略書籍,並成為博爾德核停戰社區的一員。同行活動家切特·楚澤夫斯基(Chet Tchozewski)評論道:「菲爾對我們來說非常寶貴,不僅是作為一位演講者……還因為他的技術知識和卓越的智識能力。」楚澤夫斯基還反思了齊默曼的哲學:「他對公民不服從進行了深思熟慮,並且受到了甘地和梭羅的影響,也受到科學的啟發。」齊默曼曾兩次因反核示威被逮捕,每次艾爾斯伯格也被逮捕。

在與核停戰社區合作的同時,齊默曼開始思考如何保護他們的通信和數位記錄:

「我們大多攜帶的是包含會員信息的軟盤。很快我們就明白了需要保持通信的機密性。所以我開始閱讀這方面的學術論文……我開始著手解決這些問題。」

齊默曼於1984年開始認真研究密碼學,兩年後,他的第一篇相關論文發表。這段時間內,齊默曼與里維斯特(Rivest)建立了聯繫,後者在同行評審過程中對齊默曼的論文提出了審閱。儘管發表成功,齊默曼從閱讀密碼學文獻中意識到,自己並不像曾經認為的那樣有天賦,他回憶道:「我以為自己很聰明……直到我閱讀足夠多的領域資料,才看到自己真的有多糟……我不是世界上最好的密碼學家。我很快就弄明白了。」為了保護核活動家的數據,齊默曼聯繫了查理·梅里特(Charlie Merritt)尋求幫助。梅里特自1977年以來便活躍於密碼學領域,當時一位朋友將加德納(Gardner)的文章寄給他,詢問是否能在微型計算機上實現此類加密系統,梅里特認為可以。梅里特於1980年創辦了一家公司,為基於Z80的計算機(運行控制程序/監視器操作系統,CP/M)開發加密系統,並迅速獲得了可行的代碼。梅里特表示:「我們以為生成一個‘相當大的’密鑰會需要一兩周的時間。加密一個文件可能需要20分鐘,但我們在10分鐘內就生成了256位密鑰,小文件加密只需30秒。」梅里特和兩位合作夥伴創立的公司將該加密系統命名為DEDICATE/32(32字節/256位密鑰)。到1983年,梅里特經常接到國家安全局(NSA)員工的來訪,告訴他RSA算法被視為軍事物資,除加拿大外,不能向其他國家出口,除非獲得政府批准。梅里特認為NSA實際上「讓我們停擺了。差點把我們搞垮。」由於只能在國內和加拿大市場運營,梅里特購買了一些計算機雜誌,並開始聯繫可能需要DEDICATE/32的公司。不久,梅里特聯繫到了齊默曼的創業公司Metamorphic Systems,該公司試圖使更快的Intel 8088芯片能夠與相對較慢的Apple II計算機協同工作,這些計算機被許多人認為擁有更好的操作系統。梅里特和齊默曼共享反政府的哲學。梅里特曾經也反對過越南戰爭——他和齊默曼開始互相交流密碼學知識;梅里特說:「我一直對NSA有怨氣,當齊默曼打電話給我時,我很高興能幫忙。」梅里特形容齊默曼是他見過的「最具熱情的角色之一。」齊默曼想了解梅里特如何讓RSA在微型計算機上運行,這是他曾認為計算上無法實現的。接下來的幾年裡,齊默曼每週都會打電話給梅里特,討論如何使加密技術能夠在Apple II上實現。梅里特在多年與NSA鬥爭及在受限市場中運營後,感到沮喪,但齊默曼「擁有我已經放棄的願景」,梅里特回憶道,「他有動力,而我感到筋疲力盡。」1986年夏天,梅里特前往博爾德,花了一週的時間教齊默曼如何進行多精度算術運算,這是RSA密鑰生成的關鍵先決條件。

在博爾德的時候,梅里特還遇到了RSADSI的首席執行官吉姆·比佐斯(Jim Bidzos),梅里特曾在前一年為他工作。比佐斯建議他們在一家牛排館見面;梅里特回憶說,計劃是「吃厚厚的牛排、喝酒,抽一些上等雪茄」,作為彼此了解的方式,齊默曼也受邀參加。晚餐氣氛並不融洽,齊默曼和比佐斯的政治哲學截然不同——比佐斯曾自願加入美國海軍陸戰隊,儘管他不是美國公民。晚餐期間,比佐斯給齊默曼和梅里特提供了RSADSI的新產品——MailSafe。MailSafe是由里維斯特和阿德曼(Adleman)編寫的電子郵件加密程序,類似於齊默曼編寫的程序。齊默曼聲稱,在餐桌上,比佐斯承諾送給他另一份禮物——RSA算法的免費許可證,但比佐斯否認了這一點。在梅里特結束博爾德之行時,他估計齊默曼已經擁有了他95%的知識。梅里特說,齊默曼「現在已經是對國家安全機構的‘真正威脅’。」

在《全面反恐法案》數據訪問條款中,齊默曼看到了挑戰國家安全機構的機會;他認為後門條款「預示了未來的情況。」齊默曼認識到美國正「朝著一個未來邁進,當時國家將被高容量光纖數據網絡交織,將所有越來越普及的個人計算機連接起來」,並且「電子郵件將成為每個人的常態,而不是今天的稀有事物。」齊默曼還明白,隨著公民從書信轉向電子郵件,監控的勞動力限制也會消失:

「如果政府想要侵犯普通公民的隱私,它必須付出一定的費用和勞力來攔截、打開和閱讀紙質郵件,並聆聽並可能抄錄口頭電話交談。這種勞動密集型的監控在大規模上並不實際。這只會在重要的案件中進行,當它看起來值得時才會執行。越來越多的私人通信將通過電子渠道傳送……電子郵件消息太容易被攔截並掃描有趣的關鍵字。這可以輕鬆、例行、公事般地自動進行,並且難以察覺。」

齊默曼意識到,科學即將為公民提供新的能力來保護自己,他說:「在我們的歷史上,從未有過可以將信息置於社會集體努力之外的時刻,但現代的加密技術可以做到。」

齊默曼希望在《全面反恐法案》或其他類似立法將加密技術定為非法之前,將加密技術傳遞給公民。他認為,即使是那些在法律之外行事的人也應該獲得隱私保護:「你可能在做一些你覺得不應該是非法的事,但它卻是……主張你的隱私並沒有錯。隱私和憲法一樣,都是理所當然的。」對於“如果沒什麼好隱瞞的,就不需要加密”的論點,齊默曼寫道:

「如果你真的是一個守法的公民,沒有什麼好隱瞞的,那為什麼你不總是把你的紙質郵件寄在明信片上呢?為什麼不按要求進行毒品檢測?為什麼警察搜查你的房子需要搜查令?你是在試圖隱藏什麼嗎?如果你把郵件放在信封裡,那麼你必定是個顛覆分子或毒販。或者,可能是個偏執的瘋子。」

齊默曼於1986年開始開發加密軟件,後來命名為「Pretty Good Privacy」(PGP)。齊默曼的目標不僅是保護美國公民,還包括全球的人權組織,但由於出口法規,他在1990年代無法公開表達這一目標。隨著S.266的公布,齊默曼加速了PGP的開發。齊默曼對PGP完成所需時間的估算「病態地樂觀」——他花了額外六個月才完成該程序——將PGP的開發放在了日常工作的前面,結果齊默曼錯過了五次房貸付款,差點失去家園。推出PGP作為商業產品將面臨很大的困難。主要的障礙是Diffie-Hellman和RSA專利許可證由Public Key Partners(PKP)控制,而比佐斯(Bidzos)掌握了PKP的管理權——在沒有PKP的許可下,齊默曼將無法銷售該產品。齊默曼聲明,他從未打算從PGP中獲利,而是計劃「免費提供它,以便讓它廣泛散播,從而為政治體制注射免疫劑。」

齊默曼於1991年6月完成了他的程序,並將其命名為「Ralph’s Pretty Good Privacy」,以致敬《Prairie Home Companion》電台節目的贊助商「Ralph’s Pretty Good Grocery」。隨著S.266的進展,齊默曼匆忙推出了這款軟件,他坦言該代碼「寫得匆忙,並且顯而易見」。1991年6月5日,齊默曼開始分發PGP版本1.0,支持Microsoft DOS。首位接收者是艾倫·霍爾捷(Allan Hoeltje),他將PGP上傳至Peacenet,這是一家齊默曼所說「專門服務於草根政治組織,主要是和平運動的服務提供商」。Peacenet可供世界各地的政治活動家訪問。接下來的接收者是凱利·戈恩(Kelly Goen)。記者吉姆·沃倫(Jim Warren)回憶,戈恩在六月的第一個週末打電話給他,向他更新他在推廣PGP方面的進展:

「他(戈恩)開著一台筆記本電腦,配有聲音耦合器和行動電話,在灣區四處開車。他會停在公用電話亭,將一些副本上傳幾分鐘,然後斷開連接,趕往幾英里外的另一部電話。他說,他想在政府能夠下達禁令並阻止他之前,把更多的副本廣泛散播到全國各地。」

齊默曼指示PGP用戶將代碼上傳到他們可以訪問的任何電子公告板上:「請盡可能廣泛地散播完整的PGP發行包。將它給所有朋友。」為了從法律角度保護自己,齊默曼在PGP的文檔中寫道:

「政府已經在許多情況下將良好的加密技術的出口視為非法,這可能包括PGP。這取決於變動不居的國務院政策,而非固定的法律……在法律禁止的情況下,我不會出口這款軟件……我不對他人進行出口的行為承擔任何責任。」

1991年,齊默曼表示自己對Usenet新聞組的運作了解甚少,甚至不知道它是什麼。齊默曼要求戈恩將PGP的Usenet帖子標註為「僅限美國」,但後來他聲稱自己並未意識到Usenet標籤只是建議性質,對帖子的傳播並不產生影響。沒有什麼可以阻止PGP全球傳播,但在數字時代,當那麼多人擁有副本時,又有什麼能阻止代碼的擴散呢?齊默曼回憶說:

「很難理解,像這樣的東西一旦發布,成千上萬的人擁有它,怎麼可能不會洩露到國外。這就像說《紐約時報》不應該被出口,當一百萬人擁有副本時,你怎麼能阻止呢?這就像是風在吹,你不能封鎖風。」

齊默曼回憶,這次發布引發了一場「狂熱的爭奪」,他說:「人們對這樣一個工具有著巨大的需求。」來自世界各地的志願者聯繫齊默曼,想要為PGP的開發做出貢獻,幫助將軟件移植到其他平台,並支持PGP的推廣。

PGP發布僅一週後,S.266中的數據訪問條款由於政治遊說而被移除。齊默曼回顧道,在經過所有努力後,「PGP似乎並未產生任何影響,事實證明,根本沒有。」但這無疑是一個輕描淡寫的說法。儘管並未對S.266辯論產生影響,齊默曼還是釋出了第一個對微型計算機來說計算上可行且免費的公開密鑰加密實現;正如齊默曼所解釋的那樣,「PGP是大眾的RSA公開密鑰加密技術。」PGP的區別在於,齊默曼評論道,「它執行RSA功能的速度比大多數其他軟件實現快。」PGP結合了RSA算法(用於密鑰交換,支持512、1024或1280位)和傳統的單密鑰對稱算法(用於數據交換),確保了密鑰的安全交換以及數據的快速交換。齊默曼為PGP編寫的對稱加密算法命名為Bass-O-Matic。PGP創建一個臨時會話密鑰來加密數據,然後使用接收者的公開密鑰來加密該會話密鑰——接收者再用自己的私密鑰來解密該會話密鑰,從而解密消息。公開密鑰被保存在「密鑰證書」中,證書包含密鑰擁有者的用戶ID(即其姓名)、生成密鑰對的時間戳及密鑰材料本身。私密鑰則保存在自己的證書中,並且受到密碼保護。PGP還可以用來對文檔進行簽名,使用私密鑰進行簽名,公開密鑰則可以用來驗證該簽名是否由對應的密鑰所有者進行(假設兩把密鑰都未被洩露)。PGP使用由日本吉崎春安(Haruyasu Yoshizaki)編寫的LZHUF壓縮算法。