歸奕紅
(柳州職業(yè)技術(shù)學(xué)院,廣西 柳州 545006)
關(guān)鍵字:無線傳感器網(wǎng)絡(luò);加法同態(tài)加密;數(shù)字簽名;移動基站
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)由數(shù)百乃至數(shù)百萬個傳感器節(jié)點組成,能夠?qū)崟r地監(jiān)測、感知網(wǎng)絡(luò)覆蓋區(qū)域中各種監(jiān)測對象的信息,并將處理后的數(shù)據(jù)通過無線多跳的方式發(fā)送給用戶。具有成本低廉、部署方便、可靠性高等優(yōu)點,被廣泛應(yīng)用于軍事偵察、國防安全、環(huán)境監(jiān)測、醫(yī)療健康、智能建筑等各個領(lǐng)域。
由于傳感器節(jié)點受到成本、體積和功耗等因素的限制,其電池容量有限;WSN 通常以較大數(shù)量部署在敵對或條件惡劣的環(huán)境中,更換電池是不現(xiàn)實的事;而上述環(huán)境對WSN 系統(tǒng)的安全性和檢測數(shù)據(jù)的完整性、可用性都有較高的要求,這些要求意味著需要更大的能耗。節(jié)約能耗最有效的方法是進行數(shù)據(jù)聚合[1],目前很多研究都集中在設(shè)計低能耗、高安全性的方案。
TinySec[2]是當(dāng)前WSN 數(shù)據(jù)通信安全的事實標(biāo)準(zhǔn),使用鏈路層加密確保端到端的通信安全,但數(shù)據(jù)必須在每一跳節(jié)點處被解密,再進行聚合,加密和解密操作過多,降低了網(wǎng)絡(luò)的能效,而且基于私鑰加密會導(dǎo)致密鑰分配、密鑰管理等問題,且沒有提供數(shù)據(jù)完整性和可用性。
文獻[3]在數(shù)據(jù)聚合時,使用秘密同態(tài)實現(xiàn)數(shù)據(jù)隱蔽,該算法采用對稱密鑰只提供了數(shù)據(jù)的機密性。
本文提出一個基于六邊形網(wǎng)格的數(shù)據(jù)安全聚合方案(Data Security Aggregation scheme Base on regular Hexagonal cells,DSABH),該方案不僅實現(xiàn)網(wǎng)絡(luò)無重復(fù)、無縫覆蓋,還確保數(shù)據(jù)的機密性、完整性和可用性。
網(wǎng)絡(luò)中有三種類型的傳感器節(jié)點:檢測節(jié)點、簇頭節(jié)點、基站(sink 節(jié)點)。檢測節(jié)點是一種資源非常有限的傳感器節(jié)點,只具有環(huán)境感知、數(shù)據(jù)采集、簡單運算和數(shù)據(jù)傳輸?shù)哪芰?;簇頭節(jié)點是一種資源較豐富的傳感器節(jié)點,具有數(shù)據(jù)接收、數(shù)據(jù)驗證、數(shù)據(jù)融合的能力,并負責(zé)將數(shù)據(jù)向sink節(jié)點轉(zhuǎn)發(fā);sink節(jié)點是一種數(shù)據(jù)收集節(jié)點,具有大容量的數(shù)據(jù)存儲、可更新的能源、可移動并與簇頭節(jié)點通信等能力。
在DSABH 方案中,根據(jù)傳感器節(jié)點的傳輸能力,網(wǎng)絡(luò)區(qū)域以若干大小相等的正六邊形網(wǎng)格進行劃分,每個網(wǎng)格作為一個簇(如圖1 所示)。采用這種網(wǎng)格劃分方法基于最優(yōu)網(wǎng)絡(luò)覆蓋[4]:用感知半徑為R 的圓,以其內(nèi)接正六邊形對區(qū)域進行覆蓋,可以得到重復(fù)面積最少的無縫覆蓋;基于正六邊形覆蓋模型所做的區(qū)域覆蓋,除了網(wǎng)絡(luò)的邊界,任一節(jié)點與其周邊6個節(jié)點所覆蓋的區(qū)域是無縫覆蓋,以此可推廣到整個網(wǎng)絡(luò)區(qū)域。該模型可以保證網(wǎng)絡(luò)以最少的節(jié)點數(shù)實現(xiàn)通信覆蓋和連通覆蓋,從而達到節(jié)能的目的。
簇區(qū)域一旦形成,在整個網(wǎng)絡(luò)生命周期內(nèi)都不會再重新劃分。檢測節(jié)點隨機地部署在監(jiān)測環(huán)境中;簇頭節(jié)點則根據(jù)簇區(qū)域的大小,利用智能技術(shù)(如小型飛行器及定位技術(shù))均勻地散布在各簇中,每個簇可以根據(jù)需要設(shè)置2-5 個簇頭節(jié)點,任一時刻只有一個簇頭工作,其它簇頭節(jié)點休眠;sink節(jié)點可以移動,其運動方向和運動速度都是可控的,其數(shù)據(jù)收集方式是周期性循環(huán)進行。
DSABH 方案采用端到端安全機制----同態(tài)加密技術(shù)對數(shù)據(jù)進行加密,數(shù)據(jù)在到達基站之前一直保持密文狀態(tài),簇頭節(jié)點可以對密文直接進行融合操作,避免數(shù)據(jù)被惡意節(jié)點竊取或篡改。
在WSN 中,為了確保數(shù)據(jù)傳輸?shù)臋C密性,數(shù)據(jù)通常需要經(jīng)過加密后傳輸。傳統(tǒng)的對稱密碼算法輕量,適合資源受限的WSN,但容易被破解;非對稱密碼算法安全性強,但計算量大,容易造成傳感器節(jié)點能量的過度消耗;采用基于公鑰機制的同態(tài)加密技術(shù),可以在不解密的情況下,直接對密文數(shù)據(jù)計算聚合結(jié)果,有效地減少了節(jié)點的能量消耗,適合作為WSN的加密算法。
DSABH 方案采用加法同態(tài)機制,確保兩個數(shù)據(jù)加密后的計算(加法)結(jié)果與先計算(加法)再加密的結(jié)果一致,即:E(m1)+E(m2) = E(m1+m2)。數(shù)據(jù)在檢測節(jié)點處利用sink 節(jié)點的公鑰進行加密后,傳輸給簇頭節(jié)點;簇頭節(jié)點對收到的多個密文數(shù)據(jù)進行加法運算,其值作為聚合結(jié)果,經(jīng)過多跳、多次聚合傳輸?shù)絪ink節(jié)點;最后由sink節(jié)點對密文進行解密。任何入侵者、任何妥協(xié)節(jié)點由于沒有sink 節(jié)點的私鑰,即使獲取到聚合信息也無從解密。
同態(tài)加密技術(shù)不能提供數(shù)據(jù)的完整性和可用性,因此DSABH方案加入了數(shù)字簽名----使用公鑰橢圓曲線密碼進行加密,即能使用數(shù)字簽名,但數(shù)字簽名算法不具有同態(tài)特性,對兩個數(shù)據(jù)進行簽名無法得到數(shù)據(jù)的和。本文使用的簽名算法是對基于橢圓曲線數(shù)字簽名算法進行了擴展,并加入全局時鐘,加入全局時鐘的目標(biāo)是為了提高數(shù)據(jù)傳輸?shù)陌踩浴⒋_保數(shù)據(jù)的可用性。
DSABH 方案的數(shù)據(jù)聚合過程如圖2 所示:各檢測節(jié)點感知環(huán)境數(shù)據(jù),使用sink 節(jié)點的公鑰進行同態(tài)加密(如E(x)),使用各自的私鑰進行數(shù)字簽名(如S(x));密文數(shù)據(jù)(包括數(shù)字簽名及公鑰)經(jīng)過中間節(jié)點以多跳方式向簇頭節(jié)點匯集,簇頭節(jié)點對這些密文數(shù)據(jù)進行加法同態(tài)運算,然后沿路由到達sink 節(jié)點。如果中間節(jié)點或簇頭節(jié)點自己也感測到數(shù)據(jù),則該數(shù)據(jù)也同樣進行數(shù)字簽名、同態(tài)加密,相同的聚合過程在網(wǎng)絡(luò)中重復(fù)進行,直至到達sink節(jié)點。
因為所有的感知數(shù)據(jù)和聚合數(shù)據(jù)都采用sink節(jié)點的公鑰加密,所以只有sink 節(jié)點具有對聚合數(shù)據(jù)進行解密的能力;各檢測節(jié)點和簇頭對自己發(fā)出的數(shù)據(jù)采用數(shù)字簽名,這些簽名也進行加法聚合。因此,基站同樣可以通過數(shù)字簽名之和來驗證數(shù)據(jù)的完整性,即數(shù)據(jù)是否由合法的節(jié)點發(fā)出且未經(jīng)篡改。
圖1 DSABHA算法簇結(jié)構(gòu)
圖2 同態(tài)加密數(shù)據(jù)聚合示意圖
在WSN 部署之前,所有傳感器節(jié)點都預(yù)裝了各自的私鑰、sink節(jié)點的公鑰、橢圓曲線參數(shù),以及網(wǎng)絡(luò)的全局時鐘值t,t為整數(shù)且每經(jīng)過一個固定時間就會自動更新,以此確保數(shù)字簽名的安全性和可用性。當(dāng)每輪傳輸數(shù)據(jù)開始,各節(jié)點將隨機選擇一個私鑰d,私鑰d 與橢圓曲線的基點G 相乘即得到相應(yīng)的公鑰D,該公鑰為橢圓曲線上的另一個點。
2.3.1 數(shù)字簽名算法
數(shù)字簽名規(guī)則如下:節(jié)點Z對數(shù)據(jù)m進行數(shù)字簽名,該簽名為t-1(mz+dzr),入侵節(jié)點可以偵聽到該簽名,也可以得知t-1和r的值,但無法破解mz和dz;如果節(jié)點Z使用相同的私鑰對另一條檢測數(shù)據(jù)進行數(shù)字簽名,由于該檢測數(shù)據(jù)的值可能不變,那么這種使用相同的私鑰對相同的數(shù)據(jù)簽名的做法,容易讓入侵節(jié)點猜出該節(jié)點的私鑰。因此,每一輪數(shù)據(jù)傳輸都需要生成新的私鑰/公鑰對。各節(jié)點生成自己的數(shù)字簽名s的方法是作t mod n的乘法逆運算;數(shù)字簽名生成之后,各節(jié)點對傳輸數(shù)據(jù)進行同態(tài)加密,再將加密后得到的數(shù)值映射到橢圓曲線C上,然后采用EC-IES算法[5]對該映射值進行加密,獲得密文E(m)。
其詳細算法描述如下:
節(jié)點Z的私鑰/公鑰對與下列參數(shù)有關(guān):
C={FR, q,a,b,G,n,h},其中C 是橢圓曲線,F(xiàn)R 是橢圓曲線的表示方法,q是橢圓曲線的階,a、b是橢圓曲線的參數(shù),G是橢圓曲線的基點,n是G的階(n是一個大素數(shù)),h是非常小的輔因子。
步驟1:生成私鑰/公鑰對:在區(qū)間[1,n-1]中隨機選擇一個私鑰d,計算獲得對應(yīng)的公鑰D=dG;
步驟2:系統(tǒng)生成全局時鐘隨機數(shù)t,滿足1≤t≤n-1;
步驟3:進行下列計算:tG=(x1,y1)、r=x1mod n、t-1mod n;
步驟4:計算得到s=t-1(m+dr)mod n,如果s=0則返回步驟2,否則繼續(xù);
步驟5:對數(shù)據(jù)m進行數(shù)字簽名,結(jié)果為(r,s);
步驟6:對數(shù)據(jù)m進行加法同態(tài)運算,結(jié)果為E(m),則可知聚合后的密文為∑E(mi),聚合后的數(shù)字簽名為∑(ri,si)。
2.3.2 驗證數(shù)字簽名算法
Sink 節(jié)點收到密文聚合數(shù)據(jù)后,首先用其私鑰對該密文進行解密;然后將橢圓曲線上的點到該密文聚合數(shù)據(jù)的映射作逆運算;驗證簽名是否合法:sink節(jié)點使用收到的組合簽名(簽名被包括在組合簽名中)、已解密的聚合數(shù)據(jù)與全局時鐘t,計算得到橢圓曲線上的一個點,如果該點的橫坐標(biāo)與r值相同,則可判定該數(shù)字簽名來自合法節(jié)點。
其詳細算法描述如下:
步驟1:如果r 和s 在區(qū)間[1,n-1]中,則繼續(xù),否則可判定該數(shù)字簽名非法;
步驟2:通過私鑰對密文聚合數(shù)據(jù)進行解密運算,獲得明文m;
步驟3:進行下列計算:w=s-1mod n、u1=mw mod n、u2=rw mod n、X=u1G+u2D;
步驟4:如果X=0,則可判定該數(shù)字簽名非法,否則繼續(xù)計算v=x1mod n,其中x1為X 的橫坐標(biāo);
步驟5:如果v=r,則可判定該數(shù)字簽名合法,接受該簽名。
如果解密后得到的t 值明顯落后于當(dāng)前時鐘值,說明該數(shù)據(jù)為過時數(shù)據(jù),不具備可用性,應(yīng)當(dāng)丟棄。
本文提出的DSABH 方案是同態(tài)加密技術(shù)加上數(shù)字簽名技術(shù)。同態(tài)加密技術(shù)的安全性早已被公認[6];數(shù)字簽名技術(shù)是對橢圓曲線數(shù)字簽名算法的擴展----對數(shù)字簽名進行組合,而橢圓曲線數(shù)字簽名算法的安全性已經(jīng)在相關(guān)研究中得到證實[7],因此,本方案中數(shù)字簽名的安全性只要能證明以下兩點即可:第一,通過組合數(shù)字簽名能判定單一數(shù)字簽名是否由合法節(jié)點生成,即數(shù)字簽名之和能生成一個有效的數(shù)字簽名;第二,當(dāng)且僅當(dāng)所有為某一聚合結(jié)果提供數(shù)據(jù)的節(jié)點都為合法節(jié)點時,對該聚合結(jié)果的驗證才會出現(xiàn)v=r。
證明一:已知m=m1+m2+……,s=s1+s2+……,且si=t-1(mi+dir),則
即數(shù)字簽名之和產(chǎn)生一個有效的數(shù)字簽名可證。
證明二:由X=u1G+u2D且D=dG,可得
X=u1G+u2D=u1G+u2(dG)=(u1+u2d)G
由于s=t-1(m+dr),整理后可得
因此,X=kG,即(x1,y1) = kG,當(dāng)所有節(jié)點都是合法節(jié)點時,由v=x1mod n可得v=r。
通過以上證明,可知本方案中采用的加密技術(shù)和數(shù)字簽名都具有很好的安全性。
通過在TinyOS 中模擬實現(xiàn)相關(guān)協(xié)議,對本文算法與其它典型算法(如TinySec)的能量消耗進行對比。
建立仿真環(huán)境如下:在邊長為500米的正方形場景中隨機分布150 個傳感器節(jié)點,其中20 個為資源較豐富的簇頭節(jié)點,檢測節(jié)點初始能量設(shè)置為1 焦耳,簇頭節(jié)點初始能量設(shè)置為2.5 焦耳;各節(jié)點每2秒發(fā)送一次數(shù)據(jù);檢測節(jié)點的通信半徑為20m,簇頭節(jié)點的通信半徑為60米;sink節(jié)點距離網(wǎng)絡(luò)中心120 米,在DSABH 方案中,sink 節(jié)點以120 米為半徑繞網(wǎng)絡(luò)中心移動,移動速率為每100秒15弧度。
仿真在兩種算法下分別運行10 次,取平均值,得到如圖3所示結(jié)果:
圖3 網(wǎng)絡(luò)能耗比較
從圖中可以看出,TinySec 方案由于數(shù)據(jù)必須多次解密/加密,增加了運算開銷和能量消耗。而DSABH 方案中,發(fā)送節(jié)點進行一次加密和數(shù)字簽名運算,中間節(jié)點不用解密,直接進行聚合運算并轉(zhuǎn)發(fā);且sink 節(jié)點采用移動的方式,避免了網(wǎng)絡(luò)局部區(qū)域節(jié)點因頻繁轉(zhuǎn)發(fā)而造成能耗過大的問題,進一步均衡并節(jié)省了網(wǎng)絡(luò)的能量消耗。因此,DSABH方案在能量消耗上表現(xiàn)出強大的優(yōu)勢。
安全性和節(jié)能是WSN 重要的研究領(lǐng)域,直接影響到WSN 能否得到廣泛應(yīng)用。本文提出的DSABH 方案創(chuàng)新之處在于:利用同態(tài)加密技術(shù)為網(wǎng)絡(luò)提供低能耗、強大的安全;將數(shù)字簽名結(jié)合全局時鐘應(yīng)用于WSN,有效地抵御了非法節(jié)點的入侵,保證了數(shù)據(jù)的完整性和可用性;采用移動sink節(jié)點的方式均衡了網(wǎng)絡(luò)各處的能量消耗,有效延長了網(wǎng)絡(luò)的壽命。下一階段的研究目標(biāo)是繼續(xù)關(guān)注大規(guī)模WSN 的安全,將自然免疫的方法應(yīng)用到網(wǎng)絡(luò)中,使其能夠在整個網(wǎng)絡(luò)生命周期中發(fā)揮全面的安全保護任務(wù)。