歸奕紅
(柳州職業技術學院,廣西 柳州 545006)
關鍵字:無線傳感器網絡;加法同態加密;數字簽名;移動基站
無線傳感器網絡(Wireless Sensor Network,WSN)由數百乃至數百萬個傳感器節點組成,能夠實時地監測、感知網絡覆蓋區域中各種監測對象的信息,并將處理后的數據通過無線多跳的方式發送給用戶。具有成本低廉、部署方便、可靠性高等優點,被廣泛應用于軍事偵察、國防安全、環境監測、醫療健康、智能建筑等各個領域。
由于傳感器節點受到成本、體積和功耗等因素的限制,其電池容量有限;WSN 通常以較大數量部署在敵對或條件惡劣的環境中,更換電池是不現實的事;而上述環境對WSN 系統的安全性和檢測數據的完整性、可用性都有較高的要求,這些要求意味著需要更大的能耗。節約能耗最有效的方法是進行數據聚合[1],目前很多研究都集中在設計低能耗、高安全性的方案。
TinySec[2]是當前WSN 數據通信安全的事實標準,使用鏈路層加密確保端到端的通信安全,但數據必須在每一跳節點處被解密,再進行聚合,加密和解密操作過多,降低了網絡的能效,而且基于私鑰加密會導致密鑰分配、密鑰管理等問題,且沒有提供數據完整性和可用性。
文獻[3]在數據聚合時,使用秘密同態實現數據隱蔽,該算法采用對稱密鑰只提供了數據的機密性。
本文提出一個基于六邊形網格的數據安全聚合方案(Data Security Aggregation scheme Base on regular Hexagonal cells,DSABH),該方案不僅實現網絡無重復、無縫覆蓋,還確保數據的機密性、完整性和可用性。
網絡中有三種類型的傳感器節點:檢測節點、簇頭節點、基站(sink 節點)。檢測節點是一種資源非常有限的傳感器節點,只具有環境感知、數據采集、簡單運算和數據傳輸的能力;簇頭節點是一種資源較豐富的傳感器節點,具有數據接收、數據驗證、數據融合的能力,并負責將數據向sink節點轉發;sink節點是一種數據收集節點,具有大容量的數據存儲、可更新的能源、可移動并與簇頭節點通信等能力。
在DSABH 方案中,根據傳感器節點的傳輸能力,網絡區域以若干大小相等的正六邊形網格進行劃分,每個網格作為一個簇(如圖1 所示)。采用這種網格劃分方法基于最優網絡覆蓋[4]:用感知半徑為R 的圓,以其內接正六邊形對區域進行覆蓋,可以得到重復面積最少的無縫覆蓋;基于正六邊形覆蓋模型所做的區域覆蓋,除了網絡的邊界,任一節點與其周邊6個節點所覆蓋的區域是無縫覆蓋,以此可推廣到整個網絡區域。該模型可以保證網絡以最少的節點數實現通信覆蓋和連通覆蓋,從而達到節能的目的。
簇區域一旦形成,在整個網絡生命周期內都不會再重新劃分。檢測節點隨機地部署在監測環境中;簇頭節點則根據簇區域的大小,利用智能技術(如小型飛行器及定位技術)均勻地散布在各簇中,每個簇可以根據需要設置2-5 個簇頭節點,任一時刻只有一個簇頭工作,其它簇頭節點休眠;sink節點可以移動,其運動方向和運動速度都是可控的,其數據收集方式是周期性循環進行。
DSABH 方案采用端到端安全機制----同態加密技術對數據進行加密,數據在到達基站之前一直保持密文狀態,簇頭節點可以對密文直接進行融合操作,避免數據被惡意節點竊取或篡改。
在WSN 中,為了確保數據傳輸的機密性,數據通常需要經過加密后傳輸。傳統的對稱密碼算法輕量,適合資源受限的WSN,但容易被破解;非對稱密碼算法安全性強,但計算量大,容易造成傳感器節點能量的過度消耗;采用基于公鑰機制的同態加密技術,可以在不解密的情況下,直接對密文數據計算聚合結果,有效地減少了節點的能量消耗,適合作為WSN的加密算法。
DSABH 方案采用加法同態機制,確保兩個數據加密后的計算(加法)結果與先計算(加法)再加密的結果一致,即:E(m1)+E(m2) = E(m1+m2)。數據在檢測節點處利用sink 節點的公鑰進行加密后,傳輸給簇頭節點;簇頭節點對收到的多個密文數據進行加法運算,其值作為聚合結果,經過多跳、多次聚合傳輸到sink節點;最后由sink節點對密文進行解密。任何入侵者、任何妥協節點由于沒有sink 節點的私鑰,即使獲取到聚合信息也無從解密。
同態加密技術不能提供數據的完整性和可用性,因此DSABH方案加入了數字簽名----使用公鑰橢圓曲線密碼進行加密,即能使用數字簽名,但數字簽名算法不具有同態特性,對兩個數據進行簽名無法得到數據的和。本文使用的簽名算法是對基于橢圓曲線數字簽名算法進行了擴展,并加入全局時鐘,加入全局時鐘的目標是為了提高數據傳輸的安全性、確保數據的可用性。
DSABH 方案的數據聚合過程如圖2 所示:各檢測節點感知環境數據,使用sink 節點的公鑰進行同態加密(如E(x)),使用各自的私鑰進行數字簽名(如S(x));密文數據(包括數字簽名及公鑰)經過中間節點以多跳方式向簇頭節點匯集,簇頭節點對這些密文數據進行加法同態運算,然后沿路由到達sink 節點。如果中間節點或簇頭節點自己也感測到數據,則該數據也同樣進行數字簽名、同態加密,相同的聚合過程在網絡中重復進行,直至到達sink節點。
因為所有的感知數據和聚合數據都采用sink節點的公鑰加密,所以只有sink 節點具有對聚合數據進行解密的能力;各檢測節點和簇頭對自己發出的數據采用數字簽名,這些簽名也進行加法聚合。因此,基站同樣可以通過數字簽名之和來驗證數據的完整性,即數據是否由合法的節點發出且未經篡改。

圖1 DSABHA算法簇結構

圖2 同態加密數據聚合示意圖
在WSN 部署之前,所有傳感器節點都預裝了各自的私鑰、sink節點的公鑰、橢圓曲線參數,以及網絡的全局時鐘值t,t為整數且每經過一個固定時間就會自動更新,以此確保數字簽名的安全性和可用性。當每輪傳輸數據開始,各節點將隨機選擇一個私鑰d,私鑰d 與橢圓曲線的基點G 相乘即得到相應的公鑰D,該公鑰為橢圓曲線上的另一個點。
2.3.1 數字簽名算法
數字簽名規則如下:節點Z對數據m進行數字簽名,該簽名為t-1(mz+dzr),入侵節點可以偵聽到該簽名,也可以得知t-1和r的值,但無法破解mz和dz;如果節點Z使用相同的私鑰對另一條檢測數據進行數字簽名,由于該檢測數據的值可能不變,那么這種使用相同的私鑰對相同的數據簽名的做法,容易讓入侵節點猜出該節點的私鑰。因此,每一輪數據傳輸都需要生成新的私鑰/公鑰對。各節點生成自己的數字簽名s的方法是作t mod n的乘法逆運算;數字簽名生成之后,各節點對傳輸數據進行同態加密,再將加密后得到的數值映射到橢圓曲線C上,然后采用EC-IES算法[5]對該映射值進行加密,獲得密文E(m)。
其詳細算法描述如下:
節點Z的私鑰/公鑰對與下列參數有關:
C={FR, q,a,b,G,n,h},其中C 是橢圓曲線,FR 是橢圓曲線的表示方法,q是橢圓曲線的階,a、b是橢圓曲線的參數,G是橢圓曲線的基點,n是G的階(n是一個大素數),h是非常小的輔因子。
步驟1:生成私鑰/公鑰對:在區間[1,n-1]中隨機選擇一個私鑰d,計算獲得對應的公鑰D=dG;
步驟2:系統生成全局時鐘隨機數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,否則繼續;
步驟5:對數據m進行數字簽名,結果為(r,s);
步驟6:對數據m進行加法同態運算,結果為E(m),則可知聚合后的密文為∑E(mi),聚合后的數字簽名為∑(ri,si)。
2.3.2 驗證數字簽名算法
Sink 節點收到密文聚合數據后,首先用其私鑰對該密文進行解密;然后將橢圓曲線上的點到該密文聚合數據的映射作逆運算;驗證簽名是否合法:sink節點使用收到的組合簽名(簽名被包括在組合簽名中)、已解密的聚合數據與全局時鐘t,計算得到橢圓曲線上的一個點,如果該點的橫坐標與r值相同,則可判定該數字簽名來自合法節點。
其詳細算法描述如下:
步驟1:如果r 和s 在區間[1,n-1]中,則繼續,否則可判定該數字簽名非法;
步驟2:通過私鑰對密文聚合數據進行解密運算,獲得明文m;
步驟3:進行下列計算:w=s-1mod n、u1=mw mod n、u2=rw mod n、X=u1G+u2D;
步驟4:如果X=0,則可判定該數字簽名非法,否則繼續計算v=x1mod n,其中x1為X 的橫坐標;
步驟5:如果v=r,則可判定該數字簽名合法,接受該簽名。
如果解密后得到的t 值明顯落后于當前時鐘值,說明該數據為過時數據,不具備可用性,應當丟棄。
本文提出的DSABH 方案是同態加密技術加上數字簽名技術。同態加密技術的安全性早已被公認[6];數字簽名技術是對橢圓曲線數字簽名算法的擴展----對數字簽名進行組合,而橢圓曲線數字簽名算法的安全性已經在相關研究中得到證實[7],因此,本方案中數字簽名的安全性只要能證明以下兩點即可:第一,通過組合數字簽名能判定單一數字簽名是否由合法節點生成,即數字簽名之和能生成一個有效的數字簽名;第二,當且僅當所有為某一聚合結果提供數據的節點都為合法節點時,對該聚合結果的驗證才會出現v=r。
證明一:已知m=m1+m2+……,s=s1+s2+……,且si=t-1(mi+dir),則

即數字簽名之和產生一個有效的數字簽名可證。
證明二:由X=u1G+u2D且D=dG,可得
X=u1G+u2D=u1G+u2(dG)=(u1+u2d)G
由于s=t-1(m+dr),整理后可得

因此,X=kG,即(x1,y1) = kG,當所有節點都是合法節點時,由v=x1mod n可得v=r。
通過以上證明,可知本方案中采用的加密技術和數字簽名都具有很好的安全性。
通過在TinyOS 中模擬實現相關協議,對本文算法與其它典型算法(如TinySec)的能量消耗進行對比。
建立仿真環境如下:在邊長為500米的正方形場景中隨機分布150 個傳感器節點,其中20 個為資源較豐富的簇頭節點,檢測節點初始能量設置為1 焦耳,簇頭節點初始能量設置為2.5 焦耳;各節點每2秒發送一次數據;檢測節點的通信半徑為20m,簇頭節點的通信半徑為60米;sink節點距離網絡中心120 米,在DSABH 方案中,sink 節點以120 米為半徑繞網絡中心移動,移動速率為每100秒15弧度。
仿真在兩種算法下分別運行10 次,取平均值,得到如圖3所示結果:

圖3 網絡能耗比較
從圖中可以看出,TinySec 方案由于數據必須多次解密/加密,增加了運算開銷和能量消耗。而DSABH 方案中,發送節點進行一次加密和數字簽名運算,中間節點不用解密,直接進行聚合運算并轉發;且sink 節點采用移動的方式,避免了網絡局部區域節點因頻繁轉發而造成能耗過大的問題,進一步均衡并節省了網絡的能量消耗。因此,DSABH方案在能量消耗上表現出強大的優勢。
安全性和節能是WSN 重要的研究領域,直接影響到WSN 能否得到廣泛應用。本文提出的DSABH 方案創新之處在于:利用同態加密技術為網絡提供低能耗、強大的安全;將數字簽名結合全局時鐘應用于WSN,有效地抵御了非法節點的入侵,保證了數據的完整性和可用性;采用移動sink節點的方式均衡了網絡各處的能量消耗,有效延長了網絡的壽命。下一階段的研究目標是繼續關注大規模WSN 的安全,將自然免疫的方法應用到網絡中,使其能夠在整個網絡生命周期中發揮全面的安全保護任務。