這篇博文介紹一下量子通信中的一個小小的知識點:BB84合同。其實它是與令人望而生畏的“量子”相關的知識,并且弄清最最基本的原理也并不是很難。本篇博文大部份內容來自知乎上的一篇科普簡單版科普[1]和公眾號“混知”的文章《Stone小知識》–量子衛星究竟是干嘛的?[2]。更深入的相關知識,網上有好多深入科普(例如有篇深入版科普[3]),而且我全都看不懂,所以不做深入介紹。
為何須要量子秘鑰分發
BB84合同是一種“密鑰分發合同”,所以從功能上來講,它要實現的目標與之前的一篇密碼學專欄里介紹的RSA加密算法一樣,都是安全地傳遞秘鑰。相信你們也據說過,RSA算法從原理上來講并不是不可破解的而是“很難破解”的,即通過私鑰破解加密的密文并不是不可能做到,而是通過私鑰破解密文很難,可能須要成百上千年。這就相當于讓破解者做一道很難算的物理題,等破解者算下來,此次通信早已結束,對稱秘鑰早已棄用(RSA加密的通常是對稱加密算法的秘鑰,詳見之前的一篇密碼學專欄),破解早已沒有意義了。
并且可以想見的是,隨著計算機性能的不斷提高,原先須要成百上千年才會做下來的物理困局如今說不定只用幾秒才能算下來,但是新興的量子估算也對RSA加密算法構成恐嚇,理論上講,秘鑰為1024位長的RSA算法,用一臺512量子比特位的量子計算機在一秒內即可破解。
而本篇博文介紹的BB84合同就是一種比RSA更可靠的秘鑰分發機制(更確切地說,BB84是一種秘鑰協商機制,但我們暫時不分辨“密鑰分發”與“密鑰協商”的區別)。
通信工具
首先,BB84合同要求通訊雙方擁有一條量子信道的同時,還擁有一條傳統信道。
之后在量子信道上,信息發送方須要4種狀態的量子作為信使,信息接收方須要2種量子接收器。為了避免高深的量子知識,我們想像4種量子信使是4種姿態不同的飛鏢,我們把飛鏢分成兩組:“橫豎”組和“撇捺”組。
兩組量子信使須要分別使用兩種不同的接收器來接收。“橫豎”組對應“+”形接收器,“撇捺”組對應“x”形接收器。
基本通信
我們規定每組量子中有一種姿態代表0,另一種代表1。比如,我們規定,接收到“橫”代表0,這么,接收到“豎”代表1。同理,規定接收到“撇”代表0,接收到“捺”代表1。
如今若果我們選購正確的接收器,這么我們能正確地接收到信息發送者想發給我們的信息。比如,我們假如用“+”形接收器來接收姿態為“橫”的量子,這么我們得到的訊號就是“橫”,這么發送者想傳遞的“0”這個訊號都會被我們正確地接收到。
假如我們沒有用正確的接收器會發生哪些呢?假如我們用“x”形接收器接收姿態為“橫”的量子會發生哪些呢?量子信使會撞在接收器的入口上,造成接收器接收不到信使嗎?不一定。
下邊是這篇博文里惟一與量子熱學相關的知識:姿態為“橫”的量子經過“x”形接收器時,有可能會改變自己的姿態,弄成能通過接收器的姿態,也就是姿態為“橫”的量子經過“x”形接收器時,姿態可能變為“撇”,也可能變為“捺”,這么傳達的信息有可能還是發送者想傳達的0,但也可能弄成了相反的1。
錯誤地使用“+”形接收器接收“撇捺”組量子信使同理,信息接收者難以區分起初信息的發送者想傳遞的到底是0還是1。
BB84合同
有了前面的鋪墊,我們可以開始了解BB84合同的具體內容。容我重復一次,BB84合同要求通訊雙方有兩條信道:一條量子信道,一條傳統信道。
按密碼學傳統,我們把信息發送者稱作Alice,信息接收者稱作Bob。如今她們要用BB84合同,為她們的通訊確定一個秘鑰。
在量子信道上的通信似乎就結束了,接出來的步驟4-7都是在傳統通訊信道上進行的。我們覺得傳統信道意味著功擊者可能監聽并更改信道中會話內容。
第五步,Alice收到Bob的檢測方式后,對比自己的發送量子信使的情況,告訴Bob他在什么位上偶然用了正確的接收器。我們把正確檢測的位的集合稱為C,Alice把C發送給Bob。
第六步,Bob收到Alice的信息,曉得了自己什么位的檢測方法是正確的,即曉得了集合C。他在自己檢測正確的這些位中,隨機選購出一部份位,把檢測到的結果發送給Alice。我們把Bob從C中挑出的那一部份叫集合D。
第七步,Alice收到信息后核實自己在6、17、45位上發送的信息是不是如Bob所說的1、1、0。若果是,這么Alice發送信息給Bob示意沒問題,這么雙方會在Bob一開始檢測正確的位(集合C)中,剔除第六步Bob發回給Alice的這些位(集合D),剩下的位(集合CD)作為雙方通訊的秘鑰。
為何這樣做能避免通信被監聽
在傳統信道上的監聽
根據密碼學傳統,我們稱監聽者為Eve。假如Eve在傳統信道上監聽量子通訊的原理,她會在上述第四步看到Bob的檢測方法,并且Bob沒有發送檢測結果。Eve就會看到Bob一部份正確檢測位以及測出的結果(上述第六步中,Eve會看到集合D以及對應的檢測值),并且最后Alice與Bob選擇通訊秘鑰時會完全遺棄集合D,即完全遺棄在傳統信道交流過的這些位。到最后,Eve只曉得Alice與Bob使用了S的什么位用作通信秘鑰,而且Eve不曉得這種位上的具體數值是多少。
在量子信道上的監聽
Eve遇見里面的困難,心一橫,決定去監聽量子信道上Alice一開始傳給Bob的二補碼串S。并且首先Eve就碰到一個問題:她不曉得該選用哪些接收器序列來接收量子信使(連Bob都不曉得)。
Eve又心一橫,用了一組隨機的量子接收器序列接收量子信使。這樣一來Eve必然使用了好多不合適的接收器,這樣也就引起了一些量子信使的狀態被改變,這種改變會在Alice-Bob后續的交流中被察覺。
比如,S在某一位上的值是1,Alice用豎姿態量子信使發送了這一位信息,并且Eve錯用“x”形接收器接收這一位信息,這樣此量子可能弄成了撇量子(或捺量子),但Bob在這一位上剛好猜對了,他用“+”形接收器接收經過Eve監聽過的量子信使(撇或捺量子信使),結果量子信使弄成了橫姿態量子信使(其實也有接收成豎姿態量子,信息偶然正確地被傳遞了,這時這一位不會導致Alice-Bob的注意),原先是1的值Bob用合適的接收器接收卻得到了0。
之后在上述合同的第六步,文集合C的時侯,假如Bob剛好把這一位選中發給了Alice,這么Alice都會發覺Bob在這一位上明明使用了正確的接收器卻沒有得到正確的值。
這些情況出現頻度超過某個閥值,Alice都會察覺有人在監聽量子信道。
所以雖然BB84合同只能保證通信被監聽的時侯,通信雙方能及時發覺,然后要么切換信道量子通訊的原理,要么中止通訊。