量子資訊與密碼學

BB84 協定

BB84 是歷史上第一個被提出的量子金鑰分發(QKD)協定:它讓兩個人(按慣例稱為 Alice 和 Bob)就一串隨機的祕密位元達成一致,同時還能察覺是否有人在偷聽。它的巧妙之處不在於祕密地傳送某條訊息,而在於讓你能夠建立一把共享金鑰,並在事後檢查通道是否乾淨。設想 Alice 每次只發送一個光子,對每個光子她都私下擲兩次硬幣:一次決定這一位是 0 還是 1,另一次決定她用兩種「朝向」中的哪一種來編碼它。Bob 讀不到她的心思,所以他在測量每個光子時也隨機挑一個朝向。

所有光子發送完之後,Alice 和 Bob 透過一條普通的公開線路交談,只比較彼此選了哪些朝向,絕不透露具體的位元值。凡是兩人碰巧選了相同朝向的那些光子,Bob 的讀數就是可靠的,他們留下這些位元;其餘的全部丟棄。這裡正是物理學發揮作用的地方:由於不可複製定理,竊聽者無法複製一個未知光子以便日後查看,而任何用錯誤朝向去測量它的嘗試都會擾動它。於是竊聽者也只能去猜朝向,而她的猜測會引入錯誤。Alice 和 Bob 犧牲所留位元中的一小部分作為樣本、檢查其錯誤率,就能發現這種竄改。如果通道看上去乾淨,剩下的位元就成為一把共享的祕密金鑰;如果不乾淨,他們就把一切丟棄,重新再來。

把 BB84 承諾什麼、不承諾什麼講清楚會很有幫助。它不是一台更快的電腦,也跟 Shor 演算法或破解 RSA 毫無關係。它是一種金鑰交換方法,其安全性建立在物理定律之上,而不是建立在某個困難的數學問題之上——這正是它有別於後量子密碼學(為抵禦量子攻擊而設計的古典演算法)之處。在實務上,BB84 需要一條真正的量子通道,例如光纖或自由空間光學鏈路;真實硬體並不完美、傳輸距離也有限;而且它只保護金鑰分發這一步,並不保護你的整個通訊系統。

|+> = (|0> + |1>)/sqrt(2), |-> = (|0> - |1>)/sqrt(2)

BB84 使用的兩種編碼朝向是一對不對易的基:直線基 {|0>, |1>} 和對角基 {|+>, |->},其中 |+> = (|0> + |1>)/sqrt(2),|-> = (|0> - |1>)/sqrt(2)。

BB84 能偵測竊聽並產生一把共享金鑰;它本身並不加密訊息,也不是內建於通用量子電腦中的某種防禦機制。

又稱
Bennett-Brassard 1984