一種量子密鑰分發(fā)后處理中對誤碼進行級聯(lián)糾錯的方法
【專利摘要】本發(fā)明涉及量子密鑰糾錯領(lǐng)域,尤其涉及一種量子密鑰分發(fā)后處理中對誤碼進行級聯(lián)糾錯的方法,對密鑰塊進行多輪糾錯,當一輪糾錯結(jié)束后,找到本輪被糾正的誤碼的位置,再通過歷史記錄信息,找到誤碼在隨機重排前的位置,此時,產(chǎn)生了新的有奇數(shù)個錯誤的塊,對這些新定位出有誤碼的塊再次進行二分查錯;不斷回溯糾錯,當發(fā)送端和接收端在記錄中全部輪數(shù)的所有的塊下的奇偶校驗都一致時停止,這時進入下一輪的糾錯。在進行糾錯的過程中通過回溯查找,進行伴隨錯誤的糾錯,利用歷史信息,充分挖掘通信雙方的交互信息,在一輪糾錯中完成傳統(tǒng)協(xié)議多輪才能完成的效果,大大提高了糾錯效率。
【專利說明】
一種量子密鑰分發(fā)后處理中對誤碼進行級聯(lián)糾錯的方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及量子密鑰糾錯領(lǐng)域,尤其涉及一種量子密鑰分發(fā)后處理中對誤碼進行 級聯(lián)糾錯的方法。
【背景技術(shù)】
[0002] 量子密碼學,又稱量子密鑰分發(fā),英文簡稱QKD,是利用量子力學特性來保證通信 安全性。它使通信的雙方能夠產(chǎn)生并分享一個隨機的,安全的密鑰,來加密和解密信息。
[0003] 量子密碼的一個最重要性質(zhì)是,如果有第三方試圖竊聽密碼,則通信的雙方便會 察覺。這種性質(zhì)基于量子力學的基本原理:任何對量子系統(tǒng)的測量都會對系統(tǒng)產(chǎn)生干擾。 第三方試圖竊聽密碼,必須用某種方式測量它,而這些測量就會帶來可察覺的異常。通過量 子疊加態(tài)或量子糾纏態(tài)來傳輸信息,通信系統(tǒng)便可以檢測是否存在竊聽。當竊聽低于一定 標準,一個有安全保障的密鑰就可以產(chǎn)生了。
[0004] 量子密碼只用于產(chǎn)生和分發(fā)密鑰,并沒有傳輸任何實質(zhì)的信息。密鑰可通過某些 加密算法來加密信息,加密過的信息可以在標準信道中傳輸。
[0005] 在量子密鑰分發(fā)中,通常定義通信雙方的發(fā)送端為Alice,接收端為Bob,竊聽者 為eve。密鑰就是通信雙方持有的一段隨機串。它被發(fā)送用來加密一些機密的文件,得到密 文,通過信道傳輸給接收方,接收方再使用密鑰進行解密,得到機密文件。
[0006] 如圖1所示,由于接收端從與其對接的量子密鑰分發(fā)物理端獲取的密鑰與發(fā)送 端從其量子密鑰分發(fā)系統(tǒng)物理端獲取的密鑰有可能存在不一致的位,其量子密鑰分發(fā)物理 端可以通過軟件模擬方式實現(xiàn),所以發(fā)送端和接收端分別通過量子密鑰分發(fā)后處理將各自 物理端生成的不一致的密鑰轉(zhuǎn)化為最終應用的相同的密鑰。發(fā)送端和接收端的量子密鑰分 發(fā)后處理分別包含基比對、誤碼糾錯和私鑰放大三個部分;在發(fā)送端和接收端進行了基比 對之后,各自保有一段密鑰。但是因為信道噪聲和存在竊聽者的原因,通信雙方的密鑰存在 一定的誤碼。這時候就需要對誤碼進行糾錯,在保證通信雙方的密鑰一致的基本前提下盡 可能少地暴露密鑰。
[0007] Alice和Bob的密鑰對應位存在不同,這些位就稱為誤碼,如下表所示,框中的位 就是誤碼:
[0008]
[0009] 這里定義:誤碼率=出現(xiàn)錯誤的位/總位數(shù),誤碼率越高,糾錯系統(tǒng)糾錯的代價就 越大。由于加密的需求,最終要保證Alice個Bob的密鑰完全一致,這就是糾錯模塊的任務 和功能。
[0010] 糾錯是很關(guān)鍵的一個部分,這是因為:
[0011] 1,如果Alice和Bob的密鑰不一致,那么加密和解密的過程就會出錯,通信就無法 進行;
[0012] 2,在使用密鑰進行加密時,由于通信使用的是"一次一密"的技術(shù),對密鑰的消耗 很大,因此如果密鑰的長度較短,則需要經(jīng)常重新生成密鑰,對系統(tǒng)來說是災難性的。因此 對量子密鑰分發(fā)后處理中的誤碼糾錯提出三個原則:
[0013] -、保證糾錯結(jié)束后Alice和Bob的密鑰完全一致。這是保證通信的加密解密步 驟能夠成功的最基本要素。
[0014] 二、丟棄泄露位的操作。由于要對Alice和Bob的密鑰進行糾錯必須進行雙方的 通信,而這種通信也有可能會被竊聽者eve竊聽。通信中在信道中傳輸?shù)挠嘘P(guān)密鑰的信息 都可能泄露給竊聽者,這樣竊聽者可能根據(jù)竊聽到的信息偽裝成接收端或者發(fā)送端,這樣 系統(tǒng)的安全就無法保證。因此,出于安全性考慮,糾錯過程中,Alice傳給Bob的有關(guān)密鑰 的位信息都要被丟棄。具體的原則是,在信道中傳遞了多少位有關(guān)密鑰的信息,就丟棄多少 位密鑰。
[0015] 三、保留盡可能長的密鑰。在保證密鑰一致性和安全性的前提下,使得在糾錯結(jié)束 后,Alice和Bob持有的密鑰盡可能的長。由于在糾錯過程中會丟棄密鑰中的一些位,因此 在糾錯結(jié)束時Alice和Bob雙方的密鑰會比初始時少很多。而由于加密的要求,需要使得 Alice和Bob所持有的密鑰盡可能的長。
[0016] 評價糾錯性能的最重要指標是糾錯效率,它代表產(chǎn)生的密鑰在整個量子密鑰分發(fā) 系統(tǒng)能夠帶來的貢獻,保留越長的密鑰,系統(tǒng)的性能越好。如圖2所示,糾錯效率的定義如 下:糾錯效率=糾錯后剩余的密鑰長度/糾錯前密鑰長度。
[0017] Cascade是一種基于對分查錯協(xié)議的交互式糾錯協(xié)議,對分查錯協(xié)議(BBBSS)是 第一個應用于量子密鑰分發(fā)后處理的糾錯協(xié)議。對分協(xié)議主要原理是Alice和Bob不斷二 分當前的塊,通過傳輸奇偶校驗和來定位錯誤在前一半或后一半,不斷縮小查找范圍,最終 得到一位錯誤。這樣,在一個分塊中,如果錯誤為奇數(shù)個,則最終可以糾正一個錯誤,否則, 不能查找出錯誤。
[0018] 具體點說,當Alice和Bob對應某一塊中的密鑰含有奇數(shù)個錯誤時:Alice將塊內(nèi) 的密鑰平分成兩個子塊,計算其中一個子塊的奇偶校驗和發(fā)送給Bob,在我們的實現(xiàn)中,是 將前一個子塊的奇偶校驗和發(fā)給Bob ;
[0019] Bob以同樣的方式劃分自己的密鑰串,并將計算結(jié)果與Alice比較,確定密鑰串的 哪一個子塊中含有奇數(shù)個錯誤,我們的實現(xiàn)中,具體方法是這樣:Bob將塊內(nèi)密鑰平均分成 兩個子塊,計算前一個子塊中的奇偶校驗和,和傳過來的Alice的奇偶校驗和進行比較,如 果奇偶校驗和相同,則說明誤碼出現(xiàn)在后一個子塊中,否則誤碼出現(xiàn)在前一個子塊中;
[0020] 利用前兩步操作,可以將錯誤出現(xiàn)的范圍每次縮小一半。重復這一過程,直到確定 找到一個錯誤。對比其他協(xié)議,它在一輪中一定可以糾正一個誤碼,因此他的糾錯效率相對 較高。
[0021] 但傳統(tǒng)的Cascade協(xié)議在最關(guān)鍵最重要的指標 糾錯效率的表現(xiàn)并沒有理論上 計算的好。因為傳統(tǒng)協(xié)議只是進行簡單的二分定位,在糾錯過程中在信道內(nèi)傳遞了較多冗 余信息,暴露的密鑰過多,糾錯結(jié)束后所剩余的密鑰數(shù)量比較少。傳統(tǒng)協(xié)議沒有充分利用通 信雙方傳遞的信息,浪費了帶寬和信道傳輸?shù)男畔?,使得整個協(xié)議所達到的吞吐量并不高, 也就是糾錯效率不高。
【發(fā)明內(nèi)容】
[0022] 本發(fā)明的目的在于提供一種在量子密鑰分發(fā)后處理中對誤碼進行糾錯時提高糾 錯效率的糾錯方法。
[0023] 為達到上述發(fā)明目的,本發(fā)明提供一種量子密鑰分發(fā)后處理中對誤碼進行級聯(lián)糾 錯的方法,包括:
[0024] 發(fā)送端獲取第一原始密鑰和誤碼率估計值;
[0025] 接收端獲取第二原始密鑰和誤碼率估計值;
[0026] 發(fā)送端和接收端分別根據(jù)誤碼率估計值計算塊長,確定各自的調(diào)度方案,進行多 輪糾錯;
[0027] 其中,一輪糾錯過程包括如下步驟:
[0028] S1、發(fā)送端產(chǎn)生隨機種子并將隨機種子發(fā)給接收端,發(fā)送端和接收端根據(jù)隨機種 子對自身密鑰進行隨機重排;
[0029] S2、發(fā)送端和接收端根據(jù)調(diào)度方案中每一輪的密鑰分塊長度,將第一、二原始密鑰 進行分塊,并給第一、二原始密鑰的每個密鑰位按照相同順序編號;
[0030] S3、發(fā)送端和接收端記錄隨機重排前原始位置與重排后位置的對應關(guān)系;
[0031] S4、發(fā)送端和接收端對各自的每個密鑰塊求奇偶校驗和,并且發(fā)送端將自身每個 密鑰塊的奇偶校驗和發(fā)送給接收端;
[0032] S5、接收端將自身的每個密鑰塊奇偶校驗和與其密鑰塊編號相同的發(fā)送端自身的 密鑰塊奇偶校驗和進行異或運算,如果結(jié)果為1,則接收端的密鑰塊奇偶校驗和與其密鑰 塊編號相同的發(fā)送端的密鑰塊奇偶校驗和不同,其存在奇數(shù)個錯誤;
[0033] 將奇偶校驗和不同的密鑰塊編號發(fā)給發(fā)送端,其中,接收端和發(fā)送端分別將這些 奇偶校驗和不同的密鑰塊記作mismatch塊;
[0034] S6、發(fā)送端和接收端對各自所有mismatch塊進行對塊二分:
[0035] 若mismatch塊中發(fā)送端和接收端對應某一密鑰塊中的密鑰含有奇數(shù)個錯誤時, 將發(fā)送端和接收端的塊內(nèi)密鑰平分成兩個子塊,把前一個子塊的密鑰作為S4的輸入,運行 S4 ;
[0036] 若mismatch塊中發(fā)送端和接收端對應某一密鑰塊中的密鑰含有偶數(shù)個錯誤時, 不進行糾錯;
[0037] 若子塊中的密鑰長度為1,即定位到了誤碼出現(xiàn)的位置,將結(jié)果輸出到S7 ;
[0038] S7、根據(jù)S6得到的誤碼的準確位置信息,將接收端對應位的0或1值取反;
[0039] S8,回溯查錯;
[0040] 通過S5找到本輪被糾正的誤碼的位置,再通過S3記錄的歷史記錄信息,找到誤碼 在隨機重排前的位置,此時,產(chǎn)生了新的有奇數(shù)個錯誤的塊,在新的塊中的誤碼記作伴隨錯 誤;利用歷史記錄信息,對這些新定位出有誤碼的塊再次進行二分查錯;不斷回溯糾錯,當 發(fā)送端和接收端在記錄中全部輪數(shù)的所有的塊下的奇偶校驗都一致時停止,這時根據(jù)糾錯 的調(diào)度方案,進入下一輪的糾錯;
[0041] 其中,伴隨錯誤是指,在上一次的糾錯過程中,某一塊在發(fā)送端和接收端的奇偶校 驗和相等,而在下一次的糾錯過程中糾正了這個塊的一個誤碼,則該塊中一定存在另一個 誤碼,這個誤碼成為伴隨錯誤。
[0042] 進一步,步驟S6中,若mismatch塊中發(fā)送端和接收端對應某一密鑰塊中的密鑰 含有偶數(shù)個錯誤時,當mismatch塊是分塊之后第一次的奇偶校驗和,則不進行糾錯;當 mismatch塊不是分塊之后第一次的奇偶校驗和,即前一次二分之后的前一半子塊的奇偶校 驗結(jié)果,則對前一次二分之后的后一半子塊的密鑰進行二分。
[0043] 進一步,調(diào)度方案中,初始塊長為0. 8/e,之后每一輪的塊長為前一輪的塊長的5 倍;其中,e為誤碼率估計值。
[0044] 本發(fā)明基于對分查錯的交互式糾錯協(xié)議,采用變長密鑰塊塊長,即根據(jù)誤碼率的 不同采取不同的塊長,每次糾錯過程中的每一輪都采取不同的塊長;在進行糾錯的過程中 通過回溯查找,進行伴隨錯誤的糾錯,利用歷史信息,充分挖掘通信雙方的交互信息,在一 輪糾錯中完成傳統(tǒng)協(xié)議多輪才能完成的效果,大大提高了糾錯效率。
【附圖說明】
[0045] 圖1為量子密鑰分發(fā)系統(tǒng)中Alice/Bob的結(jié)構(gòu)不意圖;
[0046] 圖2為糾錯效率的示意圖;
[0047] 圖3為Cascade協(xié)議實現(xiàn)時的數(shù)據(jù)結(jié)構(gòu)圖;
[0048] 圖4為本發(fā)明一輪級聯(lián)糾錯的流程圖;
[0049] 圖5為本發(fā)明密鑰隨機重排的示意圖;
[0050] 圖6為本發(fā)明實施例中糾錯時的舉例圖;
[0051] 圖7為本發(fā)明實施例中回溯查錯時的舉例圖;
[0052] 圖8為本發(fā)明與傳統(tǒng)糾錯時效率的對比圖。
【具體實施方式】
[0053] Cascade協(xié)議在實現(xiàn)時的數(shù)據(jù)結(jié)構(gòu)如圖3所示,Cascade, cpp是協(xié)議的主類, 它內(nèi)部有整個協(xié)議的實現(xiàn)過程,按照Cascade協(xié)議的執(zhí)行流程進行糾錯。它調(diào)用Data_ Interface, cpp的函數(shù)來在發(fā)送端Alice和接收端Bob建立連接;用CommuData. cpp的函 數(shù)來對Alice和Bob雙方的交互信息進行封裝和解封;調(diào)用CascadeRecord. cpp中提供的 數(shù)據(jù)結(jié)構(gòu)和算法進行奇偶校驗和計算,分塊,定位誤碼位置,定位回溯查找伴隨錯誤時定位 字塊位置,記錄隨機重排的位置對應關(guān)系等;用Para, cpp中的函數(shù)得到協(xié)議輸入的誤碼率 和密鑰。
[0054] 通信雙方根據(jù)系統(tǒng)輸入的對誤碼率的估計,設置調(diào)度方案。本發(fā)明設計的具體方 案如下:初始塊長為〇. 8/e,e為誤碼率估計值,之后每一輪的塊長為前一輪的塊長的5倍。 例如初始估計誤碼率為5%,則初始塊長為16,第二輪的塊長為80,第三輪的塊長為400,以 此類推。這樣糾錯的調(diào)度方案是根據(jù)多次實驗得到的,可以取得最大的效率,并保證徹底糾 錯完成。
[0055] 糾錯按照先使用小塊長,再使用大塊長的原則。因為需要很多輪的糾錯,因此需要 在一開始就把每一輪的塊長確定下來。并且,由于通信雙方的誤碼率估計值是相同的,通信 雙方的調(diào)度方案也是相同的。Alice和Bob分別按照該調(diào)度方案,根據(jù)每一輪糾錯的塊長 大小進行糾錯。
[0056] 糾錯階段:糾錯要進行多輪,每一輪都按照下面的流程,只是分塊的長度不一樣。
[0057] 如圖4所示,是具體進行一輪Winnow糾錯時,密鑰糾錯的過程與數(shù)據(jù)傳輸?shù)倪^程。 縱向的箭頭指的是A1 ice和Bob內(nèi)部的密鑰的流向,是發(fā)送端和接收端內(nèi)部的算法;橫向的 箭頭指的是通信雙方交互的信息的流向。下面是一輪糾錯過程的詳細步驟,其包括:
[0058] S1、隨機重排:發(fā)送端產(chǎn)生隨機種子并將隨機種子發(fā)給接收端,發(fā)送端和接收端根 據(jù)隨機種子對自身密鑰進行隨機重排;
[0059] 隨機重排就是對Alice和Bob獲取的第一、二原始密鑰進行一次重新的排序,使得 誤碼盡可能隨機分布,使得糾錯的效率達到最優(yōu)。如圖5所示,這就是一次簡單的,交換位 數(shù)較少的隨機重排。隨機重排只是對密鑰中隨機的一些位進行交換,不會影響〇和1的總 數(shù)。并且通信雙方使用一個隨機種子,所以隨機重排后誤碼的個數(shù)也不發(fā)生改變。
[0060] 進行隨機重排的原因是,用cascade協(xié)議僅進行一輪糾錯是不夠的,因為一輪只 能糾正一個塊中的一個錯誤。進行隨機重排之后可以使得誤碼重新分布,就可以再利用 cascade協(xié)議進行糾錯了。
[0061] 具體的過程是,由Alice產(chǎn)生隨機種子,發(fā)送給Bob ;這樣雙方持有的是相同的隨 機種子。接著,Alice和Bob利用這個隨機種子對自身密鑰進行隨機重排。
[0062] S2、密鑰分塊:發(fā)送端和接收端根據(jù)調(diào)度方案中每一輪的密鑰分塊長度,將第一、 二原始密鑰進行分塊,并給第一、二原始密鑰的每個密鑰位按照相同順序編號;
[0063] S3、記錄:發(fā)送端和接收端記錄隨機重排前原始位置與重排后位置的對應關(guān)系;
[0064] 根據(jù)級聯(lián)的原理,記錄模塊需要記錄隨機重排前原始位置與重排后位置的對應關(guān) 系,也就是說,現(xiàn)在的每一個位置上的值,在隨機重排之前是出現(xiàn)在什么位置。另外,還需要 記錄分塊中每一個位置上的0、1值。
[0065] 例如:
[0066] 還是上面的例子,隨機重排后我們記錄下的對應位置就是
[0067]
[0068] 根據(jù)記錄,我們可以知道目前密鑰中的每一位,對應的是隨機重排之前的哪一位。 這是在后面的回溯查錯模塊中需要的信息。
[0069] S4、計算奇偶校驗和:發(fā)送端和接收端對各自的每個密鑰塊求奇偶校驗和,并且發(fā) 送端將自身每個密鑰塊的奇偶校驗和發(fā)送給接收端;求奇偶校驗和的方法如下:
[0070] 求奇偶校驗和的方法:將塊內(nèi)每一位相加,得到的結(jié)果是奇數(shù)記為1,偶數(shù)記為0。 等價于求塊內(nèi)的1的個數(shù)的奇偶性。
[0071] 求奇偶校驗和的目的:由于cascade協(xié)議只能糾正一個塊內(nèi)的單個錯誤,因此如 果通信雙方的奇偶校驗結(jié)果相同,說明該塊中存在偶數(shù)個錯誤,這樣就不需要在這一塊中 用二分的方法進行糾錯了。
[0072] S5、檢查每一塊是否存在奇數(shù)個錯誤:接收端將自身的每個密鑰塊奇偶校驗和與 其密鑰塊編號相同的發(fā)送端自身的密鑰塊奇偶校驗和進行異或運算,如果結(jié)果為1,則接收 端的密鑰塊奇偶校驗和與其密鑰塊編號相同的發(fā)送端的密鑰塊奇偶校驗和不同,其存在奇 數(shù)個錯誤;
[0073] 將奇偶校驗和不同的密鑰塊編號發(fā)給發(fā)送端,其中,接收端和發(fā)送端分別將這些 奇偶校驗和不同的密鑰塊記作mismatch塊;
[0074] S6、二分查找:發(fā)送端和接收端對各自所有mismatch塊進行對塊二分;
[0075] 若mismatch塊中發(fā)送端和接收端對應某一密鑰塊中的密鑰含有奇數(shù)個錯誤時, 將發(fā)送端和接收端的塊內(nèi)密鑰平分成兩個子塊,把前一個子塊的密鑰作為S4的輸入,運行 S4 ;
[0076] 若mismatch塊中發(fā)送端和接收端對應某一密鑰塊中的密鑰含有偶數(shù)個錯誤時, 不進行糾錯;進一步,當mismatch塊是分塊之后第一次的奇偶校驗和,則不進行糾錯;當 mismatch塊不是分塊之后第一次的奇偶校驗和,即前一次二分之后的前一半子塊的奇偶校 驗結(jié)果,則對前一次二分之后的后一半子塊的密鑰進行二分。
[0077] 不論上述哪種情況,若子塊中的密鑰長度為1,即定位到了誤碼出現(xiàn)的位置,將結(jié) 果輸出到S7 ;
[0078] S7、糾錯:根據(jù)S6得到的誤碼的準確位置信息,將接收端對應位的0或1值取反;
[0079] 下面是一個糾錯的例子:
[0080] 如圖6所示,顯示了 3個塊,Alice的3個塊的奇偶校驗和分別是l、0、l,Bob對應 的塊的奇偶校驗和是1、1、1。由此通信雙方可以判斷出來在第二個塊那里出現(xiàn)了奇數(shù)個 誤碼。這時Alice和Bob同時對第二塊密鑰進行二分,計算出前一分塊的奇偶校驗和,由 Alice把自己的奇偶校驗和傳給Bob,Bob進行比較,發(fā)現(xiàn)二者都為1,因此誤碼發(fā)生在后一 分塊中。于是Alice和Bob再將第二塊密鑰的后半部分再進行二分,計算出其中前一子塊 的奇偶校驗和,以此進行,直到定位到誤碼的準確位置為止。這樣就可以把存在奇數(shù)個誤碼 的塊中的一個誤碼糾正過來。
[0081] 當一輪糾錯結(jié)束后,進行S8,回溯查錯;
[0082] 伴隨錯誤是指,在上一次的糾錯過程中,某一塊在發(fā)送端和接收端的奇偶校驗和 相等,而在下一次的糾錯過程中糾正了這個塊的一個誤碼,則該塊中一定存在另一個誤碼, 這個誤碼成為伴隨錯誤。
[0083] 例如,我們假設在某一輪糾錯結(jié)束后,Alice和Bob的對應塊的內(nèi)容如下:
[0084]
[0085] 上表中,Alice和Bob的對應塊的奇偶校驗和都為1,即都有奇數(shù)個1,這時無法糾 正錯誤。但是一旦在下一輪中糾正了第3位上的錯誤,將這一塊的內(nèi)容變成:
[0086]
[0087] 這時這一塊就只有一個錯誤,Alice和Bob的奇偶校驗和便不一樣了,可以繼續(xù)進 行糾錯。
[0088] 通過S5找到本輪被糾正的誤碼的位置,再通過S3記錄的歷史記錄信息,找到誤碼 在隨機重排前的位置,此時,產(chǎn)生了新的有奇數(shù)個錯誤的塊,在新的塊中的誤碼記作伴隨錯 誤;這是因為,在每一輪糾錯完成后,所有的塊的奇偶校驗和在Alice和Bob都相同,而在下 一輪的糾錯過程中,糾正了一個誤碼,則說明在同一塊中一定存在另一個誤碼,以保證在上 一輪糾錯的最后Alice和Bob的奇偶校驗和相同。這時,利用歷史記錄信息,對這些新定位 出有誤碼的塊再次進行二分查錯,而不需要重新打亂重排,分塊,糾錯這一系列操作。找到 伴隨錯誤之后,這個伴隨錯誤有可能在其他輪中存在新的伴隨錯誤,因此可以不斷地回溯 進行糾錯,即這一步可以不斷迭代進行,直到在當前所有輪的所有記錄中都找不到出錯的 塊,即當發(fā)送端和接收端在記錄中全部輪數(shù)的所有的塊下的奇偶校驗都一致時停止,這時 根據(jù)糾錯的調(diào)度方案,進入下一輪的糾錯。
[0089] 下面是一個回溯糾錯的例子:
[0090] 在圖7所不的密鑰中,一共存在5個誤碼,2個分布在第一塊中,1個分布在第二塊 中,2個分布在第三塊中,紅色代表誤碼。在第一輪糾錯之后,由于cascade協(xié)議只能糾正奇 數(shù)個誤碼,因此在糾錯結(jié)束時只能糾正第二塊存在的一個誤碼。在進行了隨機重排之后,繼 續(xù)進行一輪糾錯就可以再糾正2個錯誤。糾正之后,我們利用歷史記錄信息進行回溯,發(fā)現(xiàn) 這兩個錯誤在上一輪糾錯中,所在的塊的奇偶校驗和都是〇,因此兩個錯誤所在的塊一定各 存在一個伴隨錯誤,對這兩個塊就可以再進行二分查錯和糾錯,糾正兩個伴隨錯誤,這樣, 兩輪就可以糾正完所有的誤碼。
[0091] 這樣進行一輪之后,就可以糾正一些誤碼,下一輪只需要在上一輪的塊長上乘以 5,然后再進行上述操作即可。由于Cascade協(xié)議和我們的改進,一輪糾正誤碼較為徹底,因 此,按照多次實驗證實的結(jié)論,只需要進行4輪即可保證糾錯成功,Alice端和Bob端都不 存在誤碼。
[0092] 為了體現(xiàn)本發(fā)明的效率,我們與傳統(tǒng)Cascade算法進行了比較,如圖8所示(其 中,橫軸是誤碼率,縱軸是糾錯效率),數(shù)據(jù)如下表所示:
[0093]
[0095] 通過數(shù)據(jù)可以看出,本發(fā)明與傳統(tǒng)方法比較,大大提高了糾錯效率。
【主權(quán)項】
1. 一種量子密鑰分發(fā)后處理中對誤碼進行級聯(lián)糾錯的方法,包括: 發(fā)送端獲取第一原始密鑰和誤碼率估計值; 接收端獲取第二原始密鑰和誤碼率估計值; 發(fā)送端和接收端分別根據(jù)誤碼率估計值計算塊長,確定各自的調(diào)度方案,進行多輪糾 錯; 一輪糾錯過程包括如下步驟: 51、 發(fā)送端產(chǎn)生隨機種子并將隨機種子發(fā)給接收端,發(fā)送端和接收端根據(jù)隨機種子對 自身密鑰進行隨機重排; 52、 發(fā)送端和接收端根據(jù)調(diào)度方案中每一輪的密鑰分塊長度,將第一、二原始密鑰進行 分塊,并給第一、二原始密鑰的每個密鑰位按照相同順序編號; 53、 發(fā)送端和接收端記錄隨機重排前原始位置與重排后位置的對應關(guān)系; 54、 發(fā)送端和接收端對各自的每個密鑰塊求奇偶校驗和,并且發(fā)送端將自身每個密鑰 塊的奇偶校驗和發(fā)送給接收端; 55、 接收端將自身的每個密鑰塊奇偶校驗和與其密鑰塊編號相同的發(fā)送端自身的密鑰 塊奇偶校驗和進行異或運算,如果結(jié)果為1,則接收端的密鑰塊奇偶校驗和與其密鑰塊編號 相同的發(fā)送端的密鑰塊奇偶校驗和不同,其存在奇數(shù)個錯誤; 將奇偶校驗和不同的密鑰塊編號發(fā)給發(fā)送端,其中,接收端和發(fā)送端分別將這些奇偶 校驗和不同的密鑰塊記作mismatch塊; 56、 發(fā)送端和接收端對各自所有mismatch塊進行對塊二分: 若mismatch塊中發(fā)送端和接收端對應某一密鑰塊中的密鑰含有奇數(shù)個錯誤時,將發(fā) 送端和接收端的塊內(nèi)密鑰平分成兩個子塊,把前一個子塊的密鑰作為S4的輸入,運行S4 ; 若mismatch塊中發(fā)送端和接收端對應某一密鑰塊中的密鑰含有偶數(shù)個錯誤時,不進 行糾錯; 若子塊中的密鑰長度為1,即定位到了誤碼出現(xiàn)的位置,將結(jié)果輸出到S7 ; 57、 根據(jù)S6得到的誤碼的準確位置信息,將接收端對應位的0或1值取反; 其特征在于,還包括S8,回溯查錯; 58、 通過S5找到本輪被糾正的誤碼的位置,再通過S3記錄的歷史記錄信息,找到誤碼 在隨機重排前的位置,此時,產(chǎn)生了新的有奇數(shù)個錯誤的塊,在新的塊中的誤碼記作伴隨錯 誤;利用歷史記錄信息,對這些新定位出有誤碼的塊再次進行二分查錯;不斷回溯糾錯,當 發(fā)送端和接收端在記錄中全部輪數(shù)的所有的塊下的奇偶校驗都一致時停止,這時根據(jù)糾錯 的調(diào)度方案,進入下一輪的糾錯; 其中,伴隨錯誤是指,在上一次的糾錯過程中,某一塊在發(fā)送端和接收端的奇偶校驗和 相等,而在下一次的糾錯過程中糾正了這個塊的一個誤碼,則該塊中一定存在另一個誤碼, 這個誤碼成為伴隨錯誤。2. 根據(jù)權(quán)利要求1所述糾錯的方法,其特征在于,步驟S6中,若mismatch塊中發(fā)送端 和接收端對應某一密鑰塊中的密鑰含有偶數(shù)個錯誤時,當mismatch塊是分塊之后第一次 的奇偶校驗和,則不進行糾錯;當mismatch塊不是分塊之后第一次的奇偶校驗和,即前一 次二分之后的前一半子塊的奇偶校驗結(jié)果,則對前一次二分之后的后一半子塊的密鑰進行 二分。
【文檔編號】H04L9/08GK106027231SQ201510146098
【公開日】2016年10月12日
【申請日】2015年3月28日
【發(fā)明人】郭弘, 彭翔, 劉田
【申請人】北京大學