密碼學的主要變革

我想為各位呈現過去 20-25 年來密碼學研究的十萬英尺鳥瞰視角。回顧過去 25 年,我試圖找出主要的議題、主要的變革,我會說其中兩大變革是密碼學從「秘密」走向「公開」,以及從「藝術」轉變為「科學」。我認為這兩個轉變以非常緊密的方式交織在一起。其中一個的發生幾乎是促成另一個成為可能的必要條件。因為 25 年前我們思考 RSA 時,我們對密碼學知之甚少。我們認為我們發現了一個可愛的小東西。看起來非常有趣。看起來似乎可以用它做很多事情。直到後來我們才意識到,這是一個從政府瓶子裡跑出來的精靈。而精靈在瓶子裡時很難研究。這是你們應該記住的教訓之一。在接下來的 20 年裡,當我們試圖從各個方向審視、剖析、研究和應用它時,其他的力量正試圖將它推回瓶子裡。

政府與密碼學的角力

期間發生了一些有趣的鬥爭,雖然我不想涉入政治,但我忍不住想告訴你們我最近找到的兩段引文。密碼學最終獲得釋放、政府放棄並決定基本上可以放寬所有出口管制,那個決定性的時刻是在 1999 年。在那之前的幾年裡,發生了重大的爭鬥。例如,在 1998 年 3 月 3 日,FBI 局長 Louis Freeh 在參議院撥款委員會作證時說了以下這段話:「執法部門一致認為,廣泛使用強固且無法復原的加密技術,將嚴重破壞我們打擊犯罪和恐怖主義的能力。」現在,密碼學是在 1999 年自由化的。這是在四年前。我查看了美國政府發表的最新報告,關於這個末日預言後來發生了什麼。因此,在自由化四年後,這是美國政府自己對於加密技術對其執法工作的影響所說的話:「在 2002 年,也就是有統計數據的最新一年,沒有任何聯邦竊聽報告顯示遇到加密情況。州和地方管轄區報告說,在約 1,300 件竊聽案中,有 16 件遇到了加密情況。然而,在這些案例中,都沒有報告說加密技術阻止了執法官員獲取截獲通信的明文。」所以,如果談論參議院調查一些關於國家安全威脅的誇大說法,我認為有人應該看看這兩段引文。

總之,密碼學對政府來說是一個主要關切,而且這是有充分理由的。我不是想輕視它。但我認為,一旦精靈從瓶子裡出來了,而且它是必然要出來的,因為存在對密碼學的需求,因為太多人在思考它,因為如果我們不這麼做,其他人也會做。密碼學之所以在 70 年代開始,以及政府試圖將精靈推回瓶子裡的嘗試之所以令人啼笑皆非、令人悲傷(看你怎麼看待),有很多原因,但它們註定會失敗。你怎麼看都可以,但它們註定會失敗。

密碼學成為科學

好的,從秘密到公開的這種轉變,使得密碼學從一種藝術形式轉變為科學成為可能。今天的密碼學是一個蓬勃發展的科學研究領域。幾乎所有大學都開設了主要課程。有非常大量的學生正在學習這些課程。我算了算未來六個月將要舉行的主要會議數量,大約有 40 場主要會議。最大的會議,Crypto 和 Eurocrypt,吸引了 500 到 600 名參與者。為了對比說明,NSA 僱用的數學家數量(這來自公開來源,所以這個數字大約是 600 名數學家)。所以我們其中一個會議的參與者數量大約與 NSA 僱用的數學家總數相當。如果你看一些將研究界、實施者和產業結合在一起的貿易展,它們吸引了超過 10,000 名參與者。那是 RSA conference。因此,密碼學現在是一個蓬勃發展的領域,當然最終的認可證明就是我們都站在這裡進行這場演講。

與其他領域的互動

密碼學非常核心。如果你看看它如何與周遭環境互動,當然它受益於數學和統計學的發展。通信和信息論極為重要。事實上,Shannon 在他 1949 年的著名論文中,展示了信息論與密碼學之間的關係。密碼學、密碼學研究和密碼學應用是電腦運算能力的大量消費者,而另一方面,密碼學,特別是密碼分析,也是今天許多電腦系統存在的原因。其中許多系統是各個國家組織秘密訂購的。當然,密碼學也涉及許多政策問題。所以密碼學正處於所有這些領域的交叉點。

理論與實務

使密碼學幾乎獨一無二的一點是,理論與實務之間存在非常緊密的關係。思想在兩者之間來回流動,因此,如果我試圖觀察密碼學的各個子領域,它們可以被歸類為「實用理論」和「理論實務」。所以當我談論實用理論時,我指的是從數學中提取各種抽象概念。你拿來數論幾何 (geometry of numbers),並用它們來破解實際的密碼系統。或者你使用數域篩法 (number field sieve),並用它來分解大數。你使用邏輯學的各種理論技術來證明實際協定的安全性。所以有很多很多研究論文,它們採用理論思想並立即展示它們的適用性。也存在另一個方向的流動。你拿來各種實務上的東西。有一個密碼系統。密碼系統已經存在了數千年。現在你試圖定義一個密碼系統安全意味著什麼。你試圖提取安全性的概念、安全性的定義、攻擊的定義,突然我們有了計算複雜性理論這個工具來做到這一點,我們可以將實務理論化。

趣味性與教育價值

密碼學也很有趣。我們三個人一起交談非常愉快,如果你看看密碼學論文的標題,它們通常非常異想天開,有很多有趣的名稱。密碼學獲得很多媒體關注。幾乎每天你都可以在報紙上讀到關於某個協定被破解、某個方案被攻擊或病毒傳播等等的消息。我還必須說,密碼學是一個很棒的教育工具。如果我受邀到高中談論數學,通常只有五個孩子表現出興趣。如果我受邀談論密碼學,房間就會坐滿。所以密碼學是一個很好的方式,可以在學生,尤其是高中生,沒注意到的情況下,向他們介紹相當進階的數學主題。

安全性的迷思與法則

好的,關於密碼學的誤解。我想我的時間有點不夠了,所以我就跳過這部分。它被決策者、研究人員和實施者所誤解,我將試圖總結你在以下三個安全法則中應該尋找的東西。首先,絕對安全的系統並不存在。如果你試圖構建一個實際的實施方案,一個實際的方案,能夠抵擋所有可能的潛在駭客的所有可能攻擊,你註定會失敗。存在「足夠安全性」的概念。所以我可以給你們很多例子,安全級別看起來低得離譜,但在實務中卻有效。例如郵票。這是一個可笑的安全措施,但人們每年仍然花費數百萬甚至數十億美元來購買它們。報紙的發行,你知道,就是那種小販賣機。它能工作。它不是高度安全,但它足夠好。在許多情況下,如果你試圖過度設計,結果就是你會遇到第二個困難。第二個法則說,為了提升安全性,你的開銷必須翻倍。而一開始,這非常有效。經濟效益對你有利。你只需花費一點點,就能在額外的安全性上有很大的提升。但到了後來,當你試圖去除最後一個錯誤,並嘗試保護自己免受一些更瘋狂的攻擊時,它的成本效益越來越低,而且在某個點,相當早的時候,最好放棄這個遊戲。順帶一提,加密演算法在大多數安全系統中並非弱點。密碼學通常被繞過。我不知道有任何採用密碼學的、主要的、世界級的安全系統是駭客通過實際進行密碼分析和非常深入的數學來攻破的。通常,有更容易的方式來滲透系統的安全性。所以構建足夠安全的密碼系統,但不要過度。這就是教訓。

各子領域的現況

現在我將以總結各個子領域的現況來結束我的演講。我將以黑色描述至今的主要成就。我將以紅色描述優勢、劣勢和主要挑戰。我將給出一個 1 到 10 的評分,表示我認為我們今天的現況。當然,所有想以被動方式從事密碼學、想閱讀相關內容的人,應該尋找分數高的領域。所有想在密碼學領域積極投入、進行實際研究的人,尋找分數低的領域。開放性問題就在那裡。讓我們從密碼學理論開始。所以就像我之前說的,我們有非常明確的概念和原語。

秘密金鑰區塊加密法

[秘密金鑰區塊加密法] 我們理解 Advanced Encryption Standard (AES),它在幾年前已被美國政府採用,並且很可能在全球範圍內被採用。並且存在操作模式。在密碼分析方法方面,我們有兩種可靠的技術,可以用來破解密碼系統,但由於它們非常知名,現在它們主要用於評估新方案的安全性。所以每當有人發明一個新的秘密金鑰區塊加密法時,我們知道如何嘗試評估其安全性。我們試圖應用差分密碼分析 (differential cryptanalysis),我們試圖應用線性密碼分析 (linear cryptanalysis),我們總是指定這兩種攻擊需要怎樣的複雜度才能應用。這樣就足夠高,所以密碼系統是強大的。

  • 現況總結: 我們有好的密碼分析工具,但它們可以更好。我們有合理的原語選擇,我們理解 S-boxes、線性映射、錯誤更正碼以及所有這類原語如何彼此互動,構建出好的密碼系統。有很多好的方案。
  • 主要挑戰: 我們有好的理論,我們有好的方案,但它們彼此完全斷開。因此,我們不知道如何如何在合理的假設下證明任何這些具體密碼系統的安全性。我們相信它們非常優秀,但我們不知道如何將理論工具應用於實務方案。所以我們有兩條堅實的腿,中間卻沒有連接。
  • 最終評分: 7。

流密碼法

[流密碼法] 在流密碼法中,你不是將資料混淆。相反地,你將資料與一個偽隨機位元流進行異或 (exclusive-or),這個位元流是由另一個演算法生成的,與你實際嘗試加密的資料完全無關。所以,在這種情況下,我們只有少數公開的想法。有線性反饋移位暫存器 (linear feedback shift registers),用於大多數這類設計。我們有一些密碼分析攻擊,快速相關攻擊 (fast correlation attacks) 以及過去幾年的一些新代數攻擊 (algebraic attacks)。我會說這是唯一一個我相信 Secret Service 比外界社群更了解如何製造好的密碼和如何破解好的密碼的領域。

  • 現況總結: 我們的理論和實務都很弱。我們的兩條腿都相當虛弱。
  • 主要挑戰: 如果你在尋找一個好的研究領域,我認為這就是一個你應該關注的地方。
  • 最終評分: 4。

理論密碼學協定

[理論密碼學協定] 現在還有兩個領域。有理論密碼學協定 (theoretical cryptographic protocols) 的問題。在這裡,我們基本上實現了我們想要的一切。我們發展了零知識互動式證明 (zero-knowledge interactive proofs) 的理論,這使得我能夠以一種方式向你證明任何陳述,讓你完全相信其正確性,但你除了陳述的正確性之外一無所知。所以我可以聲稱我證明了黎曼假設,並且可以說服數學家我確實做到了,但同時我不會透露關於證明過程的任何一點信息。結果證明它在構建理論協定中是一個極其有用的基石。我們有安全多方計算 (secure multi-party computations)。在場的所有人都可以公開討論你們的財富,而在這次公開討論結束時,這個房間裡最富有的人會知道這個事實,但你們中沒有人會知道其他人有多富有。所以你試圖通過這次公開討論實現一些共同目標,同時限制信息從一方流向另一方。所以基本上有了這樣的工具,幾乎任何事情現在都可以實現和證明,並且有很多珍寶,許多美麗的協定。

  • 主要挑戰: 不幸的是,我們擁有的理論協定速度太慢,所以為了使這個強大的理論變得實用,我們需要一些新想法。
  • 最終評分: 8。

實用密碼學協定

[實用密碼學協定] 最後,在實用密碼學協定 (practical cryptographic protocols) 領域,也就是那些可以在實務中應用、被全世界所有軟體公司、硬體製造商等使用的協定。有許多臨時 (ad hoc) 的想法。在一個稱為隨機預言模型 (random oracle model) 的特定模型中,有一些安全性證明。我沒有時間定義它,但如果你假設存在一個預言機 (oracle),它會給所有請求者真正的隨機位元,那麼你可以證明其中一些協定的安全性。我們有一個快速擴展的結果庫。

  • 現況總結/主要挑戰: 另一方面,我們也有許多有缺陷的協定,而挑戰在於納入側通道攻擊 (side channel attacks) —— 那些你繞過密碼學而不是直接攻擊它的攻擊,以及更好地理解隨機預言模型。

結論

我只想總結一下。至少對我來說,這是非常令人興奮的 25 年旅程。最好的還在後頭。我確信密碼學將繼續蓬勃發展。感謝大家,特別是我的同事們。