科學人/量子電腦問世後…世上還有不可破解的加密法? 密碼攻防史一次看

量子電腦示意圖。圖/Ingimage

如果說加密就像是把遞送的包裹上鎖,好讓持有鑰匙的收件人才能打開,那麼只能說世界上沒有絕對安全的鎖,無論加密的一方再多加上幾道鎖,伺機而動的解密者總是能夠逐一找到開鎖的方法。

近代最著名的例子,就是二次大戰時德軍所使用的謎碼機(Enigma,或者音譯爲「恩尼格瑪機」),總共有26×26×26×6=10萬5456種電路變化,相當於有一萬兆以上的加密方式,號稱無法破解。但最後還是在圖靈(Alan M. Turing)等英國學者的合力下,縮小排列組合的可能範圍,再利用計算機成功找出密鑰,破譯謎碼機加密的電報。

千年以來,加密陣營面對破譯陣營的一波波攻擊,不斷節節敗退,直到公鑰密碼學的出現才得以扭轉劣勢。1976年,美國數學家迪菲(Whitfield Diffie)與赫爾曼(Martin Hellman)以及墨克(Ralph Merkle)三人發表了石破天驚的概念,指出利用模算術(modular arithmetic)建構出的某種單向函數,可用來進行加密,而密鑰大可公諸於世,也不怕遭到破譯。因爲這種函數容易計算,卻很難從結果反推出原來的數值,只能夠以試誤法逐一驗算;當數值很大時,算到地老天荒也可能都還沒有結果。

隔年(1977),瑞維斯特(Ronald Rivest)、希米爾(Adi Shamir)、艾德曼(Leonard Adleman)三人結合質因數分解,打造出更難反推的單向函數,以他們三人姓氏第一個字母爲名的RSA加密演算法有效又好用,除了國防外交上的加密用途,更進入我們的日常生活之中,廣泛用於網路通訊、認證、金融交易等方面,而無須擔心遭到駭客竊取資料。即使電腦運算速度不斷提升,逐漸縮短破譯的時間,只要再增加密鑰的長度,讓電腦破譯速度追趕不上就好。

不過這對傳統電腦有效,但對量子電腦就不盡然了。美國數學家修爾(Peter W. Shor)在1994年便提出修爾演算法,證明量子電腦可以在足夠短的時間之內完成因數分解,代表現在廣泛使用的公鑰加密法,在未來恐怕就不再安全。

難道好不容易得以喘息數十年的加密陣營又要敗下陣嗎?其實有個保證永遠不會被破解的加密法,那就是量子加密。有趣的是,這個構想的起源並不是爲了對抗修爾演算法才提出的,而是早在1969年,美國哥倫比亞大學的物理博士生魏斯納(Stephen Wiesner)所寫的博士論文。這篇題爲〈共軛編碼〉(Conjugate Coding)的論文描述如何利用光子的偏振,打造絕對無法仿冒的「量子貨幣」。無奈他投稿期刊遭到退稿,就連指導教授也認爲這不是「正經的科學」,這篇論文從此無人聞問,倒是他的室友班奈特(Charles Bennett)念念不忘,不時在腦中反覆思索。

直到15年後,班奈特終於茅塞頓開,和加拿大蒙特婁大學的布拉薩(Gilles Brassard)想出如何用光子隨機產生一次性密鑰。因爲密鑰從不重複,也就不可能被破解;倘若有人試圖監聽偷窺,也會因此改變光子的偏振方向而遭發現。這個BB84協定(代表兩人姓氏以及對外發表的1984年)可保證絕對安全的量子加密與量子通訊,終於爲千年的加密∕破譯攻防戰畫上句點。別以爲這還在紙上談兵的階段,近年來包括我國在內的許多國家紛紛都已完成可行性實驗。

只不過量子加密固然牢不可破,成本卻太過昂貴,加上全球億萬臺終端裝置仍是傳統電腦,在可見的未來也不可能採用量子加密,因此在實務面,還是有必要開發能抵抗量子電腦、又適用於傳統電腦與網路的加密演算法,也就是所謂的「後量子密碼學」。其中由美國電腦科學家艾以泰(Miklós Ajtai)與德沃克(Cynthia Dwork)共同提出的「晶格密碼學」(lattice-based cryptography),因爲涉及在N維空間中找出最近向量的問題夠複雜,所產生的密鑰長度又不會太長,目前最受到矚目;若想了解其基本原理,請見62頁〈倒數2030,量子電腦與晶格加密的頂尖對決〉。

延伸閱讀

(本文出自2024.07.01《科學人》網站,未經同意禁止轉載。)