一種量子密鑰分發(fā)后處理中對誤碼進(jìn)行漢明糾錯(cuò)的方法
【專利摘要】本發(fā)明公開一種量子密鑰分發(fā)后處理中對誤碼進(jìn)行漢明糾錯(cuò)的方法,基于漢明糾錯(cuò),采用變長密鑰塊塊長,即根據(jù)誤碼率的不同采取不同的塊長,并且每次糾錯(cuò)過程中的每一輪都采取不同的塊長;塊長的選取根據(jù)提前計(jì)算估計(jì)得到。采用本發(fā)明的技術(shù)方案,提高了漢明糾錯(cuò)協(xié)議的糾錯(cuò)效率。
【專利說明】
一種量子密鑰分發(fā)后處理中對誤碼進(jìn)行漢明糾錯(cuò)的方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及量子密鑰分發(fā)技術(shù)領(lǐng)域,尤其涉及一種量子密鑰分發(fā)后處理中對誤碼 進(jìn)行漢明糾錯(cuò)的方法。
【背景技術(shù)】
[0002] 量子密碼學(xué),又稱量子密鑰分發(fā),英文簡稱QKD,是利用量子力學(xué)特性來保證通信 安全性。它使通信的雙方能夠產(chǎn)生并分享一個(gè)隨機(jī)的,安全的密鑰,來加密和解密信息。
[0003] 量子密碼的一個(gè)最重要性質(zhì)是,如果有第三方試圖竊聽密碼,則通信的雙方便會 察覺。這種性質(zhì)基于量子力學(xué)的基本原理:任何對量子系統(tǒng)的測量都會對系統(tǒng)產(chǎn)生干擾。 第三方試圖竊聽密碼,必須用某種方式測量它,而這些測量就會帶來可察覺的異常。通過量 子疊加態(tài)或量子糾纏態(tài)來傳輸信息,通信系統(tǒng)便可以檢測是否存在竊聽。當(dāng)竊聽低于一定 標(biāo)準(zhǔn),一個(gè)有安全保障的密鑰就可以產(chǎn)生了。
[0004] 在量子密鑰分發(fā)中,通常定義通信雙方的發(fā)送端為Alice,接收端為Bob,密鑰就 是通信雙方持有的一段隨機(jī)串。它被發(fā)送用來加密一些機(jī)密的文件,得到密文,通過信道傳 輸給接收方,接收方再使用密鑰進(jìn)行解密,得到機(jī)密文件。
[0005] 如圖1所示,由于接收端從與其對接的量子密鑰分發(fā)物理端獲取的密鑰與發(fā)送端 從其量子密鑰分發(fā)系統(tǒng)物理端獲取的密鑰有可能存在不一致的位,其量子密鑰分發(fā)物理端 可以通過軟件模擬方式實(shí)現(xiàn),所以發(fā)送端和接收端分別通過量子密鑰分發(fā)后處理將各自物 理端生成的不一致的密鑰轉(zhuǎn)化為最終應(yīng)用的相同的密鑰。發(fā)送端和接收端的量子密鑰分發(fā) 后處理分別包含基比對、誤碼糾錯(cuò)和私鑰放大三個(gè)部分;在發(fā)送端和接收端進(jìn)行了基比對 之后,各自保有一段密鑰。但是因?yàn)樾诺涝肼暫痛嬖诟`聽者的原因,通信雙方的密鑰存在一 定的誤碼。這時(shí)候就需要對誤碼進(jìn)行糾錯(cuò),在保證通信雙方的密鑰一致的基本前提下盡可 能少地暴露密鑰。
[0006] 因此對量子密鑰分發(fā)后處理中的誤碼糾錯(cuò)提出三個(gè)原則:
[0007] -、保證糾錯(cuò)結(jié)束后Alice和Bob的密鑰完全一致。這是保證通信的加密解密步 驟能夠成功的最基本要素。
[0008] 二、丟棄泄露位的操作。由于要對Alice和Bob的密鑰進(jìn)行糾錯(cuò)必須進(jìn)行雙方的 通信,而這種通信也有可能會被竊聽者竊聽。通信中在信道中傳輸?shù)挠嘘P(guān)密鑰的信息都可 能泄露給竊聽者,這樣竊聽者可能根據(jù)竊聽到的信息偽裝成接收端或者發(fā)送端,這樣系統(tǒng) 的安全就無法保證。因此,出于安全性考慮,糾錯(cuò)過程中,Alice傳給Bob的有關(guān)密鑰的位 信息都要被丟棄。具體的原則是,在信道中傳遞了多少位有關(guān)密鑰的信息,就丟棄多少位密 鑰。
[0009] 三、保留盡可能長的密鑰。在保證密鑰一致性和安全性的前提下,使得在糾錯(cuò)結(jié)束 后,Alice和Bob持有的密鑰盡可能的長。由于在糾錯(cuò)過程中會丟棄密鑰中的一些位,因此 在糾錯(cuò)結(jié)束時(shí)Alice和Bob雙方的密鑰會比初始時(shí)少很多。而由于加密的要求,需要使得 Alice和Bob所持有的密鑰盡可能的長。
[0010] 評價(jià)糾錯(cuò)性能的最重要指標(biāo)是糾錯(cuò)效率,它代表產(chǎn)生的密鑰在整個(gè)量子密鑰分發(fā) 系統(tǒng)能夠帶來的貢獻(xiàn),保留越長的密鑰,系統(tǒng)的性能越好。如圖2所示,糾錯(cuò)效率的定義如 下:糾錯(cuò)效率=糾錯(cuò)后剩余的密鑰長度/糾錯(cuò)前密鑰長度。
[0011] Winnow是一種基于漢明碼的糾錯(cuò)協(xié)議,其可以很好的糾正單個(gè)錯(cuò)誤,在量子密鑰 分發(fā)系統(tǒng)中Alice和Bob保有的密鑰長度很長,里面包含的誤碼非常多。因此需要對密鑰 進(jìn)行分塊,對每個(gè)塊采取漢明糾錯(cuò),在進(jìn)行這樣一次糾錯(cuò)之后,雙方的密鑰還存在一定程度 的誤碼的殘余,一次糾錯(cuò)并不足以滿足系統(tǒng)的要求,因此需要進(jìn)行多輪的糾錯(cuò)。傳統(tǒng)的基于 漢明碼的糾錯(cuò)協(xié)議采用固定塊長,導(dǎo)致其糾錯(cuò)效率不高,這樣固定塊長的算法就暴露了過 多的位,這些暴露實(shí)際上是可以避免的。因此采用固定塊長的漢明糾錯(cuò)達(dá)到的效率非常低, 僅僅在通信輪數(shù)上有了一定程度的減少。
【發(fā)明內(nèi)容】
[0012] 本發(fā)明要解決的技術(shù)問題是,提供一種量子密鑰分發(fā)后處理中對誤碼進(jìn)行漢明糾 錯(cuò)的方法,提高了漢明糾錯(cuò)協(xié)議的糾錯(cuò)效率。
[0013] 為解決上述問題,本發(fā)明采用如下的技術(shù)方案:
[0014] 一種量子密鑰分發(fā)后處理中對誤碼進(jìn)行漢明糾錯(cuò)的方法包括:
[0015] 發(fā)送端獲取第一原始密鑰和誤碼率估計(jì)值;
[0016] 接收端獲取第二原始密鑰和誤碼率估計(jì)值;
[0017] 發(fā)送端和接收端分別根據(jù)誤碼率估計(jì)值確定各自的調(diào)度方案,進(jìn)行多輪糾錯(cuò);
[0018] 其中,一輪糾錯(cuò)過程包括如下步驟:
[0019] S1、發(fā)送端和接收端根據(jù)隨機(jī)種子對第一、二原始密鑰進(jìn)行隨機(jī)重排;
[0020] S2、發(fā)送端和接收端根據(jù)調(diào)度方案中每一輪的密鑰分塊長度,將第一、二原始密鑰 進(jìn)行分塊,并給第一、二原始密鑰的每個(gè)密鑰塊按照相同順序編號;
[0021] S3、發(fā)送端和接收端對各自的每個(gè)密鑰塊求奇偶校驗(yàn)和,并且發(fā)送端將自身每個(gè) 密鑰塊的奇偶校驗(yàn)和發(fā)送給接收端;
[0022] S4、發(fā)送端和接收端丟棄各自每個(gè)密鑰塊自左向右的第一位;
[0023] S5、接收端將自身的每個(gè)密鑰塊奇偶校驗(yàn)和與其密鑰塊編號相同的發(fā)送端自身的 密鑰塊奇偶校驗(yàn)和進(jìn)行異或運(yùn)算,如果結(jié)果為1,則接收端的密鑰塊奇偶校驗(yàn)和與其密鑰塊 編號相同的發(fā)送端的密鑰塊奇偶校驗(yàn)和不同,并將奇偶校驗(yàn)和不同的密鑰塊編號發(fā)給發(fā)送 端,其中,接收端和發(fā)送端分別將這些奇偶校驗(yàn)和不同的密鑰塊記作mismatch塊:
[0024] S6、發(fā)送端和接收端對各自所有mismatch塊進(jìn)行求校驗(yàn)子,并且發(fā)送端將自身所 有mismatch塊的校驗(yàn)子發(fā)送給接收端;
[0025] S7、接收端將自身每個(gè)mismatch塊的校驗(yàn)子與其密鑰塊編號相同的發(fā)送端自身 mismatch塊校驗(yàn)子進(jìn)行異或運(yùn)算,對于每個(gè)mismatch塊,如果運(yùn)算結(jié)果的log 2N位都為0, 其中,N為密鑰塊塊長,則該密鑰塊沒有錯(cuò)誤;否則,根據(jù)漢明糾錯(cuò)原理,將所述運(yùn)算結(jié)果轉(zhuǎn) 置并化為十進(jìn)制數(shù),所述十進(jìn)制數(shù)為接收端的該密鑰塊自左向右的出錯(cuò)位編號,并將所述 編號對應(yīng)位的0或1值取反;
[0026] S8、發(fā)送端和接收端丟棄每個(gè)密鑰塊自左向右編號為241 = 0、1、2......)的位, 其中,1彡2i< N-l,N為密鑰塊塊長;
[0027] 根據(jù)調(diào)度方案中的糾錯(cuò)輪次和每輪中密鑰塊長度,重復(fù)步驟S1-S8,直到雙方持有 的密鑰相同為止。
[0028] -種在量子密鑰分發(fā)后處理中進(jìn)行誤碼糾錯(cuò)的方法,根據(jù)誤碼率估計(jì)值確定調(diào)度 方案,以進(jìn)行多輪糾錯(cuò)具體為:根據(jù)當(dāng)前誤碼率估計(jì)值,查找預(yù)先存儲的調(diào)度方案表,找到 與誤碼率估計(jì)值對應(yīng)的調(diào)度方案,以確定糾錯(cuò)輪次以及每輪糾錯(cuò)的密鑰塊塊長。
[0029] 本發(fā)明基于漢明糾錯(cuò),采用變長密鑰塊塊長,即根據(jù)誤碼率的不同采取不同的塊 長,并且每次糾錯(cuò)過程中的每一輪都采取不同的塊長;塊長的選取根據(jù)提前計(jì)算估計(jì)得到。 采用本發(fā)明的技術(shù)方案,提高了漢明糾錯(cuò)協(xié)議的糾錯(cuò)效率。
【附圖說明】
[0030] 圖1為量子密鑰分發(fā)系統(tǒng)中Alice/Bob端的結(jié)構(gòu)示意圖;
[0031] 圖2為漢明協(xié)議糾錯(cuò)效率的示意圖;
[0032] 圖3為winnow數(shù)據(jù)結(jié)構(gòu)的示意圖;
[0033] 圖4為本發(fā)明一輪漢明糾錯(cuò)的流程示意圖;
[0034] 圖5為本發(fā)明密鑰隨機(jī)重排的示意圖。
【具體實(shí)施方式】
[0035] 本實(shí)施例提供一種在量子密鑰分發(fā)后處理中進(jìn)行誤碼糾錯(cuò)的方法包括以下步 驟:
[0036] 預(yù)處理階段:Winnow糾錯(cuò)協(xié)議在實(shí)現(xiàn)時(shí)用到的數(shù)據(jù)結(jié)構(gòu)如圖3所示。其中Sift_ Data是調(diào)用winnow協(xié)議的外部接口,它調(diào)用start_winnow數(shù)據(jù)結(jié)構(gòu)開始進(jìn)行winnow糾 錯(cuò)。Start_Winnow數(shù)據(jù)結(jié)構(gòu)調(diào)用CommuData數(shù)據(jù)結(jié)構(gòu)進(jìn)行網(wǎng)絡(luò)傳輸,同時(shí)調(diào)用New_Winnow 進(jìn)行具體的糾錯(cuò)過程。New_Winnow調(diào)用BitBuffer數(shù)據(jù)結(jié)構(gòu)存儲糾錯(cuò)過程中的復(fù)雜數(shù)據(jù)。 這個(gè)數(shù)據(jù)結(jié)構(gòu)是為了在之后的糾錯(cuò)過程中更加節(jié)省帶寬和時(shí)間而創(chuàng)建的。發(fā)送端Alice 和接收端Bob將從與其對接的量子密鑰分發(fā)物理端獲取的第一、二原始密鑰存入數(shù)據(jù)結(jié)構(gòu) BitBuffer中,本實(shí)施中的量子密鑰分發(fā)物理端是通過軟件模擬的方式實(shí)現(xiàn)的。
[0037] Alice和Bob根據(jù)量子密鑰分發(fā)物理端發(fā)送的誤碼率估計(jì)值,通過查表的方式確 定調(diào)度方案,以進(jìn)行多輪糾錯(cuò),其具體為:根據(jù)當(dāng)前誤碼率估計(jì)值,查找預(yù)先存儲的調(diào)度方 案表,找到與誤碼率估計(jì)值對應(yīng)的調(diào)度方案,以確定糾錯(cuò)輪次以及每輪糾錯(cuò)的密鑰塊塊長。
[0038] 表 1
[0039]
[0041] 表1是Winnow理論上最優(yōu)的調(diào)度方案,每一行就是在某一誤碼率范圍內(nèi)(如第二 行0.01-0. 02)采用的調(diào)度方案。某一項(xiàng)標(biāo)記為0說明在這一誤碼率的范圍內(nèi)不采用這種 密鑰塊塊長,標(biāo)記為2表示用該密鑰塊塊長糾錯(cuò)2次,以此類推。糾錯(cuò)按照先使用小塊長, 再使用大塊長的原則。
[0042] 原則上不同誤碼率下采取不同的調(diào)度方案,粒度是越小越好。之所以我們選擇千 分之一誤碼率作為粒度,是因?yàn)槭紫任覀兊乃惴ū仨氂泄烙?jì)的誤碼率,這個(gè)誤碼率與真實(shí) 的誤碼率有一定誤差,這個(gè)誤差的級別在千分之一以上。同時(shí),用我們實(shí)驗(yàn)的結(jié)果可以看 出,用千分之一作為粒度,已經(jīng)使得很多誤碼率級別下的最優(yōu)方案相同,這就表明沒有必要 進(jìn)行更進(jìn)一步的細(xì)分了。
[0043] 例如,如果估計(jì)的誤碼率小于0. 01,則塊長選擇就是:第一輪采用32作為塊長進(jìn) 行糾錯(cuò),第二輪采用128,第三輪采用512,第四、五、六輪采用1024的塊長。
[0044] 該調(diào)度方案通過以下方法得到:
[0045] 首先,采用2的冪次作為塊長是最合理、相對其他塊長是較優(yōu)的。
[0046] 其次,采取根據(jù)誤碼率調(diào)整塊長選擇;動態(tài)地根據(jù)誤碼率調(diào)整塊長,使得漢明糾錯(cuò) 的效果最大化,可以比固定塊長的效率高出很多。
[0047] 第三,采取固定編碼的方案,以減少交互次數(shù)和暴露的位數(shù)。所謂固定編碼,就是 將動態(tài)的塊長選擇固定化。因?yàn)槿绻鶕?jù)每一輪糾錯(cuò)結(jié)束后的誤碼率動態(tài)地選擇塊長,由 于獲取每輪結(jié)束后的誤碼率需要抽樣比較,會導(dǎo)致通信輪數(shù)和暴露位數(shù)的增加。因此使用 固定編碼,即通過糾錯(cuò)開始前的誤碼率估計(jì),得到一個(gè)總的塊長調(diào)度方案,這樣并不會使得 之后的每一輪糾錯(cuò)效率降低,同時(shí)還可以達(dá)到減少交互次數(shù)和暴露位數(shù)的目的。
[0048] 第四,采用概率的方法得到最終的調(diào)度方案。生成一個(gè)概率模型,它可以模擬在平 均情況下的誤碼的分布,也即出現(xiàn)k個(gè)錯(cuò)誤的塊的平均個(gè)數(shù)。使用這個(gè)概率模型,將調(diào)度方 案作為輸入,調(diào)度方案對應(yīng)的糾錯(cuò)效率作為輸出,給每個(gè)調(diào)度方案一個(gè)評判優(yōu)劣的標(biāo)準(zhǔn);根 據(jù)這個(gè)標(biāo)準(zhǔn),可以找到每個(gè)誤碼率下的最優(yōu)調(diào)度方案。
[0049] 因?yàn)闈h明糾錯(cuò)需要很多輪的糾錯(cuò),因此需要在一開始就把每一輪的塊長確定下 來。并且,由于通信雙方的誤碼率估計(jì)值是相同的,通信雙方的調(diào)度方案也是相同的。Alice 和Bob分別按照該調(diào)度方案,根據(jù)確定每一輪糾錯(cuò)的塊長大小進(jìn)行糾錯(cuò)。
[0050] 糾錯(cuò)階段:糾錯(cuò)要進(jìn)行多輪,每一輪都按照下面的流程,只是分塊的長度不一樣。 如圖4所示,下面是一輪糾錯(cuò)過程的詳細(xì)步驟,其包括:
[0051] S1、隨機(jī)重排過程:隨機(jī)重排就是對Alice和Bob獲取的第一、二原始密鑰進(jìn)行一 次重新的排序,使得誤碼盡可能隨機(jī)分布,使得糾錯(cuò)的效率達(dá)到最優(yōu)。如圖5所示,這就是 一次簡單的,交換位數(shù)較少的隨機(jī)重排。隨機(jī)重排只是對密鑰中隨機(jī)的一些位進(jìn)行交換,不 會影響〇和1的總數(shù)。并且通信雙方使用一個(gè)隨機(jī)種子,所以隨機(jī)重排后誤碼的個(gè)數(shù)也不 發(fā)生改變。
[0052] 進(jìn)行隨機(jī)重排的原因是,需要在保證誤碼率不變的情況下,盡量使得誤碼均勻地 分布。均勻分布誤碼帶來的好處是糾錯(cuò)性能的最大化,因?yàn)闈h明糾錯(cuò)對每一個(gè)塊存在一個(gè) 錯(cuò)誤時(shí)糾錯(cuò)的能力最大。這樣可以使得漢明糾錯(cuò)的效率盡可能地高。
[0053] 具體的過程是,由發(fā)送端Alice產(chǎn)生隨機(jī)種子,并且發(fā)送給接收端Bob端,這樣雙 方持有的是相同的隨機(jī)種子。發(fā)送端Alice和接收端Bob根據(jù)隨機(jī)種子對第一、二原始密 鑰進(jìn)行隨機(jī)重排。
[0054] S2、密鑰分塊:Alice和Bob根據(jù)調(diào)度方案中每一輪的密鑰分塊長度,將第一、二原 始密鑰進(jìn)行分塊,并給第一、二原始密鑰的每個(gè)密鑰塊按照相同順序編號;
[0055] S3、求奇偶校驗(yàn)和:Alice和Bob對各自的每個(gè)密鑰塊求奇偶校驗(yàn)和,并且Alice 將自身每個(gè)密鑰塊的奇偶校驗(yàn)和發(fā)送給Bob。這個(gè)步驟是進(jìn)行判斷每一塊的誤碼是否可以 被漢明糾錯(cuò)所糾正。求奇偶校驗(yàn)和的方法如下:
[0056] 求奇偶校驗(yàn)和的方法:將塊內(nèi)每一位十進(jìn)制相加,得到的結(jié)果是奇數(shù)記為1,偶數(shù) 記為0。等價(jià)于求塊內(nèi)的1的個(gè)數(shù)的奇偶性。
[0057] 求奇偶校驗(yàn)和的目的:由于漢明糾錯(cuò)只能糾正單個(gè)錯(cuò)誤,因此如果通信雙方的奇 偶校驗(yàn)結(jié)果相同,說明存在偶數(shù)個(gè)錯(cuò)誤,這樣漢明糾錯(cuò)方法就沒有能力進(jìn)行糾錯(cuò)。
[0058] S4、奇偶校驗(yàn)后丟棄位操作:Alice和Bob因?yàn)閭鬏斄似媾夹r?yàn)和,每一塊泄露了 一位信息,為了系統(tǒng)的安全,必須進(jìn)行丟棄位的操作。
[0059] 具體操作:丟棄各自每個(gè)密鑰塊自左向右的第一位。因?yàn)楦`聽者對每一塊只知道 一位奇偶校驗(yàn)和的信息,因而任意丟棄一位即可讓竊聽者所得到的信息無效化,達(dá)到保證 安全性的目的。出于方便一般丟棄每塊的第一位。設(shè)原始密鑰的密鑰塊塊長為N,進(jìn)行丟棄 操作后,每一塊的塊長從N位變?yōu)镹-1位。
[0060] S5、檢查每一塊是否存在奇偶校驗(yàn)錯(cuò)誤:Bob將自身的每個(gè)密鑰塊奇偶校驗(yàn)和與 其密鑰塊編號相同的Alice自身的密鑰塊奇偶校驗(yàn)和進(jìn)行異或運(yùn)算,如果結(jié)果為1,則Bob 的密鑰塊奇偶校驗(yàn)和與其密鑰塊編號相同的Alice的密鑰塊奇偶校驗(yàn)和不同,即存在奇數(shù) 個(gè)錯(cuò)誤,否則存在偶數(shù)個(gè)錯(cuò)誤;將奇偶校驗(yàn)和不同的密鑰塊編號發(fā)給Alice,這些奇偶校驗(yàn) 和不同的密鑰塊是可以通過漢明糾錯(cuò)進(jìn)行糾正,這些塊記作為mismatch塊。在后面的求校 驗(yàn)子過程中,不存在奇偶校驗(yàn)錯(cuò)誤的塊就不進(jìn)行校驗(yàn)子的計(jì)算,因?yàn)闈h明糾錯(cuò)無法糾正偶 數(shù)個(gè)錯(cuò)誤。
[0061] S6、求校驗(yàn)子過程:Alice和Bob對各自所有mismatch塊求校驗(yàn)子,Alice將所有 mismatch塊的校驗(yàn)子發(fā)送給Bob。
[0062] 具體求校驗(yàn)子的過程如下:
[0063] 對于每一個(gè)mismatch塊,Alice和Bob自身的密鑰塊長度為N-1,通過一個(gè)校驗(yàn)矩 陣將整個(gè)mismatch塊的位信息轉(zhuǎn)化為一個(gè)校驗(yàn)子,每塊校驗(yàn)子的長度為log 2N,矩陣的大小 為N*log2N,具體構(gòu)造如下:
[0064] L j/21-1」(mod 2),其中,i 和 j 為下標(biāo),1 < i < log2N,1 < j < N,例如對 H27, j = 7, i = 2,可以計(jì)算出L 7/21」=3ξ1 (mod2),因此 H27= 1。
[0065] Alice將校驗(yàn)矩陣和mismatch塊的位向量進(jìn)行乘積,得到一個(gè)log2N維向量,即為 Alice的校驗(yàn)子;Bob也用同一個(gè)矩陣點(diǎn)乘自己對應(yīng)mismatch塊的位向量,用得到的自己的 log#維向量,即為Bob的校驗(yàn)子。
[0066] S7、Bob根據(jù)Alice和自身的校驗(yàn)子信息對密鑰進(jìn)行糾錯(cuò):Bob將自身mismatch 塊的校驗(yàn)子與其密鑰塊編號相同的Alice自身mismatch塊校驗(yàn)子進(jìn)行異或運(yùn)算,對于每個(gè) mismatch塊,如果運(yùn)算結(jié)果的log2N位都為0,其中,N為密鑰塊塊長,則該密鑰塊沒有錯(cuò)誤; 否則,根據(jù)漢明糾錯(cuò)原理,將所述運(yùn)算結(jié)果轉(zhuǎn)置并化為十進(jìn)制數(shù),所述十進(jìn)制數(shù)為Bob的該 密鑰塊自左向右的出錯(cuò)位編號,并將所述編號對應(yīng)位的0或1值取反。例如N取8, Alice 和Bob的校驗(yàn)子按位異或運(yùn)算結(jié)果為101,換算成十進(jìn)制就是5,即Bob將自左向右編號為 5對應(yīng)位值1糾正為0即可。
[0067] S8、計(jì)算校驗(yàn)子后丟棄位操作:雙方因?yàn)閭鬏斄诵r?yàn)子,因此進(jìn)行丟棄位的操作, 保證系統(tǒng)安全。因?yàn)閬G棄的原則是,信道中傳輸了多少位的有關(guān)密鑰的信息,就要丟棄多少 位,同時(shí)由于漢明糾錯(cuò)的性質(zhì),2的冪次位上包含最多的校驗(yàn)子信息,因此Alice和B0b丟棄 每個(gè)密鑰塊自左向右編號為2i(i = 0、1、2......)的位,其中,1彡2i<N-l,N為密鑰塊塊 長;N = 8時(shí),丟棄的3位是,第1位,第2位,第4位。
[0068] 根據(jù)調(diào)度方案中的糾錯(cuò)輪次和每輪中密鑰塊長度,重復(fù)步驟S1-S8,直到雙方持有 的密鑰相同為止。
[0069] 一次漢明糾錯(cuò)可以把每一個(gè)塊中的單個(gè)誤碼糾正。但是由于可能存在一個(gè)塊中出 現(xiàn)兩個(gè)誤碼的情況,因此一輪糾錯(cuò)是不夠的。漢明糾錯(cuò)通常需要10輪左右的糾錯(cuò)過程可以 把Alice和Bob雙方的錯(cuò)誤糾正完。
[0070] 本發(fā)明相比現(xiàn)有技術(shù)的具有如下改進(jìn)點(diǎn):
[0071] 增加奇偶校驗(yàn)
[0072] 按照之前描述的方法做的結(jié)果實(shí)際也是比較低效的,因?yàn)椴还苁欠窦m錯(cuò)成功,每 塊至少泄露3位信息,最后這些位都要丟棄。因?yàn)闈h明糾錯(cuò)協(xié)議只能糾正一個(gè)塊中的單個(gè) 錯(cuò)誤,并且已經(jīng)沒有錯(cuò)誤的塊并不需要糾錯(cuò)。因此引入一個(gè)奇偶校驗(yàn)的過程。Alice和Bob 對各自的每個(gè)密鑰塊求奇偶校驗(yàn)和,并且Alice將自身每個(gè)密鑰塊的奇偶校驗(yàn)和發(fā)送給 Bob ;Bob將自身的每個(gè)密鑰塊奇偶校驗(yàn)和與其密鑰塊編號相同的Alice自身的密鑰塊奇偶 校驗(yàn)和進(jìn)行異或運(yùn)算;如果奇偶校驗(yàn)的結(jié)果一致,那么一定出現(xiàn)偶數(shù)個(gè)錯(cuò)誤,對于Winnow 來說這是無法進(jìn)行糾錯(cuò)的,因此對這種塊暫時(shí)不進(jìn)行糾錯(cuò)。否則,開始糾錯(cuò)過程,Alice傳 給Bob出現(xiàn)校驗(yàn)和錯(cuò)誤的塊的校驗(yàn)子。這樣可以將出現(xiàn)偶數(shù)個(gè)錯(cuò)誤的塊暴露信息位數(shù)減少 為1,并且對糾錯(cuò)能力沒有任何影響一一因?yàn)闈h明糾錯(cuò)不能糾正偶數(shù)個(gè)錯(cuò)誤。
[0073] 在奇偶校驗(yàn)結(jié)束之后因?yàn)楸┞读?1位,因此同樣需要丟棄1位信息以保證安全。同 時(shí)在這一過程中可能就隨機(jī)丟棄了錯(cuò)誤位。
[0074] 隨機(jī)重排
[0075] 由于Winnow不能糾正2個(gè)以上的錯(cuò)誤,因此通常來說一次糾錯(cuò)就不夠的,需要進(jìn) 行多輪操作。在每一輪糾錯(cuò)之后都需要對Alice和Bob所持有的密鑰進(jìn)行重新的隨機(jī)排列, 使錯(cuò)誤位盡可能平均分布,提高協(xié)議效率。
[0076] 邊糾錯(cuò)邊丟棄
[0077] 以往的漢明糾錯(cuò)乃至于其他糾錯(cuò)協(xié)議,都是進(jìn)行糾錯(cuò)結(jié)束后再為了系統(tǒng)安全就行 丟棄位的操作。但是這樣會使得每一輪糾錯(cuò)都泄露很多信息,從而在最后一步丟棄更多的 位,使得密鑰長度比較短。在協(xié)議中每進(jìn)行一輪糾錯(cuò),就把當(dāng)前需要丟棄的位都丟棄,保證 每一輪糾錯(cuò)開始的時(shí)候,通信雙方的密鑰是完全對竊聽者保密的。這樣密鑰的長度是逐步 變短的,因此每一輪泄露的信息也就會逐步變少,總的丟棄的位數(shù)就會變少,最終的密鑰也 就更加長。
[0078] 舉個(gè)淺顯的例子:
[0079] 如果每一輪泄露的信息是25%的話,按照傳統(tǒng)的算法,進(jìn)行兩輪糾錯(cuò)就需要丟棄 50%的信息,最后剩下50%。而采取本發(fā)明算法,兩輪糾錯(cuò)過后會剩下56. 25%的信息。積 累起來的改進(jìn)還是比較多的。而且由于量子密鑰分發(fā)中,最終保留的密鑰的長度非常關(guān)鍵, 因此一點(diǎn)的改進(jìn)也是非常重要的。并且在邊糾錯(cuò)邊丟棄的過程中,有一定的概率使得漢明 糾錯(cuò)能力之外的誤碼被恰好隨機(jī)地丟棄了,這樣在一定程度上對效率的提高也有助益。
[0080] 優(yōu)化塊長選擇
[0081] 一、變化的塊長。由于要使得Winnow協(xié)議的糾錯(cuò)能力達(dá)到最大,就要保證每一塊 的錯(cuò)誤位數(shù)盡可能為1。因此對以前的固定塊長的算法進(jìn)行改進(jìn),根據(jù)誤碼率來確定塊長的 選擇。同時(shí),每一輪糾錯(cuò)過后,誤碼率會下降,每一輪糾錯(cuò)選擇的塊長也會變化,使得塊長適 應(yīng)當(dāng)前的誤碼率,Winnow協(xié)議的糾錯(cuò)效率取決于每一輪的塊長選擇。
[0082] 二、固定編碼。如果根據(jù)每一輪糾錯(cuò)結(jié)束后的誤碼率選擇塊長,會造成通信輪數(shù)和 暴露位數(shù)的增加,因此使用固定編碼,即通過一次誤碼率估計(jì),得到一個(gè)塊長調(diào)度方案的方 法來避免這一問題。
[0083] 三、確定塊長范圍。進(jìn)行了多次實(shí)驗(yàn),采用2的冪次作為塊長較為合適。在相同的 校驗(yàn)子長度下,2的冪次作為塊長可以使塊長達(dá)到最大,從而使分塊總數(shù)最小,從而在糾錯(cuò) 能力相同的情況下減少暴露位數(shù)。
[0084] 四、提出新的塊長選擇。嘗試使用4作為塊長,取得了不錯(cuò)的效果。通常認(rèn)為4的 塊長并不能用在實(shí)際的糾錯(cuò)中,因?yàn)楸┞兜奈粩?shù)過多。但是通過實(shí)驗(yàn)發(fā)現(xiàn),在較高誤碼率 下,4作為塊長可以有效進(jìn)行糾錯(cuò),效率有了一定的提高。
[0085] 五、使用概率方法得到調(diào)度方案。因?yàn)樵诿恳惠嗛_始都要對Alice和Bob所持有 的密鑰進(jìn)行隨機(jī)的排列,因此可以根據(jù)概率進(jìn)行推算每塊出現(xiàn)單個(gè)錯(cuò)誤以及零個(gè)錯(cuò)誤的概 率。通過對所有可能的塊長調(diào)度方案進(jìn)行遍歷搜索,可以得到理論上的最優(yōu)的調(diào)度方案。使 用這一方案進(jìn)行實(shí)驗(yàn),最終在實(shí)際中糾錯(cuò)效率得到了提升,已經(jīng)接近漢明糾錯(cuò)的理論極限。
【主權(quán)項(xiàng)】
1. 一種量子密鑰分發(fā)后處理中對誤碼進(jìn)行漢明糾錯(cuò)的方法,其特征在于,包括: 發(fā)送端獲取第一原始密鑰和誤碼率估計(jì)值; 接收端獲取第二原始密鑰和誤碼率估計(jì)值; 發(fā)送端和接收端分別根據(jù)誤碼率估計(jì)值確定各自的調(diào)度方案,進(jìn)行多輪糾錯(cuò); 其中,一輪糾錯(cuò)過程包括如下步驟: 51、 發(fā)送端和接收端根據(jù)隨機(jī)種子對第一、二原始密鑰進(jìn)行隨機(jī)重排; 52、 發(fā)送端和接收端根據(jù)調(diào)度方案中每一輪的密鑰分塊長度,將第一、二原始密鑰進(jìn)行 分塊,并給第一、二原始密鑰的每個(gè)密鑰塊按照相同順序編號; 53、 發(fā)送端和接收端對各自的每個(gè)密鑰塊求奇偶校驗(yàn)和,并且發(fā)送端將自身每個(gè)密鑰 塊的奇偶校驗(yàn)和發(fā)送給接收端; 54、 發(fā)送端和接收端丟棄各自每個(gè)密鑰塊自左向右的第一位; 55、 接收端將自身的每個(gè)密鑰塊奇偶校驗(yàn)和與其密鑰塊編號相同的發(fā)送端自身的密鑰 塊奇偶校驗(yàn)和進(jìn)行異或運(yùn)算,如果結(jié)果為1,則接收端的密鑰塊奇偶校驗(yàn)和與其密鑰塊編號 相同的發(fā)送端的密鑰塊奇偶校驗(yàn)和不同,并將奇偶校驗(yàn)和不同的密鑰塊編號發(fā)給發(fā)送端, 其中,接收端和發(fā)送端分別將這些奇偶校驗(yàn)和不同的密鑰塊記作mismatch塊; 56、 發(fā)送端和接收端對各自所有mismatch塊進(jìn)行求校驗(yàn)子,并且發(fā)送端將自身所有 mismatch塊的校驗(yàn)子發(fā)送給接收端; 57、 接收端將自身每個(gè)mismatch塊的校驗(yàn)子與其密鑰塊編號相同的發(fā)送端自身 mismatch塊校驗(yàn)子進(jìn)行異或運(yùn)算,對于每個(gè)mismatch塊,如果運(yùn)算結(jié)果的log2N位都為0, 其中,N為密鑰塊塊長,則該密鑰塊沒有錯(cuò)誤;否則,根據(jù)漢明糾錯(cuò)原理,將所述運(yùn)算結(jié)果轉(zhuǎn) 置并化為十進(jìn)制數(shù),所述十進(jìn)制數(shù)為接收端的該密鑰塊自左向右的出錯(cuò)位編號,并將所述 編號對應(yīng)位的0或1值取反; 58、 發(fā)送端和接收端丟棄每個(gè)密鑰塊自左向右編號為241 = 0、1、2......)的位,其 中,1彡2i< N-1,N為密鑰塊塊長; 根據(jù)調(diào)度方案中的糾錯(cuò)輪次和每輪中密鑰塊長度,重復(fù)步驟S1-S8,直到雙方持有的密 鑰相同為止。2. 如權(quán)利要求1所述的一種在量子密鑰分發(fā)后處理中進(jìn)行誤碼糾錯(cuò)的方法,其特征在 于,根據(jù)誤碼率估計(jì)值確定調(diào)度方案,以進(jìn)行多輪糾錯(cuò)具體為:根據(jù)當(dāng)前誤碼率估計(jì)值,查 找預(yù)先存儲的調(diào)度方案表,找到與誤碼率估計(jì)值對應(yīng)的調(diào)度方案,以確定糾錯(cuò)輪次以及每 輪糾錯(cuò)的密鑰塊塊長。
【文檔編號】H04L9/08GK106027230SQ201510146097
【公開日】2016年10月12日
【申請日】2015年3月28日
【發(fā)明人】郭弘, 彭翔, 劉田
【申請人】北京大學(xué)