波爾說過,如果有人在第一次聽到量子理論的時候,沒有感到惱火,說明他根本沒有聽明白。
這句話說明了和量子有關的一切都變得複雜、反常識、反直覺,也就是不好理解。
下面的電影圖片只是增加一些課堂前的放鬆,下面的內容依然非常燒腦,請不要因為娛樂而失去了嚴肅性。希望我們團結緊張,希望氣氛嚴肅活潑。
電影中總是出現竊聽的情節,正派反派都在用,只是電影中的密碼學比較簡單,也就是高效能軍用的竊聽器而已,而反偵察一般是懷疑後,拿著探測器去找,這是非常弱雞的做法,如何反竊聽?最好的反竊聽就是,一旦有人竊聽,我立即知道有人竊聽了。下面我們講的就是這樣一個方法,而且是目前人類最高階的玩兒法:量子通訊。
前面的文章講了很多很多的加密,但是有一個問題沒有解決,就是通訊問題,鑰匙複雜到讓別人很難破解是一回兒事兒,比如恩尼格瑪機加密;整體的安全性是另外一回事兒,比如這個加密的鑰匙被別人知道了,這個人是接收者以外的人。
回顧密碼學的基本原理
A(alice)想傳輸一個詞給B(bob),於是她想到了之前文章學到的移位替換加密法,比如這個單詞是btc,“字母加一”就是cud,沒有什麼含義或者說真實的含義不是原文的含義。
Btc這個詞就是原文或者明文,而實際輸出的文字就是密文。秘鑰是什麼呢?字母加一,對於收到資訊的Bob就知道了這個秘鑰,於是他對cud每個字母減一,就得到了原文BTC,這樣的話就是解密了。
傳輸的東西叫做鑰匙(秘鑰),這個秘鑰理論上是存在可以破解的可能的,即使是現在破解不了的鑰匙,如果鑰匙被人竊聽了,也是會直接破解。
所以密碼學有兩塊內容:秘鑰和傳遞秘鑰。這兩個都安全,才是真正的安全。
如果有一種措施,只要別人竊聽了你的秘鑰,在竊聽後,鑰匙就變了,那這個傳輸就會非常安全。
量子通訊
這是一個非常複雜的問題,我們今天只是講述下量子通訊中的量子秘鑰分發機制,不涉及量子糾纏以及量子計算。這種機制最早的是BB84協議,是量子密碼學中第一個金鑰分發協議,由Bennett和Brassard在1984年提出,也是使用和實驗最多的量子金鑰分發方案之一(後面有改進版本,大致原理是接近的,同屬一類)。
這種協議要實現有兩個通道,經典通道和量子通道。經典通道是保證收發資訊雙發的資訊交流的,比如email、電話等等都可以,在本文的語境下,經典通道被竊聽也沒太大關係;量子通道,顧名思義,就是傳遞量子態的。
下面的內容就是關於量子秘鑰分發的兩種解釋方法,之所以寫兩種解釋的模型,你一定可以透過其中一種解釋或者結合兩種模型,理解量子秘鑰分發這個神奇的東西。
第一種解釋的簡化模型
測不準原理的簡化闡述
比如,光子有圓形偏振狀態和線性偏振狀態,左旋、右旋、上下(豎直)、左右(水平)。
詭異的事情來了,測量的過程會影響對光子偏振狀態的測定。
比如有個棚子裡,我去觀測一下,為了更加逼真地類比,正常人類是一下子看到這是一頭白牛,這樣,我們透過牛棚牆上的孔去看,一次只能看到一小片區域,比如先看到了是白色的,然後移動下視角,看到是個牛角。然後就是一頭白色的牛。
無論我去先看顏色還是先看頭上的角,得到的最後結論就是白色的牛。不會是黑色的羊、白色的羊、黑色的牛這三種情況。但是,量子的世界裡,不是這麼回事兒。你看到的可能是一頭奶牛——這是開玩笑,你看到的可能是一頭白羊、黑牛等等,因為兩者之間的關係是隨機的。
量子裡面測量的結果是和測量過程有關係的。在沒有觀測之前是糾纏態。不清楚到底是什麼狀態,測量完了也不知道測量前是什麼狀態。
比如你測量的是一個光子,光子的狀態簡化一下是:圓偏振和線偏振。你先觀測圓偏振,再測量線偏振,你得到的是一個左旋水平偏振光。如同上文觀測的先看顏色後看物種,你得到的就是白牛。
但是,如果你先看線性偏振後觀測圓形偏振的話,你得到的可能是各種狀態,是隨機的。類比巨集觀現象就是,你先看物種,後看顏色,不一定是白牛,得到的可能是黑牛、白羊、黑羊。
這個就比較詭異。而且測量完之後,光子的狀態就變了,測量之前是糾纏態,類似薛定諤的貓咪,不知道死沒死,測量完,變化了。類似棚子裡一頭白牛,你看完後變成了黑羊。
觀測順序影響觀測結果。
好了,理論解釋完畢,現在讓Alice給Bob再發一次資訊。只需要保證秘鑰給Bob很安全,密文就可以公開發給Bob,
Alice發射一些光子給Bob,比如說是六個光子。她去測量一下如A圖。
這個時候Bob也收到了光子,他也測量一下,按照自己的方法,如B圖。
當然,你把上文中的型別改成黑白和牛羊的類比也是一樣的。
然後Alice給Bob去個電話說一聲,說你的1、5和6的測量方法是一樣的。
那麼,1、5和6的結果應該是一樣的。別的策略方法不同就不要了。
不同的狀態在計算機面前都可以簡單的記錄為1和0,比如規定左旋是1,右旋是0,豎直是1,水平是0. 這個時候上圖的秘鑰就是111. 這個光子數多一些,這樣可以得到一組隨機數,然後這個就是秘鑰了。有可能出來是101010000010100010這樣的數字串。
這個時候,出現了竊聽者名C,叫Caocao吧,這個時候,他“竊聽”了光子1,他也是測量圓偏振,發現是左旋,這時候,Bob收到光子1,他測量也是圓偏振,結果不變。Bob不會發現這件事兒。
但是呢caocao不知道a和b是怎麼測量的,caocao去用線偏振去測量光子1,這時候得到的結果是水平,這時候Bob收到了光子,然後他測量的圓偏振狀態就不一定是左旋了,因為根據上文說的,測量過程會影響測量結果,這時候他的結果就和Alice不一樣了,然後就知道他有竊聽者了。Caocao竊聽的時候不可能每一次都猜對,這樣的數字串達到一定的長度後,只要出現竊聽者,A和B經過一些比對,就會知道自己的資訊被竊聽了,不用這個鑰匙了,換一組密碼。
第二種解釋的簡化模型:
BB84協議還有一種更通用的經典的解釋。
四種不同偏振態的光子,0度,90度,45度,135(度線偏振光子和圓偏振光子的兩個狀態各自正交,但是線偏振光子和圓偏振光子之間的狀態互不正交,所以有不同的角度,這一點和第一種解釋的模型可以關聯對應上),如上圖所示。
1, Alice可以隨機選擇偏振片,+形或者x形偏振片隨機生成偏振態;
2, 選定偏振方向的光子透過量子通道發給B;
3, Bob這時候也隨機選用+形或者x形偏振片去測量光子的偏振方向;
4, B將測量結果保密,同時,將他使用的偏振片透過經典通道告訴Alice;
5, A對比和B使用的偏振片,然後經典通道告訴B那些和她一樣,那些不一樣;
6, B拋棄和A使用的不同的偏振片的結果,保留和A一樣的偏振片的結果,統計學上顯示應該是扔掉一半的結果。
隨機排布偏振片,和A比對後,鑰匙才形成,加密過程才開始。規定好什麼狀態對應0什麼狀態對應1就可以很簡單的對應成由0和1組成的鑰匙。
簡單來說,就是量子秘鑰的製備過程就是利用光子的偏振性。這很安全嗎?是的,這個時候,C出現了他要竊聽,攔截光子後,開始用偏振片測量,這時候他的錯誤率也是50%,測量完之後,發給B,B也不知道,然後透過竊聽經典通道的資訊去知道怎麼去排出來正確的偏振片,但是也不對,因為他測量光子的時候光子已經變化了,倆人只要核對測量結果,就會發現B是解不了密的,那麼這就說明這個通路已經被人竊聽了。
當然,你要問C在竊聽光子後,可以不測量,而是生成一個一模一樣的光子,然後把原來的光子發給C,這樣不就可以了嗎?這樣也不會讓量子態變化?但是,也不可能,因為量子,還有另外一個特性就是不可克隆性,根本無法生成另外一個一模一樣的光子。
說得更饒一些,其實,量子秘鑰的傳輸和生成是同時發生的。
因為B接受到光子後,經典通道告訴A,他用的是怎樣的測量方式(十字還是叉字的偏振片)的時候,A才會用和B一樣順序的偏振片去加密資訊。B收到光子沒有測量的時候,其實秘鑰還沒有產生呢。
以上都是量子秘鑰分發的基本方式之一。量子加密是目前世界上最高階的加密方法,有應用但是還沒有大規模應用。注意,上面所講的只是量子加密中的秘鑰分發原理,並不是鑰匙本身的加密。最近量子計算、量子加密等等詞彙變得常見,這個概念也走入了人們視野。
量子計算到底怎麼樣?是不是可以破解我們的比特幣私鑰,是不是我的加密資產已經不安全了?
先不要著急,著急也是交易所先著急,這麼說吧,如果現在有人能夠使用量子算力加密解密的話,人家根本看不到你錢包裡那幾萬個比特幣(如果您有的話),直接攻擊全球金融系統就好了。
量子計算更加複雜,下一篇文章會說一說最近這個甚囂塵上的概念。