傳統密碼學
密碼學的基本目的是解決壹個問題:如何在不安全的信道上安全地傳輸信息?
解決的辦法是通信雙方隱藏壹些信息,只在不安全的信道上傳輸密文,利用這些隱藏的信息將密文還原為明文。這些隱藏的信息被稱為密鑰。所有的密碼學都包含兩個要素:壹個密鑰和壹個算法。
目前,大多數加密方法都是基於某個數學問題的單向困難性。換句話說,正向解決壹個問題很容易,妳可以用它來加密,但反向就很難了,破解起來很難。
為什麽很多曾經被認為牢不可破的密碼系統最終都被破解了?有壹個深刻的原因是,在數學中,任何實際問題都沒有被證明是單向困難的。事實上,我們甚至不知道單向數學難題是否存在。
所以我們要有壹個基本的概念:所有基於數學的密碼的安全性都是未經證明的!到目前為止,唯壹被證明不可能被數學破解的密碼是量子密碼。所以量子密碼的價值壹目了然。
量子密碼術
量子密碼是如何實現保密性的?和傳統密碼學壹樣,也是通過算法和密鑰。其實量子密碼學用的算法是壹個特別簡單的算法,三言兩語就能解釋清楚。
任何壹串信息都可以表示為壹串二進制字符,即壹串0和1。對於這個01字符串的每壹個數字A,我們給它壹個對應的密鑰K,也是壹個0或者1的數。根據A和K,可以計算出對應的密文B,也是0或1的數。
對應的規則是:如果k= 0,那麽b等於a;如果k= 1,那麽b等於0,1不等於a,也就是說,k = 0將0變為0,1變為1,k =1將0變為1,1變為0。簡單來說,k= 0不變,k= 1互換0和1。這種算法被稱為異或。
妳可能會驚訝,這麽多復雜的算法都不能保密。為什麽這個最簡單的算法可以?
訣竅不在於算法,而在於關鍵。請註意,這裏的密鑰不是只有壹個數字。如果只有壹位數,當然完全沒有保密效果。實際上,對於原文的每壹位,都有壹個對應的位密鑰。也就是說,如果原始文本的長度是n位,那麽密鑰的長度也是n位。如果原文有《紅樓夢》那麽長,那麽關鍵需要那麽長。
500
紅樓夢
此外,該密鑰的字符串必須是隨機字符串。換句話說,每個數字都是隨機的0或1,任何兩個數字之間都沒有聯系。
另外,這麽長的密鑰只能用壹次。也就是說,這次妳用壹個N比特的密鑰來傳輸N比特的原文。下壹次傳輸相同的內容時,您必須重新開始並重建N位密鑰。永遠不要再使用原來的鑰匙。這叫做“壹次壹個秘密”。
量子密碼中的密鑰是滿足三個條件的字符串:長度等於明文、隨機、壹次壹個秘密。
為什麽要這麽做?因為它永遠不會被數學方法破譯。為什麽不能解碼?因為這樣的密文可能對應任意長度相同的明文,而且概率相等。比如可能對應“明早向東進攻”,也可能對應“後天下午向西撤退”或者“飛出地球移民宇宙”,概率相同...
對於這樣壹個沒有任何偏見的密文,是沒有辦法開始數學分析的,因為根本沒有數學問題讓妳去解決。
長度等於明文,隨機,壹次壹個秘密。滿足這三個條件的鑰匙叫做“壹次性筆記”。所以密碼學中的壹個重要定理是,用壹次性筆記加密的密文是絕對不可破譯的。這個定理被信息論的創始人克勞德·香農證明了。
500
克勞德·香農
值得註意的是,壹次性票據中的三個條件缺壹不可。無論是密鑰的長度小於明文,密鑰的比特位之間有聯系,還是同壹串密鑰被使用兩次,都會導致密文有壹定的結構,這樣對手就有了通過頻率分析破解密碼的實力。
壹次性紙幣法早在第壹次世界大戰結束時就被發明了,但很少在實踐中應用。原因是傳輸如此大量的密鑰是非常困難的。如果像《紅燈記》《潛伏》等諜戰片那樣,派信使去送鑰匙,壹旦信使被抓或叛逃,損失將是巨大的。因此,壹次性筆記法只用於那些不惜任何代價都要保證信息安全的地方,比如國家元首之間的電話通話。
量子密碼利用量子力學的物理方法,在通信雙方之間生成壹次性的筆記密鑰,改變了這種情況。這裏的關鍵是:雙方同時拿到鑰匙!中間沒有第三方信使!
這是壹個非常巧妙的想法,是量子力學創造的奇跡。這裏展示了量子密碼的技術含量。量子密鑰的生成過程也是分發過程,所以量子密碼學有個專業的名字叫“量子密鑰分發”。
500
量子密鑰分配
那麽,量子密碼是如何實現沒有信使的密鑰分發的呢?簡單解釋就是量子密碼使用了量子力學中的兩個原理,壹個是疊加原理,壹個是測量可能導致狀態突變。基於這兩個原理,通過發射和接收壹系列處於隨機狀態的單光子,雙方可以獲得壹系列完全相同的隨機串。這個隨機字符串是壹次性音符鍵。
500
量子力學中的疊加
500
量子力學中的測量
經過壹系列運算,雙方得到壹系列隨機的零和1,如0010111001010101...這是最後的效果。
壹旦有了密鑰,就使用XOR加密算法用密鑰將明文加密成密文,並將密文發送出去。由於密文已經不可破譯,這壹步不需要任何特殊設備,直接走傳統信道,敵人就可以攔截。
壹個常見的誤解是,最終的信息傳輸必須經過某種量子通道。當他們知道傳統的信道也行的時候,就覺得很疑惑,甚至認為所有搞量子通信的人都是騙子。
另壹個常見的誤解是,密鑰也應該通過傳統渠道傳輸。這是絕對不可能的,如果要通過不安全的渠道發送密鑰,那就完全失去了保密的意義。沒有壹個密碼系統是如此愚蠢的。
綜上所述,量子密碼真正的方式是用量子信道生成密鑰,用傳統信道傳輸密文。妳可能要問:既然量子信道可以保證不泄露,為什麽不直接用量子信道傳輸信息,而只傳輸密鑰呢?因為量子力學的這種運算只能產生隨機串,而隨機串的信息量為零,所以這種運算本身不能傳遞信息。所以這個方法的提出者很長壹段時間都搞不清楚它的用途,直到他發現這個隨機的字符串可以作為壹個密鑰,才讓這個方法有了用武之地。
量子密碼的攻擊與防禦
需要破解量子密碼怎麽辦?基本框架其實很簡單。既然無法用數學方法破譯量子密碼,唯壹的辦法當然是物理方法,通過各種手段入侵量子通信設備。
在傳統密碼的破解中,主要考慮數學破解,因為用數學破解是“可能”的,而不是“只能”用數學破解。
所以量子密碼和傳統密碼的對比不是前者的威脅只來自物理,而是後者的威脅只來自數學。應該是量子密碼面臨的威脅只來自物理,傳統密碼面臨的威脅來自數學加物理!
目前量子密碼學的研究前沿是在敵人已經成功實施幾種物理攻擊的前提下,保證信息不會泄露。
壹個研究前沿叫做“獨立於測量儀器的量子密鑰分發”這個術語是指即使敵人獲取了我們的測量儀器,我們仍然可以及時發現並停止生成密鑰,從而避免信息泄露。這方面的實驗驗證已經成功,下壹步就是提高比特率。在這個領域,中國也是走在世界前列的。