吳 迪, 劉清源, 李曉坤, 徐 龍, 董濰赫, 付文香
(1 黑龍江恒訊科技有限公司國家博士后科研工作站, 哈爾濱150090; 2 黑龍江大學(xué), 哈爾濱150080)
計(jì)算機(jī)網(wǎng)絡(luò)密碼系統(tǒng)由加密算法、解密算法和密鑰管理系統(tǒng)組成[1]。 多播是通過源用戶和目標(biāo)用戶之間的單一通信通道,同時向一組用戶傳遞消息或信息。 與單播傳輸相比,多播在帶寬和優(yōu)化網(wǎng)絡(luò)性能方面具有優(yōu)越性[2]。 它通常是在互聯(lián)網(wǎng)協(xié)議(IP) 下實(shí)現(xiàn)多播。 常用于流媒體、互聯(lián)網(wǎng)電視、預(yù)定音頻和視頻分發(fā)的IP 應(yīng)用,以及文件緩存和分發(fā)。 為了在多播通信中安全地傳輸數(shù)據(jù)包,對所有有效成員,消息使用公共單密鑰進(jìn)行加密[3-5]。 公共密鑰通常由不同的名稱調(diào)用,如會話密鑰、流量加密密鑰或組密鑰。 組密鑰的創(chuàng)建意味著多個共享者需要生成一個共享的密鑰來安全地交換信息[6]。組密鑰管理協(xié)議可以組織成3 種類型,即集中式、分散式和分布式。 只有知道現(xiàn)有組密鑰的組成員,才能夠使用自己的私鑰檢索原始消息[7]。 量子密鑰分配機(jī)制,在量子密碼學(xué)和量子私人通信中扮演著重要的角色,一些量子密鑰分發(fā)方案和體系結(jié)構(gòu)已被應(yīng)用。
在經(jīng)典的計(jì)算機(jī)中,所有的信息都是用經(jīng)典位來表示的。 經(jīng)典位在任何時候都可以是0 或1。 量子計(jì)算機(jī)使用的是量子比特而不是比特[8-10]。 它可以是0 或1 的狀態(tài),也有一種狀態(tài)的線性組合形式叫做疊加狀態(tài)。 量子比特可以在任何時刻同時取0和1 的屬性,如圖1 所示。
圖1 經(jīng)典位和量子位Fig.1 Classical bits and qubits
量子比特的定義:一個量子比特,簡稱量子位,是一個二維的希爾伯特空間H2。 H2 的一組標(biāo)準(zhǔn)正交基由{|0〉,|1〉} 指定,量子位的狀態(tài)是H2 中相關(guān)的單位長度向量。 如果一個狀態(tài)等于一個基向量則稱它為純態(tài)。 如果一個狀態(tài)是基向量的任何其它線性組合則認(rèn)為它是一個混合狀態(tài),或者這個狀態(tài)是|0〉和|1〉的疊加。 一般來說,一個量子比特的狀態(tài)是由公式1 和公式2 來描述的。其中|ψ〉 是量子態(tài),α 和β 是復(fù)數(shù)。
組密鑰管理協(xié)議大致可分為三類,即集中式、分散式和分布式。 在集中式組密鑰協(xié)議中,單個成員負(fù)責(zé)管理整個組,并負(fù)責(zé)重新密鑰設(shè)置、計(jì)算和將組密鑰分發(fā)給所有組成員[11-14]。 在分布式組密鑰協(xié)議中,組成員可參與建立組密鑰或會話密鑰。 這些成員同樣負(fù)責(zé)組密鑰的重新鍵入和分發(fā)[15]。 分布式協(xié)議分為基于環(huán)的協(xié)作、基于層次的協(xié)作和基于廣播的協(xié)作3 種方式。 分散協(xié)議分為靜態(tài)和動態(tài)兩種方案。 在分散組密鑰協(xié)議中,安全多播被劃分為較小的組或簇。 每個子組由一個本地控制器分配,每個本地控制器負(fù)責(zé)成員及其子組的安全控制。
一般來說,QKD 方案包括3 個階段:量子編碼和傳輸、原始密鑰生成和竊聽檢測。
(1)量子編碼和傳輸
發(fā)送器生成隨機(jī)的位串并使用量子源對每個位串進(jìn)行編碼。 經(jīng)編碼后,量子位元實(shí)際上是通過一個傳輸通道從發(fā)送端傳輸?shù)浇邮斩恕?因此,QKD 系統(tǒng)需要一個傳輸通道,以便將編碼的量子位通過量子載波從一個通信器傳輸?shù)搅硪粋€通信器。 兩種流行的傳輸通道是光纖和分別用于電信網(wǎng)絡(luò)和衛(wèi)星通信的開放空間。 接收方根據(jù)已實(shí)現(xiàn)的量子位元來選擇所接收到的已編碼量子位元,來產(chǎn)生測量值[16-17]。
(2)原始密鑰生成
在傳輸過程中,通信器使用不同的堿基進(jìn)行測量。 其目的是識別并排除通信器使用不同基的位位置。 然后,兩個通信器通過公共通道丟棄這些位置。
(3)竊聽檢測
在通信者之間的傳輸過程中,竊聽可能會在量子信道上進(jìn)行間諜活動,并獲取潛在的密鑰位。 利用量子定律,可以檢測到竊聽者對量子信道的操作。
密碼系統(tǒng)由加密、解密和密鑰管理三部分組成。密碼系統(tǒng)的安全性和保密性主要基于密鑰的管理和分發(fā)。 該方案的基本思想是利用集中式QMKDC 和經(jīng)典的對稱加密技術(shù),設(shè)計(jì)一個安全的多播密碼系統(tǒng)。 擬議方案的抽象參數(shù)和術(shù)語如表1 所示。
表1 本文中使用的抽象參數(shù)及術(shù)語Tab.1 Abstract parameters and terminology used
發(fā)起者將一個請求發(fā)送到一個集中的量子密鑰分發(fā)中心,該中心包含一個將參與多播組的成員列表[18]。 集中的量子密鑰分發(fā)中心通過基于光纖通信信道的量子網(wǎng)絡(luò)發(fā)送請求,并將響應(yīng)返回回發(fā)起者。 初始化步驟如圖2 所示。
圖2 初始化過程Fig.2 Initialization process
對于每個多播組,QMKDC 生成兩個密鑰。 一是組密鑰,用于加密QMKDC 和多播組之間的通信;二是共享對稱密鑰,在多播組中所有成員之間共享,也用于多播組成員內(nèi)的加密/解密通信。 私鑰是通過選擇一個隨機(jī)的比特串,而后用一系列極化的量子態(tài)光子來傳輸而產(chǎn)生的。 分布式密鑰的安全性和效率取決于竊聽者試圖使用錯誤的基礎(chǔ)進(jìn)行測量。量子比特誤碼率是基于分布密鑰內(nèi)的誤碼率,并通過比較誤碼率和指定的商定級別來確定。 若錯誤率低于商定的水平,則通信過程將繼續(xù)進(jìn)行,否則通信過程將終止。 生成過程如圖3 所示。
圖3 生成私鑰過程Fig.3 The process of generating a private key
具體實(shí)現(xiàn)步驟如下:
(1)QMKDC 打開一個安全的私有通信通道,向多播組廣播初始配置,選擇一個隨機(jī)的位串,如公式(3)所示,為多播組生成不同的私鑰。
(2) QMKDC 隨機(jī)選擇一個基,對組密鑰和私鑰的比特串進(jìn)行編碼。 QMKDC 為每一個具有相應(yīng)偏振的比特發(fā)送一個光子,并將產(chǎn)生的量子位發(fā)送到多播組。
(3)多播組在接收到量子位元后,按與QMKDC相同的基準(zhǔn),測量量子位元。 之后QMKDC 宣布隨機(jī)選擇的比特串,多播組丟棄任何不同的測量結(jié)果。
(4)建立過程中,監(jiān)聽通信信道的竊聽者將被檢測到。 因?yàn)镼MKDC 和多播組都必須公開比較隨機(jī)測量選擇的比特串,以檢查錯誤率。 如果錯誤率小于商定的閾值,則通信過程將繼續(xù),如公式(4)所示。 否則,被處理的協(xié)議將被終止。 此時,QMKDC與多播組同意將共享密鑰作為多播組的私有密鑰(如公式5 所示)。
組密鑰是通過隨機(jī)選擇一個位串,并使用每個多播組的私有密鑰對其進(jìn)行加密而生成的。 加密將使用經(jīng)典的對稱算法開發(fā)。 每個多播組將通過解密接收到的消息來檢索組密鑰,分發(fā)過程如圖4 所示。
圖4 組密鑰分發(fā)過程Fig.4 Group key distribution process
具體實(shí)現(xiàn)步驟如下:
(1) QMKDC 隨機(jī)生成不同的組密鑰,每個組一個密鑰,并使用組密鑰對其進(jìn)行加密,如公式(6)所示。
(2)QMKDC 將加密的組密鑰發(fā)送給每個多播組。
(3)每個多播組使用自己的私鑰對組密鑰進(jìn)行解密,獲取組密鑰,如公式(7)所示。
如果兩個成員在同一組需要溝通時,則溝通使用組共享對稱密鑰。 發(fā)送方使用組共享密鑰加密消息,當(dāng)接收機(jī)收到加密信息時,使用相同的密鑰進(jìn)行解密。 當(dāng)成員1 多播組1 中需要在同一組與成員2溝通,加密/解密過程是通過多播組1 對稱密鑰。 成員1 使用多播組1 對稱密鑰加密消息。 信息通過光纖傳輸通信基礎(chǔ)設(shè)施,接收方使用相同的密鑰解密它。 接收器獲取原始消息的過程如圖5 所示。
圖5 相同多播組成員的通信Fig.5 Communication between members of the same multicast group
如果多播組中的一個成員需要使用QMKDC 的完整操作,與另一個多播組中的成員連接。 在此過程中,QMKDC 負(fù)責(zé)使用接收到的多播組密鑰解密接收到的消息,然后使用指定的多播組密鑰再次解密,如圖6 所示。
圖6 不同多播組成員的通信Fig.6 Communication between members of different multicast groups
(1)發(fā)起成員使用組密鑰對消息進(jìn)行加密,并將其連同所需的目標(biāo)成員一起發(fā)送到QMKDC。
(2)QMKDC 使用發(fā)起的多播組密鑰解密原始消息,檢索原始消息,再使用多播組密鑰對消息進(jìn)行加密轉(zhuǎn)發(fā)。
(3)目標(biāo)成員使用其組密鑰解密消息,檢索發(fā)起成員發(fā)送的原始消息。
QMKDC 進(jìn)行身份驗(yàn)證和授權(quán)注冊小組成員時,可以與其它驗(yàn)證小組成員在同一組共享密鑰組與服務(wù)器關(guān)鍵成員或QMKDC 進(jìn)行交流。 本文利用EPR 糾纏光子和控制非門來驗(yàn)證成員的身份。 使用EPR 方法潛在地存儲準(zhǔn)備好的糾纏粒子,然后測量它們并在使用之前創(chuàng)建密鑰,從而消除了圖7 所示的存儲不安全問題。
(1)QMKDC 和組成員有一個共同的密鑰KC={K1, K2,…,Kn},作為認(rèn)證密鑰。
(2) QMKDC 使用兩個分別與QMKDC 和組成員相關(guān)的粒子s 和m,制備EPR 極化光子對,如式(8)所示。 QMKDC 將s 粒子留在身邊,將m 粒子發(fā)送給指定的組成員。
圖7 QMKDC與組成員之間的身份驗(yàn)證過程Fig.7 The authentication process between the QMKDC and the group members
(3)當(dāng)群成員接收到m 粒子時,通過用戶的直線或圓形基函數(shù)對其進(jìn)行加密,得到一個新的粒子f(信息粒子)。
(4)對m(組成員粒子) 和f(信息粒子) 施加量子控制非門,產(chǎn)生三粒子糾纏態(tài),如式(10) 所處狀態(tài)。
(5)組成員維護(hù)粒子m,并將粒子f 發(fā)送給QMKDC。
(6)QMKDC 通過對等式(11)中接收到的粒子,進(jìn)行controlled-NOT 門運(yùn)算來解密粒子f 的狀態(tài)。
(7) QMKDC 通過應(yīng)用z 狀態(tài)結(jié)果(0 或1)來測量基于?z中的粒子f。 對于真用戶,度量必須是|K2i-1,K2i〉。 如果第一個鍵的測量結(jié)果成功,則鍵增加1 并遞歸地返回到步驟1,直到所有鍵都被處理。 如果所有的密鑰都經(jīng)過驗(yàn)證,那么用戶身份就是正確的,通信過程將繼續(xù)進(jìn)行,否則通信過程將中斷。
在本文提出的方案中(見圖8),為了防止中間人攻擊, QMKDC使用EPR 糾纏光子和Controlled-NOT 門來驗(yàn)證成員身份。 在QMKDC與組成員之間進(jìn)行身份驗(yàn)證之后, K2i-1、K2i秘密地保持在最大糾纏狀態(tài)Ψ 中。 QMKDC和組成員必須更新身份驗(yàn)證密鑰為K′2i-1、K′2i。 可以通過測量狀態(tài)Ψ 來獲得第一密鑰比特K′2i-1。 而第二密鑰位K′2i可以由前一個密鑰的前兩位和K′2i-1實(shí)現(xiàn)。 因此,身份驗(yàn)證是使用無條件屬性保護(hù),如公式(12)。
圖8 驗(yàn)證安全分析Fig.8 Validation safety analysis
傳輸消息時的機(jī)密性包含QMKDC之間的量子密碼密鑰,并使用量子無克隆和海森堡不確定性原理,來實(shí)現(xiàn)通過通信通道的通信組成員。 因此,竊聽者甚至入侵者無法獲得有效信息或無法理解所傳輸密鑰的內(nèi)容。 同時,當(dāng)QMKDC發(fā)送一個量子比特位0或1,竊聽者通過應(yīng)用操作E1 和E2 對其進(jìn)行測量,如圖9 所示。 由于竊聽者沒有相關(guān)已傳輸?shù)牧孔用艽a密鑰的任何信息,測量輸出結(jié)果將為|+〉 或|-〉。 因此,竊聽器操作會攔截量子通道,并有50%的錯誤概率創(chuàng)建結(jié)果。 在小組成員對構(gòu)成量子密碼密鑰的所有接收到的量子比特執(zhí)行測量后,根據(jù)海森堡不確定性原則,錯誤概率為25%。 如果錯誤概率大于約定的閾值,則QMKDC和組成員將檢測到竊聽者。 如果錯誤率低于約定的閾值,則通信過程將繼續(xù)進(jìn)行,否則協(xié)議將中止。
圖9 保密安全分析Fig.9 Security analysis
QMKDC使用Koashi 方法確定安全密鑰率,然后使用Rice 和Harrington 方法根據(jù)誘餌狀態(tài)估算出單個光子的參數(shù)。QMKDC和多播組的安全密鑰率由式13 給出:
其中,Q1 是從QMKDC的單光子狀態(tài)到多播組成員的大概位數(shù),e1 是單光子狀態(tài)的近似誤差數(shù),Q是QMKDC和多播組之間經(jīng)過篩選的比特總數(shù),F(xiàn)EC是糾錯效率;在QBER 的被篩選比特中,Q0 是來自0 光子脈沖的被篩選比特的近似數(shù)目, H(e) 是QMKDC與多播組之間會話的二進(jìn)制熵函數(shù)和t 持續(xù)時間。QMKDC和組成員之間通過光時鐘同步,并發(fā)共享光纜。 光時鐘同步對于增強(qiáng)量子狀態(tài)傳輸至關(guān)重要,因?yàn)槿绻麤]有光子到達(dá)同步,則多播組將無法正確檢測量子狀態(tài)。QMKDC和組成員之間通信的數(shù)據(jù)通道使用波分復(fù)用器進(jìn)行復(fù)用。
圖10 描述了QMKDC安全密鑰速率和經(jīng)過篩選的密鑰,以Kbits/s 為單位,以千米為單位的光纖距離的關(guān)系。 35 km 和80 km 以上的安全密鑰速率分別為993 和82 kbits/s。 根據(jù)光纖的特性,隨著光纖距離的增加,生成的篩選密鑰率降低。 在35 km 和80 km 上經(jīng)過篩選的密鑰速率分別為1 395.64 kbs/s和121.36 kbits/s。
圖10 QMKDC安全密鑰和篩選密鑰與光纖距離的關(guān)系Fig.10 Relationship between QMKDC security key and filter key and optical fiber distance
圖11 描述了量子誤碼率(QBER)與光纖長度的關(guān)系。 基于光纖距離50 km 的QBER 和錯誤數(shù)量分別顯示為6.2%和32.86 kbits/s。 基于光纖距離35 km 的QBER 和錯誤數(shù)量,分別顯示為3%和28.24 kbits/s。
圖12 描述了量子誤碼率“QBER”和作為安全密鑰率函數(shù)的錯誤數(shù)。 當(dāng)安全密鑰速率等于1 500 kbit/s時,QBER 和錯誤數(shù)量分別顯示為1.4%和21 kbits/s。 當(dāng)安全密鑰速率等于600 kbit/s 時,QBER 和錯誤數(shù)量分別顯示為4.2%和25.28 kbit/s。
圖11 QMKDC量子誤碼率百分比與光纖距離的關(guān)系Fig.11 The relation between QMKDC quantum bit error rate percentage and optical fiber distance
圖12 QMKDC 量子誤碼率百分比和誤碼數(shù)與密鑰生成率的關(guān)系Fig.12 The relationship between the percentage of quantum bit error rate and the rate of key generation
本文提出的方案在保護(hù)密鑰和利用量子物理定律進(jìn)行身份驗(yàn)證方面具有顯著的優(yōu)勢。 當(dāng)QMKDC向多播組成員傳遞密鑰時,使用EPR 糾纏光子和Controlled-NOT 門實(shí)現(xiàn)身份驗(yàn)證。 利用量子無克隆和海森堡不確定性原理,實(shí)現(xiàn)了在QMKDC 間傳輸包含量子密鑰的消息時的機(jī)密性,并通過通信信道實(shí)現(xiàn)組成員間的通信。 后續(xù)工作,將進(jìn)一步研究如何將量子密鑰分發(fā)和基于哈希的認(rèn)證技術(shù)用于多播網(wǎng)絡(luò),并通過將量子密鑰分發(fā)與IPSec 和VPN 集成來實(shí)現(xiàn)對多播安全性的增強(qiáng)。