吳佳怡, 周芃瑋, 趙 男, 周 偉, 譚振江
(1 吉林師范大學數學與計算機學院, 吉林四平 136000; 2 四平市第二十五中學, 吉林四平 136001)
網絡安全是人們目前最關注的問題之一,大數據時代的到來使人們的隱私信息變得透明化,人們對個人的隱私信息也變得越來越重視[1]。 如何保障人們信息不被他人竊取變得格外重要,為此也引起專家學者和研究人員的關注。 根據柯克霍夫原則,信息加密的安全性并不是依賴于加密算法而是密鑰本身[2],而量子加密的密鑰是依據一次性密碼本的加密算法設計的,一次性密碼本的加密算法是1882 年被弗蘭克·米勒發明的[3],并且是被信息論之父香農證明其理論上是絕對安全的[4]。 而相較于經典通信來看,量子加密是基于量子力學理論基礎設計的,其中海森堡測不準原理、波包塌縮、不可克隆定理、單光子不可再分特性,保障了量子加密在通信中是絕對安全的,且通信雙方每次傳輸的數據都是絕對隨機的,一旦竊聽者存在并且在傳輸中進行竊聽,這就會導致誤碼率提升,一旦誤碼率高于一定閾值或雙方最后的傳輸字符串等于0,則通信雙方就會約定舍棄此次通信內容。 由于量子密鑰分發系統的建立,以及利用量子信道實現信息保密已經逐漸成為現實,這將極大地推動量子密碼技術發展,同時也是近年來國際學術界關注的熱點之一,受到廣泛重視,得到迅速發展,應用前景廣闊。
2008 年Shuang Zhao 等人[5]采用一種基于事件過程的新方法來驗證BB84 協議。 2009 年陳瑩[6]通過Qcircuit 軟件設計BB84 協議電路圖,實驗引入截取重發機制,通過誤碼率和協議可靠率來對BB84協議進行仿真安全性分析。 2010 年Mohamed Elboukhari 等人[7]使用模型檢查器PRISM 對B92 協議的安全性進行了分析。 2011 年路松峰等人[8]使用QCircuit 軟件設計量子線路圖,通過引入截取重發攻擊模型以及協議可靠率和有效平均互信息量兩個變量,來驗證BB84 協議的安全性。 2012 年朱麗娟等人[9]利用C#語言通過Windows 窗體達到可視化條件,通過調節窗體條件變量來對BB84 協議進行仿真模擬。 2014 年付益兵等人[10]通過MATLAB實現BB84 協議的仿真。 2016 年陳實等人[11]基于Qcircuit 軟件設計了B92 協議的模擬電路,實驗引入了相位阻尼、去極化、幅度阻尼3 種噪聲信道模型,通過誤碼率和協議可靠率來驗證協議的安全性。2017 年孫茂珠等[12]通過對光的偏振的調制和對偏振光的測量,設計了有竊聽者和無竊聽者的實驗示意圖,模擬出了量子密鑰分發BB84 協議的通信情況。 2020 年周爭艷[13]采用蒙卡羅特方法來驗證B92 協議的安全性。 2022 年AkwasiAdu-Kyere 等人[14]基于BB84 協議構建通信結構體系模型,通過模擬重復迭代,設置竊聽者和攔截-重發干擾機制,引入參數竊聽率、糾錯率和量子位概率來驗證協議可靠性。
本文基于上述研究背景,通過引入誤碼率、糾錯率、協議可靠率指標,仿真分析了兩種協議在有無竊聽者發起攻擊時的誤碼率、糾錯率、協議可靠率,并仿真驗證研究問題的真實性和有效性,通過對比折線圖直觀性驗證兩種協議在實際應用中協議的健壯性、安全性和協議傳遞數據的準確性。
不同于傳統加密協議,量子通信加密協議是基于量子態和量子的特殊物理性質,是有別于傳統通信加密的一種特殊通信加密形式,其具有無條件安全性、傳輸速率快、免疫電磁干擾、通信容量大等優勢。
雖然現在量子通信加密協議已有很多,但是BB84 和B92 協議是量子加密協議的經典協議,是量子通信加密的開始,后續的一切協議皆是基于兩者協議進行參考的。 本文針對BB84 協議和B92 協議進行實驗模擬后進一步形成對比分析,通過引入誤碼率、糾錯率、協議可靠性指標,重點對比分析了是否存在竊聽者使用攻擊的情況下兩種協議的安全性。
以下的仿真公式借用經典量子公式,具有良好的普適性[15-16]。
假設Alice 和Bob 共享量子信道|Ψ〉=α |0〉+β |1〉,其中|α |2+|β |2=1。 Alice 要傳輸一種未知的量子態整個量子系統的態為[15]。 式中的下標用于表示粒子的去向,下標1 表示要被傳送的粒子,下標2 表示Alice 在傳送中量子的分配,下標3 表示Bob 在傳送中量子的分配。瞬間傳態基于初始狀態也可表示為
Alice 和Bob 共享一對EPR 對,考慮POVM 測量傳輸以下4 種矩陣狀態:
其中,〈Φ1|=(α,β),〈Φ2|=(β,- α),〈Φ3|=(β,α),〈Φ4|=(α,- β)。 對Alice 傳輸的量子態進行貝爾基測量會隨意塌縮到公式(2)4 種情況中的任意一種,Alice 通過經典信道把測量結果告訴Bob,Bob 會做一定的幺正變換恢復結果。 具體步驟如下:
當Alice 對屬于他的配額做出測量結果塌縮后,Bob 的部分配額會發生變化,由|Φ〉 轉化為正交態, 可得到4 種結果:需要注意的是,Bob 恢復量子態是依據Alice 通過經典信道傳送的塌縮后的結果,而不是α和β。 Bob 得到量子態|Ψ〉 后,為了恢復Alice 傳輸的態,進行了如下操作。 以M1為例遵循公式(3)恢復Alice 傳給其的量子態:
在公式(3) 中,M1塌縮的結果是C1=|Ф+〉〈Ф- |,輔助位ρser=|Φ〉〈Φ |,下角標ij代表傳輸的量子,ba代表的是輔助的量子。 令i=0,j=0時,通過輔助位ρser乘以C1得出結果 Res[16],對應M1的左上角。 當i=1,j=0 時,對應結果是M1的第二行左下角,以此類推。 用這種方法,無論結果傳輸的是哪種態(公式(2))Bob 都可以得到對應的結果。
1.1.1 誤碼率
誤碼是指在一次通信傳輸過程中由于外界因素(如:噪音、竊聽者攻擊等)干擾,使原本傳輸的信號由0 變為1 或由1 變為0。 誤碼率是判斷協議安全性的一個常見指標,在本文中誤碼率的計算公式如下:
其中,nErrors代表誤碼率;dif(keyAB) 代表協議發送方Alice 與接收方Bob 最后確定密鑰的每位比特對比后,結果不同的數量;len(keyA) 代表發送方Alice 最后確定的密鑰長度。
1.1.2 糾錯率
糾錯率又叫容錯率,代表一次通訊中允許犯錯的概率,糾錯率越高協議的準確性越高,反之準確性越低。 本文中糾錯率的計算公式如下:
式中:Ecr代表糾錯率,wn代表一次協議中雙方舍去的比特數, toalnum 代表一次協議中發送方初始產生的比特數。
1.1.3 協議可靠率
協議可靠率也是檢驗協議可靠性和安全性的手段之一,協議可靠率越高證明協議可靠性和安全性越高,反之協議可靠性及安全性越低。 本文協議可靠率的計算公式如下:
式中:Prel代表協議可靠率,herrRate代表有竊聽者時協議的誤碼率,nerrRate代表沒有竊聽者時協議的誤碼率。
在實際運行環境中,受諸多因素影響導致在通信中誤碼率的提升。 如:竊聽者、外界攔截—重發攻擊、噪聲、實際物理外界因素等,都會對通信過程產生影響。
1.2.1 竊聽者
竊聽者的存在使發送雙方在通信時,會舍棄掉一半以上的傳輸比特。 因為一旦竊聽者對發送內容進行竊聽,就會“觸碰”到量子,而基于量子力學的波包塌縮特性,使得量子快速塌縮到任意偏振態。然而竊聽者Eve 并不知道接收方Bob 與發送方Alice 約定使用那種正交歸一基作為測量塌縮結果,則導致發送雙方舍棄掉量子比特的數量增加,進而導致誤碼率的提升。
1.2.2 攔截—重發攻擊
常見的網絡通訊攻擊有很多種,其中最為常見的就是攔截—重發攻擊。 本文引入竊聽者變量,以竊聽者為第三方變量對通信雙方的通信過程進行攔截—重發攻擊。 協議開始,Alice 生成一段隨機字符串并發送給Bob,發送途中Eve 對信息進行攔截測量,并對字符串進行重新編碼后發送給Bob,這個過程就是攔截—重發的攻擊過程。
1.2.3 噪聲
通信過程中噪聲是最不可避免的影響因素,實驗中設置噪聲信道影響參數,當信號由Eve 發送給Bob 的過程中引入,傳輸的每個比特信號將會以噪聲信道影響參數的概率進行翻轉。 實驗結果表明,噪聲信道影響參數越大誤碼率越高,糾錯率越高,協議可靠率越低。
1.3.1 BB84 協議
經典BB84 協議流程如圖1 所示。

圖1 BB84 協議流程圖Fig. 1 BB84 protocol flowchart
Alice 隨機選取兩組序列{an}、{bn},序列長度為2n,Alice 隨機制備2n單光子偏振非正交態,即2n個單量子態發送給Bob。 在此,量子偏振態采取希爾伯特二維空間,利用Dirac 記號記錄4 種量子偏振態結果如下:
式中:|H〉 和|V〉 是一組完備的正交歸一基,稱為水平垂直基簡稱Z基。 其中,|H〉是水平偏振態,|V〉 是垂直偏振態。|+〉 和|-〉 是一組完備的正交歸一基,稱為對角基,簡稱X基。 其中,|+〉 是45°偏振態,|-〉 是135°偏振態。 這里Z基和X基的任意形態都是非正交的,而且塌縮概率皆為50%[17]。
其中,偏振態形狀如圖2 所示。

圖2 量子4 種偏振態Fig. 2 The four polarization states of the quantum
當Bob 收取到2n個量子態后,用傳統信道公布收到信號的事實,然后選取一組長度為2n的序列{xn}作為決定測量基。 Bob 隨機選取Z基或X基作為測量基,當取Z基作為測量基時Bob 取為“0”,取X基作為測量基時Bob 取為“1”,測量結果存儲在一組序列并將其命名為{yn}。 之后,Alice 公布序列{an} 所用的測量基結果,Bob 將選擇{xn} 的測量基與{an} 進行對比后,將對比結果的“不一致位”發送給Alice,Alice 收到Bob 發送的結果后也刪去“不一致位”。 Alice 將剩余的n個數據隨機選取n/2用于進行竊聽檢測,如果達到一定的誤碼率值,則終止協議重新開始,否則Alice 和Bob 進行數據整合后,最終得到m比特相同數據作為最終密鑰。
1.3.2 B92 協議
B92 協議流程如圖3 所示:

圖3 B92 協議流程圖Fig. 3 B92 Protocol flow chart
Alice 隨機選取一組序列{an},序列長度為4n,Alice 隨機制備4n單光子偏振非正交態,即4n個單量子態發送給Bob,在此量子偏振態多采取希爾伯特二維空間水平垂直基的水平偏振態和對角基中的45°偏振態,利用Dirac 記號記錄兩種量子偏振態結果如下:
式中:用0 代表水平偏振態|H〉,1 代表45°偏振態|+〉。
當Bob 收取到4n個量子態后,用傳統信道公布收到信號的事實,然后選取一組長度為4n的序列{bn} 作為決定測量基。 Bob 隨機選取Z基或X基作為測量基,當取Z基作為測量基時,Bob 取為“0”,取X基作為測量基時Bob 取為“1”,測量結果存儲在一組序列并將其命名為{cn}。 當Z基和X基的測量結果為“0”時,則為“不確定結果”,且不保存在序列{cn} 中。 因為當Alice 發送量子態|+〉 時,使用X基測量也可得到量子態|+〉;同理,當Alice 發送量子態|H〉 時,使用Z基測量也可得到量子態|H〉。當測量Z基的結果為“1”時,將測量結果確定為1并存儲到序列{cn} 中。 因為當測量結果為“1”時,Bob 可以確認Alice 發送的量子態為|+〉; 而當測量X基的結果為“1”時,把測量結果確定為0 并存儲到序列{cn} 中。 因為當測量結果為“1”時,Bob可以確認Alice 發送的量子態為|H〉。 這樣通信雙方也不必對比測量基就可以確定最后保留哪些信息,減少Eve 竊取信息得到密鑰結果,大大增強了通信雙方信息的安全性。 測量結束后,Bob 將Z基和X基測量結果為“0”的“不確定結果”發給Alice,Alice 收到Bob 發送的結果后也刪去“不確定結果”位,將剩余的n個數據隨機選取n/2 用于竊聽檢測。如果達到一定的誤碼率值則協議終止重新開始;若結果低于一定的誤碼率,則Alice 和Bob 進行數據整合后,最終得到m比特相同數據作為最終密鑰。
Bennett[17]提出的B92 協議是對BB84 協議的一種修改方案,是一個二態協議,不同于BB84 協議中使用了4 個非正交的量子態,而B92 協議只利用兩個非正交量子態就能夠完成量子密鑰分發。 就協議本身來說,BB84 協議傳輸的是測量基,B92 協議傳輸的是塌縮后的結果。 B92 協議的校驗過程與BB84 協議完全相同,區別在于存在竊聽時的量子比特誤碼率。 B92 協議對實驗設備的要求比BB84 協議低,其量子比特制備相對簡單,只需要制造兩個方向的信號即可。 由于B92 協議的效率只有25%,僅為BB84 協議的一半,B92 通信雙方平均只有25%的量子態可以成為有效的傳輸結果,75%的量子信號則被損失掉[18]。
仿真實驗使用Python 語言編寫量子密鑰分配協議程序。 主要實現了無竊聽、有竊聽兩種情況下的量子密鑰分配過程。 程序中引入了參數變量eve 來控制竊聽者的存在,N用來控制產生的量子比特數量,noise parameters 用以控制噪聲參數。 實驗步驟如下:
(1)定義兩組函數runBB84、runB92 分別代表BB84 和B92 兩個協議,函數過程即BB84 和B92 協議的通信加密過程;
(2)設置隨機生成序列函數list(np.random.randint(0,2,N))用于發送方Alice 和接收方Bob 的初始密鑰或測量基;
(3)發送方Alice 選取量子位發送給接收方Bob,如果有竊聽者Eve 存在則Alice 發送給Bob 的字符串就會被Eve 攔截后重新編碼后發送給Bob,如果存在噪聲則引入噪聲引起的誤差;
(4)接收方Bob 根據其隨機生成的測量基來測量量子位;
(5)接收方Bob 識別出與Alice 字符串不一致的量子位;
(6)得出最終密鑰。
實驗分別模擬了有、無竊聽時的量子密鑰分配過程。 假設產生256 個量子比特位,信道噪聲為0.5。初始密鑰分配完成后,選取10 個數據對比,通過誤碼率、協議可靠率對比,以檢測協議的可靠性和安全性。
BB84 和B92 協議無竊聽者時實驗結果見表1。

表1 無竊聽者時BB84 和B92 協議密鑰分配數據對比Tab. 1 Comparison on key distribution data of BB84 and B92 protocol without eavesdropper
表1 是BB84 協議和B92 協議在無竊聽者存在時一次通信過程中的十組數據對比。 BB84 與B92協議不同的是:BB84 協議設置了Alice 最初密鑰而B92 協議沒有設置,B92 協議的Alice 僅制備水平偏振量子態|H〉 和45°偏振態|+〉。
BB84 和B92 協議有竊聽者時結果見表2。

表2 有竊聽者時BB84 和B92 協議密鑰分配數據對比Tab. 2 Comparison on key distribution data of BB84 and B92 protocol with eavesdropper
表2 是BB84 協議和B92 協議在有竊聽者存在時一次通信過程中的十組數據對比。 BB84 與B92協議不同的是:BB84 協議設置了Alice 最初密鑰而B92 協議沒有,B92 協議Alice 僅制備水平偏振量子態|H〉 和45°偏振態|+〉; 與無竊聽者時不同,竊聽者會對信道上的量子態進行竊聽,而根據波包塌縮原則和量子不可克隆定理,一旦竊聽者進行竊聽必然會導致量子態的改變進而影響傳輸結果。
圖4 是輸入256 比特,噪聲參數為0.5,在無竊聽者存在時,經過10 次遍歷后每一次誤碼率形成的折線圖。 從圖中可以明顯看出,在同一時間下且沒有竊聽者存在時,BB84 協議的誤碼率明顯高于B92協議,說明B92 協議的安全性遠遠高于BB84 協議。圖5 是輸入256 比特,噪聲參數為0.5,在無竊聽者存在時,經過150 次遍歷后每一次誤碼率形成的折線圖。 從圖中可以明顯看出,經過多次遍歷后,在同一時間下、沒有竊聽者存在時,BB84 協議的誤碼率仍然明顯高于B92 協議。 在150 次遍歷下,藍色實線高于橘色虛線的概率是98%,此時B92 協議的安全性遠遠高于BB84 協議。 圖6 展現了輸入256 比特,噪聲參數為0.5,在有竊聽者存在時且對傳輸過程發起攔截—攻擊的情況下,經過10 次遍歷后每一次誤碼率形成的折線圖。 可以明顯看出,在同一時間下、有竊聽者且進行攔截—重發攻擊存在時,B92協議的誤碼率明顯高于BB84 協議。 雖然在10 次遍歷下有部分重合但是可以明顯看出藍色實線高于橘色虛線的概率為36.4%,這時BB84 協議的安全性高于B92 協議。 圖7 是輸入256 比特,噪聲參數為0.5,在有竊聽者且進行攔截—重發攻擊存在的情況下,經過150 次遍歷后每一次誤碼率形成的折線圖。 在多次遍歷后可以看出,BB84 協議和B92 協議的誤碼率開始有部分重合,但是橘色虛線還是普遍高于藍色實線,在150 次遍歷下藍色實線高于橘色虛線的概率是48%。 通過結果數據和圖中對比可知,在同一時間下、有竊聽者且進行攔截—重發攻擊存在時,B92 協議的誤碼率明顯高于BB84 協議,這時BB84 協議的安全性高于B92 協議。

圖4 無竊聽者時的兩協議10 次誤碼率對比Fig. 4 Comparison of 10 bits error rate between the two protocols without eavesdropper

圖5 無竊聽者時的兩協議150 次誤碼率的對比Fig. 5 Comparison of 150 bits error rate between the two protocols without eavesdropper

圖6 有竊聽者時的兩協議10 次誤碼率的對比Fig. 6 Comparison of 10 bits error rate between the two protocols with eavesdropper

圖7 有竊聽者時的兩協議150 次誤碼率的對比Fig. 7 Comparison of 150 bits error rate between the two protocols with eavesdropper
圖8 是輸入256 比特,噪聲參數為0.5,在無竊聽者存在時,經過10 次遍歷后每一次糾錯率形成的折線圖。 圖中可以明顯看出在同一時間下、沒有竊聽者存在時BB84 協議的糾錯率是明顯低于B92 協議的,這時B92 協議的安全性和協議傳輸內容的準確性是遠遠高于BB84 協議的。 圖9 是輸入256 比特,噪聲參數為0.5,在無竊聽者存在時,經過150 次遍歷后每一次糾錯率形成的折線圖。 圖中可以明顯看出在經過更多次遍歷后在同一時間下、沒有竊聽者存在時BB84 協議的糾錯率還是明顯低于B92 協議的,這時B92 協議的安全性和協議傳輸內容的準確性是遠遠高于BB84 協議的。 圖10 是輸入256 比特,噪聲參數為0.5,在有竊聽者且進行攔截——重發攻擊存在時,經過10 次遍歷后每一次糾錯率形成的折線圖。 圖中可以明顯看出在同一時間下、有竊聽者且進行攔截——重發攻擊存在時BB84 協議的糾錯率是明顯低于B92 協議的,這時B92 協議的安全性和協議傳輸內容的準確性是遠遠高于BB84 協議的。 圖11 是輸入256 比特,噪聲參數為0.5,在有竊聽者進行攔截——重發攻擊存在時,經過150 次遍歷后每一次糾錯率形成的折線圖。 由圖中可以明顯看出在經過更多次遍歷后在同一時間下、有竊聽者且進行攔截——重發攻擊存在時BB84 協議的糾錯率還是明顯低于B92 協議的,這時B92 協議的安全性和協議傳輸內容的準確性是遠遠高于BB84 協議的。

圖8 無竊聽者時的兩協議10 次糾錯率的對比Fig. 8 Comparison of 10 error correction rate between two protocols without eavesdropper

圖9 無竊聽者時的兩協議150 次糾錯率的對比Fig. 9 Comparison of 150 error correction rate between two protocols without eavesdropper

圖10 有竊聽者時的兩協議10 次糾錯率的對比Fig. 10 Comparison of 10 error correction rate between two protocols with eavesdropper

圖11 有竊聽者時的兩協議150 次糾錯率的對比Fig. 11 Comparison of 150 error correction rate between two protocols with eavesdropper
圖12 是輸入256 比特,噪聲參數為0.5,經過10次遍歷后每次協議可靠率形成的折線圖。 由圖中可以明顯看出,在同一時間下BB84 協議的協議可靠率明顯低于B92 協議,這時B92 協議的安全性和協議健壯性遠遠高于BB84 協議。 圖13 是輸入256 比特,噪聲參數為0.5,經過150 次遍歷后每次協議可靠率形成的折線圖。 可以明顯看出,經過多次遍歷后在同一時間下,BB84 協議的可靠率雖然有部分重合但還是明顯低于B92 協議。 在150 次遍歷下,橘色虛線低于藍色實線的概率是40%,這時B92 協議的安全性和協議健壯性遠遠高于BB84 協議。

圖12 兩協議10 次協議可靠率對比Fig. 12 Comparison of 10 protocol reliability between the two protocols

圖13 兩協議150 次協議可靠率對比Fig. 13 Comparison of 150 protocol reliability between the two protocols
經過上述對比分析可知:在無竊聽者存在時,BB84 協議的誤碼率遠高于B92 協議;引入竊聽者后,B92 協議的誤碼率就會上升并高于BB84 協議。但是,當引入糾錯率和協議可靠率時,無論竊聽者存在與否B92 協議傳輸內容的準確性及協議的健壯性都遠高于BB84 協議,所以傳輸內容時選擇B92協議要好于BB84 協議。
隨著量子技術的飛速發展,量子加密協議變得更加嚴謹,協議對環境外界干擾的要求也越來越小,協議的魯棒性與安全性逐步增強。 對量子態的制備也不再要求是在理想的條件下[19],量子傳輸速率越來越快,傳輸公里數越來越長,量子通信加密協議也越來越適用在各種復雜多樣的場景中。 關于如何仿真BB84 協議和B92 協議,除了竊聽者和誤碼率、糾錯率、協議可靠率以外是否可以引入其他因素和變量來驗證安全性,都可以進一步研究和討論。