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