一種基于組合密碼的無線傳感器網(wǎng)絡(luò)安全通信的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于保密通信技術(shù)領(lǐng)域,具體涉及一種基于組合密碼的無線傳感器網(wǎng)絡(luò)安 全通信的方法。
【背景技術(shù)】
[0002] 無線傳感器網(wǎng)絡(luò)(WSN)由部署在監(jiān)測區(qū)域內(nèi)大量的微型傳感器節(jié)點組成,通過無 線通信方式形成的一個多跳的自組織的網(wǎng)絡(luò)系統(tǒng),主要目的是感知、采集和處理網(wǎng)絡(luò)覆蓋 區(qū)域中被感知對象的信息,并發(fā)送給觀察者。物聯(lián)網(wǎng)正是通過遍布在各個角落和物體上的 傳感器以及由它們組成的無線傳感器網(wǎng)絡(luò)來最終感知整個物質(zhì)世界的。傳感器網(wǎng)絡(luò)系統(tǒng)通 常包括傳感器節(jié)點和匯聚節(jié)點,其中傳感器節(jié)點計算能力、存儲能力相對較弱,通過小容量 電池供電。匯聚節(jié)點的計算能力、存儲能力相對較強(qiáng),它是連接傳感器網(wǎng)絡(luò)與互聯(lián)網(wǎng)等外部 網(wǎng)絡(luò)的網(wǎng)關(guān),可以實現(xiàn)兩種協(xié)議間的轉(zhuǎn)換,同時向傳感器節(jié)點發(fā)布監(jiān)測任務(wù),并把WSN收集 到的數(shù)據(jù)轉(zhuǎn)發(fā)到外部網(wǎng)絡(luò)上。但是根據(jù)無線傳播的特點,攻擊者很容易在通信雙方信息傳 輸?shù)倪^程中竊聽私有信息,因此可以對傳輸?shù)男畔⑦M(jìn)行加密來防止攻擊者竊聽信息。傳感 器網(wǎng)絡(luò)是以收集信息為主要目的,攻擊者可以加入偽造的非法節(jié)點等方式獲取這些敏感信 息,另外只有合法的用戶才能訪問所收集的信息,因此可以通過認(rèn)證來實現(xiàn)對身份的驗證。 同時,由于傳感器節(jié)點資源受限的特點,需要一種高效的方法來實現(xiàn)無線傳感器網(wǎng)絡(luò)中的 安全通信。
[0003] 當(dāng)前,實現(xiàn)無線傳感器網(wǎng)絡(luò)中的安全通信的方法主要有:
[0004] (1)基于公鑰密碼學(xué)的密鑰生成協(xié)議,在傳感器節(jié)點和用戶間生成會話密鑰。該協(xié) 議主要利用傳感器節(jié)點和用戶的性能不同的特點,雙方交換被認(rèn)證機(jī)構(gòu)認(rèn)證的證書,再從 證書中互相提取對方的公鑰,但是私鑰只有在雙方完成協(xié)議之后才能產(chǎn)生,這樣敵手就能 重放一個合法的證書,再和傳感器節(jié)點重復(fù)執(zhí)行協(xié)議,就會導(dǎo)致對用戶的拒絕服務(wù),并且在 傳感器節(jié)點發(fā)現(xiàn)重放的證書之前會浪費(fèi)大量的資源去計算和通信。
[0005] (2)用雙線性對設(shè)計的基于身份的密鑰生成協(xié)議。該協(xié)議減少了公鑰證書的存儲 需求和合法性驗證的時間,但是由于存在雙線性對的運(yùn)算,便增加了計算的成本,同時也存 在用戶認(rèn)證延遲的問題,也同樣會引起拒絕服務(wù)的問題。
[0006] (3)基于身份的廣播認(rèn)證方案來解決無線傳感器網(wǎng)絡(luò)中的安全問題。在該方案中, 傳遞的消息可以從簽名中恢復(fù)出來,因此該方案大大降低了通信成本。但是該方案只是實 現(xiàn)了認(rèn)證,沒有實現(xiàn)對于數(shù)據(jù)的機(jī)密性保護(hù)。
[0007] (4)基于身份的離線、在線簽名方案解決無線傳感器網(wǎng)絡(luò)的安全問題,離線、在線 的方式能大大減少計算成本,適合無線傳感器網(wǎng)絡(luò)中資源受限的環(huán)境,但是并沒有解決無 線傳感器網(wǎng)絡(luò)中消息的機(jī)密性問題。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的發(fā)明目的在于:針對在無線傳感器網(wǎng)絡(luò)中,用戶在直接與無線傳感器節(jié) 點進(jìn)行通信的過程中消息被竊聽、篡改、偽造的問題,公開了一種基于組合密碼的無線傳感 器網(wǎng)絡(luò)安全通信的方法,以確保通信數(shù)據(jù)的完整性、機(jī)密性、認(rèn)證性和不可否認(rèn)性。
[0009] 本發(fā)明的基于組合密碼的無線傳感器網(wǎng)絡(luò)安全通信的方法包括下列步驟:
[0010] 基站基于用戶的身份信息生成用戶公鑰、用戶私鑰并通過安全信道發(fā)送給用戶, 基于傳感器節(jié)點的身份信息生成節(jié)點公鑰和節(jié)點私鑰并通過安全信道發(fā)送給傳感器節(jié)點; 用戶和傳感器節(jié)點之間的通信過程:
[0011] 發(fā)送端從基站獲取接收端的公鑰,發(fā)送端基于本端私鑰對預(yù)設(shè)會話密鑰進(jìn)行簽 名,再基于接收端的公鑰對所述簽名、預(yù)設(shè)會話秘鑰進(jìn)行加密,并將加密后的密文、時間戳T和本端身份信息發(fā)送給接收端;接收端判斷時間戳和對端公鑰是否合法,若是,則基于本端 私鑰對密文進(jìn)行解密得到預(yù)設(shè)會話秘鑰及其簽名;接收端基于對端公鑰驗證預(yù)設(shè)會話秘鑰 的簽名,若通過,則將時間戳T和解密所得的預(yù)設(shè)會話密鑰的哈希值L返回給發(fā)送端;發(fā)送 端計算時間戳T和本端預(yù)設(shè)會話密鑰的哈希值L',若哈希值L等于哈希值L',則發(fā)送端 基于預(yù)設(shè)會話密鑰對待發(fā)送消息進(jìn)行加密處理并發(fā)送。
[0012] 綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是:
[0013] (1)采用組合公鑰密碼方法,能同時解決無線傳感器網(wǎng)絡(luò)中消息的機(jī)密性、認(rèn)證 性、完整性、不可否認(rèn)性問題。
[0014] (2)采用組合公鑰密碼體制,可以降低身份信息的存儲量和生成私鑰的成本。
【附圖說明】
[0015] 圖1是【具體實施方式】的系統(tǒng)初始化圖;
[0016] 圖2是【具體實施方式】的通信過程示意圖,其中EncryptO表示對括號中的對象進(jìn) 行加密處理、SignO表示對括號中的對象進(jìn)行簽名處理,VerifyO表示對括號中的對象進(jìn) 行驗證處理,DecryptO表示對括號中的對象進(jìn)行解密處理,圖2-a中,發(fā)送端為用戶U,接 收端為傳感器節(jié)點I,2-b中,發(fā)送端為傳感器節(jié)點I,接收端為用戶U。
【具體實施方式】
[0017] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合實施方式和附圖,對本發(fā) 明作進(jìn)一步地詳細(xì)描述。
[0018] 本發(fā)明的具體實現(xiàn)如下,本【具體實施方式】基于Boneh與Franklin的加密方案(BF 加密)和Choon與Cheon的簽名方案(CC簽名)實現(xiàn)本發(fā)明,其具體步驟如下:
[0019] 步驟(1).系統(tǒng)初始化,生成系統(tǒng)參數(shù):
[0020] 步驟(I. 1):參見圖1,選擇一個安全參數(shù)q(為了保障系統(tǒng)的安全性,安全參數(shù)q 最好設(shè)置為不低于160bit長的大素數(shù)),基于安全參數(shù)q選擇以素數(shù)p為階的加法循環(huán)群G1和乘法循環(huán)群GT,選擇P作為群G1的一個生成元,g:GiXG1^GT是一個雙線性映射,表 示有限域。基站選擇一個隨機(jī)數(shù)作為主密鑰,計算Ppub=sP。并設(shè)置五個哈希Hash 函數(shù)H1-H5=H1: {0, 1}*-GpH2 =Gt^ {0, 1}n,/6: !〇,U" ,H4: {0,l}n- {0, 1} n,仏xG, - 其中{〇, if表示任意比特長的二進(jìn)制序列組成的集合,{〇, i}n表示 比特長度為n的二進(jìn)制序列組成的集合。
[0021]步驟(I. 2):基站公開系統(tǒng)參數(shù)(G1,GT,n,p,g,P,Ppub,H1,H2,H3,H4,HJ。
[0022] 步驟(1.3):終端(用戶、傳感器節(jié)點)將自己的身份信息ID(用戶:1?,傳感器 節(jié)點=ID1)發(fā)送給基站,請求生成對應(yīng)公私鑰對,其中身份信息ID均屬于集合{0, 1}、基站 檢測所接收的身份信息是否合法,若是,則基于身份信息ID生成對應(yīng)公私鑰對并通過安全 信道發(fā)送至對應(yīng)終端:基站根據(jù)用戶的身份IDu計算出公鑰QU=Hi(IDu),然后基站根據(jù)主 密鑰^e ^,計算用戶的私鑰Su,使得Su=sQu;基站根據(jù)節(jié)點的身份ID:計算出公鑰Q1 = H1 (ID1),然后基站根據(jù)主密鑰計算節(jié)點的私鑰Si,使得Si =sQ:。
[0023] 步驟(2).用戶和傳感器節(jié)點的通信,用戶作為發(fā)送端,傳感器節(jié)點作為接收端, 參考圖2_a:
[0024] 步驟(2. 1):當(dāng)一個用戶(用戶U)需要和傳感器節(jié)點(傳感器節(jié)點I)通信時,首 先從基站獲取到對應(yīng)的公私鑰對(Qu,Su),同時從基站獲取接收端的傳感器節(jié)點I的公鑰 Qi;
[0025] 步驟(2. 2):用戶需要安全地和節(jié)點進(jìn)行通信,需要建立一個安全可靠的會話密 鑰:用戶U基于預(yù)設(shè)的會話密鑰K1 (隨機(jī)選取一個會話密鑰K1),首先用自己的私鑰Su對會 話密鑰進(jìn)行簽名。本過程的具體實現(xiàn)如下:
[0026] 步驟(2. 2. 1):隨機(jī)選取P,計算X = tQu。
[0027] 步驟(2. 2. 2):根據(jù)Hash函數(shù)氏計算h=H5 (K1,X)。
[0028] 步驟(2. 2. 3):計算Z= (t+h)Su。則簽名為 〇 = (X,Z)。
[0029] 步驟(2. 3):用戶U對簽名〇和所選取的會話密鑰K1用傳感器節(jié)點I的公鑰Q: 進(jìn)行加密,則消息m= 〇IIk1,本過程的具體實現(xiàn)如下:
[0030] 步驟(2. 3. 1):隨機(jī)選取aG{〇,l}n,然后根據(jù)Hash函數(shù)H3計算r=H3(a,m)。 [0031]步驟(2. 3. 2):計算V=rP,再根據(jù)Hash函數(shù)氏計算W=a?H2(g(Ppub,Q1D。 其中符號" ?"表示異或運(yùn)算。
[0032] 步驟(2. 3. 3):最后根據(jù)Hash函數(shù)H4計算T=m?H4 (a)。則密文c= (V,W,T)。
[0033] 步驟(2. 4):用戶將L。=cI11 u|IIDu發(fā)送給傳感器節(jié)點I。傳感器節(jié)點I檢查IDu 和tu的合法性,如果合法,則利用自己的私鑰S:對c進(jìn)行解密,具體過程如下:
[0034]步驟(2. 4. 1):根據(jù)Hash函數(shù)H2計算a' =W?H2(g(V,S1))。
[0035]步驟(2. 4. 1):根據(jù)Hash函數(shù)114計算m' = T 十 H 4 ( a')。
[0036]步驟(2. 4. 2):根據(jù)Hash函數(shù)H3計算r' =H3(a',m'),V' = r'P。如果V'=V, 則m'即為明文〇III。
[0037] 步驟(2.5):傳感器節(jié)點I得到明文〇IlKJ^,需要基于用戶U的公鑰Qu對明文 中的簽名〇 = (X,Z)進(jìn)行驗證,具體過程如下:
[0038] 步驟(2. 5. 1):根據(jù)Hash函數(shù)氏計算h' =H5 (K1,X)。