專(zhuān)利名稱(chēng):基于無(wú)線(xiàn)信道隨機(jī)狀態(tài)生成對(duì)稱(chēng)密鑰的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及非密碼學(xué)對(duì)稱(chēng)密鑰生成技術(shù),屬于無(wú)線(xiàn)通信領(lǐng)域,具體涉及一種基于無(wú)線(xiàn)信道隨機(jī)狀態(tài)生成對(duì)稱(chēng)密鑰的方法。
背景技術(shù):
對(duì)稱(chēng)密鑰是一種保障通信安全的重要工具,最常用的用于生成對(duì)稱(chēng)密鑰的方法是采用基于密碼學(xué)方式生成,如 Twof ish,Serpent, AES, Blowf ish,CAST5, RC4, 3DES 和 IDEA。 這種基于密碼學(xué)方式生成的對(duì)稱(chēng)密鑰通常易受到攻擊,例如已知明文攻擊、選擇明文攻擊、 差分密碼分析以及線(xiàn)性密碼分析。一旦敵方使用高性能計(jì)算機(jī)進(jìn)行暴力破解,其密鑰的安全性將受到嚴(yán)重威脅,尤其是隨著量子計(jì)算機(jī)等為代表的下一代計(jì)算機(jī)的問(wèn)世,傳統(tǒng)的基于密碼學(xué)方式生成密鑰的方法根本沒(méi)有安全性可言。另外,傳統(tǒng)的方法往往需要消耗大量的計(jì)算資源和能量,這局限了其在傳感器網(wǎng)絡(luò)等計(jì)算能力和能量受限的環(huán)境下的使用。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種基于無(wú)線(xiàn)信道隨機(jī)狀態(tài)生成對(duì)稱(chēng)密鑰的方法,該方法利用無(wú)線(xiàn)信道隨機(jī)狀態(tài)生成對(duì)稱(chēng)密鑰,能夠達(dá)到提高用戶(hù)雙方獲取密鑰的一致性、增強(qiáng)用戶(hù)之間通信的安全性以及提高對(duì)不同掃描速率的適應(yīng)性的目的。采用本發(fā)明所提供的方法生成對(duì)稱(chēng)密鑰的過(guò)程如下所述(1)將兩個(gè)用戶(hù)作為節(jié)點(diǎn),其中任意一方作為主節(jié)點(diǎn),另一方作為副節(jié)點(diǎn);在主節(jié)點(diǎn)處設(shè)定一個(gè)掃描速率;掃描速率的設(shè)置范圍為IOms 50ms。(2)兩個(gè)節(jié)點(diǎn)均初始化監(jiān)聽(tīng)進(jìn)程Wireshark。(3)主節(jié)點(diǎn)發(fā)送掃描PING包,并采用監(jiān)聽(tīng)進(jìn)程Wireshark捕獲來(lái)自副節(jié)點(diǎn)的掃描回復(fù)REPLY包,從掃描回復(fù)REPLY包中取出并記錄接受信號(hào)強(qiáng)度RSS值;在主節(jié)點(diǎn)發(fā)送掃描 PING包的同時(shí),副節(jié)點(diǎn)采用監(jiān)聽(tīng)進(jìn)程Wireshark捕獲來(lái)自主節(jié)點(diǎn)的掃描PING包,并從中取出并記錄接受信號(hào)強(qiáng)度RSS值。兩個(gè)節(jié)點(diǎn)在記錄RSS值的同時(shí),主節(jié)點(diǎn)記錄所述掃描回復(fù)REPLY包到達(dá)自身MAC 層的時(shí)間點(diǎn),副節(jié)點(diǎn)記錄所述掃描PING包到達(dá)自身MAC層的時(shí)間。(4)重復(fù)(3)中的操作,進(jìn)行N次信道掃描,主節(jié)點(diǎn)與副節(jié)點(diǎn)均得到一組RSS序列。(5)兩個(gè)節(jié)點(diǎn)分別對(duì)所記錄的RSS序列進(jìn)行量化處理,生成長(zhǎng)度一致的比特串。主節(jié)點(diǎn)處的量化過(guò)程為將所記錄的最后一個(gè)掃描回復(fù)REPLY包到達(dá)自身MAC層的時(shí)間點(diǎn)與所接收到的第一個(gè)掃描回復(fù)REPLY包到達(dá)自身MAC層的時(shí)間點(diǎn)之間的時(shí)間長(zhǎng)度切割成若干個(gè)等長(zhǎng)時(shí)間段,每個(gè)時(shí)間段即為一個(gè)時(shí)間窗口 ;求對(duì)應(yīng)于每一個(gè)時(shí)間段中所有 RSS值的平均值,將大于所述平均值的RSS值記為1,反之,記為0,即可得到對(duì)應(yīng)于主節(jié)點(diǎn) RSS序列的比特串;通常地,設(shè)置時(shí)間窗口的大小為500ms。副節(jié)點(diǎn)處的量化過(guò)程為將所記錄的最后一個(gè)掃描PING包到達(dá)自身MAC層的時(shí)間點(diǎn)與所接收到的第一個(gè)掃描PING包到達(dá)自身MAC層的時(shí)間點(diǎn)之間的時(shí)間長(zhǎng)度切割成若干個(gè)等長(zhǎng)時(shí)間段,每個(gè)時(shí)間段即為一個(gè)時(shí)間窗口 ;求對(duì)應(yīng)于每一個(gè)時(shí)間段中所有RSS值的平均值,將大于所述平均值的RSS值記為1,反之,記為0,即可得到對(duì)應(yīng)于副節(jié)點(diǎn)RSS序列的比特串;通常地,設(shè)置時(shí)間窗口的大小為500ms。(6)主節(jié)點(diǎn)發(fā)起一致性協(xié)調(diào)進(jìn)程,副節(jié)點(diǎn)配合完成此進(jìn)程。所述一致性協(xié)調(diào)進(jìn)程為1)主節(jié)點(diǎn)與副節(jié)點(diǎn)預(yù)先設(shè)置一個(gè)相同的數(shù)值,稱(chēng)為協(xié)調(diào)頻數(shù)m ;主節(jié)點(diǎn)從主節(jié)點(diǎn)端的比特串的第1位開(kāi)始進(jìn)行掃描若有m個(gè)連續(xù)的且相同的比特值,則記錄m個(gè)比特值中第一個(gè)比特值在該比特串中的位置;在對(duì)主節(jié)點(diǎn)端的比特串掃描結(jié)束后,所記錄的各位置形成位置序列Sl ;主節(jié)點(diǎn)將位置序列Sl發(fā)給副節(jié)點(diǎn)。2)副節(jié)點(diǎn)從副節(jié)點(diǎn)端的比特串的第1位開(kāi)始掃描,判斷位置序列Sl所指示的各位置上是否存在以該位置為起始的m個(gè)連續(xù)且相同的比特值,若存在,則記錄下該位置;在對(duì)副節(jié)點(diǎn)端的比特串掃描結(jié)束后,所記錄的各位置形成位置序列S2,副節(jié)點(diǎn)將位置序列S2發(fā)送至主節(jié)點(diǎn),同時(shí)副節(jié)點(diǎn)將位置序列S2對(duì)應(yīng)于副節(jié)點(diǎn)比特串中的比特值取出,形成比特序列串B2,將該比特序列串B2作為密鑰2。3)主節(jié)點(diǎn)依據(jù)位置序列S2對(duì)主節(jié)點(diǎn)比特串進(jìn)行掃描,將位置序列S2對(duì)應(yīng)于其比特串中的比特值取出,形成比特序列串Bi,將該比特序列串Bl作為密鑰1。所述協(xié)調(diào)頻數(shù)m的取值范圍為5 8。(7)將所得到的兩個(gè)相同的密鑰1和密鑰2作為對(duì)稱(chēng)密鑰。有益效果本發(fā)明所提供的方法是基于無(wú)線(xiàn)信道的一種隨機(jī)狀態(tài)一接受信號(hào)強(qiáng)度(RSS)來(lái)提取密鑰的。(1)無(wú)線(xiàn)信道隨機(jī)狀態(tài)在相干時(shí)間內(nèi)具有高相關(guān)性,PING包與REPLY包的時(shí)間間隙通常滿(mǎn)足這個(gè)條件,因此雙方節(jié)點(diǎn)獲取的RSS序列值具有較高的相關(guān)性,從而使得用戶(hù)雙方所獲取的密鑰具有極高的一致性。(2)由于無(wú)線(xiàn)信道在某一時(shí)刻的RSS狀態(tài)與節(jié)點(diǎn)的相對(duì)地理位置是強(qiáng)相關(guān)的,第三方即使有能力竊聽(tīng)合法節(jié)點(diǎn)之間的通信,但并不能獲取合法節(jié)點(diǎn)之間信道的實(shí)時(shí)狀態(tài), 因而從理論上就不可能破解合法節(jié)點(diǎn)之間利用RSS信息所生成的對(duì)稱(chēng)密鑰,這樣使得用戶(hù)之間通信的安全性得到保障,非法用戶(hù)企圖破解密鑰的可能性幾乎不存在。(3)在量化處理過(guò)程中采用了固定時(shí)間窗口進(jìn)行采樣,這樣,可提高對(duì)于不同的掃描速率的適應(yīng)性。
圖1為采用本發(fā)明所提供的方法生成對(duì)稱(chēng)密鑰的流程圖。
具體實(shí)施例方式下面結(jié)合附圖并舉實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)描述。本發(fā)明所采用的實(shí)驗(yàn)平臺(tái)為兩臺(tái)GATEWAY LT25筆記本電腦,均配置Atheors AR 5B95 802. lla/g/n無(wú)線(xiàn)網(wǎng)卡,天線(xiàn)增益15dbm。運(yùn)行的操作系統(tǒng)為Fedora Linux (kernel version 2. 6. 34. 8-68. fcl3. 686)。
一種基于無(wú)線(xiàn)信道隨機(jī)狀態(tài)生成對(duì)稱(chēng)密鑰的過(guò)程如圖1所示。(1)參數(shù)設(shè)置將兩個(gè)用戶(hù)作為節(jié)點(diǎn),其中任意一方作為主節(jié)點(diǎn),另一方作為副節(jié)點(diǎn);在主節(jié)點(diǎn)處設(shè)定一個(gè)掃描速率。所設(shè)定的掃描速率不宜過(guò)高,若掃描速率過(guò)高,則會(huì)造成較高的丟包率;若掃描速率過(guò)低,則會(huì)延長(zhǎng)生成密鑰的等待時(shí)間。一般地,將掃描速率設(shè)置為IOms 50ms。(2)兩個(gè)節(jié)點(diǎn)均初始化監(jiān)聽(tīng)進(jìn)程Wireshark。(3)主節(jié)點(diǎn)發(fā)送掃描PING包,并采用監(jiān)聽(tīng)進(jìn)程Wireshark捕獲來(lái)自副節(jié)點(diǎn)的掃描回復(fù)REPLY包,從REPLY包中取出并記錄RSS值;在主節(jié)點(diǎn)發(fā)送掃描PING包的同時(shí),副節(jié)點(diǎn)采用監(jiān)聽(tīng)進(jìn)程Wireshark捕獲來(lái)自主節(jié)點(diǎn)的掃描PING包,并從中取出并記錄RSS值。兩個(gè)節(jié)點(diǎn)在記錄RSS值的同時(shí),還記錄各自所接收到的數(shù)據(jù)包到達(dá)MAC層的時(shí)間, 其中主節(jié)點(diǎn)記錄所接收到的掃描回復(fù)REPLY包到達(dá)自身MAC層的時(shí)間點(diǎn),副節(jié)點(diǎn)記錄所接收到的掃描PING包到達(dá)自身MAC層的時(shí)間點(diǎn)。對(duì)所述到達(dá)MAC層的時(shí)間的記錄,兩個(gè)節(jié)點(diǎn)均可采用命令tshark-V-T fields-e radiotap. mactime-e radiotap. dbm—antsignal ;(4)重復(fù)(3)中的操作,進(jìn)行N次信道掃描,主節(jié)點(diǎn)與副節(jié)點(diǎn)均得到一組RSS序列。(5)兩個(gè)節(jié)點(diǎn)分別對(duì)所記錄的RSS序列進(jìn)行量化處理,可生成長(zhǎng)度一致的比特串。主節(jié)點(diǎn)處的量化過(guò)程為將所記錄的最后一個(gè)掃描回復(fù)REPLY包到達(dá)自身MAC層的時(shí)間點(diǎn)與所接收到的第一個(gè)掃描回復(fù)REPLY包到達(dá)自身MAC層的時(shí)間點(diǎn)之間的時(shí)間長(zhǎng)度切割成若干個(gè)等長(zhǎng)時(shí)間段,每個(gè)時(shí)間段即為一個(gè)時(shí)間窗口 ;求對(duì)應(yīng)于每一個(gè)時(shí)間段中所有 RSS值的平均值,將大于所述平均值的RSS值記為1,反之,記為0,即可得到對(duì)應(yīng)于主節(jié)點(diǎn) RSS序列的比特串;通常地,設(shè)置時(shí)間窗口的大小為500ms。副節(jié)點(diǎn)處的量化過(guò)程為將所記錄的最后一個(gè)掃描PING包到達(dá)自身MAC層的時(shí)間點(diǎn)與所接收到的第一個(gè)掃描PING包到達(dá)自身MAC層的時(shí)間點(diǎn)之間的時(shí)間長(zhǎng)度切割成若干個(gè)等長(zhǎng)時(shí)間段,每個(gè)時(shí)間段即為一個(gè)時(shí)間窗口 ;求對(duì)應(yīng)于每一個(gè)時(shí)間段中所有RSS值的平均值,將大于所述平均值的RSS值記為1,反之,記為0,即可得到對(duì)應(yīng)于副節(jié)點(diǎn)RSS序列的比特串;通常地,設(shè)置時(shí)間窗口的大小為500ms。(6)主節(jié)點(diǎn)發(fā)起一致性協(xié)調(diào)進(jìn)程,副節(jié)點(diǎn)配合完成此進(jìn)程。所述一致性協(xié)調(diào)進(jìn)程為主節(jié)點(diǎn)與副節(jié)點(diǎn)預(yù)先設(shè)置一個(gè)相同的數(shù)值,稱(chēng)為協(xié)調(diào)頻數(shù)m;主節(jié)點(diǎn)從主節(jié)點(diǎn)端的比特串的第1位開(kāi)始進(jìn)行掃描若有m個(gè)連續(xù)的且相同的比特值,則記錄m個(gè)比特值中第一個(gè)比特值在該比特串中的位置;在對(duì)主節(jié)點(diǎn)端的比特串掃描結(jié)束后,所記錄的各位置形成位置序列Sl ;主節(jié)點(diǎn)將位置序列Sl發(fā)給副節(jié)點(diǎn);副節(jié)點(diǎn)從副節(jié)點(diǎn)端的比特串的第1位開(kāi)始掃描,判斷位置序列Sl所指示的各位置上是否存在以該位置為起始的m個(gè)連續(xù)且相同的比特值,若存在,則記錄下該位置;在對(duì)副節(jié)點(diǎn)端的比特串掃描結(jié)束后,所記錄的各位置形成位置序列S2,副節(jié)點(diǎn)將位置序列S2發(fā)送至主節(jié)點(diǎn),同時(shí)副節(jié)點(diǎn)將位置序列S2對(duì)應(yīng)于副節(jié)點(diǎn)比特串中的比特值取出,形成比特序列串B2,將該比特序列串B2作為密鑰2 ;主節(jié)點(diǎn)依據(jù)位置序列S2對(duì)主節(jié)點(diǎn)比特串進(jìn)行掃描,將位置序列S2對(duì)應(yīng)于其比特串中的比特值取出,形成比特序列串Bi,將該比特序列串Bl作為密鑰1。所述協(xié)調(diào)頻數(shù)m是一個(gè)重要的參數(shù),在進(jìn)行m值選取時(shí),若出現(xiàn)密鑰的一致性較低的情況,則m值過(guò)?。蝗舫霈F(xiàn)比特轉(zhuǎn)換為密鑰的效率過(guò)低的情況,則m值過(guò)大;通常取m值為 5 8。下面對(duì)(6)中的一致性協(xié)調(diào)進(jìn)程原理進(jìn)行舉例說(shuō)明假設(shè)m = 2,主節(jié)點(diǎn)端的比特串110100001101100副節(jié)點(diǎn)端的比特串1111000111001001)主節(jié)點(diǎn)依據(jù)協(xié)調(diào)頻數(shù)m = 2對(duì)主節(jié)點(diǎn)端的比特串進(jìn)行掃描1,找到2個(gè)連續(xù)的且同值的比特值
權(quán)利要求
1.一種基于無(wú)線(xiàn)信道隨機(jī)狀態(tài)生成對(duì)稱(chēng)密鑰的方法,其特征在于,包括(1)將兩個(gè)用戶(hù)作為節(jié)點(diǎn),其中任意一方作為主節(jié)點(diǎn),另一方作為副節(jié)點(diǎn);在主節(jié)點(diǎn)處設(shè)定一個(gè)掃描速率;(2)兩個(gè)節(jié)點(diǎn)均初始化監(jiān)聽(tīng)進(jìn)程Wireshark;(3)主節(jié)點(diǎn)發(fā)送掃描PING包,并采用監(jiān)聽(tīng)進(jìn)程Wireshark捕獲來(lái)自副節(jié)點(diǎn)的掃描回復(fù) REPLY包,從掃描回復(fù)REPLY包中取出并記錄接受信號(hào)強(qiáng)度RSS值;在主節(jié)點(diǎn)發(fā)送掃描PING 包的同時(shí),副節(jié)點(diǎn)采用監(jiān)聽(tīng)進(jìn)程Wireshark捕獲來(lái)自主節(jié)點(diǎn)的掃描PING包,并從中取出并記錄接受信號(hào)強(qiáng)度RSS值;兩個(gè)節(jié)點(diǎn)在記錄RSS值的同時(shí),主節(jié)點(diǎn)記錄所述掃描回復(fù)REPLY包到達(dá)自身MAC層的時(shí)間點(diǎn),副節(jié)點(diǎn)記錄所述掃描PING包到達(dá)自身MAC層的時(shí)間點(diǎn);(4)重復(fù)(3)中的操作,進(jìn)行N次信道掃描,主節(jié)點(diǎn)與副節(jié)點(diǎn)均得到一組RSS序列;(5)兩個(gè)節(jié)點(diǎn)分別對(duì)所記錄的RSS序列進(jìn)行量化處理,生成長(zhǎng)度一致的比特串;主節(jié)點(diǎn)處的量化過(guò)程為將所記錄的最后一個(gè)掃描回復(fù)REPLY包到達(dá)自身MAC層的時(shí)間點(diǎn)與所接收到的第一個(gè)掃描回復(fù)REPLY包到達(dá)自身MAC層的時(shí)間點(diǎn)之間的時(shí)間長(zhǎng)度切割成若干個(gè)等長(zhǎng)時(shí)間段,每個(gè)時(shí)間段即為一個(gè)時(shí)間窗口 ;求對(duì)應(yīng)于每一個(gè)時(shí)間段中所有RSS 值的平均值,將大于所述平均值的RSS值記為1,反之,記為0,即可得到對(duì)應(yīng)于主節(jié)點(diǎn)RSS 序列的比特串;副節(jié)點(diǎn)處的量化過(guò)程為將所記錄的最后一個(gè)掃描PING包到達(dá)自身MAC層的時(shí)間點(diǎn)與所接收到的第一個(gè)掃描PING包到達(dá)自身MAC層的時(shí)間點(diǎn)之間的時(shí)間長(zhǎng)度切割成若干個(gè)等長(zhǎng)時(shí)間段,每個(gè)時(shí)間段即為一個(gè)時(shí)間窗口 ;求對(duì)應(yīng)于每一個(gè)時(shí)間段中所有RSS值的平均值, 將大于所述平均值的RSS值記為1,反之,記為0,即可得到對(duì)應(yīng)于副節(jié)點(diǎn)RSS序列的比特串;(6)主節(jié)點(diǎn)發(fā)起一致性協(xié)調(diào)進(jìn)程,副節(jié)點(diǎn)配合完成此進(jìn)程;所述一致性協(xié)調(diào)進(jìn)程為1)主節(jié)點(diǎn)與副節(jié)點(diǎn)預(yù)先設(shè)置一個(gè)相同的數(shù)值,稱(chēng)為協(xié)調(diào)頻數(shù)m;主節(jié)點(diǎn)從主節(jié)點(diǎn)端的比特串的第1位開(kāi)始進(jìn)行掃描若有m個(gè)連續(xù)的且相同的比特值,則記錄m個(gè)比特值中第一個(gè)比特值在該比特串中的位置;在對(duì)主節(jié)點(diǎn)端的比特串掃描結(jié)束后,所記錄的各位置形成位置序列Sl ;主節(jié)點(diǎn)將位置序列Sl發(fā)給副節(jié)點(diǎn);2)副節(jié)點(diǎn)從副節(jié)點(diǎn)端的比特串的第1位開(kāi)始掃描,判斷位置序列Sl所指示的各位置上是否存在以該位置為起始的m個(gè)連續(xù)且相同的比特值,若存在,則記錄下該位置;在對(duì)副節(jié)點(diǎn)端的比特串掃描結(jié)束后,所記錄的各位置形成位置序列S2,副節(jié)點(diǎn)將位置序列S2發(fā)送至主節(jié)點(diǎn),同時(shí)副節(jié)點(diǎn)將位置序列S2對(duì)應(yīng)于副節(jié)點(diǎn)比特串中的比特值取出,形成比特序列串 B2,將該比特序列串B2作為密鑰2 ;3)主節(jié)點(diǎn)依據(jù)位置序列S2對(duì)主節(jié)點(diǎn)比特串進(jìn)行掃描,將位置序列S2對(duì)應(yīng)于其比特串中的比特值取出,形成比特序列串Bi,將該比特序列串Bl作為密鑰1 ;(7)將所得到的兩個(gè)相同的密鑰1和密鑰2作為對(duì)稱(chēng)密鑰。
2.如權(quán)利要求1所述的一種基于無(wú)線(xiàn)信道隨機(jī)狀態(tài)生成對(duì)稱(chēng)密鑰的方法,其特征在于,所述步驟(1)中的掃描速率的設(shè)置范圍為IOms 50ms。
3.如權(quán)利要求1所述的一種基于無(wú)線(xiàn)信道隨機(jī)狀態(tài)生成對(duì)稱(chēng)密鑰的方法,其特征在于,所述時(shí)間窗口取500ms。
4.如權(quán)利要求1所述的一種基于無(wú)線(xiàn)信道隨機(jī)狀態(tài)生成對(duì)稱(chēng)密鑰的方法,其特征在于,所述協(xié)調(diào)頻數(shù)m的取值范圍為5 8。
全文摘要
本發(fā)明公開(kāi)了一種基于無(wú)線(xiàn)信道隨機(jī)狀態(tài)生成對(duì)稱(chēng)密鑰的方法,能夠達(dá)到提高用戶(hù)雙方獲取密鑰的一致性、增強(qiáng)用戶(hù)之間通信的安全性以及提高對(duì)不同掃描速率的適應(yīng)性的目的;該方法的步驟為選定兩個(gè)用戶(hù)作為主節(jié)點(diǎn)和副節(jié)點(diǎn),在主節(jié)點(diǎn)處設(shè)定一個(gè)掃描速率;兩個(gè)節(jié)點(diǎn)均初始化監(jiān)聽(tīng)進(jìn)程Wireshark;進(jìn)行一次信道掃描兩個(gè)節(jié)點(diǎn)利用監(jiān)聽(tīng)進(jìn)程Wireshark進(jìn)行數(shù)據(jù)包交互,取出并記錄相應(yīng)的接受信號(hào)強(qiáng)度RSS值以及數(shù)據(jù)包到達(dá)MAC層的時(shí)間;進(jìn)行N次信道掃描,兩個(gè)節(jié)點(diǎn)均得到一組RSS序列;對(duì)RSS序列進(jìn)行量化處理,生成長(zhǎng)度一致的兩個(gè)比特串;主節(jié)點(diǎn)發(fā)起一致性協(xié)調(diào)進(jìn)程,副節(jié)點(diǎn)配合完成此進(jìn)程,從而得到對(duì)稱(chēng)密鑰。
文檔編號(hào)H04W12/04GK102244861SQ20111023169
公開(kāi)日2011年11月16日 申請(qǐng)日期2011年8月14日 優(yōu)先權(quán)日2011年8月14日
發(fā)明者孫健, 方浩, 竇麗華, 陳杰, 韋云川, 馬旭峰 申請(qǐng)人:北京理工大學(xué)