量子密鑰分發

量子密鑰分發（quantum key distribution，簡稱QKD）是利用量子力學特性實現密碼協議的安全通信方法。它使通信的雙方能夠產生並分享一個隨機的、安全的密鑰，來加密和解密訊息。它常常被誤稱為量子密碼學，因為它是量子密碼學任務中最著名的例子。

量子密鑰分發的一個最重要的，也是最獨特的性質是：如果有第三方試圖竊聽密碼，則通信的雙方便會察覺。這種性質基於量子力學的基本原理：任何對量子系統的測量都會對系統產生干擾。第三方試圖竊聽密碼，必須用某種方式測量它，而這些測量就會帶來可察覺的異常。通過量子疊加態或量子糾纏態來傳輸資訊，通信系統便可以檢測是否存在竊聽。當竊聽低於一定標準，一個有安全保障的密鑰就可以產生了。

量子密鑰分發的安全性基於量子力學的基本原理，而傳統密碼學是基於某些數學演算法的計算複雜度。傳統密碼學無法察覺竊聽，也就無法保證密鑰的安全性。QKD的安全性是是可以依據資訊理論證明的，而且它還具有前向安全性。

量子密鑰分發只用於產生和分發密鑰，並沒有傳輸任何實質的訊息。密鑰可用於某些加密演算法來加密訊息，加密過的訊息可以在標準信道中傳輸。跟量子密鑰分發最常見的相關演演算法就是一次性密碼本，如果使用保密而隨機的密鑰，這種演演算法是。在實際的運用上，量子密鑰分發常常被拿來與對稱密鑰加密的加密方式，如AES這類演演算法一同使用。

## 量子密鑰交換

量子通訊中，訊息編碼為量子態，或稱量子比特，與此相對，經典通信中，訊息編碼為比特。通常，光子被用來製備量子態。量子密碼學利用量子態的特性來確保安全性。量子密鑰分發有不同的實現方法，但根據所利用量子態特性的不同，可以分為兩大類。

基於製備和測量的協議 : 與經典物理不同，測量是量子力學不可分割的組成部分。一般來講，測量一個未知的量子態會以某種形式改變該量子的狀態。這被稱為量子的不確定性，它的一些基本結論有維爾納·海森堡的不確定性原理，資訊干擾理論和不可克隆原理。這些性質可以被利用來檢測通訊過程中的任何竊聽（竊聽必然需要測量），更重要的是，能夠計算被截獲訊息的數量。

基於糾纏態的協議 : 兩個或更多的量子態能夠建立某種聯繫，使得他們無論距離多遠依然要被看做是一個整體的量子態，而不是獨立的個體。這被稱為量子糾纏。他們之間的聯繫是，比如，對其中一個量子的測量會影響其他量子。如果糾纏的量子對被通訊的雙方分別持有，任何對訊息的攔截會改變整個系統，使第三方的存在（以及他截獲訊息的數量）被檢測到。

這兩大類方法中的每一類都可以進一步分為三類協議：連續或離散變量、連續變量和分布式相位參考編碼。離散變量協議是第一個被發明的，也是最廣泛實現的。其他兩類主要關注克服實驗的實用局限性。下面描述的兩種協議都使用離散變量編碼。

## 協議

### BB84協議

查爾斯·貝內特（Charles Bennett）與吉勒·布拉薩（Gilles Brassard）於1984年發表的論文中提到的量子密碼分發協議，後來被稱為BB84協議。其實任意兩組共軛狀態都可以用於該協議，而且大多數BB84的基於光纖的實現都使用相位編碼狀態。BB84協議是最早描述如何利用光子的偏振態來傳輸訊息的。發送者（通常稱為Alice）和接收者（通常稱為Bob）用量子信道來傳輸量子態。如果用光子作為量子態載體，對應的量子信道可以是光纖或者簡單的自由空間。另外他們還需要一條公共經典信道，比如無線電或網際網路。公共信道的安全性不需考慮，BB84協議在設計時已考慮到了兩種信道都被第三方（通常稱為Eve）竊聽的可能。

這個協議的安全性源於用非正交態。量子不確定性告訴我們，通常不能在不干擾原始狀態的情況下測量這些狀態（參見不可克隆原理）。BB84協議利用兩對狀態，分別是光子偏振的兩個直線基"+"：水平偏振（0°）記作|→>，垂直偏振（90°）記作|↑>；和光子偏振的兩個對角基"×"：45°偏振記作|↗>，和135°偏振記作|↘>。這兩對狀態互相不正交，無法被徹底的分辨。比如選擇基"+"來測量|↑>，會以100%的機率得到|↑>。但選擇基"+"來測量|↗>，結果是隨機的，會以50%的機率得到|→>，或以50%的機率得到|↑>，而原始狀態的訊息丟失了。也就是說，當測量後得到狀態|↑>，我們不能確定原本的狀態是|↑>還是|↗>，這兩個不正交的狀態無法被徹底分辨。

基｜0｜1

BB84協議的第一步是量子傳輸。Alice隨機產生一個比特（0或1），再隨機選擇一個基（"+"或"×"），來製備量子態。如左側的表格所示，選擇基"+"時把比特0製備成|↑>，把比特1製備成|→>；選擇基"×"時，把比特0製備成|↗>，把比特1製備成|↘>。光子的偏振態被製備好之後，Alice把這個光子通過量子信道傳送給Bob。之後重複這個過程多次。

Bob並不知道Alice製備量子態時選擇了哪種基，他可以隨機的選擇基（"+"或"×"）來測量接收到的量子態。Bob測量他接受到的每個光子，記錄所選的基和測量結果。Bob測量過所有光子後，他與Alice通過公共經典信道聯繫。Alice公布製備每個光子時所選擇的基。Alice和Bob對比他們所選擇的基，捨棄那些雙方選擇了不同的基的比特（一半左右），剩下的比特還原為他們共有的密鑰。

Alice的隨機比特｜0｜1｜1｜0｜1｜0｜0｜1

Alice隨機選擇的基

Alice所傳光子的偏振態

Bob隨機選擇測量的基

Bob測量的光子的偏振態

在公共信道中對比基

共有的密鑰｜0｜1｜0｜1

Alice和Bob可以拿出他們密鑰的一部分，然後相互對比來檢查是否有人竊聽。如果有第三方竊聽（Eve，來自英文"eavesdropper"），他為了獲得光子偏振訊息而作的測量，會導致對比密鑰時發現錯誤。如果Eve選擇了與Alice相同的基去測量，則不會影響Bob的測量結果，Alice和Bob對比密鑰的一部分時便不會發現有Eve的存在。但Eve仍有50%的機率會選擇與Alice不同的基去測量光子，這會使光子偏振態改變，此時Bob再測量這個光子又有50%的機率得到與Alice不同的結果，從而發現有竊聽者Eve的存在，Eve引入的錯誤的機率是25%。當所對比的密鑰部分，超過p個比特出錯，則這個密碼被捨棄並重新傳遞一次，重傳可選擇別的量子信道。p的取值依據是，如果Eve獲取的比特數少於p，則可以用隱私放大（privacy amplification）的方法減少Eve所知道訊息，同時密鑰的長度也被縮短了。

### B92協議

貝內特在1992發表的論文中描述的量子密碼分發協議，被稱作B92協議。B92協議中只使用兩種量子態。Alice發送狀態|↑>和|↗>。Bob接受狀態後選擇基"+"或"×"測量。Bob測量得到的結果如果是|→>，可以肯定Alice發送的狀態是|↗>，得到結果|↖>可以肯定接受到的狀態是|↑>。但如果Bob的測量結果是|↑>或|↗>，則不能肯定接收到的狀態是什麼。

之後Bob告訴Alice他對哪些狀態得到了確定的結果，哪些狀態他不能肯定，而不告訴Alice他選擇了什麼樣的基測量。而後用那些得到了確定結果的基來編碼，把"+"編為"0"，把"×"編為"1"，並把這串比特作為密鑰。

這個協議有個弱點，只有無損耗的信道才能保證這個協議的安全性。否則，Eve可以把那些無法得到確定結果的狀態截獲然後重新製備可以得到確定結果的狀態再發出去。

### E91協議

Artur Ekert的方案使用糾纏的光子對。這些光子對可以由Alice、Bob或與他們兩者都不在一起的某些源（包括竊聽者Eve）產生。這些光子會被分發，Alice和Bob最終都會得到每對光子中的其中一個。

該方案依賴於糾纏的兩個性質。首先，糾纏態是完全相關的，如果Alice和Bob都測量他們的粒子是否具有垂直或水平極化，他們總是以100%的機率得到相同的答案。如果他們都測量其它任何互補（正交）極化對，結果同樣如此。這就需要相距很遠的二者具有精確的方向性同步。但是，特定的結果是完全隨機的；Alice無法預測她（以及Bob）是否會獲得垂直極化或水平極化。其次，Eve任何試圖竊聽的行為都會打破這些相關性，於是Alice和Bob就可以檢測出來。

與BB84類似，該協議在檢測Eve的存在之前涉及私密測量協議。在測量階段，Alice會用 $Z_{0}, Z_{\frac{\pi}{8}}, Z_{\frac{\pi}{4}}$ 中的某些基來測量她收到的每個光子，而Bob會從 $Z_{0}, Z_{\frac{\pi}{8}}, Z_{-\frac{\pi}{8}}$ 中選擇，其中 $Z_{\theta}$ 是 $\{|\uparrow \rangle, \; |\rightarrow \rangle\}$ 基旋轉 $\theta$ 得到的。他們在完成測量之前都不會公開他們選取的基的序列。於是得到了兩組光子：第一組由Alice和Bob使用相同基礎測量的光子組成，而第二組包含所有其他光子。要想檢測竊聽，他們可以使用Alice的基和Bob的之間的相關係數來計算檢驗統計量 $S$，類似於Bell測試實驗中所用的相關係數。最大糾纏光子會導致 $|S|=2\sqrt{2}$。如果情況並非如此，那麼Alice和Bob可以得出結論，Eve已經在系統中引入了局域實在性（local realism），違反了貝爾定理。如果協議成功，則第一組可用於生成密鑰，因為這些光子在Alice和Bob之間完全反對齊（anti-aligned）。

## 資訊協調與隱私增強

上述量子密鑰分發協議為Alice和Bob提供了幾乎相同的共享密鑰，並且還對密鑰之間的差異進行了估計。這些差異可能是由竊聽引起的，也可能是由傳輸線和探測器的缺陷引起的。由於無法區分這兩種類型的錯誤，因此保證安全性需要假設所有錯誤都是由於竊聽造成的。如果密鑰之間的錯誤率低於某一閾值（截至2007年4月為20％），則可以執行兩個步驟：首先移除錯誤的比特，然後將Eve對密鑰的了解減少到任意小的值。這兩個步驟分別稱為資訊協調和隱私增強，這兩個步驟最早在1992年被提出來。

- 資訊協調（Information Reconciliation）是密鑰糾錯（Error Correction）的一種方式，可保證Alice和Bob共同擁有的密鑰的一致性。這個過程在公共信道中完成，由於可能被Eve竊聽，所以要保證關於密鑰本身的資訊公布的越少越好。用於資訊協調的通用協議是1994年提出的級聯協議（cascade protocol）。這可以在幾輪中運行，每一輪中的兩個密鑰被分成塊，並且比較這些塊的奇偶校驗位。如果發現奇偶校驗有差異，則執行二分搜索來查找和糾正錯誤。如果在前一輪中奇偶校驗正確的塊中發現錯誤，則該塊中必須包含另一個錯誤；需要找到此錯誤並像以前一樣進行糾正。這個過程以遞歸方式重複，這是「級聯」這個名稱的來源。在比較了所有的塊之後，Alice和Bob都以相同的隨機方式對其鍵進行重新排序，並開始新一輪。在多輪結束後，很大機率Alice和Bob擁有相同密鑰；但是，Eve從交換的奇偶校驗資訊中也獲得了關於密鑰的附加資訊。不過，從編碼理論的角度來看，資訊協調本質上就是帶有輔助資訊的源編碼，因此適用於該問題的任何編碼方案都可以用於資訊協調。近來，Turbo碼、LDPC碼和極性碼已用於此目的，提高了級聯協議的效率。
- 隱私增強（Privacy Amplification）是減少或去除Eve竊聽到的部分密鑰資訊的一種方法。這部分密鑰資訊可能是在傳輸密鑰時被竊聽的，也可能是後來通過公共信道做資訊協調時被獲取的。隱私增強利用Alice和Bob手中的密鑰，生成一個新的、更短的密鑰，這樣Eve關於這個新密鑰便知之甚少了。這可以使用通用散列函數來完成，該函數從公開的一組這樣的函數中隨機選擇，其將長度等於密鑰的二進位串作為其輸入並輸出所選擇的較短長度的二進位串。根據Eve可以獲得的關於舊密鑰的資訊量來計算縮短該新密鑰的量，以便將Eve知道新密鑰的機率降低到非常低的值。