本發(fā)明涉及一種無線信道物理層密鑰協(xié)商與不一致比特去除方法,特別是涉及一種非交互式無線信道物理層密鑰協(xié)商與不一致比特去除方法。
背景技術(shù):
近年來,隨著科學(xué)技術(shù)的迅猛發(fā)展,無線通信技術(shù)正在以不同的方式改變著世界。與傳統(tǒng)的有線通信相比,無線通信具有部署方便、不受地形和障礙物的限制、作用范圍更大等優(yōu)點,使得無線通信的使用范圍越來越廣。但是正是由于其開放的特性,使得無線通信比有線通信更容易受到攻擊,其安全性也愈發(fā)受到人們的關(guān)注。
理論和實驗已經(jīng)表明,無線信道具有互易性、時變性和空變性等特點,合法雙方可以利用無線信道的這些特點尋求實現(xiàn)安全通信的解決方案。
互易性:根據(jù)電磁波的傳播特性,無線通信雙方在相干時間內(nèi),發(fā)射信號和接收信號經(jīng)歷相同的衰落,當(dāng)沒有非線性元件的兩個天線發(fā)射相同的信號時,兩個天線將會得到相同的輸出。
時變性:電磁波在自由空間中傳播,會受到信道衰減、多徑衰落以及收發(fā)雙方的相對運動等因素的影響,導(dǎo)致無線信道的特性是時變的,并且這種變化趨勢具有不可預(yù)測性。
空變性:不同時間、不同空間位置的無線信道特征是唯一的,不可復(fù)制。在無線信道中,由于受到散射等因素的影響,使得信號將沿不同的路徑從一個位置到達(dá)另一個位置。特別地,在多徑豐富的無線環(huán)境中,距離合法雙方半個波長之外的竊聽方的信道觀察和合法雙方的信道觀察是統(tǒng)計獨立的。
基于無線信道的這些特點,無線信道可以作為一個公共隨機源,并且這個公共隨機源獨立于竊聽信道。當(dāng)合法雙方以時分雙工(Time Division Duplex,TDD)方式對無線信道進(jìn)行探測時,無線信道的時變性使得合法雙方能夠生成具有“噪聲”性質(zhì)的真隨機的密鑰;無線信道的互易性使得雙方能夠生成相同的比特序列作為后續(xù)安全通信的密鑰;而無線信道的空變性能夠?qū)崿F(xiàn)密鑰分發(fā)過程的“物理安全性”。因此,合法雙方可以利用無線信道的這些特點生成共享密鑰,從而實現(xiàn)安全通信的目標(biāo)。
目前,針對不同的信道特征,各種實際的密鑰生成方案相繼被提出。在這些方案中密鑰生成的主要流程是:合法通信雙方Alice和Bob首先在相干時間內(nèi)完成對無線信道的雙向探測,選取合適的信道參數(shù),如信道響應(yīng)幅度、相位等,在接收信號中對選定的信道參數(shù)進(jìn)行測量,然后對其進(jìn)行量化,得到用于生成共享密鑰的初始比特序列Ka和Kb。由于無線信道的半雙工特性、合法雙方收發(fā)設(shè)備硬件的差別、本地噪聲以及量化誤差等因素的影響,使得雙方的初始比特序列不可能完全一致,雙方必須通過恰當(dāng)?shù)拿荑€協(xié)商方法得到完全一致的比特串并驗證。最后通過保密增強方法進(jìn)一步增強密鑰的隨機性,最終得到用于安全通信的密鑰。
現(xiàn)有的密鑰協(xié)商方法由于需要通信雙方交互一部分校驗信息進(jìn)行密鑰協(xié)商來提高密鑰的一致性,然而,由于這部分信息通過公開信道傳輸,一定會泄露秘密比特序列的一部分信息,這有助于竊聽者猜測密鑰序列。所以,現(xiàn)有的物理層密鑰協(xié)商方案存在較大的安全風(fēng)險。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是提供一種安全性更高、非交互式、且沒有熵?fù)p失的無線信道物理層密鑰協(xié)商與不一致比特去除的方法。
本發(fā)明采用的技術(shù)方案如下:一種無線信道物理層密鑰協(xié)商與不一致比特去除方法,具體方法為:基于糾錯編碼去除無線通信雙方的不一致比特,通過非交互的方式完成密鑰協(xié)商工作,利用與校驗位相獨立的隨機比特序列來盲化在公共信道傳輸?shù)男r炍弧?/p>
通過這種方法,通信雙方能夠以非交互的方式,在不泄露關(guān)于所生成密鑰任何信息的情況下完成信息協(xié)商過程,使得雙方獲得完全一致的秘密隨機比特序列。
糾錯編碼(error correcting code),是在接收端能自動地糾正數(shù)據(jù)傳輸中所發(fā)生差錯的編碼算法。糾錯碼的基本思想是在所有的由發(fā)送符號組成的序列中,僅挑出其中一部分做為信息的代表向信道發(fā)送,并使得所挑出的這些序列之間有盡可能多的差異。每個被挑出的允許發(fā)送的序列被稱為一個碼字,而碼字的總合稱為碼。在發(fā)送端把信息變換成碼字的過程稱為編碼;在接收端從接收到的信號判定所發(fā)碼字、從而恢復(fù)信息的過程稱為解碼(或譯碼)。在解碼時,若收到的信號不是碼中的一個碼字,則可以肯定在傳輸中出現(xiàn)了差錯,從而著手對差錯進(jìn)行糾正。糾錯的方法是找到與接收到的信號最接近的碼字,并將其判定為發(fā)送信號。一般采用“距離”來度量信號間的接近程度,一種常用的“距離”稱為漢明距離,它被定義為兩碼字間對應(yīng)位不同的個數(shù)總和。一個給定碼,其全部碼字兩兩之間距離的最小值被稱為這個碼的碼距。碼距是一個碼糾錯能力的重要參數(shù),例如在漢明距離下,若接收到的信號出錯的位數(shù)不多于碼距的一半,則接收端總能正確地恢復(fù)所發(fā)送的碼字,從而正確地恢復(fù)所發(fā)送的信息。
線性分組碼:在構(gòu)造糾錯碼時,若碼元間的關(guān)系為線性關(guān)系,則稱之為線性碼。在編碼時,將輸入信息分成k位一組以進(jìn)行編碼,若編出的校驗位僅與本組的信息位有關(guān),則稱這樣的碼為分組碼。典型的分組碼是由k位信息位和(n-k)位校驗位組成的,這樣構(gòu)成的碼一般稱為系統(tǒng)碼,其中n為碼長。線性分組碼系統(tǒng)碼的生成矩陣G具有[Ik,P]的形式,其中,Ik是k階單位矩陣,P是k行(n-k)列矩陣,而相應(yīng)的校驗矩陣H具有[[PT,In-k]]的形式,其中In-k是(n-k)階單位矩陣,PT是P的轉(zhuǎn)置矩陣。
包括初始化過程、通信一方生成并發(fā)送校驗位的過程和通信另一方收到校驗位后進(jìn)行不一致比特去除的過程;
其中,初始化過程中,選取糾錯編碼算法及與其相對應(yīng)的密碼算法,及其生成矩陣和校驗矩陣;
通信一方生成并發(fā)送校驗位的過程中,通信一方將其隨機比特序列切分為短的比特序列后,將切分的短的比特序列與糾錯編碼算法的生成矩陣相乘得到校驗位;將得到的校驗位進(jìn)行盲化后發(fā)送給通信另一方;
通信另一方收到校驗位后進(jìn)行不一致比特去除的過程中,通信另一方將校驗位去盲化,將其隨機比特序列切分為短的比特序列,并將去盲化后的校驗位切分為短的比特序列;通信另一方利用對去盲化后的校驗位切分或短的比特序列作為校正字,基于所述相對應(yīng)的密碼算法和所述校驗矩陣,對通信另一方隨機比特序列切分后的短的比特序列進(jìn)行譯碼,得到密鑰塊;將得到的密鑰塊按順序串接得到所述通信一方的隨機比特序列,作為通信雙方的后續(xù)安全通信的密鑰。
初始化過程的具體方法為:
選取碼長為n且信息位長為k的(n,k)糾錯編碼算法(此算法可以選用任何糾錯編碼算法),包括編碼算法E(·)和譯碼算法D(·);令被編碼的信息為k比特長的X,則編碼算法En,k(X)輸出一個比特長度為n的碼字{X,S},其中S是比特長度為n-k的校驗位,則編碼算法表示為E(·):En,k(X)→{X,S},相應(yīng)的譯碼算法為其中為碼字,X為譯碼結(jié)果;同時,令糾錯編碼算法的生成矩陣為G=[Ik,P],校驗矩陣為H=[PT,In-k];其中,Ik是k階單位矩陣,P是k行(n-k)列矩陣;In-k是(n-k)階單位矩陣,PT是P的轉(zhuǎn)置矩陣;
合法通信雙方在相干時間內(nèi)完成對無線信道的雙向探測,選取包括信道響應(yīng)幅度和相位的信道參數(shù),在接收信號中對選定的信道參數(shù)進(jìn)行測量并進(jìn)行量化,得到用于生成共享密鑰的初始比特序列Ka和Kb;即通信一方獲得的比特序列Ka=K||ω,通信另一方獲得的比特序列Kb=K′||ω′,其中符號“||”表示比特序列按序串接,比特序列K和K′的比特長度均為N,而且N是k的整數(shù)倍,即l=N/k,l是正整數(shù),比特序列ω和ω′的比特長度均為l×(n-k)l×(n-k);其中,ω與K相互獨立,ω′與K′相互獨立,ω和ω′均為盲化信息位。
在理想環(huán)境下Ka和Kb會完全一致,但是由于無線信道的半雙工特性、收發(fā)設(shè)備硬件的差異、本地噪聲以及量化誤差等因素的影響,使得比特序列Ka和Kb不完全一致。
通信一方生成并發(fā)送校驗位的過程中,將得到的校驗位進(jìn)行盲化的具體方法為:計算S′=S1||S2||...||Sl和符號代表逐比特異或;其中,Si為得到的校驗位S′的第i比特,i=1,2,…,l,S為盲化后的校驗位。
通信一方生成并發(fā)送校驗位的具體方法步驟為:
S21、將比特序列K切分成l個長度為k的短比特序列K1,K2,...,Kl;
S22、利用編碼算法對Ki進(jìn)行編碼En,k(Ki)→{Ki,Si},即將比特序列Ki分別與糾錯編碼算法的生成矩陣G相乘,Ki×[Ik,P],得到校驗位Si=Ki×P,i=1,2,…,l;
S23、計算S′=S1||S2||...||Sl和符號代表逐比特異或,得到盲化后的校驗位S;
S24、發(fā)送盲化的校驗位,所述通信一方將S通過公開信道發(fā)送給通信另一方。
通信另一方收到校驗位后進(jìn)行不一致比特去除的具體方法步驟為:
S31、校驗位去盲化,計算
S32、將K′切分成l個比特長度為短的比特序列,記作Ki′,i=1,2,…,l;
S33、將切分成l個比特長度為(n-k)短的比特序列
S34、利用譯碼算法對碼字進(jìn)行譯碼即利用校驗位并基于相應(yīng)的譯碼算法和校驗矩陣H對比特序列Ki′進(jìn)行譯碼,得到密鑰塊Ki,i=1,2,…,l;
S35、密鑰序列串接K=K1||K2||...||Kl,即將密鑰塊Ki(i=1,2,…,l)按順序串接,得到隨機比特序列K。
通過以上的密鑰協(xié)商與不一致比特去除方法,在不考慮解碼失敗的情況下,通信雙方獲得了共同的隨機比特序列K,K可用作他們后續(xù)安全通信的密鑰。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:在進(jìn)行信息交互時,與傳統(tǒng)的密鑰協(xié)商方法采用的信息交互方法相比,經(jīng)過盲化操作的校驗子S沒有泄露任何關(guān)于密鑰K的消息;從竊聽方的角度來看,它竊聽到的檢正子信息是經(jīng)過盲化的、完全隨機的比特序列,所以竊聽方無法從竊聽的信息中提取關(guān)于密鑰的信息;能夠通過非交互的方式完成密鑰協(xié)商工作,較之需要多次信息交互的密鑰協(xié)商方法,可以大大縮減計算以及協(xié)商時間,而且在某些應(yīng)用場景下具有不可替代性。
附圖說明
圖1為本發(fā)明其中一實施例的流程示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本說明書(包括摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或者具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。
具體實施例1
一種無線信道物理層密鑰協(xié)商與不一致比特去除方法,具體方法為:基于糾錯編碼去除無線通信雙方的不一致比特,通過非交互的方式完成密鑰協(xié)商工作,利用與校驗位相獨立的隨機比特序列來盲化在公共信道傳輸?shù)男r炍弧?/p>
糾錯編碼(error correcting code),是在接收端能自動地糾正數(shù)據(jù)傳輸中所發(fā)生差錯的編碼算法。糾錯碼的基本思路是在所有的由發(fā)送符號組成的序列中,僅挑出其中一部分做為信息的代表向信道發(fā)送,并使得所挑出的這些序列之間有盡可能多的差異。每個被挑出的允許發(fā)送的序列被稱為一個碼字,而碼字的總合稱為碼。在發(fā)送端把信息變換成碼字的過程稱為編碼;在接收端從接收到的信號判定所發(fā)碼字、從而恢復(fù)信息的過程稱為解碼(或譯碼)。在解碼時,若收到的信號不是碼中的一個碼字,則可以肯定在傳輸中出現(xiàn)了差錯,從而著手對差錯進(jìn)行糾正。糾錯的方法是找到與接收到的信號最接近的碼字,并將其判定為發(fā)送信號。一般采用“距離”來度量信號間的接近程度,一種常用的“距離”稱為漢明距離,它被定義為兩碼字間對應(yīng)位不同的個數(shù)總和。一個給定碼,其全部碼字兩兩之間距離的最小值被稱為這個碼的碼距。碼距是一個碼糾錯能力的重要參數(shù),例如在漢明距離下,若接收到的信號出錯的位數(shù)不多于碼距的一半,則接收端總能正確地恢復(fù)所發(fā)送的碼字,從而正確地恢復(fù)所發(fā)送的信息。
具體實施例2
在具體實施例1的基礎(chǔ)上,包括初始化過程、通信一方生成并發(fā)送校驗位的過程和通信另一方收到校驗位后進(jìn)行不一致比特去除的過程;
其中,初始化過程中,選取糾錯編碼算法及與其相對應(yīng)的密碼算法,及其生成矩陣和校驗矩陣;
通信一方生成并發(fā)送校驗位的過程中,通信一方將其隨機比特序列切分為短的比特序列后,將切分的短的比特序列與糾錯編碼算法的生成矩陣相乘得到校驗位;將得到的校驗位進(jìn)行盲化后發(fā)送給通信另一方;
通信另一方收到校驗位后進(jìn)行不一致比特去除的過程中,通信另一方將校驗位去盲化,將其隨機比特序列切分為短的比特序列,并將去盲化后的校驗位切分為短的比特序列;通信另一方利用對去盲化后的校驗位切分或的短的比特序列作為校正字,基于所述相對應(yīng)的密碼算法和所述校驗矩陣,對通信另一方隨機比特序列切分后的短的比特序列進(jìn)行譯碼,得到密鑰塊;將得到的密鑰塊按順序串接得到所述通信一方的隨機比特序列,作為通信雙方的后續(xù)安全通信的密鑰。
具體實施例3
在具體實施例2的基礎(chǔ)上,初始化過程的具體方法為:
選取碼長為n且信息位長為k的(n,k)糾錯編碼算法(此算法可以選用任何糾錯編碼算法),包括編碼算法E(·)和譯碼算法D(·);令被編碼的信息為k比特長的X,則編碼算法En,k(X)輸出一個比特長度為n的碼字{X,S},其中S是比特長度為n-k的校驗位,則編碼算法表示為E(·):En,k(X)→{X,S},相應(yīng)的譯碼算法為其中為碼字,X為譯碼結(jié)果;同時,令糾錯編碼算法的生成矩陣為G=[Ik,P],校驗矩陣為H=[PT,In-k];其中,Ik是k階單位矩陣,P是k行(n-k)列矩陣;In-k是(n-k)階單位矩陣,PT是P的轉(zhuǎn)置矩陣;
令合法通信雙方為Alice和Bob。合法通信雙方Alice和Bob在相干時間內(nèi)完成對無線信道的雙向探測,選取包括信道響應(yīng)幅度和相位的信道參數(shù),在接收信號中對選定的信道參數(shù)進(jìn)行測量并進(jìn)行量化,得到用于生成共享密鑰的初始比特序列Ka和Kb;即通信一方獲得的比特序列Ka=K||ω,通信另一方獲得的比特序列Kb=K′||ω′,其中符號“||”表示比特序列按序串接,比特序列K和K′的比特長度均為N,而且N是k的整數(shù)倍,即l=N/k,l是正整數(shù),比特序列ω和ω′的比特長度均為l×(n-k)l×(n-k);其中,ω與K相互獨立,ω′與K′相互獨立,ω和ω′均為盲化信息位。
線性分組碼:在構(gòu)造糾錯碼時,若碼元間的關(guān)系為線性關(guān)系,則稱之為線性碼。在編碼時,將輸入信息分成k位一組以進(jìn)行編碼,若編出的校驗位僅與本組的信息位有關(guān),則稱這樣的碼為分組碼。典型的分組碼是由k位信息位和(n-k)位校驗位組成的,這樣構(gòu)成的碼一般稱為系統(tǒng)碼,其中n為碼長。線性分組碼系統(tǒng)碼的生成矩陣G具有[Ik,P]的形式,其中,Ik是k階單位矩陣,P是k行(n-k)列矩陣,而相應(yīng)的校驗矩陣H具有[PT,In-k]的形式,其中In-k是(n-k)階單位矩陣,PT是P的轉(zhuǎn)置矩陣。
具體實施例4
如圖1所示,在具體實施例2或3的基礎(chǔ)上,通信一方(Alice)生成并發(fā)送校驗位的過程中,將得到的校驗位進(jìn)行盲化的具體方法為:計算S′=S1||S2||...||Sl和符號代表逐特異或;其中,Si為得到的校驗位S′的第i比特,i=1,2,…,l,S為盲化后的校驗位。
具體實施例5
如圖1所示,在具體實施例2到4之一的基礎(chǔ)上,通信一方(Alice)生成并發(fā)送校驗位的具體方法步驟為:
S21、將比特序列K切分成l個長度為k的短比特序列K1,K2,...,Kl;
S22、利用編碼算法對Ki進(jìn)行編碼En,k(Ki)→{Ki,Si},即將比特序列Ki分別與糾錯編碼算法的生成矩陣G相乘,Ki×[Ik,P],得到校驗位Si=Ki×P,i=1,2,…,l;
S23、計算S′=S1||S2||...||Sl和符號代表逐比特異或,得到盲化后的校驗位S;
S24、發(fā)送盲化的校驗位,所述通信一方將S通過公開信道發(fā)送給通信另一方。
通信另一方(Bob)收到校驗位后進(jìn)行不一致比特去除的具體方法步驟為:
S31、校驗位去盲化,計算
S32、將K′切分成l個比特長度為短的比特序列,記作Ki′,i=1,2,…,l;
S33、將切分成l個比特長度為(n-k)短的比特序列
S34、利用譯碼算法對碼字進(jìn)行譯碼即利用校驗位并基于相應(yīng)的譯碼算法和校驗矩陣H對比特序列Ki′進(jìn)行譯碼,得到密鑰塊Ki,i=1,2,…,l;
S35、密鑰序列串接K=K1||K2||...||Kl,即將密鑰塊Ki(i=1,2,…,l)按順序串接,得到隨機比特序列K。