黃 娟,王軍號,杜 朋
(安徽理工大學 計算機科學與工程學院,安徽 淮南 232001)
無線傳感器網絡(wireless sensor networks,WSN)是由許多傳感器節點組成的,而每個節點的能量、存儲、感應以及計算能力是有限的。為了進一步降低通信開銷和延長網絡壽命,傳感器節點在傳輸過程中對原始數據進行融合處理。數據融合能夠去除數據冗余,減少數據的傳輸量,從而節省傳感器節點能量,延長無線傳感器網絡的生命周期。文獻[1]指出了CPDA協議在隱私保護方面的脆弱性,對惡意節點的攻擊給出了解決辦法,保證了數據的隱私性,但無法檢測數據的完整性。Mahimker等[2]提出了安全數據融合與認證方案,該方案設置閾值,只是把一部分簽名和加密融合值發給基站,節點碰撞率高,通信量大,不適合大規模網絡。因此,如何在保證數據融合傳輸安全性的同時確保數據的完整性,成為無線傳感器網絡的研究熱點之一。
針對攻擊者捕獲或者偽造傳感器節點等手段對網絡實行內部攻擊,對數據進行惡意插入、修改或者刪除的行為,文獻[3-4]分別提出了iCPDA和iPDA為傳輸數據提供了隱私保護性和完整性檢測,但算法復雜度和完整性方面仍存在局限,而且一般適用于傳感器節點部署稠密地區。針對該問題,文中設計了一種基于數據融合隱私保護完整性驗證算法(PPIA)。該算法采用明碼和密碼對數據進行加密運算,而且利用節點產生的密碼對數據簽名,提高了數據的安全性;通過密碼簽名的方式對融合數據節點進行有效監督,防止惡意節點對有效數據進行非法篡改,有效地保證了數據的隱私性和完整性。
文獻[5]中提出了一種融合方案,通過紅黑簇頭的互相通信,驗證數據的完整性,使用逐條加解密的方式保護數據隱私,這種分布式驗證的方案能夠及早監測并丟棄錯誤數據。在網絡部署過程中,無線傳感器網絡一般部署在無人看守的偏遠區域。因此,為了獲得安全可靠的數據,在傳輸過程中使信息不被泄露,文獻[6]設計了一種ESIPPA方案。該方案在保護隱私的基礎上可以偵測信息被非法篡改的情況,而且通過加權方式隱私傳送ID號,實現了完整性驗證。而文獻[7]設計了PPFDT算法,該算法通過添加隨機噪聲的方法對數據加以保護,具有一定的隱私保護程度。文中提出的PPIA算法使用密碼對和簽名的方式對數據進行處理,實現了數據融合過程中隱私保護和完整性驗證的目的,避免了傳輸過程中惡意節點的破壞、篡改等非法操作。
在該算法中,假設每個傳感器節點Ai和它的所有子節點創建密碼對(即私有密碼d和公開明碼e),密碼d用于數據加密和對數據簽名,而明碼e發布給基站,用于驗證數據傳輸過程中的完整性。
為了得到安全可靠的密碼d,假設隨機選擇兩個大素數p和q,兩個素數長度接近,而且是1 024位。設n為公開的,而n=p*q,歐拉函數φ(n)=(p-1)(q-1),隨機選取整數e(1 在無線傳感器網絡中,為了使數據在傳輸過程中不被攻擊者篡改或偽造,需要對采集的數據進行保護。He等在文獻[8]提出了PDA算法,該算法是源節點將采集數據進行切片后加密發送,中間節點無法獲得完整數據,因而實現了數據的隱私性。但是PDA算法只支持SUM聚集操作,而且使用逐跳加密機制,導致計算量和通信代價較高。文獻[9]中的數據聚合方案采用了數據擾動技術和分片技術,利用二元數據間的關聯性進行數據隱私保護和數據完整性驗證,但安全性較弱。而文中提出的PPIA算法采用明密碼加密獲得的有效數據進行保護,從而實現數據隱私保護的目的,降低網絡的計算代價。 假設傳感器節點為Ai,Ai的父節點為Af,Ai的ni個子節點為{A1,A2,…,Ai}。為了保護數據的安全性,Ai對采集到的數據M進行加密計算,加密公式為:C=Mpmodn,從而得到密文C。在進行加密之前,該算法利用單向Hash函數獲取固定長度的消息摘要Hash(M),再利用密碼對消息摘要進行加密簽名運算,詳細加密簽名過程如下: s=Sign(M)=Hash(M)dmodn (1) Ci=Enc(Mi,di,n)=Enc(Mi+di(modN))+ Enc(Mi+di(modN))i= (Mi+di(modN))+(Mi+di(odN))i (2) 其中,在節點數為n的網絡中,N可取為2「ln(max(Mi)*n)?,max(Mi)表示原始數據可能取的最大值。 PPIA算法通過加密簽名后,數據就具有了保密性和標記性,從而實現了WSN數據融合隱私保護的目的。 在數據融合階段,文獻[10]提出了SPPDA方案,描述了建立數據融合樹的方法對數據進行融合。文獻[11]提出了iPPHA算法,在直方圖融合基礎上,構建另一棵融合樹傳輸冗余信息,在基站處對數據完整性進行驗證。而PPIA算法采用Bayes有向圖形式,對簽名后的數據進行融合。為了保證數據在融合過程中不被泄露或者偽造,該算法采用密碼對數據進行簽名。文獻[12]采用了復數的可加性實現了數據融合的完整性,但該算法增加了數據的運算量,從而使得算法的計算開銷和通信開銷較大。 為了降低網絡開銷,PPIA算法在傳輸過程中對數據簽名結果進行融合,從而解決傳感器能耗問題,能夠在傳輸過程中節約電池能量,降低通信開銷和計算代價,進而延長網絡的使用壽命。 (3) (4) 為了使得融合效果較高,最大限度地降低冗余,建立一種Bayes網絡的有向無環圖。采用聯合概率公式(見式5)可以簡化數據冗余,減少計算的復雜度,從而解決了采集數據量大的問題。對于任意一個節點Ai,可找到與之條件不獨立的最小子集θi∈{A1,A2,…,Ai-1},從而得到聯合概率函數。 P(Ai/A1,A2,…,An)=∏P(Ai/θi) (5) 通過聯合概率函數對數據進行融合,采用Bayes圖形來捕獲監測區域的數據,實現對數據的融合,具體的融合過程如圖1所示。 圖1 融合過程 文獻[13]提出了一種CBIPDA算法,利用復數的虛實部關聯特性保護數據完整性,但是在基站統一驗證,使得網絡只能在基站發現惡意數據,一旦發現就會丟棄整個融合結果。而文中設計PPIA算法的目的是為了確保數據的隱私性和驗證數據在融合過程中具有完整性,因此該算法對節點采集的數據單元添加一部分數據標記,該標記能夠驗證數據融合中的完整性。為了滿足完整性驗證,提出兩個假設:密碼是安全的,只有擁有者才能獲得;產生簽名的惟一途徑是使用密碼。 為了驗證數據的完整性,具體步驟如下: (1)將接收到的數據進行分離,即融合結果和簽名兩個數值分離; (2)利用發送方的公開明碼解密數字簽名,從而得到摘要信息; (3)使用與發送方相同的散列Hash函數重新計算原消息的摘要信息; (4)利用發送方的明碼解密得到的摘要信息與Hash函數計算原消息信息進行比較,若二者相等,則說明消息在傳輸過程中沒有被篡改或者偽造;否則,消息簽名不可靠,應當丟棄該數據融合結果。 由式4可得融合結果,基站需對融合結果進行數據還原,從而得到真實的數據融合結果M。具體驗證如下: 若 d*e=1(modφ(n))s=Hash(M)dmodn (6) semodn=Hash(M)edmodn=Hash(M)φ(n)+1modn=Hash(M)*Hash(M)φ(n)modn=Hash(M) (7) 還原融合函數: (8) 則完整性驗證有效;否則,驗證無效。 PPIA算法對數據進行隱私保護完整性驗證是通過密碼簽名的方式實現的,利用密碼加密和簽名,在基站使用明碼進行完整性驗證,從而實現了數據融合隱私保護完整性驗證的功能。 具體算法流程如圖2所示。 圖2 算法流程 PPIA算法執行過程如下: Step1:初始化節點,構造密碼對,即Public_Key,Private_Key; Step2:簽名,節點使用私有密碼對數據簽名,把明碼公布;加密Enc(sign);數字簽名; Step4:完整性驗證,基站獲得明碼generate_Public_Key;解密Drc(sign_Public_Key),還原融合函數,見式8;判斷解密函數與Hash函數計算結果:如果二者相等,驗證有效;否則,驗證無效。 對PPIA算法的安全性分析主要是針對算法的簽名這一過程進行的。數字簽名的安全性要求簽名是可以被驗證的,而且是不可偽造的。當某個節點被攻擊者捕獲時,可能獲得該節點的敏感信息,而且也可偽造虛假信息。為了鑒別偽造數據還是真實融合數據結果,使用密碼簽名,可以在基站檢測出偽造信息并丟棄。通過實驗仿真,比較了PPIA方案和文獻[14]中的PDI算法的安全性能,如圖3所示。 圖3 安全性比較 在實驗中,傳感器節點數目m取6。由圖3可知,當消息長度為100時,PDI算法小于500 ms,該算法的運行時間較短,未能及時進行簽名運算;而PPIA算法的運行時間較長,能夠在有效的時間內計算簽名。所以,PPIA算法的安全性相對較高。 PPIA算法采用密碼方式對獲得的數據進行加密,若偽造者想要獲得密碼,則需要對p和q進行計算,而它們是兩個長度接近的大素數,這是很難實現;另一方面,該算法采用了歐拉函數,對于e和d的獲得以及密碼的計算量相對而言較為繁瑣,使得該算法隱私效果更顯著。 在簽名之前,使用單向Hash函數生成固定長度的消息摘要,它采用自己的密碼加密消息摘要,得到簽名,從而增加了數據的隱私性。若不使用Hash函數,那么對消息m的簽名為s,假如攻擊者獲得了這個簽名,就可以偽造消息m的有效簽名s。所以,該算法使用Hash函數提高了數據的隱私保護性,而且也大大提高了簽名和驗證的效率。圖4比較了PPIA算法和文獻[8]中的SMART方法的隱私保護性。可知,當節點間被破解的概率低于6%時,SMART的隱私保護數據被暴露的概率低于0.4%,而PPIA算法低于0.2%,因此,PPIA算法的隱私保護性能更好。 圖4 隱私保護性比較 針對SPPDA方案使用復數的可加性融合數據和完整性驗證方法,如果惡意節點破壞復數的實部和虛部,那么SPPDA方案無法保證數據融合結果的完整性。而PPIA算法在加密算法的基礎上使用密碼簽名的方式,對數據進行簽名,相當于對每個數據做標記,再對數據融合。如果惡意節點注入虛假信息,基站必然會檢測出偽造數據。圖5比較了SPPDA方案和PPDA算法的完整性。 圖5 完整性比較 由圖5可知,當節點之間的通信數據量低于100時,SPPDA方案比PPIA算法的完整性要好,但高于100時,PPIA算法的完整性要高于SPPDA方案。一般而言,WSN網絡部署過程中存在許多節點,以至于PPIA算法的完整性和可靠性更高。因此,文中方案更適合WSN數據融合網絡。 提出了一種基于數據融合的隱私保護完整性驗證算法,采用密碼對方式對傳感器節點獲得的數據進行加密,保證了數據隱私性。為了使融合結果具有完整性和安全性,利用密碼簽名在實現數據隱私保護的基礎上驗證數據是否被篡改或偽造。該算法實現了WSN中數據隱私保護和完整性驗證的有機結合,能夠有效地保證數據在傳輸過程中不被破壞和基站接收到的數據是有效的。從安全性、隱私性、完整性三個方面分析驗證了該算法的性能,證明該算法在這三個方面具有一定的優越性,能夠實現數據融合隱私保護完整性驗證的功能。1.2 隱私保護階段
1.3 數據融合階段




1.4 完整性驗證階段
2 具體實現

3 性能分析
3.1 安全性分析

3.2 隱私性分析

3.3 完整性分析

4 結束語