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