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