本發(fā)明涉及通信技術(shù)領(lǐng)域,具體而言,涉及一種密鑰協(xié)商方法及裝置。
背景技術(shù):
polar碼也被稱為極化碼,由于它在二進(jìn)制對(duì)稱信道上可以達(dá)到香農(nóng)限,且具有編碼和譯碼復(fù)雜度低的優(yōu)點(diǎn)而適用于密鑰協(xié)商。polar碼的核心是以構(gòu)造性的方法,基于信道的極化現(xiàn)象極化出信道容量不同的子信道,即通過(guò)信道的組合和分離,使一部分信道的信道容量趨近于1,另一部分信道的信道容量趨近于0,且組合信道數(shù)n越大,極化現(xiàn)象越明顯。選擇信道容量高的子信道傳輸信息位,而信道容量低的傳輸凍結(jié)位(一般凍結(jié)位設(shè)為0或1)。
密鑰協(xié)商是物理層安全和量子通信中重要的一個(gè)環(huán)節(jié)。在密鑰協(xié)商之前,合法通信雙方已經(jīng)獲得了不完全一致的離散序列,只有通信雙方將量化后的序列協(xié)商一致,才能用于保密通信。信道編碼是密鑰協(xié)商常用的方法,常常以合法通信雙方的一方的初始序列為標(biāo)準(zhǔn),另一方利用一方發(fā)過(guò)來(lái)的編碼信息糾正與其不一致的信息序列的比特?,F(xiàn)有的密鑰協(xié)商方法中,二分法每次查找只能發(fā)現(xiàn)奇數(shù)個(gè)錯(cuò)誤且只能糾正一個(gè)錯(cuò)誤,因此協(xié)商效率較低;基于漢明碼的winnow算法,雖然能檢測(cè)兩個(gè)錯(cuò)誤,但是只能糾正一個(gè)錯(cuò)誤,當(dāng)錯(cuò)誤率較高時(shí),協(xié)商次數(shù)也比較多;基于卷積碼和bch碼以及低密度奇偶校驗(yàn)碼(lowdensityparitycheckcode,ldpc)的密鑰協(xié)商雖然協(xié)商效率較高,但是上述提到的密鑰協(xié)商方法會(huì)在協(xié)商完成后刪除掉與交互信息同樣長(zhǎng)度的密鑰信息以保證密鑰的安全性,降低了密鑰的生成長(zhǎng)度。
因此,如何解決現(xiàn)有密鑰協(xié)商方法中存在的糾錯(cuò)能力低、協(xié)商效率不高以及信道編碼引起的錯(cuò)誤擴(kuò)散的問(wèn)題,一直以來(lái)是本領(lǐng)域技術(shù)人員關(guān)注的重點(diǎn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種密鑰協(xié)商方法及裝置,以解決現(xiàn)有密鑰協(xié)商中存在的糾錯(cuò)能力低、協(xié)商效率不高及信道編碼引起的錯(cuò)誤擴(kuò)散的問(wèn)題。
為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例采用的技術(shù)方案如下:
第一方面,本發(fā)明實(shí)施例提出一種密鑰協(xié)商方法,所述密鑰協(xié)商方法包括:二分法協(xié)商步驟及polar碼協(xié)商步驟。所述二分法協(xié)商步驟包括分別對(duì)第一初始信息序列和第二初始信息序列進(jìn)行糾錯(cuò)以分別獲取第一信息序列和第二信息序列;所述polar碼協(xié)商步驟包括將所述第一信息序列與polar碼編碼后的序列模二加以獲取第三信息序列;將所述第二信息序列與所述第三信息序列模二加以獲取第四信息序列;將所述第四信息序列進(jìn)行譯碼,以提取出第五信息序列;對(duì)所述第五信息序列進(jìn)行編碼;將經(jīng)過(guò)編碼的所述第五信息序列與所述第三信息序列模二加得到第六信息序列;在所述第六信息序列中隨機(jī)刪除預(yù)設(shè)長(zhǎng)度的序列信息,得到第七信息序列;依據(jù)所述第七信息序列與所述第一信息序列判斷密鑰協(xié)商是否成功。
第二方面,本發(fā)明實(shí)施例還提出一種密鑰協(xié)商裝置。所述密鑰協(xié)商裝置包括二分法協(xié)商模塊及polar碼協(xié)商模塊。所述二分法協(xié)商模塊包括序列生成模塊,所述序列生成模塊用于分別對(duì)第一初始信息序列和第二初始信息序列進(jìn)行糾錯(cuò)以分別獲取第一信息序列和第二信息序列,所述polar碼協(xié)商模塊包括第三信息序列獲取模塊、第四信息序列獲取模塊、譯碼模塊、編碼模塊、第六信息序列獲取模塊、第七信息序列獲取模塊以及第一判斷模塊。其中,所述第三信息序列獲取模塊用于將所述第一信息序列與polar碼編碼后的序列模二加以獲取第三信息序列,所述第四信息序列獲取模塊用于將所述第二信息序列與所述第三信息序列模二加以獲取第四信息序列,所述譯碼模塊用于將所述第四信息序列進(jìn)行譯碼以提取出第五信息序列,所述編碼模塊用于對(duì)所述第五信息序列進(jìn)行編碼,所述第六信息序列獲取模塊用于將經(jīng)過(guò)編碼的所述第五信息序列與所述第三信息序列模二加得到第六信息序列,所述第七信息序列獲取模塊用于在第六信息序列中隨機(jī)刪除預(yù)設(shè)長(zhǎng)度的序列信息得到第七信息序列,所述第一判斷模塊用于依據(jù)所述第七信息序列與所述第一信息序列判斷密鑰協(xié)商是否成功。
相對(duì)現(xiàn)有技術(shù),本發(fā)明具有以下有益效果:本發(fā)明提供的密鑰協(xié)商方法及裝置,分別對(duì)第一初始信息序列和第二初始信息序列進(jìn)行糾錯(cuò)以分別獲取第一信息序列和第二信息序列,將所述第一信息序列與polar碼編碼后的序列模二加以獲取第三信息序列,將所述第二信息序列與所述第三信息序列模二加以獲取第四信息序列,將所述第四信息序列進(jìn)行譯碼以提取出第五信息序列,對(duì)所述第五信息序列進(jìn)行編碼,將經(jīng)過(guò)編碼的所述第五信息序列與所述第三信息序列模二加得到第六信息序列,在所述第六信息序列中隨機(jī)刪除預(yù)設(shè)長(zhǎng)度的序列信息,得到第七信息序列,依據(jù)所述第七信息序列與所述第一信息序列判斷密鑰協(xié)商是否成功。該密鑰協(xié)商方法解決了錯(cuò)誤擴(kuò)散的問(wèn)題,糾錯(cuò)能力高,有更優(yōu)的協(xié)商性能,保證了通信的可靠性。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說(shuō)明如下。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對(duì)范圍的限定,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1示出了可應(yīng)用于本發(fā)明實(shí)施例中的基于無(wú)線信道的密鑰生成流程示意圖。
圖2示出了本發(fā)明第一實(shí)施例所提供的密鑰協(xié)商方法的流程示意圖。
圖3示出了圖2中步驟s110與步驟s120的具體流程示意圖。
圖4示出了圖3中步驟s111的具體流程示意圖。
圖5示出了二分法查找糾錯(cuò)的示意圖。
圖6示出了本發(fā)明第二實(shí)施例所提供的密鑰協(xié)商裝置的功能模塊圖。
圖7示出了圖6中二分法協(xié)商模塊與polar碼協(xié)商模塊的結(jié)構(gòu)框圖。
圖8示出了量化比特?cái)?shù)為2時(shí)ldpc碼和polar碼糾錯(cuò)后的誤比特率隨相關(guān)系數(shù)變化的示意圖。
圖9示出了量化比特?cái)?shù)為3時(shí)ldpc碼和polar碼糾錯(cuò)后的誤比特率隨相關(guān)系數(shù)變化的示意圖
圖10示出了量化比特?cái)?shù)為2時(shí)采用ldpc碼和采用polar碼協(xié)商一次后剩余的密鑰長(zhǎng)度隨相關(guān)系數(shù)變化的示意圖。
圖11示出了量化比特?cái)?shù)為3時(shí)采用ldpc碼和采用polar碼協(xié)商一次后剩余的密鑰長(zhǎng)度隨相關(guān)系數(shù)變化的示意圖。
圖12示出了量化比特?cái)?shù)為2時(shí)基于二分法和polar碼的聯(lián)合密鑰協(xié)商算法的性能曲線圖。
圖13示出了量化比特?cái)?shù)為3時(shí)基于二分法和polar碼的聯(lián)合密鑰協(xié)商算法的性能曲線圖。
圖14示出了量化比特?cái)?shù)為2時(shí)采用polar碼和采用基于二分法和polar碼的聯(lián)合密鑰協(xié)商算法協(xié)商一次后剩余的密鑰長(zhǎng)度隨相關(guān)系數(shù)變化的示意圖。
圖15示出了量化比特?cái)?shù)為3時(shí)采用polar碼和采用基于二分法和polar碼的聯(lián)合密鑰協(xié)商算法協(xié)商一次后剩余的密鑰長(zhǎng)度隨相關(guān)系數(shù)變化的示意圖。
圖標(biāo):200-密鑰協(xié)商裝置;210-二分法協(xié)商模塊;220-polar碼協(xié)商模塊;230-第二判斷模塊;240-執(zhí)行模塊;211-序列生成模塊;221-第三信息序列獲取模塊;222-第四信息序列獲取模塊;223-譯碼模塊;224-編碼模塊;225-第六信息序列獲取模塊;226-第七信息序列獲取模塊;227-第一判斷模塊。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來(lái)布置和設(shè)計(jì)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。同時(shí),在本發(fā)明的描述中,術(shù)語(yǔ)“第一”、“第二”等僅用于區(qū)分描述,而不能理解為指示或暗示相對(duì)重要性。
如圖1所示,為可應(yīng)用于本發(fā)明實(shí)施例中的基于無(wú)線信道的密鑰生成流程示意圖。物理層密鑰技術(shù)主要是利用無(wú)線信道的互易性、時(shí)變性以及空變性的特點(diǎn)來(lái)生成密鑰的,其主要包括信道參數(shù)的獲取、量化、密鑰協(xié)商和保密增強(qiáng)幾個(gè)步驟。合法通信雙方alice和bob分別為相互通信連接的第一通信端和第二通信端,在進(jìn)行密鑰協(xié)商前,第一通信端alice和第二通信端bob在無(wú)線信道相干時(shí)間內(nèi)以tdd(時(shí)分雙工)的方式相互發(fā)送探測(cè)序列,并且發(fā)送信號(hào)與接收信號(hào)之間的關(guān)系可以用r=f·s+n來(lái)表示,其中f為信道增益,n為獨(dú)立的加性高斯噪聲,s為探測(cè)序列。由于無(wú)線信道具有唯一性和互易性的特點(diǎn),則合法通信雙方在相干時(shí)間內(nèi)觀察到的信道特征傳遞函數(shù)具有較高的相似性,此時(shí)信道輸出可以表示為:
其中p1和q1分別表示alice和bob接收到的信號(hào),hba為bob到alice的信道增益,hab為alice到bob的信道增益,na和nb為獨(dú)立的服從復(fù)高斯分布的隨機(jī)變量
第一實(shí)施例
圖2示出了本發(fā)明實(shí)施例所提供的密鑰協(xié)商方法的流程示意圖。所述密鑰協(xié)商方法應(yīng)用于相互通信連接的第一通信端alice和第二通信bob。需要說(shuō)明的是,本發(fā)明所述的密鑰協(xié)商方法并不以圖2以及以下所述的具體順序?yàn)橄拗啤?yīng)當(dāng)理解,在其它實(shí)施例中,本發(fā)明所述的密鑰協(xié)商方法其中部分步驟的順序可以根據(jù)實(shí)際需要相互交換,或者其中的部分步驟也可以省略或刪除。下面將對(duì)圖2所示的具體流程進(jìn)行詳細(xì)闡述。
步驟s110,二分法協(xié)商。
采用二分法進(jìn)行密鑰協(xié)商可以避免初始信息序列不一致率較高時(shí)出現(xiàn)錯(cuò)誤擴(kuò)散的問(wèn)題。在本實(shí)施例中,假設(shè)第一通信端alice和第二通信端bob各自收到的信號(hào)分別為x1、y1,進(jìn)行量化后分別得到第一初始信息序列x2和第二初始信息序列y2。
如圖3所示,在本實(shí)施例中,所述步驟s110包括:
步驟s111,分別對(duì)第一初始信息序列x2和第二初始信息序列y2進(jìn)行糾錯(cuò)以分別獲取第一信息序列x和第二信息序列y。
在本實(shí)施例中,alice和bob分別將第一初始信息序列x2和第二初始信息序列y2分成等長(zhǎng)的序列,然后每組序列都各自計(jì)算本組的奇偶性,并通過(guò)公開(kāi)信道交互奇偶信息,若奇偶性相同,則認(rèn)為兩個(gè)序列相同;若奇偶性不同,則認(rèn)為兩個(gè)序列存在不一致的比特,繼續(xù)進(jìn)行二分查找并刪除錯(cuò)誤比特,二分法協(xié)商完成后alice和bob分別得到所述第一信息序列x和所述第二信息序列y。通過(guò)二分查找的方式查找和刪除錯(cuò)誤比特,以此降低通信雙方的不一致率。
具體地,如圖4所示,在本實(shí)施例中,所述步驟s111包括如下子步驟:
步驟s1111,第一通信端alice和第二通信端bob按照同一置換序列對(duì)分別對(duì)第一初始信息序列x2和第二初始信息序列y2重新進(jìn)行排序,以使錯(cuò)誤比特均勻分布在整個(gè)信息組中。
步驟s1112,第一通信端alice和第二通信端bob分別對(duì)第一初始信息序列x2和第二初始信息序列y2進(jìn)行分組,使每組的長(zhǎng)度都為ki,其中i表示為協(xié)商輪數(shù)。其中,第一輪協(xié)商的分組長(zhǎng)度為k1=0.73/m,m為第一初始信息序列x2和第二初始信息序列y2的初始不一致率。
步驟s1113,alice和bob對(duì)各自分組序列的奇偶性進(jìn)行計(jì)算,并通過(guò)公開(kāi)信道進(jìn)行交互比較。如果兩個(gè)對(duì)應(yīng)分組的奇偶性相同,則不進(jìn)行處理;如果對(duì)應(yīng)兩個(gè)分組的奇偶性不同,則表示該兩組信息有不一致的比特,并且不一致比特?cái)?shù)為奇數(shù),再進(jìn)行二分查找。在本實(shí)施例中,進(jìn)行二分查找糾錯(cuò)可參照?qǐng)D5的方式進(jìn)行。
例如,圖5中計(jì)算出alice與bob中兩個(gè)對(duì)應(yīng)分組的奇偶性不同,alice與bob各自將兩個(gè)分組等分為兩部分,先對(duì)前半部分的奇偶性進(jìn)行比較,若奇偶性相同,則表示錯(cuò)誤的比特在后半部分;若奇偶性不同,則表示錯(cuò)誤比特在前半部分。然后對(duì)有錯(cuò)誤比特的部分繼續(xù)進(jìn)行二分查找,直至序列長(zhǎng)度為兩比特,此時(shí)奇偶性不同則表明其中有一比特是錯(cuò)誤的,如果繼續(xù)確認(rèn)哪一位是錯(cuò)誤的比特,則需要再次比較校驗(yàn)信息,如此兩比特信息都會(huì)被泄露,所以當(dāng)查找到最后兩位有錯(cuò)誤比特時(shí)可直接刪除。在比較兩個(gè)分組的信息時(shí),為了確保竊聽(tīng)方不會(huì)獲得新信息,在每次核對(duì)校驗(yàn)信息以后,對(duì)于沒(méi)有錯(cuò)的分組合法通信雙方alice與bob都需要按照同一規(guī)則隨機(jī)刪除一個(gè)比特,例如可各自刪除分組的最后一位。完成一輪二分法糾錯(cuò)后,alice與bob各個(gè)對(duì)應(yīng)分組具有相同的奇偶性,alice與bob分別將各自分組剩下的信息按照順序重新組合起來(lái),形成第一信息序列x和第二信息序列y。
步驟s120,polar碼協(xié)商。
在本實(shí)施例中,通過(guò)二分法協(xié)商可以降低第一初始信息序列x與第二初始信息序列y的不一致率,在二分法協(xié)商完成后再利用糾錯(cuò)能力較強(qiáng)的polar碼糾正錯(cuò)誤,既能避免初始序列不一致率較高時(shí)引起的錯(cuò)誤擴(kuò)散問(wèn)題,又能提高協(xié)商的效率。
仍參照?qǐng)D3,在本實(shí)施例中,所述步驟s120包括如下子步驟:
子步驟s121,將所述第一信息序列x與polar碼編碼后的序列pm模二加以獲取第三信息序列c。
在本實(shí)施例中,由于密鑰協(xié)商時(shí)產(chǎn)生的比特錯(cuò)誤都為比特翻轉(zhuǎn)(即0誤判為1或者1誤判為0),因此可以認(rèn)為密鑰協(xié)商是在二進(jìn)制對(duì)稱信道中完成的。信道極化出信道容量不同的子信道后,一部分信道的信道容量趨近于1,另一部分信道的信道容量趨近于0,依據(jù)第一信息序列x和第二信息序列y的不一致率p可近似計(jì)算出二進(jìn)制對(duì)稱信道的巴氏參數(shù),且巴氏參數(shù)越小,信道容量越大,選擇巴氏參數(shù)小的傳輸信息位,巴氏參數(shù)大的傳輸凍結(jié)位。依據(jù)巴氏參數(shù)選出適合傳輸信息位和凍結(jié)位的子信道后,將隨機(jī)序列m及凍結(jié)位按照巴氏參數(shù)的大小放在相應(yīng)的子信道上再進(jìn)行編碼。因polar碼也屬于線性分組碼,其編碼過(guò)程可由信息序列與生成矩陣的乘積表示,即pm=mgn,gn為n*n的生成矩陣,m為隨機(jī)序列,對(duì)于n≥2,均有所述生成矩陣
在本實(shí)施例中,由于在進(jìn)行polar碼協(xié)商時(shí)需要在公開(kāi)信道上交互信息,為了防止所述第一信息序列x被竊聽(tīng),alice需要將所述第一信息序列x與polar碼編碼后的序列pm模二加以獲取第三信息序列c,并將所述第三信息序列c發(fā)送給bob。需要說(shuō)明的是,在每一次協(xié)商時(shí)隨機(jī)序列m都需要重新生成,以達(dá)到完美加密的效果。
子步驟s122,將所述第二信息序列y與所述第三信息序列c模二加以獲取第四信息序列p'm。
在本實(shí)施例中,第二通信端bob接收到第一通信端alice發(fā)送的第三信息序列c后,將所述第三信息序列c與所述第二信息序列y模二加以獲得第四信息序列p'm,即
子步驟s123,將所述第四信息序列p'm進(jìn)行譯碼,以提取出第五信息序列m'。
在本實(shí)施例中,為了獲得正確的pm,將第四信息序列p'm送進(jìn)譯碼器進(jìn)行譯碼,以提取出第五信息序列m',此時(shí)m'即為隨機(jī)序列m的估值序列。polar碼的譯碼算法為連續(xù)刪除算法(sc)、置信傳播算法(bp)或序列連續(xù)刪除算法(scl)。在本實(shí)施例中,采用序列連續(xù)刪除算法進(jìn)行譯碼,它在每一層向下一層擴(kuò)展時(shí),選擇當(dāng)前層中具有較大路徑度量值的l條路徑,其中l(wèi)為路徑的搜索寬度,l越大糾錯(cuò)性能越好,但復(fù)雜度也隨著l的增大而增加,當(dāng)路徑抵達(dá)葉子節(jié)點(diǎn)時(shí),按路徑度量值從大到小的順序輸出l條路徑所對(duì)應(yīng)的譯碼序列,作為候選譯碼序列集合,當(dāng)?shù)诌_(dá)最后一層葉子節(jié)點(diǎn)時(shí),從候選碼字集合中選出度量值最大的譯碼序列,其中的碼字序列的信息比特即為糾錯(cuò)后的信息。序列連續(xù)刪除算法只要設(shè)置合適的搜索寬度l,不僅譯碼復(fù)雜度低,還具有較高的糾錯(cuò)精度。
子步驟s124,對(duì)所述第五信息序列m'進(jìn)行編碼。
在本實(shí)施例中,為了獲得隨機(jī)序列m,第二通信端bob還需將提取出的第五信息序列m'通過(guò)polar碼編碼后得到pm”。
子步驟s125,將經(jīng)過(guò)編碼的序列pm”與所述第三信息序列c模二加得到第六信息序列x'。
在本實(shí)施例中,bob將上述經(jīng)過(guò)編碼的序列pm”與第三信息序列c模二加得到第六信息序列x',即
子步驟s126,在所述第六信息序列x'中隨機(jī)刪除預(yù)設(shè)長(zhǎng)度的序列信息,得到第七信息序列x”。
在本實(shí)施例中,由于密鑰是在公開(kāi)信道中生成的,在密鑰協(xié)商過(guò)程中可能已經(jīng)泄露了有關(guān)第一初始信息序列x的部分信息,為了提升密鑰的秘密性,需要在所述第六信息序列x'中隨機(jī)地刪除預(yù)設(shè)長(zhǎng)度的序列信息,得到第七信息序列x”,第七信息序列x”才是最終的協(xié)商結(jié)果。在本實(shí)施例中,所述預(yù)設(shè)長(zhǎng)度為與所述凍結(jié)位相同的長(zhǎng)度。
子步驟s127,依據(jù)所述第七信息序列x”與所述第一信息序列x判斷密鑰協(xié)商是否成功。
在本實(shí)施例中,alice和bob可依據(jù)第七信息序列x”與第一信息序列x判斷密鑰協(xié)商是否成功。具體地,alice和bob可通過(guò)哈希函數(shù)比較所述第一信息序列x與所述第七信息序列x”是否一致,若一致,則向另一方發(fā)送確認(rèn)信息,表明密鑰協(xié)商成功;若不一致,表明密鑰協(xié)商失敗,則執(zhí)行步驟s110進(jìn)行下一輪密鑰協(xié)商。需要說(shuō)明的是,此時(shí)再進(jìn)行二分法協(xié)商時(shí),分組長(zhǎng)度應(yīng)比上一輪進(jìn)行二分法協(xié)商的分組長(zhǎng)度要長(zhǎng),一般可取上一輪協(xié)商時(shí)分組長(zhǎng)度的兩倍。還需要說(shuō)明的是,在本實(shí)施例中,為了避免出現(xiàn)無(wú)限次的密鑰協(xié)商,可以限定密鑰協(xié)商的次數(shù),例如可以設(shè)定5次。
步驟s130,依據(jù)所述第一信息序列x與所述第二信息序列y判斷二分法協(xié)商是否成功。
在本實(shí)施例中,當(dāng)二分法協(xié)商完成后,在執(zhí)行步驟s120的同時(shí),alice和bob可通過(guò)哈希函數(shù)比較二分法協(xié)商完成后獲取的第一信息序列x和第二信息序列y是否一致,若一致,則向另一方發(fā)送確認(rèn)信息,表明所述二分法協(xié)商成功,若不一致,則表明所述二分法協(xié)商失敗。
步驟s140,當(dāng)所述二分法協(xié)商成功,則停止所述polar碼協(xié)商步驟;當(dāng)所述二分法協(xié)商不成功,則繼續(xù)所述polar碼協(xié)商步驟。
在本實(shí)施例中,當(dāng)判斷所述二分法協(xié)商成功時(shí),所述polar碼協(xié)商步驟可能執(zhí)行到步驟s121~s126中的任意一個(gè)步驟,此時(shí)停止正在執(zhí)行的步驟。當(dāng)判斷所述二分法協(xié)商不成功時(shí),則繼續(xù)執(zhí)行所述polar碼協(xié)商的步驟,直至密鑰協(xié)商成功。
需要說(shuō)明的是,在本實(shí)施例中,可以把第一通信端alice的第一信息序列x作為標(biāo)準(zhǔn),第二通信端bob利用第一通信端alice發(fā)送的第三信息序列c來(lái)糾正其與第一信息序列x不一致的比特,也可以第二通信端bob的第二信息序列y為標(biāo)準(zhǔn),第一通信端alice通過(guò)第二通信端bob發(fā)送的信息來(lái)糾正其與第二信息序列y不一致的比特,對(duì)此不做任何限定。
第二實(shí)施例
圖6示出了本發(fā)明實(shí)施例所提供的密鑰協(xié)商裝置200的功能模塊示意圖。需要說(shuō)明的是,本實(shí)施例所提供的密鑰協(xié)商裝置200,其基本原理及產(chǎn)生的技術(shù)效果與第一實(shí)施例相同,為簡(jiǎn)要描述,本實(shí)施例中未提及部分,可參考第一實(shí)施例中的相應(yīng)內(nèi)容。所述密鑰協(xié)商裝置200應(yīng)用于相互通信連接的第一通信端和第二通信端,其包括二分法協(xié)商模塊210、polar碼協(xié)商模塊220、第二判斷模塊230及執(zhí)行模塊240。
所述二分法協(xié)商模塊210用于進(jìn)行二分法協(xié)商。
可以理解,所述二分法協(xié)商模塊210可以執(zhí)行上述步驟s110。
如圖7所示,所述二分法協(xié)商模塊210包括序列生成模塊211,所述序列生成模塊211用于分別對(duì)第一初始信息序列x2和第二初始信息序列y2進(jìn)行糾錯(cuò)以分別獲取第一信息序列x和第二信息序列y。
在本實(shí)施例中,alice通過(guò)二分法對(duì)所述第一初始信息序列x2進(jìn)行糾錯(cuò)獲取所述第一信息序列x,bob通過(guò)二分法對(duì)所述第二初始序列y2進(jìn)行糾錯(cuò)獲取所述第二信息序列y。在進(jìn)行二分法糾錯(cuò)時(shí),alice和bob通過(guò)交互雙方各組的奇偶信息,并利用二分查找的方式查找和刪除錯(cuò)誤比特,以此降低通信雙方的不一致率。
可以理解,所述序列生成模塊211可以執(zhí)行上述步驟s111。
所述polar碼協(xié)商模塊220用于在二分法協(xié)商完成后再利用糾錯(cuò)能力較強(qiáng)的polar碼進(jìn)行密鑰協(xié)商。
在本實(shí)施例中,由于二分法具有不因初始錯(cuò)誤率高而產(chǎn)生錯(cuò)誤擴(kuò)散的特性,采用先二分法協(xié)商,降低初始錯(cuò)誤率,再使用polar碼的方式協(xié)商密鑰,既能避免初始序列不一致率較高時(shí)引起的錯(cuò)誤擴(kuò)散問(wèn)題,又能提高協(xié)商的效率。
可以理解,所述polar碼協(xié)商模塊220可以執(zhí)行上述步驟s120。
參照?qǐng)D7,所述polar碼協(xié)商模塊220包括第三信息序列獲取模塊221、第四信息序列獲取模塊222、譯碼模塊223、編碼模塊224、第六信息序列獲取模塊225、第七信息序列獲取模塊226及第一判斷模塊227。
所述第三信息序列獲取模塊221用于將所述第一信息序列x與polar碼編碼后的序列pm模二加以獲取第三信息序列c。
在本實(shí)施例中,將隨機(jī)序列m以及凍結(jié)位放在相應(yīng)的子信道上后進(jìn)行polar碼編碼得到序列pm=mgn,alice將所述第一信息序列x與polar碼編碼后的序列pm模二加獲取第三信息序列c,并將所述第三信息序列c發(fā)送給bob。
可以理解,所述第三信息序列獲取模塊221可以執(zhí)行上述步驟s121。
所述第四信息序列獲取模塊222用于將所述第二信息序列y與所述第三信息序列c模二加以獲取第四信息序列p'm。
在本實(shí)施例中,第二通信端bob接收到第一通信端alice發(fā)送的第三信息序列c后,將所述第三信息序列c與所述第二信息序列y模二加以獲得第四信息序列p'm,即
可以理解,所述第四信息序列獲取模塊222可以執(zhí)行上述步驟s122。
所述譯碼模塊223用于將所述第四信息序列p'm進(jìn)行譯碼,以提取出第五信息序列m'。
在本實(shí)施例中,為了獲得正確的pm,bob需要將第四信息序列p'm進(jìn)行譯碼,以提取出第五信息序列m'。在本實(shí)施例中,采用序列連續(xù)刪除算法進(jìn)行譯碼。
可以理解,所述譯碼模塊223可以執(zhí)行上述步驟s123。
所述編碼模塊224用于對(duì)所述第五信息序列m'進(jìn)行編碼。
在本實(shí)施例中,為了獲得隨機(jī)序列m,第二通信端bob將提取出的第五信息序列m'通過(guò)polar碼編碼得到pm”。
可以理解,所述編碼模塊224可以執(zhí)行上述步驟s124。
所述第六信息序列獲取模塊225用于將經(jīng)過(guò)編碼的序列pm”與所述第三信息序列c模二加得到第六信息序列x'。
可以理解,所述第六信息序列獲取模塊225可以執(zhí)行上述步驟s125。
所述第七信息序列獲取模塊226用于在所述第六信息序列x'中隨機(jī)刪除預(yù)設(shè)長(zhǎng)度的序列信息,得到第七信息序列x”。
在本實(shí)施例中,在第六信息序列x'中隨機(jī)刪除與所述凍結(jié)位相同長(zhǎng)度的序列信息得到第七信息序列x”。
可以理解,所述第七信息序列獲取模塊226可以執(zhí)行上述步驟s126。
所述第一判斷模塊227用于依據(jù)所述第七信息序列x”與所述第一信息序列x判斷密鑰協(xié)商是否成功。
可以理解,所述第一判斷模塊227可以執(zhí)行上述步驟s127。
所述第二判斷模塊230用于依據(jù)所述第一信息序列x與所述第二信息序列y判斷二分法協(xié)商是否成功。
可以理解,所述第二判斷模塊230可以執(zhí)行上述步驟s130。
所述執(zhí)行模塊240用于當(dāng)所述二分法協(xié)商成功,則停止所述polar碼協(xié)商步驟;當(dāng)所述二分法協(xié)商不成功,則繼續(xù)所述polar碼協(xié)商步驟。
可以理解,所述執(zhí)行模塊240可以執(zhí)行上述步驟s140。
需要說(shuō)明的是,在本發(fā)明中,為了更好地證明上述實(shí)施例提供的密鑰協(xié)商方法及裝置具有更優(yōu)的性能,分別對(duì)碼字長(zhǎng)度為256,碼率為0.375的polar碼和ldpc碼的協(xié)商性能以及采用基于polar碼糾錯(cuò)的協(xié)商算法和基于二分法與polar碼的聯(lián)合密鑰協(xié)商算法的情況進(jìn)行了仿真及分析。由于每個(gè)采樣值量化為不同數(shù)目的比特時(shí),量化后的初始比特錯(cuò)誤率(即初始不一致率)不同,而量化的比特?cái)?shù)和最后生成的密鑰長(zhǎng)度相關(guān),所以對(duì)量化比特?cái)?shù)為2和3的情況分別進(jìn)行了仿真。
如圖8和圖9所示,分別是量化比特?cái)?shù)為2和3時(shí)的ldpc碼和polar碼糾錯(cuò)后的誤比特率隨相關(guān)系數(shù)的變化曲線圖。圖8表明2比特量化時(shí)polar碼的糾錯(cuò)性能明顯優(yōu)于ldpc碼,在初始錯(cuò)誤率為0.17時(shí)(相關(guān)系數(shù)大于0.1),polar碼就能夠協(xié)商密鑰一致,而ldpc碼在初始錯(cuò)誤率為0.14時(shí)(相關(guān)系數(shù)大于0.55)才能糾正錯(cuò)誤,由此可知基于polar碼協(xié)商算法的糾錯(cuò)能力相對(duì)于ldpc碼性能提升了21%。圖9表明3比特量化時(shí)基于polar碼的協(xié)商算法與基于ldpc碼的協(xié)商算法相比同樣具有更優(yōu)的協(xié)商性能。
由于協(xié)商算法的糾錯(cuò)能力越強(qiáng)生成的密鑰長(zhǎng)度越長(zhǎng),因此,為進(jìn)一步分析基于polar碼和基于ldpc碼這兩種協(xié)商算法,對(duì)兩種協(xié)商算法在2比特和3比特量化時(shí)協(xié)商一次后剩余的密鑰長(zhǎng)度進(jìn)行了仿真,仿真結(jié)果分別如圖10和圖11所示。由圖10可知,2比特量化時(shí),基于polar碼的協(xié)商算法剩余的密鑰更長(zhǎng),且相關(guān)系數(shù)大于0.4時(shí),基于polar碼的協(xié)商算法剩余的密鑰長(zhǎng)度比基于ldpc碼的至少增加了0.3bits/symbol。由圖11可知,3比特量化時(shí),在相關(guān)系數(shù)小于0.87時(shí),基于ldpc碼的協(xié)商算法剩余的密鑰長(zhǎng)度大于基于polar碼的協(xié)商算法,這是因?yàn)榇藭r(shí)的初始錯(cuò)誤率太高,已經(jīng)超過(guò)了兩種算法的糾錯(cuò)能力,而因?yàn)閘dpc碼中的bp譯碼不會(huì)產(chǎn)生錯(cuò)誤擴(kuò)散,使得ldpc的誤比特率在協(xié)商前后保持不變,所以是理論上剩余的密鑰長(zhǎng)度較大,但是當(dāng)初始錯(cuò)誤率在polar碼的糾錯(cuò)能力范圍內(nèi)時(shí),基于polar碼的協(xié)商算法剩余的密鑰長(zhǎng)度仍然長(zhǎng)于基于ldpc碼的協(xié)商算法。
由上述可知,基于polar碼的協(xié)商算法比基于ldpc的協(xié)商算法更有優(yōu)勢(shì),并且由圖10和圖11可知,當(dāng)采用基于polar碼的協(xié)商算法協(xié)商密鑰時(shí),為了生成更長(zhǎng)的密鑰,應(yīng)該相關(guān)系數(shù)小于0.92時(shí)采用2比特量化。大于0.92時(shí)采用3比特量化。
由于當(dāng)誤比特率超出polar碼的糾錯(cuò)能力范圍時(shí),polar碼可能會(huì)引入額外錯(cuò)誤(由圖11可知),于是先采用二分法降低序列的初始不一致率,再采用polar碼進(jìn)行密鑰協(xié)商,如圖12和圖13所示,分別是量化比特?cái)?shù)為2和3時(shí)基于二分法和polar碼的聯(lián)合密鑰協(xié)商算法的性能曲線圖。由圖12可知,當(dāng)量化比特?cái)?shù)為2且相關(guān)系數(shù)小于0.1時(shí),基于polar碼的協(xié)商算法產(chǎn)生了錯(cuò)誤擴(kuò)散,而基于二分法和polar碼的聯(lián)合密鑰協(xié)商算法仍能較好地協(xié)商密鑰。由圖13可知,基于二分法和polar碼的聯(lián)合密鑰協(xié)商算法在相關(guān)系數(shù)大于0.755(初始序列不一致率小于0.2115)時(shí)能夠協(xié)商一致,而基于polar碼的協(xié)商算法在相關(guān)系數(shù)大于0.880(初始序列不一致率小于0.17)時(shí)才能協(xié)商一致,并且在相同的相關(guān)系數(shù)下二分法和polar碼聯(lián)合密鑰協(xié)商算法的誤比特率更低。因此,基于二分法和polar碼的聯(lián)合密鑰協(xié)商算法相較于基于polar碼的協(xié)商算法具有更強(qiáng)的協(xié)商能力,糾錯(cuò)性能提升了約24%。
由于二分法協(xié)商是通過(guò)刪除不一致比特的方式降低不一致率的,所以采用二分法聯(lián)合polar碼協(xié)商后的信息長(zhǎng)度會(huì)減小。為了生成更長(zhǎng)的密鑰,分別對(duì)2比特量化和3比特量化時(shí)協(xié)商一次后每采樣值剩余信息熵的大小進(jìn)行了仿真,仿真結(jié)果如圖14和圖15所示。由圖14和圖15可知,基于二分法和polar碼的聯(lián)合密鑰協(xié)商算法是通過(guò)犧牲密鑰長(zhǎng)度來(lái)提升糾錯(cuò)性能的。若要獲得更長(zhǎng)的密鑰,當(dāng)相關(guān)系數(shù)小于0.93時(shí),每采樣值應(yīng)被量化為2比特;當(dāng)相關(guān)系數(shù)大于0.93時(shí),每采樣值應(yīng)被量化為3比特。此外,還需在相關(guān)系數(shù)小于0.3時(shí)采用基于二分法和polar碼的聯(lián)合密鑰協(xié)商算法來(lái)協(xié)商密鑰,大于0.3時(shí)采用基于polar碼的協(xié)商算法來(lái)協(xié)商密鑰。
綜上分析可得,在通信實(shí)時(shí)性要求較高的情況下,應(yīng)首先考慮基于二分法和polar碼的聯(lián)合密鑰協(xié)商算法來(lái)協(xié)商密鑰,在通信安全性要求較高的情況下,應(yīng)首先考慮基于polar碼的協(xié)商算法來(lái)協(xié)商密鑰。
綜上所述,本發(fā)明實(shí)施例所提供的密鑰協(xié)商方法及裝置,采用基于二分法和polar碼的聯(lián)合密鑰協(xié)商算法實(shí)現(xiàn)密鑰協(xié)商。第一通信端alice和第二通信端bob分別對(duì)第一初始信息序列和第二初始信息序列進(jìn)行糾錯(cuò)以分別獲取第一信息序列和第二信息序列,第一通信端alice將隨機(jī)序列m進(jìn)行polar碼編碼后與第一信息序列x模二加以獲得第三信息序列c,并將第三信息序列c發(fā)送給第二通信端bob,第二通信端bob將接收到的第三信息序列c與第二信息序列y模二加以獲取第四信息序列p'm,并將第四信息序列p'm進(jìn)行譯碼,提取出第五信息序列m',對(duì)第五信息序列m'進(jìn)行polar碼編碼得到pm”,然后將pm”與第三信息序列c模二加得到第六信息序列x',隨機(jī)刪除所述第六信息序列x'中的預(yù)設(shè)長(zhǎng)度的序列信息,得到第七信息序列x”,最后第一通信端alice和第二通信端bob通過(guò)哈希函數(shù)比較第一信息序列x與所述第七信息序列x”是否一致,若一致,則向另一方發(fā)送確認(rèn)信息,表明密鑰協(xié)商成功;若不一致,表明密鑰協(xié)商失敗,繼續(xù)下一輪密鑰協(xié)商。本發(fā)明解決了現(xiàn)有密鑰協(xié)商中存在的錯(cuò)誤擴(kuò)散的問(wèn)題,糾錯(cuò)能力高,有更優(yōu)的協(xié)商性能,保證了通信的可靠性。
需要說(shuō)明的是,在本文中,諸如“第一”和“第二”等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。