密碼學簡史(三)--- 量子計算中的未來密碼學

在加密與解密的大戰中,RSA加密法取得了暫時的勝利,那它有沒有破解法呢?坦率的說,現在還沒有,但理論上存在破解的可能,那就是量子計算機和配套的量子算法。

7. 量子加密法

功能齊備的量子計算機到底有多強,我們可以和傳統計算機對比來看,不論哪種計算機都是對存儲單元中的數據進行操作,比如這個存儲單元可以存放N位數據,又因爲每個數據都只能是0和1,所以N位數據的存儲單元裏,數據一共有2N種可能。傳統計算機裏,任何一個時刻只能對這麼多種可能性中的一個進行操作,當N比較小的時候,工作量還是可以應付的;當N是幾千的時候,完成這個工作量需要的時間,就可能會超過全宇宙的歷史。

量子計算機中,存儲的數據總是處於0和1的疊加態,你可以理解成所有出現0和1的可能性融匯在一起,所以一個量子存儲單位某一時刻,是可以同時存儲2N個數據的。比如說這個存儲單元有300位,那麼存儲的數據就是2300比特,這個數字就比全宇宙的原子數還多了。傳統計算機要對這麼多可能性一個一個操作,而量子計算機運行一次,就是同時對2300個狀態進行操作,所以它一次運算的效果相當於2300臺傳統計算機,算力大大增加。

RSA加密法我們之前也說過,它之所以堅固就是因爲要分解一個大數N的因子,這個問題的計算量隨N的增加以指數形式增加。但量子計算機一次操作就相當於傳統計算機很多次操作,所以如果能設計出一些連續的操作來分解質數的話,即便是一個超大數,用量子計算機也能很快的找出它的因數。這樣,RSA加密法就被破解了。

  • 量子算法

那這種操作設計出來了嗎?已經設計出來了,叫做“Shor算法”,它是1994年設計出來的,專門用於分解因數。一共有7個步驟,其中計算量最大的第4步,是必須在量子計算機中運行的,其它步驟可以在傳統計算機中操作。

Shor算法:

  1. 選擇任意數字a < N
  2. 計算gcd(a, N),這一步是求a和N的最大公約數
  3. 若gcd(a, N) ≠ 1,則我們找到了因數,運算結束
  4. 否則,找到更小的 r,使ax (mod N) = ax + r (mod N),根據歐拉定理 r 一定存在,這一步就是需要在量子計算機裏實現的步驟
  5. 若r是奇數,回到第一步
  6. 若ar / 2 ≡ -1 (mod N),回到第一步
  7. gcd(ar/2+1, N)和gcd(ar/2-1, N)分別是N的因數

這是一個專門針對量子計算機設計的算法,它的功能就是專門用來分解因數。Shor算法的作者休爾當年在貝爾實驗室做出這個成果後,大致估量了一下算力,他說速度至少可以比傳統計算機快百萬倍。其實這個差距,是和N的大小選取密切相關的。以當前傳統計算機做過的分解因數中最大的數爲例,這個數是768位的,傳統計算機和量子計算機要計算它,大約是100萬年和1秒的差距。

在休爾之後,還是貝爾實驗室,洛夫-格魯夫又設計出一種新算法,也是利用量子計算機,專門針對美國國家標準的加密法DES,結果在當前典型的應用級別下,4分鐘就把所有可能的鑰匙試遍,密碼隨之告破。

聽起來量子計算機好像很強大,很多談到量子計算機的新聞都會把它誇張到無以復加的程度,好像傳統密碼遇到它馬上碎成渣。但這種觀點是不對的。量子計算機做到的只是大幅削減計算量,其實它還是要花時間計算的,量子計算機很強,但並不是任意一種密碼遇到它都秒破。具體來說,針對計算機一個任務所需的時間,有一個評估方法:時間與空間複雜度。傳統計算機裏,一些像指數級、階乘級等時間複雜度很高的NP(Non-deterministic Polynomial)問題,在量子計算機中,雖然時間複雜度會大幅下降,但時間複雜度還算高階。所以我們現在不用那麼擔心量子計算機出現後,當前的密碼保護會瞬間碎成渣渣,只要我們願意把那個大數n再加長很多,比如從300位增加到3000位,保密強度還是足夠應付初期量子計算機破解的。

  • 量子計算機

到目前爲止,還沒有一個通用的量子計算機出現,可靠的專用量子計算機也沒有。有人聽說過D-Wave這個機器,而且也可能知道武器商洛克希德-馬丁2011年就訂購過一臺128個量子位的量子計算機,但實際上那臺D-Wave雖然確實利用量子理論計算,但它只能運行一種特殊的算法,叫做量子退火算法”,所以D-Wave只能算一個實驗性質的機器。後來D-Wave還開發了第二代,谷歌和NASA都買過一臺,這臺改進了很多,是512位的,甚至可以進行一部分傳統運算,但是運算速度大約跟1998年前的計算機速度差不多,只是在進行特定的量子算法時才比傳統計算機快很多倍。

爲什麼這麼多頂級公司都搞不定量子計算機呢?主要原因就是,量子實在太容易變了,我們現在還沒有特別好的手段,能控制量子按照算法的步驟運轉。最經典的例子,就是“光的雙縫干涉實驗”,當我們試圖通過一個偵測光子的設備,去觀測某一個光子到底是通過哪個縫才射到幕布上時,原先的明暗條紋將會改變,也就是說,我們的測量行爲,會影響到量子的狀態

如果雙縫干涉實驗中的明暗條紋代表着量子計算機運算到某一時刻的量子位的正確狀態的話,那設計者要盡最大可能維持住這種狀態,但實際上,這種狀態會被很多因素干擾,比如對這種狀態的觀測。在宏觀世界裏,任何一種物質都有可能和量子發生互動改變他們的狀態,比如說溫度,所以那些量子計算機,都需要在零下兩百多攝氏度的極低溫度才能正常工作。

你可能會擔心,手中的密碼什麼時候會受到量子計算機的威脅?至少10年內不用擔心,量子計算機的硬件、算法、編程語言、編譯器都嚴重缺失,每一項都是巨大的困難。總有一天量子計算機成熟後,我們現在的密碼怎麼辦呢?由新技術導致的問題,最好的解決方案是更新技術,當量子計算能輕易破解傳統加密法後,量子加密也就要誕生了。

  • 量子加密法

量子加密和其它加密法最大的不同是,其它加密法的原理只使用了數學,而量子加密不但使用了數學,還使用了物理中的量子理論。也許正是因爲背後有兩大靠山,所以它是目前爲止最強的加密法,就算是量子計算機也很可能無法破解。

量子加密既然是數學和物理結合的產物,那麼我們先說說數學原理的部分,數學原理就是我們前面介紹過的單次鑰匙簿密碼法。如果你還記得,這種加密法無法破解的前提是,要求鑰匙完全隨機,而這個要求又是幾乎不可能在現實中應用的,因爲本來真正的隨機數就很難獲取,退一萬步來說,就算有了真正的隨機數列,傳送鑰匙的環節也沒法保證完全安全。最保險的方法只能是雙方帶一堆保鏢,當面交換鑰匙簿,還得保證保鏢裏沒有特工。而量子加密的無法破解,不僅是理論上無法破解,而且實施過程中還能抵禦住絕大部分特工類型的破解

我們先來介紹下,量子加密是怎樣做保密通信的數學過程:

  1. 愛麗絲給鮑勃傳送一串光子,其中每一位光子信息都用0和1來標註,具體什麼算0,什麼算1,是有兩套測量方法—甲套和乙套,這兩種不同的測量方法,對同一個信號的測量結果是不同的;
  2. 鮑勃收到光子信息後開始測量,就測量每個光子信息位到底是0還是1。不過鮑勃並不知道愛麗絲那邊說的0或者1,到底是按甲方法測的還是乙方法測的。但沒關係,鮑勃對每個光子信號都隨意選用一套方法來測出每個光子信號到底是0還是1,就可以了。所以鮑勃有時候測出來的結果,肯定是跟愛麗絲髮出來的約定相符的,可有時候測出來的結果又是不符的,不過這都沒關係,測完了再說;
  3. 畢竟鮑勃有一部分是測錯的,所以這時候兩個人必須打一個電話,這個電話完全不用保密,誰想竊聽都可以。愛麗絲和鮑勃在電話裏都說什麼呢?就是針對每個信號,到底使用了哪套測量方法。這通電話裏,就是按照順位依次說出測量的方法。第一個信號是用甲方法還是乙方法測的,第2個順位用了甲還是乙方法……所有這些測量方法,由愛麗絲告訴鮑勃;
  4. 鮑勃聽完愛麗絲的這通電話後,就對照剛剛自己瞎蒙着測的結果,也要回復愛麗絲,回覆的具體內容就是,自己哪幾位的測量方法蒙對了;
  5. 對鮑勃來說,自己之前測錯的那些不管,把測對的那幾位挑出來,這串數字就可以作爲他的鑰匙;對愛麗絲來說,因爲鮑勃告訴了她哪幾位他選對了測量方法,所以愛麗絲也可以把鮑勃選對的那串數字也挑出來,這串數字就可以作爲她的鑰匙。
    Alice向Bob發送光量子
    兩人挑出來的那串數字是完全相等的,而因爲完全相等,所以就可以作爲兩人的鑰匙了,它既是鮑勃的鑰匙,也是愛麗絲的鑰匙。整個過程中,要是並沒有在額外的步驟中單獨傳輸,他們在電話裏說一說,自己分別回去數一數,就能得到相同的鑰匙。之所以鑰匙一樣,也是數學原理上保證的,咱們不用糾結於數學原理的細節。既然沒有單獨的鑰匙傳送環節,所以特工就很難下手。

另外,因爲鮑勃和愛麗絲都是隨機瞎蒙着選用甲套或乙套兩種測量方式的,所以兩個人恰巧都用了同一種方法的序列挑出來的數字,也是隨機序列,也就是說鑰匙是完全隨機的。到這裏,鑰匙既不用額外的傳輸,而且本身又是完全隨機的,這下就滿足了單次鑰匙簿加密法,並且改進了傳送鑰匙的薄弱環節,所以實際操作時,可行性就高了很多。就算中間有伊芙竊聽了他們的那通電話,伊芙也沒法判斷到底哪幾位應該挑出來當鑰匙,因爲她不知道鮑勃那邊針對每個光子位測量的結果是什麼。

現在,還有一種竊聽途徑,比如說伊芙知道竊聽電話沒用,那就乾脆直接竊聽光纜上的信息,這樣怎麼辦呢?這也不用擔心。首先,光纜上的信息本來就是單次鑰匙薄加密的,就算在使用過程中不遵守隨機的原則,暴露了一些特徵,也不用擔心。因爲在量子通信中,還會增加一個確認環節,來判斷光路上有沒有人竊聽

這是怎麼實現的呢?其實就是我們前面說的物理特性。因爲人對光子的測量會改變光子原有的量子態,伊芙竊聽光纜,其實就相當於在雙縫干涉實驗時,在兩道縫前添加了兩個光子探測器,這時候幕布上的明暗條紋就會改變甚至消失。也就是說,愛麗絲和鮑勃只要發現幕布上的圖案變了,就知道有人在竊聽了。只要發現有人竊聽,他們就切換到其他線路上,那條被竊聽的線路就廢掉了,這是量子加密的一個新功能。

在真實的應用下,伊芙竊聽會導致鮑勃收到的信息有錯誤,但怎麼知道有錯呢?其實他跟愛麗絲打個電話,覈對一下解碼出來的原文就可以了。那你說覈對原文不就整個都泄密了嗎?其實只需要隨機從鮑勃收到的消息中,挑選幾個字母覈對一下是否一致就可以了,只要有一個不對,就說明這條光纜上有特工竊聽

覈對的量大概佔原文的多少呢?假如從1075個字符裏隨意挑出75個,如果這75個都是一樣的話,基本就能保證這條信息的安全性。爲什麼說基本呢?因爲還存在極小的概率被竊聽了,但因爲這75個雙方都是一致的,所以竊聽的概率就大概小於一萬億分之一,還是非常可信的。

第一次真實的量子加密系統,是1988年在IBM實驗室做出來的。它的甲套乙套測量方法,是使用光的偏振方向來呈現量子態,用上下與水平方向偏振代表甲套測量方法(上下振動的光子可以代表0,左右振動的光子則代表1),用45°與135°方向偏振代表乙種測量方法(45°方向的偏振光就代表0,135°方向振動的光子代表1),當時兩臺計算機只相隔30cm,通信成功了。理論和實踐同時勝利,之後的改進主要就體現在兩臺計算機的通信距離上。
甲乙兩套光量子測量方法

1995年,日內瓦大學可以做到相距23公里,完成量子加密通信。2012年的時候,咱們國家潘建偉團隊把這個數字推進到了一百公里這個級別,現在這個團隊正在嘗試用空間軌道上的衛星和地面接收站間,實現量子加密信息的傳輸,距離就已經摸到千公里的級別了。

只不過實驗中符合條件的光量子態數量實在太少,只有幾個到十幾個數位,遠遠不能承載信息的正文,所以到目前爲止,量子加密只適合給鑰匙加密

如果你要問,當技術發展到足夠的高度,量子加密也會被破解嗎?大概率說是破解不了的,因爲如果量子加密能被破解,就說明在量子理論中,出現了一種對量子態測量後還不改變量子態的方法,而這是違反量子力學基本原理的

量子力學是物理學的基本理論,雖說只要是理論,就一定有被證僞的那一天,但這種證僞更可能是一種改進。就像我們先知道地球是個球體,然後才知道赤道方向的直徑比南北極方向的直徑多了120多公里,也就是說它並不是完美的圓球,而是一個橢球體,只不過橢的太微弱,肉眼看不出來罷了。就是這樣一種程度的證僞,而不是某一天突然發現地球是正四面體的那種程度的證僞。這種黑白顛倒的證僞,在量子力學基礎理論上是永遠不可能發生的。

量子力學的基本理論,是從1905年到今天,被無數實驗拷打、錘鍊活下來的。如果量子加密可以破解,就說明目前所有量子力學的結論都是錯的

更多文章:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章