本發(fā)明涉及量子通信技術(shù)領(lǐng)域,具體涉及量子密鑰分發(fā)技術(shù)領(lǐng)域,尤其涉及一種多方量子密鑰分發(fā)系統(tǒng)的糾錯(cuò)方法。
背景技術(shù):
量子通信的安全性依賴于量子密鑰分發(fā),量子密鑰分發(fā)以量子物理與信息學(xué)為基礎(chǔ),被認(rèn)為是安全性最高的加密方式,其需要一條用來傳輸量子態(tài)的量子信道,以及一條用來進(jìn)行經(jīng)典交互的可認(rèn)證的(無錯(cuò)的)經(jīng)典信道。
在多方量子通信中,假設(shè)A向n個(gè)接收端發(fā)送相同的數(shù)據(jù),如果使用不同的密鑰,則A要準(zhǔn)備n串密鑰分別發(fā)送給接收端,接收端分別進(jìn)行糾錯(cuò),A要分別使用這n串密鑰對(duì)待發(fā)送數(shù)據(jù)進(jìn)行加密。使用現(xiàn)有技術(shù)進(jìn)行如上通信要加密n次,A需要保存n串密鑰,因此運(yùn)算量大,存儲(chǔ)密鑰占用空間大;如果使用相同密鑰,A只需要保存一串密鑰,只需加密一次,因此運(yùn)算量小,存儲(chǔ)密鑰占用空間小。
Winnow糾錯(cuò)算法是QKD系統(tǒng)三大糾錯(cuò)算法之一,但是目前只局限于兩方糾錯(cuò)。博士論文《遠(yuǎn)距離量子密鑰分發(fā)系統(tǒng)的相關(guān)研究》介紹了基于Winnow的糾錯(cuò)算法,具體如下:
1、Alice和Bob將密鑰串分成長(zhǎng)度Nh=2m-1的密鑰段,其中m是Hamming伴隨式的長(zhǎng)度,它決定了Hamming碼的長(zhǎng)度Nh。
2、Alice計(jì)算每個(gè)密鑰段的奇偶校驗(yàn)值,把它們發(fā)送給Bob,Bob計(jì)算相應(yīng)密鑰段的奇偶校驗(yàn)值,和Alice的作比較,取出奇偶校驗(yàn)結(jié)果不同的段。
3、Alice和Bob把它們分別記為集合A和B,Alice計(jì)算A中每個(gè)密鑰段的Hamming伴隨式Sa,i(i∈A),把它發(fā)送給Bob,Bob計(jì)算Sb,i(i∈B),在獲得到Sa,i后計(jì)算
4、根據(jù)Hamming碼的特性,Sd,i表示Alice和Bob第i個(gè)子段中錯(cuò)誤比特的位置,Bob翻轉(zhuǎn)Sd,i位置的密鑰比特,即0→1,1→0。
5、Alice與Bob按照相同方式打亂密鑰串。
6、進(jìn)行錯(cuò)誤率估計(jì):
(a)如果錯(cuò)誤率仍大于某預(yù)設(shè)值,則修改段長(zhǎng)為原來的2倍,返回至第2步進(jìn)行循環(huán)迭代,直到滿足結(jié)束條件。
(b)如果錯(cuò)誤率小于某預(yù)設(shè)值,糾錯(cuò)結(jié)束進(jìn)入后面的校驗(yàn)過程。
對(duì)密鑰進(jìn)行校驗(yàn),如果校驗(yàn)不通過,則拋棄整個(gè)密鑰。
博士論文《遠(yuǎn)距離量子密鑰分發(fā)系統(tǒng)的相關(guān)研究》提及的傳統(tǒng)的winnow糾錯(cuò)算法,在后續(xù)的迭代過程中,當(dāng)前段長(zhǎng)選為上一次迭代段長(zhǎng)的2倍。該方法的段長(zhǎng)選擇過于簡(jiǎn)單,段長(zhǎng)并非最優(yōu)值,效率不高。
針對(duì)上述問題,公告號(hào)為106027230A的中國(guó)發(fā)明專利申請(qǐng)文件《一種量子密鑰分發(fā)后處理中對(duì)誤碼進(jìn)行漢明糾錯(cuò)的方法》,通過變長(zhǎng)密鑰塊塊長(zhǎng),提高了漢明糾錯(cuò)協(xié)議的糾錯(cuò)效率。然而此方法僅適用于兩方糾錯(cuò),不能直接應(yīng)用于多方糾錯(cuò)。且該糾錯(cuò)方法沒有選取最優(yōu)段長(zhǎng),需持續(xù)循環(huán)直到雙方密鑰一致,較為冗長(zhǎng)繁瑣。
該密鑰分發(fā)過程中僅僅涉及到密鑰分發(fā)問題,并沒有涉及到分發(fā)后的糾錯(cuò),也未給出相應(yīng)的糾錯(cuò)方法,可靠性不高。
或者僅僅適用于兩方糾錯(cuò),不能直接應(yīng)用于多方糾錯(cuò)。
在現(xiàn)有的Winnow糾錯(cuò)方法中,糾錯(cuò)方法沒有選取最優(yōu)段長(zhǎng),需持續(xù)循環(huán)直到雙方密鑰一致,較為冗長(zhǎng)繁瑣,且僅適用于兩方糾錯(cuò),不能直接應(yīng)用于多方糾錯(cuò)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于為避免上述現(xiàn)有技術(shù)所存在的不足,提出一種可靠性高,糾錯(cuò)效率高,可適用于多方量子密鑰分發(fā)系統(tǒng)的糾錯(cuò)方法。
本發(fā)明提供了應(yīng)用于包括發(fā)送端和至少兩個(gè)接收端的多方量子密鑰分發(fā)平臺(tái),包括如下步驟:
S1:計(jì)算系統(tǒng)的誤碼率PeX;
S2:計(jì)算段長(zhǎng)序列集合;所述發(fā)送端根據(jù)系統(tǒng)誤碼率PeX在段長(zhǎng)序列集合中選取最優(yōu)段長(zhǎng)序列seg,記為seg={seg(1),…,seg(i),…,seg(n)},i∈[1,n],n為最大迭代的次數(shù),seg(i)為第i次迭代的段長(zhǎng);
S3:循環(huán)迭代執(zhí)行如下步驟:
S3.1:令i的初始值為1,將所述的發(fā)送端的原始密鑰和各接收端的共享密鑰按相同方式打亂密鑰串以進(jìn)行數(shù)據(jù)重排;
S3.2:根據(jù)段長(zhǎng)seg(i)對(duì)原始密鑰和共享密鑰進(jìn)行分段,得到若干分段密鑰;分別計(jì)算發(fā)送端與接收端的分段密鑰的奇偶校驗(yàn)和,對(duì)發(fā)送端與各接收端的奇偶校驗(yàn)和進(jìn)行運(yùn)算,得出不同的分段密鑰;
S3.3:根據(jù)seg(i)計(jì)算漢明伴隨式的長(zhǎng)度r,得到漢明矩陣H,通過Winnow糾錯(cuò)算法在所述的步驟S3.2得出的運(yùn)算結(jié)果不同的分段密鑰中,找出錯(cuò)誤比特位置;
S3.4:根據(jù)錯(cuò)誤比特位置對(duì)各接收方共享密鑰中相應(yīng)位置的0或1值取反,更新i為i+1,返回步驟S3.1;直至i=n+1,停止循環(huán);
S4:校驗(yàn)糾錯(cuò)結(jié)果;若各接收端都糾錯(cuò)成功,則結(jié)束運(yùn)算;若至少一個(gè)接收端糾錯(cuò)不成功,則拋棄相應(yīng)密鑰。
一種計(jì)算段長(zhǎng)序列集合的方法,包括如下步驟:
SA,設(shè)置錯(cuò)誤邊界eps;設(shè)定初始漢明伴隨式長(zhǎng)度r0,并限定r0的取值范圍r0∈[rmin,rmax];設(shè)定段長(zhǎng)增量d,并限定d的取值范圍d∈[dmin,dmax];限定所述的誤碼率初始值Pe0的取值范圍Pe0∈[Pe0min,Pe0max],誤碼率初始值Pe0取最小值Pe0min;
SB,將誤碼率Pe賦誤碼率初始值Pe0,初始漢明伴隨式長(zhǎng)度r0賦值rmin,初始化一個(gè)空的段長(zhǎng)序列,并將r0寫入空的段長(zhǎng)序列中;
SC,取d=dmin,r=r0;模擬糾錯(cuò),計(jì)算誤碼率pe對(duì)應(yīng)的糾錯(cuò)后的誤碼率P-next,并將Pe賦值為P-next;
SD,對(duì)漢明伴隨式長(zhǎng)度r以d為增量進(jìn)行不斷遞增運(yùn)算不斷得到新的r值,每更新一個(gè)r值則計(jì)算新的P-next,并將其賦值給Pe形成更新后的Pe;直至滿足Pe<eps時(shí),本次運(yùn)算結(jié)束;依次記錄每次循環(huán)中r的取值,組成序列寫入段長(zhǎng)序列中;
SE,由小到大遍歷段長(zhǎng)增量d,每取一個(gè)d值則返回步驟SD進(jìn)行循環(huán)迭代運(yùn)算,直至d>dmax時(shí),本次循環(huán)結(jié)束;
SF,由小到大遍歷初始漢明伴隨式長(zhǎng)度r0,每取一個(gè)r0值,對(duì)步驟SC-SE進(jìn)行循環(huán)運(yùn)算,直至r0>rmax時(shí),本次循環(huán)結(jié)束;
SG,組合所述的步驟SD中的段長(zhǎng)序列,得到Pe0對(duì)應(yīng)的段長(zhǎng)序列集合。
作為優(yōu)選,由小到大遍歷所述的誤碼率初始值Pe0;每取一個(gè)Pe0值,返回執(zhí)行所述的步驟SB~SG,并在所述的誤碼率初始值Pe0的取值范圍中選取下一個(gè)Pe0值;直至Pe0>Pe0max時(shí),結(jié)束運(yùn)算。
作為優(yōu)選,所述的步驟S2中,尋找最優(yōu)段長(zhǎng)序列包括如下步驟:所述的步驟SC中模擬糾錯(cuò)時(shí),計(jì)算每個(gè)段長(zhǎng)序列對(duì)應(yīng)的暴露信息百分比;根據(jù)系統(tǒng)誤碼率PeX得到對(duì)應(yīng)段長(zhǎng)序列集合,定義最優(yōu)段長(zhǎng)序列的取值范圍,取其中暴露信息的百分比w最小的一組值,得到最優(yōu)段長(zhǎng)序列。
作為優(yōu)選,所述的步驟SC中,計(jì)算糾錯(cuò)之后的誤碼率包括如下步驟:記密鑰比特?cái)?shù)為m0;根據(jù)k=Pe×m0計(jì)算錯(cuò)誤比特?cái)?shù)k,根據(jù)如下公式計(jì)算含有錯(cuò)誤比特?cái)?shù)k的概率:
根據(jù)(公式一)計(jì)算P2k和P2k+1,
則通過如下公式計(jì)算本次糾錯(cuò)之后的誤碼率:
作為優(yōu)選,所述的步驟S1中,分別各個(gè)接收端相對(duì)于發(fā)送端的誤碼率,取最大值記為系統(tǒng)的誤碼率PeX。
作為優(yōu)選,所述的步驟S3.1中,將與原始密鑰、共享密鑰的長(zhǎng)度相同的隨機(jī)數(shù)串分配給發(fā)送端與各接收端;設(shè)定原始密鑰、共享密鑰的長(zhǎng)度為D,則隨機(jī)數(shù)串中的每一位數(shù)據(jù)取值范圍為[1,D]且互不重復(fù);將密鑰中的數(shù)據(jù)由第一位開始與隨機(jī)數(shù)串中對(duì)應(yīng)數(shù)字所指位置的數(shù)據(jù)進(jìn)行按序依次置換。
作為優(yōu)選,所述的步驟S3.2中,計(jì)算發(fā)送端或各接收端奇偶校驗(yàn)和的步驟包括:
S3.2.1:發(fā)送端或接收端根據(jù)迭代次數(shù)i對(duì)應(yīng)的段長(zhǎng)seg(i)進(jìn)行分段,得到若干分段密鑰;
S3.2.2:計(jì)算各分段密鑰的奇偶校驗(yàn)和,并將來自同一原始密鑰的分段密鑰對(duì)應(yīng)的奇偶校驗(yàn)和組合為相應(yīng)的奇偶校驗(yàn)和序列;
S3.2.3:通過經(jīng)典信道將各接收端的奇偶校驗(yàn)和序列發(fā)送至發(fā)送端,再將各接收端的奇偶校驗(yàn)和序列與發(fā)送端的奇偶校驗(yàn)和序列進(jìn)行運(yùn)算,得出發(fā)送端與各接收端奇偶校驗(yàn)結(jié)果;
S3.2.4:通過經(jīng)典信道將發(fā)送端與各接收端奇偶校驗(yàn)結(jié)果發(fā)送至各接收端。
作為優(yōu)選,所述的步驟S4中,校驗(yàn)糾錯(cuò)結(jié)果步驟包括:分別采用計(jì)算原始密鑰與各接收端的共享密鑰的密鑰摘要,通過經(jīng)典信道各接收端將密鑰摘要發(fā)送至發(fā)送端,判斷各接收端的密鑰摘要與發(fā)送端的密鑰摘要是否一致;若一致,則糾錯(cuò)成功;若不一致,則糾錯(cuò)不成功。
作為優(yōu)選,所述的步驟S4中,校驗(yàn)糾錯(cuò)結(jié)果采用CRC算法或MD5算法。
本發(fā)明提供了一種多方量子密鑰分發(fā)系統(tǒng)的糾錯(cuò)方法,解決了現(xiàn)有技術(shù)的密鑰分發(fā)采用環(huán)形量子密鑰分發(fā)通信存在的如下問題:
1、改進(jìn)了QKD系統(tǒng)的交互過程,多方同時(shí)進(jìn)行信息交互,使得多方能夠進(jìn)行相同密鑰的糾錯(cuò)。
2、現(xiàn)有技術(shù)在每次糾錯(cuò)之后估計(jì)錯(cuò)誤率,如果錯(cuò)誤率仍大于預(yù)設(shè)值,只是簡(jiǎn)單的將段長(zhǎng)修改為原來的2倍,但此時(shí)的段長(zhǎng)極有可能不是最優(yōu)段長(zhǎng),那么每次糾錯(cuò)的效率不高;本發(fā)明通過計(jì)算得出每次糾錯(cuò)的最優(yōu)段長(zhǎng),提高了糾錯(cuò)效率。
3、現(xiàn)有的winnow糾錯(cuò)算法,糾錯(cuò)方法沒有選取最優(yōu)段長(zhǎng),需持續(xù)循環(huán)直到雙方密鑰一致,較為冗長(zhǎng)繁瑣。本發(fā)明的改進(jìn)的類winnow算法糾錯(cuò)之前先計(jì)算出各個(gè)初始錯(cuò)誤率下的最優(yōu)段長(zhǎng)序列,然后根據(jù)當(dāng)前初始錯(cuò)誤率選擇最優(yōu)段長(zhǎng)序列,提高了糾錯(cuò)效率。
4、本發(fā)明暴露信息少,系統(tǒng)穩(wěn)定。
附圖說明
下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
圖1是本發(fā)明一種計(jì)算最優(yōu)段長(zhǎng)序列集合的方法的流程示意圖。
圖2是本發(fā)明暴露的信息比例隨誤碼率變化的曲線圖。
圖3是本發(fā)明系統(tǒng)的F因子隨誤碼率變化的曲線圖。
具體實(shí)施方式
以下結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步的描述,但本發(fā)明并不限于這些實(shí)施例。
本發(fā)明應(yīng)用于包括發(fā)送端和至少兩個(gè)接收端的多方量子密鑰分發(fā)平臺(tái),包括如下步驟:
觸發(fā)發(fā)送端生成原始密鑰,將發(fā)送端生成的原始密鑰分別發(fā)送給相應(yīng)的接收端;
在接收端接收來自發(fā)送端的原始密鑰,并以接收結(jié)果作為相應(yīng)的共享密鑰;
對(duì)發(fā)送端的原始密鑰和各個(gè)接收端的共享密鑰進(jìn)行糾錯(cuò),使發(fā)送端的原始密鑰和各個(gè)接收端的共享密鑰符合所述邏輯運(yùn)算關(guān)系。(此處邏輯關(guān)系為相等,與上文中提及的邏輯關(guān)系不同)
實(shí)施例1
本實(shí)施例中發(fā)送端為Alice端,具有兩個(gè)接收端,分別為Bob端和Charlie端。
Alice端用于將原始密鑰KA分別發(fā)送給Bob端和Charlie端。Bob端和Charlie端分別接收來自發(fā)送端的原始密鑰KA并得到相應(yīng)的共享密鑰KB和KC。
通過對(duì)Alice端的原始密鑰KA和Bob端、Charlie端的共享密鑰KB和KC進(jìn)行糾錯(cuò),使Alice端的原始密鑰KA和Bob端、Charlie端的共享密鑰KB和KC均相同(即糾錯(cuò)成功后:KA=KB=KC)。
本實(shí)施例中糾錯(cuò)單元可以通過硬件或安裝于硬件上的軟件實(shí)現(xiàn)。
以下對(duì)本發(fā)明的方案進(jìn)行具體展開,以便更清楚地闡述和說明本發(fā)明的技術(shù)方案,并不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限制。
(一)計(jì)算最優(yōu)段長(zhǎng)序列集合。
計(jì)算最優(yōu)段長(zhǎng)序列集合是發(fā)送端根據(jù)系統(tǒng)誤碼率PeX尋找最優(yōu)段長(zhǎng)序列seg的前序步驟,如圖1所示,包括如下步驟:
SA,設(shè)置錯(cuò)誤邊界eps;設(shè)定初始漢明伴隨式長(zhǎng)度r0,并限定r0的取值范圍r0∈[rmin,rmax];設(shè)定段長(zhǎng)增量d,并限定d的取值范圍d∈[dmin,dmax];
SB,將誤碼率Pe賦初始值Pe0,初始漢明伴隨式長(zhǎng)度r0賦值rmin,初始化一個(gè)空的段長(zhǎng)序列,并將r0寫入空的段長(zhǎng)序列中;
SC,取d=dmin,r=r0;模擬糾錯(cuò),計(jì)算誤碼率pe對(duì)應(yīng)的糾錯(cuò)后的誤碼率P-next(即圖1中next(Pe)),并將Pe賦值為P-next;
SD,對(duì)漢明伴隨式長(zhǎng)度r以d為增量進(jìn)行不斷遞增運(yùn)算不斷得到新的r值,每更新一個(gè)r值則計(jì)算新的P-next,并將其賦值給Pe形成更新后的Pe;直至滿足Pe<eps時(shí),本次運(yùn)算結(jié)束;依次記錄每次循環(huán)中r的取值,組成序列寫入段長(zhǎng)序列中;
SE,由小到大遍歷段長(zhǎng)增量d,每取一個(gè)d值則返回步驟SD進(jìn)行循環(huán)迭代運(yùn)算,直至d>dmax時(shí),本次循環(huán)結(jié)束;
SF,由小到大遍歷初始漢明伴隨式長(zhǎng)度r0,每取一個(gè)r0值,對(duì)步驟SC-SE進(jìn)行循環(huán)運(yùn)算,直至r0>rmax時(shí),本次循環(huán)結(jié)束;
SG,組合所述的步驟SD中的段長(zhǎng)序列,得到Pe0對(duì)應(yīng)的段長(zhǎng)序列集合。
由小到大遍歷所述的誤碼率初始值Pe0;每取一個(gè)Pe0值,返回執(zhí)行所述的步驟SB~SG,并在所述的誤碼率初始值Pe0的取值范圍中選取下一個(gè)Pe0值;直至Pe0>Pe0max時(shí),結(jié)束運(yùn)算。
所述的步驟SC中,計(jì)算糾錯(cuò)之后的誤碼率包括如下步驟:記密鑰比特?cái)?shù)為m0;根據(jù)k=Pe×m0計(jì)算錯(cuò)誤比特?cái)?shù)k,根據(jù)如下公式計(jì)算含有錯(cuò)誤比特?cái)?shù)k的概率:
根據(jù)(公式一)計(jì)算P2k和P2k+1,
則通過如下公式計(jì)算本次糾錯(cuò)之后的誤碼率:
在實(shí)際中,初始時(shí)進(jìn)行步驟A同時(shí)設(shè)置遞歸深度最大值recDeepMax。采用recDeep作為遞歸計(jì)數(shù)器。圖1中所示“Y”表示條件成立,“N”表示條件不成立。
(二)一種多方量子密鑰分發(fā)系統(tǒng)的糾錯(cuò)方法。包括如下步驟:
S1:計(jì)算系統(tǒng)的誤碼率PeX;
S2:計(jì)算段長(zhǎng)序列集合;所述發(fā)送端根據(jù)系統(tǒng)誤碼率PeX在段長(zhǎng)序列集合中選取最優(yōu)段長(zhǎng)序列seg,記為seg={seg(1),…,seg(i),…,seg(n)},i∈[1,n],n為最大迭代的次數(shù),seg(i)為第i次迭代的段長(zhǎng);
S3:循環(huán)迭代執(zhí)行如下步驟:
S3.1:令i的初始值為1,將所述的發(fā)送端的原始密鑰和各接收端的共享密鑰按相同方式打亂密鑰串以進(jìn)行數(shù)據(jù)重排;
S3.2:根據(jù)段長(zhǎng)seg(i)對(duì)原始密鑰和共享密鑰進(jìn)行分段,得到若干分段密鑰;分別計(jì)算發(fā)送端與接收端的分段密鑰的奇偶校驗(yàn)和,對(duì)發(fā)送端與各接收端的奇偶校驗(yàn)和進(jìn)行運(yùn)算,得出不同的分段密鑰;
S3.3:根據(jù)seg(i)計(jì)算漢明伴隨式的長(zhǎng)度r,得到漢明矩陣H,通過Winnow糾錯(cuò)算法在所述的步驟S3.2得出的運(yùn)算結(jié)果不同的分段密鑰中,找出錯(cuò)誤比特位置;
S3.4:根據(jù)錯(cuò)誤比特位置對(duì)各接收方共享密鑰中相應(yīng)位置的0或1值取反,更新i為i+1,返回步驟S3.1;直至i=n+1,停止循環(huán);
S4:校驗(yàn)糾錯(cuò)結(jié)果;若各接收端都糾錯(cuò)成功,則結(jié)束運(yùn)算;若至少一個(gè)接收端糾錯(cuò)不成功,則拋棄相應(yīng)密鑰。
以下針對(duì)具體方法時(shí),以發(fā)送端為Alice端,接收端分別為Bob端和Charlie端的三方分發(fā)為例對(duì)上述步驟加以說明。
步驟S1中,計(jì)算系統(tǒng)的誤碼率PeX:本發(fā)明中,分別計(jì)算各個(gè)接收端相對(duì)于發(fā)送端的誤碼率,取最大值記為系統(tǒng)的誤碼率PeX。以三方分發(fā)為例,分別計(jì)算Alice端和Bob端之間的誤碼率PeB,以及Alice端和Charlie端之間的誤碼率PeC,并以最大值作為該密鑰分發(fā)系統(tǒng)的誤碼率PeX,具體方法如下:
S1-1、通過量子信道發(fā)送給Bob端獲得KB,Bob將預(yù)先約定好的部分密鑰KB'通過經(jīng)典信道發(fā)送給Alice端,Alice端將KB’與KAB相應(yīng)部分KAB'進(jìn)行比較,即將KAB中的若干個(gè)位置上的值與KB中相應(yīng)位置上的值進(jìn)行比對(duì),以比對(duì)結(jié)果不同的位置的總數(shù)和占參與比對(duì)的總位置數(shù)的比值作為誤碼率PeB。
S1-2、同上,可得到Alice端和Charlie端之間的誤碼率PeC。
步驟S2中,根據(jù)上述方法計(jì)算段長(zhǎng)序列集合,并根據(jù)系統(tǒng)誤碼率PeX在段長(zhǎng)序列集合選取最優(yōu)段長(zhǎng)序列seg。尋找最優(yōu)段長(zhǎng)序列包括如下步驟:所述的步驟SC中模擬糾錯(cuò)時(shí),計(jì)算每個(gè)段長(zhǎng)序列對(duì)應(yīng)的暴露信息百分比;根據(jù)系統(tǒng)誤碼率PeX得到對(duì)應(yīng)段長(zhǎng)序列集合,定義最優(yōu)段長(zhǎng)序列的取值范圍,取其中暴露信息的百分比w最小的一組值,得到最優(yōu)段長(zhǎng)序列。更具體地來說,該取值范圍為小于10。
步驟S3.1中的數(shù)據(jù)重排:向發(fā)送端與各接收端分配相同的隨機(jī)數(shù)種子,再使用相同的偽隨機(jī)數(shù)生成器生成相同的隨機(jī)數(shù)串,發(fā)送端與各接收端生成與原始密鑰、共享密鑰的長(zhǎng)度相同的隨機(jī)數(shù)串;設(shè)定原始密鑰、共享密鑰的長(zhǎng)度為D,則隨機(jī)數(shù)串中的每一位數(shù)據(jù)取值范圍為[1,D]且互不重復(fù);將密鑰中的數(shù)據(jù)由第一位開始與隨機(jī)數(shù)串中對(duì)應(yīng)數(shù)字所指位置的數(shù)據(jù)進(jìn)行按序依次置換。
Alice端、Bob端、Charlie端分配相同的隨機(jī)數(shù)種子,再使用相同的偽隨機(jī)數(shù)生成器生成相同的隨機(jī)數(shù)串,該隨機(jī)數(shù)串的長(zhǎng)度等于密鑰的長(zhǎng)度n,隨機(jī)數(shù)串的隨機(jī)數(shù)不重復(fù)且取值范圍是1~n;假設(shè)密鑰的長(zhǎng)度為5,生成的隨機(jī)數(shù)串為{2,4,3,5,1},隨后根據(jù)隨機(jī)數(shù)串依次進(jìn)行5次置換操作,即第一位與第2位交換,第二位與第4位交換,第三位與第3位交換,第四位與第5位交換,第五位與第1位交換,至此就完成了長(zhǎng)度為5的密鑰數(shù)據(jù)重排,其他長(zhǎng)度的密鑰亦可執(zhí)行類似操作進(jìn)行數(shù)據(jù)重排。
步驟S3.2中,計(jì)算發(fā)送端或各接收端奇偶校驗(yàn)和的步驟包括:
S3.2.1:發(fā)送端或接收端根據(jù)迭代次數(shù)i對(duì)應(yīng)的段長(zhǎng)seg(i)進(jìn)行分段,得到若干分段密鑰;
S3.2.2:計(jì)算各分段密鑰的奇偶校驗(yàn)和,并將來自同一原始密鑰的分段密鑰對(duì)應(yīng)的奇偶校驗(yàn)和組合為相應(yīng)的奇偶校驗(yàn)和序列;
S3.2.3:通過經(jīng)典信道將各接收端的奇偶校驗(yàn)和序列發(fā)送至發(fā)送端,再將各接收端的奇偶校驗(yàn)和序列與發(fā)送端的奇偶校驗(yàn)和序列進(jìn)行運(yùn)算,得出發(fā)送端與各接收端奇偶校驗(yàn)結(jié)果;
S3.2.4:通過經(jīng)典信道將發(fā)送端與各接收端奇偶校驗(yàn)結(jié)果發(fā)送至各接收端。
需要補(bǔ)充說明的是,進(jìn)行奇偶校驗(yàn)和的運(yùn)算可以為簡(jiǎn)單比對(duì)或者邏輯運(yùn)算,此處的邏輯運(yùn)算可以為異或運(yùn)算。
Alice端根據(jù)初始誤碼率PeX選擇迭代段長(zhǎng)序列seg,根據(jù)seg可以得出迭代的次數(shù),及每次迭代的段長(zhǎng)。通過經(jīng)典信道Alice端將段長(zhǎng)序列索引信息發(fā)送給Bob端、Charlie端。
以三方分發(fā)為例,計(jì)算發(fā)送端或各接收端奇偶校驗(yàn)和包括如下步驟:S3.2-1、Alice端、Bob端、Charlie端分別根據(jù)段長(zhǎng)seg(i)對(duì)密鑰進(jìn)行分段,得到若干分段密鑰。若最后一段的長(zhǎng)度如果小于段長(zhǎng),則在末尾添0,使其長(zhǎng)度等于段長(zhǎng)。計(jì)算各個(gè)分段密鑰的奇偶校驗(yàn)和,并將來自同一原始密鑰的分段密鑰對(duì)應(yīng)的奇偶校驗(yàn)和組合為相應(yīng)的奇偶校驗(yàn)和序列。本實(shí)施例中Alice端、Bob端、Charlie端分別計(jì)算得到奇偶校驗(yàn)和序列ParityA、奇偶校驗(yàn)和序列ParityB、奇偶校驗(yàn)和序列ParityC。seg(i)為所選擇的最優(yōu)段長(zhǎng)序列seg中第i個(gè)元素的取值,i的取值為迭代的次數(shù)。
S3.2-2、通過經(jīng)典信道Bob端、Charlie端分別將ParityB、ParityC發(fā)送給Alice端。
S3.2-3、分別計(jì)算Alice端與Bob端奇偶校驗(yàn)結(jié)果ParityAB、Alice端與Charlie端奇偶校驗(yàn)結(jié)果ParityAC:ParityAB=ParityA⊕ParityB,ParityAC=ParityA⊕ParityC。ParityAB中的0表示Alice與Bob相應(yīng)密鑰段奇偶校驗(yàn)相同,1表示Alice與Bob相應(yīng)密鑰段奇偶校驗(yàn)不同。ParityAC中的0表示Alice與Charlie相應(yīng)密鑰段奇偶校驗(yàn)相同,1表示Alice與Charlie相應(yīng)密鑰段奇偶校驗(yàn)不同。
S3.2-4、通過經(jīng)典信道Alice端將ParityAB、ParityAC分別發(fā)送給Bob、Charlie。
步驟S3.3中,將發(fā)送端與各接收端運(yùn)算結(jié)果不同的段分別列成集合,記為X,計(jì)算集合X中每個(gè)密鑰段的漢明伴隨式,
公式為:Sx,i(i∈X)=H×Xi;
通過經(jīng)典信道將各接收端漢明伴隨式發(fā)送至發(fā)送端,將發(fā)送端的漢明伴隨式與各接收端的漢明伴隨式分別進(jìn)行邏輯運(yùn)算,并記錄邏輯運(yùn)算結(jié)果,找出錯(cuò)誤比特位置。
具體來說,計(jì)算r×seg(i)的漢明矩陣H,且滿足seg(i)=(2r-1):漢明矩陣是糾錯(cuò)過程中的校驗(yàn)矩陣,矩陣的元素可以表示成m表示漢明矩陣H的第m行,n表示漢明矩陣H的第n列,這個(gè)表達(dá)式在FPGA中可以通過移位操作方便的實(shí)現(xiàn),所以漢明矩陣采用實(shí)時(shí)產(chǎn)生的方案,可以節(jié)省漢明矩陣的存儲(chǔ)空間。
以三方分發(fā)為例,計(jì)算漢明伴隨式找出錯(cuò)誤比特位置:
S3.3-1、通過ParityABC取出Alice與Bob⊕Charlie之間奇偶校驗(yàn)不同的段,Alice端、Bob端以及Charlie端把它們分別記為集合A、B以及C,Alice端計(jì)算A中每個(gè)密鑰段的漢明伴隨式Sa,i(i∈A)=H×Ai,Bob計(jì)算B中每個(gè)密鑰段的漢明伴隨式Sb,i(i∈B)=H×Bi,Charlie端計(jì)算C中每個(gè)密鑰段的漢明伴隨式Sc,i(i∈C)=H×Ci。
S3.3-2、通過經(jīng)典信道Alice端將Sa,i分別發(fā)送給Bob端與Charlie端;在Bob端計(jì)算在Charlie端計(jì)算
步驟S3.4進(jìn)行糾錯(cuò),根據(jù)步驟S3.3-2的Sab,i、Sac,i可以分別得出Bob端、Charlie端的錯(cuò)誤比特位置將各接收端的共享密鑰的錯(cuò)誤比特位置的0或1值取反,即0翻轉(zhuǎn)為1,1翻轉(zhuǎn)為0。
采用步驟S3.1所述的方法進(jìn)行數(shù)據(jù)重排,然后返回至步驟4循環(huán)迭代執(zhí)行,直至達(dá)到最大循環(huán)迭代次數(shù),跳出循環(huán)向下執(zhí)行步驟S4。
所述的步驟S4中,校驗(yàn)糾錯(cuò)結(jié)果步驟包括:分別采用計(jì)算原始密鑰與各接收端的共享密鑰的密鑰摘要,通過經(jīng)典信道各接收端將密鑰摘要發(fā)送至發(fā)送端,分別判斷接收端的密鑰摘要與發(fā)送端的密鑰摘要是否一致;若發(fā)送端的密鑰摘要與各接收端的密鑰摘要都一致,則糾錯(cuò)成功;若至少一個(gè)發(fā)送端的密鑰摘要與接收端的密鑰摘要不一致,則糾錯(cuò)不成功。
所述的步驟S4中,校驗(yàn)糾錯(cuò)結(jié)果采用CRC算法或MD5算法。
以CRC算法為例,Alice端、Bob端、Charlie端計(jì)算密鑰摘要KA_CRC、KB_CRC、KC_CRC,通過經(jīng)典信道Bob、Charlie發(fā)送密鑰摘要KB_CRC、KC_CRC給Alice,分別判斷KA_CRC與KB_CRC、KC_CRC是否相等,若都相等,則糾錯(cuò)成功,否則糾錯(cuò)失敗,拋棄相應(yīng)密鑰。同理可以采用MD5算法。
實(shí)施例2
本實(shí)施例提供一種用于多方量子密鑰共享的糾錯(cuò)方法。
與實(shí)施例1相比,該多方量子密鑰分發(fā)系統(tǒng)應(yīng)用于一個(gè)發(fā)送端和多個(gè)接收端的多方量子密鑰分發(fā)平臺(tái),其工作原理與實(shí)施例1相同,這里不再重復(fù)說明。
該糾錯(cuò)方法用于對(duì)發(fā)送端的原始密鑰和多個(gè)接收端的共享密鑰進(jìn)行糾錯(cuò)使發(fā)送端的原始密鑰和多個(gè)接收端的共享密鑰相同。與實(shí)施例1相比,本實(shí)施例中的糾錯(cuò)方法應(yīng)用于一個(gè)發(fā)送端和多個(gè)接收端的多方量子密鑰分發(fā)平臺(tái),但其在實(shí)際算法上可由實(shí)施例1推理可得,這里不再重復(fù)說明。
除此之外,需要說明的是,本申請(qǐng)中提及的計(jì)算每個(gè)段長(zhǎng)序列對(duì)應(yīng)的暴露信息百分比,是考慮計(jì)算過程中通過經(jīng)典信道而泄漏的信息而進(jìn)行的。暴露信息百分比是經(jīng)典信道傳輸?shù)臄?shù)據(jù)總量比密鑰的長(zhǎng)度(即量子信道的傳輸?shù)男畔⒘?。如圖2可以看出,本發(fā)明的暴露信息少。
圖3所示的F因子即糾錯(cuò)效率,作為糾錯(cuò)編碼的性能標(biāo)準(zhǔn)。F因子定義為對(duì)于某一錯(cuò)誤率,實(shí)際糾錯(cuò)交互消耗的信息量與理想情況下消耗的信息量(即信息熵、或者香農(nóng)極限)的比值。由圖可以看出,本發(fā)明的F因子小,系統(tǒng)更穩(wěn)定。
以上僅就本發(fā)明的最佳實(shí)施例作了說明,但不能理解為是對(duì)權(quán)利要求的限制。本發(fā)明不僅限于以上實(shí)施例,凡在本發(fā)明獨(dú)立權(quán)利要求的保護(hù)范圍內(nèi)所作的各種變化均在本發(fā)明的保護(hù)范圍內(nèi)。