本發(fā)明涉及量子通信技術(shù)領(lǐng)域,具體涉及量子密鑰分發(fā)技術(shù)領(lǐng)域,尤其涉及一種多方量子密鑰分發(fā)系統(tǒng)及其糾錯方法。
背景技術(shù):
量子通信的安全性依賴于量子密鑰分發(fā),量子密鑰分發(fā)以量子物理與信息學(xué)為基礎(chǔ),被認為是安全性最高的加密方式,其需要一條用來傳輸量子態(tài)的量子信道,以及一條用來進行經(jīng)典交互的可認證的(無錯的)經(jīng)典信道。
在多方量子通信中,假設(shè)A向n個接收端發(fā)送相同的數(shù)據(jù),如果使用不同的密鑰,則A要準備n串密鑰分別發(fā)送給接收端,接收端分別進行糾錯,A要分別使用這n串密鑰對待發(fā)送數(shù)據(jù)進行加密。使用現(xiàn)有技術(shù)進行如上通信要加密n次,A需要保存n串密鑰,因此運算量大,存儲密鑰占用空間大;如果使用相同密鑰,A只需要保存一串密鑰,只需加密一次,因此運算量小,存儲密鑰占用空間小。
量子通信的糾錯算法一般為LDPC(low density parity check codes)編碼,LDPC編碼包含信息碼和校驗碼,在量子通信中,信息碼就是密鑰,校驗碼由校驗矩陣和密鑰相乘所得(校驗矩陣由PEG算法根據(jù)度分布計算得出),信息碼通過量子信道傳輸,校驗碼通過經(jīng)典信道傳輸。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于為避免上述現(xiàn)有技術(shù)所存在的不足,提出一種多方量子密鑰分發(fā)系統(tǒng)及其糾錯方法,其能夠解決在糾錯過程中運算量大,存儲密鑰占用空間大的問題。
一方面,本發(fā)明提供了一種用于多方量子密鑰分發(fā)的糾錯方法,應(yīng)用于包括發(fā)送端和至少兩個接收端的多方量子密鑰分發(fā)平臺,包括以下步驟:
S1:計算系統(tǒng)誤碼率;
S2:根據(jù)系統(tǒng)誤碼率確定校驗矩陣;
S3:根據(jù)校驗矩陣得到原始密鑰的校驗碼及共享密鑰的校驗碼;
S4:利用原始密鑰的校驗碼對接收端的共享密鑰向發(fā)送端的原始密鑰進行糾錯;
S5:判斷糾錯是否成功,并將糾錯結(jié)果發(fā)送到發(fā)送端;
S6:若糾錯成功,則停止運算;若糾錯不成功,則進行碼率調(diào)整得到新的原始密鑰和共享密鑰,并以碼率調(diào)整后的原始密鑰和共享密鑰返回執(zhí)行步驟S3~S6,直至糾錯成功或達到預(yù)設(shè)的最大的糾錯次數(shù);
首次進行碼率調(diào)整時需要計算puncturing、shortening的位數(shù)及其位置信息;
且相鄰兩次碼率調(diào)整過程中puncturing和shortening操作的位置進行如下調(diào)整:將上一次puncturing的位置信息中選取部分作為shortening的位置信息作為新的puncturing和shortening的位置信息以用于進行下一次碼率調(diào)整。
進一步的,步驟S1中計算系統(tǒng)誤碼率時,首先分別計算各個接收端相對于發(fā)送端的誤碼率,然后選擇其中最大的誤碼率得到系統(tǒng)誤碼率。
進一步的,誤碼率的計算方法為:各個接收端將預(yù)定好的部分共享密鑰分別發(fā)送給發(fā)送端,發(fā)送端將各個部分共享密鑰與各個原始密鑰中相應(yīng)位置上的值分別進行比對,以結(jié)果不同的位置總數(shù)和占參與對比的總位置數(shù)的比值作為誤碼率。
進一步的,所述步驟S5中判斷糾錯是否成功的方法為:通過判斷糾錯后的原始密鑰的校驗碼,與共享密鑰的校驗碼是否相同,若相同,則糾錯成功,若不相同,則糾錯不成功。
另一方面,本發(fā)明還提供了一種多方量子密鑰分發(fā)系統(tǒng),應(yīng)用于包括發(fā)送端和至少兩個接收端的多方量子密鑰分發(fā)平臺,包括
發(fā)送單元,用于將原始密鑰分別發(fā)送給接收端;
接收單元,用于在接收端接收來自發(fā)送端的原始密鑰,并以接收結(jié)果作為相應(yīng)的共享密鑰。
糾錯單元,用于對發(fā)送端的原始密鑰和各個接收端的共享密鑰進行糾錯使發(fā)送端的原始密鑰和各個接收端的共享密鑰相同。
進一步的,所述糾錯單元包括誤碼率計算單元,所述誤碼率計算單元通過各個接收端將預(yù)定好的部分共享密鑰分別發(fā)送給發(fā)送端,發(fā)送端將各個部分共享密鑰與各個原始密鑰中相應(yīng)位置上的值分別進行比對,以結(jié)果不同的位置總數(shù)占參與對比的總位置數(shù)的比值作為誤碼率,選擇其中最大的誤碼率得到系統(tǒng)誤碼率。
進一步的,所述糾錯單元還包括校驗碼計算單元,所述校驗碼計算單元用于根據(jù)系統(tǒng)誤碼率確定校驗矩陣,然后根據(jù)校驗矩陣得到原始密鑰的校驗碼及共享密鑰的校驗碼。
進一步的,所述糾錯單元包括LDPC糾錯單元,所述LDPC糾錯單元用于利用原始密鑰的校驗碼對接收端的共享密鑰向發(fā)送端的原始密鑰進行糾錯。
進一步的,所述糾錯單元包括碼率調(diào)整單元,所述碼率調(diào)整單元用于糾錯不成功后,進行碼率調(diào)整得到新的原始密鑰和共享密鑰,并以新的原始密鑰和共享密鑰替代上一次的原始密鑰和共享密鑰進行循環(huán)糾錯和碼率調(diào)整,直至糾錯成功或達到預(yù)設(shè)的最大的糾錯次數(shù);
首次進行碼率調(diào)整時需要計算puncturing、shortening的位數(shù)及其位置信息;且相鄰兩次碼率調(diào)整過程中puncturing和shortening操作的位置進行如下調(diào)整:將上一次puncturing的位置信息中選取部分作為shortening的位置信息作為新的puncturing和shortening的位置信息以用于進行下一次碼率調(diào)整。
本發(fā)明中,糾錯算法是基于多方量子密鑰分發(fā)進行的,首先進行多方量子密鑰分發(fā),在發(fā)送端形成發(fā)送端的原始密鑰,在各個接收端分別形成相應(yīng)的共享密鑰。
與現(xiàn)有技術(shù)相比,本申請具有以下優(yōu)點:
現(xiàn)有技術(shù)只能對兩方進行密鑰糾錯,本發(fā)明能夠?qū)Χ喾竭M行密鑰糾錯;如果將現(xiàn)有技術(shù)應(yīng)用于多方密鑰糾錯,只能依次成對進行糾錯,假設(shè)采用可變碼率LDPC編碼,碼率調(diào)整后,獲得的密鑰是不同的;如果采用固定碼率LDPC編碼時,因為沒有碼率調(diào)整,獲得相同密鑰的成功率會偏低;本發(fā)明能使用可變碼率LDPC編碼,進行多方密鑰糾錯獲得相同密鑰。
附圖說明
下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步詳細的說明。
圖1是本發(fā)明實施例1一種用于多方量子密鑰分發(fā)的糾錯方法的流程框圖;
圖2是本發(fā)明實施例1一種多方量子密鑰分發(fā)系統(tǒng)的結(jié)構(gòu)框圖。
具體實施方式
以下結(jié)合附圖,對本發(fā)明的技術(shù)方案作進一步的描述,但本發(fā)明并不限于這些實施例。
在本申請中,提供了一種多方量子密鑰分發(fā)系統(tǒng),一種用于多方量子密鑰分發(fā)系統(tǒng)的糾錯方法,在下面的實施例中逐一進行詳細說明。
實施例1
參考圖1,本實施例提供的一種用于三方量子密鑰分發(fā)的糾錯方法,應(yīng)用于包括發(fā)送端和兩個接收端的三方量子密鑰分發(fā)平臺。
其中,發(fā)送端為Alice端,兩個接收端分別為Bob端和Charlie端。Alice端用于將原始密鑰KA分別發(fā)送給Bob端和Charlie端。Bob端和Charlie端分別接收來自發(fā)送端的原始密鑰KA并得到相應(yīng)的共享密鑰KB和KC。
在實際應(yīng)用時,由于在復(fù)雜的光子序列傳輸、處理過程中存在光損耗、誤碼等問題,由于接收端接收到的結(jié)果和發(fā)送端發(fā)送的結(jié)果不一致,所以需要對Bob端和Charlie端接收到的共享密鑰進行糾錯。通過對Alice端的原始密鑰KA和Bob端、Charlie端的共享密鑰KB和KC進行糾錯,使Alice端的原始密鑰KA和Bob端、Charlie端的共享密鑰KB和KC均相同(即糾錯成功后:KA=KB=KC)。
糾錯方法具體如下:
Alice端通過量子信道發(fā)送給Bob端獲得共享密鑰KB,Bob端將預(yù)先約定好的部分密鑰KB'通過經(jīng)典信道發(fā)送給Alice端,Alice端將部分密鑰KB’與原始密鑰KA相應(yīng)部分KA'進行比較,以比對結(jié)果不同的位置的總數(shù)和占參與比對的總位置數(shù)的比值作為Alice端和Bob端之間的誤碼率PeB。同理,根據(jù)原始密鑰KA、共享密鑰KC進行上述操作即可得到Alice端和Charlie端之間的誤碼率PeC。并以誤碼率PeB、PeC中的最大值作為該秘密共享系統(tǒng)的誤碼率Pe。
對于密鑰分發(fā)系統(tǒng),具有確定的可候選的校驗矩陣集合,集合中的各個校驗矩陣對應(yīng)于不同范圍的誤碼率,且各個矩陣具有唯一的索引信息(通常為矩陣ID)。由于校驗矩陣的所占內(nèi)存大于索引信息,在計算校驗碼的過程中,并不需要將校驗矩陣傳輸后進行計算,而是通過傳輸與該校驗矩陣相對應(yīng)的索引信息,通過索引信息可以直接調(diào)取該校驗矩陣的信息。根據(jù)Pe從預(yù)存的包括至少一個矩陣的校驗矩陣集合(根據(jù)度分布表采用PEG算法計算得到)中選擇一個作為相應(yīng)的校驗矩陣H;Alice端使用校驗矩陣H和原始密鑰KA進行矩陣乘法操作獲得原始密鑰KA的校驗碼SA;Alice端將校驗矩陣索引信息及校驗碼SA通過經(jīng)典信道發(fā)送給Bob端和Charlie端,Bob端和Charlie端獲得校驗矩陣索引信息和校驗碼SA后,根據(jù)校驗矩陣索引信息得到校驗矩陣H,進而算出校驗碼SB、SC。
在糾錯過程中,分別利用校驗碼SA對共享密鑰KB、KC向原始密鑰KA進行LDPC糾錯;并將糾錯結(jié)果(是否成功)通過經(jīng)典信道發(fā)送給Alice端。
Alice端等待接收到Bob端和Charlie端的成功或失敗消息,通過如下方法判斷成功或失?。?/p>
分別計算Bob端和Charlie端的校驗碼SB、SC,判斷校驗碼SA=SB=SC是否成立:若成立,則糾錯成功;若不成立,則糾錯失敗。
如果Bob端和Charlie端均糾錯成功,則向Bob端和Charlie端返回成功消息,糾錯結(jié)束。
否則,進行如下步驟:
Alice端、Bob端和Charlie端進行puncturing(穿刺)和shortening(截短)碼率調(diào)整,具體過程如下:
如果首次調(diào)整碼率,則要計算puncturing的位數(shù)p和shortening的位數(shù)s、位置信息(puncturing位置和shortening位置),具體計算過程如下:
假設(shè)可變碼率δ(一般取δ=10%),密鑰長度為n,初始碼率為R0,錯誤率為∈,預(yù)期的f因子為f(∈)(一般選取f(∈)=1.2),那么可以得出可調(diào)位數(shù)d以及熵H2(∈):
(b1-1-2)估算需要的碼率:
R=1-f(∈)H2(∈) (2)
根據(jù)(1)、(2)的結(jié)果可以算出shortening和puncturing的位數(shù):
Alice端隨機生成如下成d個不重復(fù)的隨機排列的隨機數(shù)表示位置信息,每個隨機數(shù)的取值范圍均為1~n,n是密鑰的長度。隨機數(shù)前p位表示puncturing位置,后s位表示shortening位置。通過經(jīng)典信道Alice端發(fā)送位置信息給Bob端和Charlie端。
根據(jù)puncturing和shortening的位置信息按照任意順序依次進行puncturing和shortening得到新的密鑰KA1、KB1和KC1。
puncturing和shrotening具體過程如下:
puncturing:Alice端、Bob端和Charlie端各自獨立生成p位二進制隨機數(shù),分別按照puncturing位置信息將原始數(shù)據(jù)替換成自己生成的p位二進制隨機數(shù)。
shortening:Alice端生成s位二進制隨機數(shù),將此s位二進制隨機數(shù)通過經(jīng)典信道發(fā)送給Bob端和Charlie端,Alice端、Bob端和Charlie端三方按照shortening位置信息將原始數(shù)據(jù)替換成此s位二進制隨機數(shù)。
根據(jù)所得新的密鑰KA1、KB1和KC1更新校驗碼SA、SB、SC,進行循環(huán)糾錯,直到多方糾錯成功,或達到預(yù)先約定的循環(huán)次數(shù)上限。
在糾錯過程中,設(shè)定采用LDPC糾錯方法進行糾錯的最大次數(shù)設(shè)定為5次。在實際糾錯過程中,一般情況下,通過3次糾錯即可糾錯完成。若在特殊情況下,通過5次糾錯還不能糾錯成功,則系統(tǒng)停止運算。
對于上一次糾錯成功的一方,再次向Alice端發(fā)送成功消息;對于上一次糾錯失敗的一方,進行LDPC方法糾錯,完成后向Alice端發(fā)送成功或失敗消息。
如果不是首次調(diào)整碼率,則puncturing和shortening操作的位置進行如下調(diào)整:將上一次puncturing的位置信息中選取部分作為shortening的位置信息作為新的puncturing和shortening的位置信息以用于進行下一次碼率調(diào)整。
在上述的實施例中,提供了一種用于三方量子密鑰分發(fā)系統(tǒng)的糾錯方法,進一步的,本申請還提供了一種三方量子密鑰分發(fā)系統(tǒng)。
參考圖2,本實施例提供的一種三方量子密鑰分發(fā)系統(tǒng)應(yīng)用于包括發(fā)送端和兩個接收端的三方量子密鑰分發(fā)平臺,包括:發(fā)送單元,用于將原始密鑰分別發(fā)送給接收端;接收單元,用于在接收端收來自發(fā)送端的原始密鑰,并以接收結(jié)果作為相應(yīng)的共享密鑰。糾錯單元,用于對發(fā)送端的原始密鑰和各個接收端的共享密鑰進行糾錯使發(fā)送端的原始密鑰和各個接收端的共享密鑰相同。
進一步的所述糾錯單元包括誤碼率計算單元,所述誤碼率計算單元通過各個接收端將預(yù)定好的部分共享密鑰分別發(fā)送給發(fā)送端,發(fā)送端將各個部分共享密鑰與各個原始密鑰中相應(yīng)位置上的值分別進行比對,以結(jié)果不同的位置總數(shù)占參與對比的總位置數(shù)的比值作為誤碼率,選擇其中最大的誤碼率得到系統(tǒng)誤碼率;所述糾錯單元還包括校驗碼計算單元,所述校驗碼計算單元用于根據(jù)系統(tǒng)誤碼率確定校驗矩陣,然后根據(jù)校驗矩陣得到原始密鑰的校驗碼及共享密鑰的校驗碼;所述糾錯單元還包括LDPC糾錯單元,所述LDPC糾錯單元用于利用原始密鑰的校驗碼對接收端的共享密鑰向發(fā)送端的原始密鑰進行糾錯;所述糾錯單元還包括碼率調(diào)整單元,所述碼率調(diào)整單元用于糾錯不成功后,進行碼率調(diào)整得到新的原始密鑰和共享密鑰,并以新的原始密鑰和共享密鑰替代上一次的原始密鑰和共享密鑰進行循環(huán)糾錯和碼率調(diào)整,直至糾錯成功或達到預(yù)設(shè)的最大的糾錯次數(shù);首次進行碼率調(diào)整時需要計算puncturing、shortening的位數(shù)及其位置信息;且相鄰兩次碼率調(diào)整過程中puncturing和shortening操作的位置進行如下調(diào)整:將上一次puncturing的位置信息中選取部分作為shortening的位置信息作為新的puncturing和shortening的位置信息以用于進行下一次碼率調(diào)整。
另外,發(fā)送端還包括量子隨機數(shù)發(fā)生器,量子隨機數(shù)發(fā)生器用于產(chǎn)生隨機數(shù),根據(jù)這些隨機數(shù)就能生成各個接收端的原始密鑰。
實施例2
本實施例提供的一種多方量子密鑰分發(fā)系統(tǒng)以及一種用于多方量子密鑰分發(fā)的糾錯方法。
與實施例1相比,該多方量子密鑰分發(fā)系統(tǒng)應(yīng)用于一個發(fā)送端和多個接收端的多方量子密鑰分發(fā)平臺,其工作原理與實施例1相同,這里不再重復(fù)說明。
該糾錯方法用于對發(fā)送端的原始密鑰和多個接收端的共享密鑰進行糾錯使發(fā)送端的原始密鑰和多個接收端的共享密鑰相同。與實施例1相比,本實施例中的糾錯方法應(yīng)用于一個發(fā)送端和多個接收端的多方量子密鑰分發(fā)平臺,但其在實際算法上可由實施例1推理可得,這里不再重復(fù)說明。
本文中所描述的具體實施例僅僅是對本發(fā)明精神作舉例說明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對所描述的具體實施例做各種各樣的修改或補充或采用類似的方式替代,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。