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

圖1 DSABHA算法簇結(jié)構(gòu)

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

即數(shù)字簽名之和產(chǎn)生一個(gè)有效的數(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é)點(diǎn)都是合法節(jié)點(diǎn)時(shí),由v=x1mod n可得v=r。
通過以上證明,可知本方案中采用的加密技術(shù)和數(shù)字簽名都具有很好的安全性。
通過在TinyOS 中模擬實(shí)現(xiàn)相關(guān)協(xié)議,對(duì)本文算法與其它典型算法(如TinySec)的能量消耗進(jìn)行對(duì)比。
建立仿真環(huán)境如下:在邊長(zhǎng)為500米的正方形場(chǎng)景中隨機(jī)分布150 個(gè)傳感器節(jié)點(diǎn),其中20 個(gè)為資源較豐富的簇頭節(jié)點(diǎn),檢測(cè)節(jié)點(diǎn)初始能量設(shè)置為1 焦耳,簇頭節(jié)點(diǎn)初始能量設(shè)置為2.5 焦耳;各節(jié)點(diǎn)每2秒發(fā)送一次數(shù)據(jù);檢測(cè)節(jié)點(diǎn)的通信半徑為20m,簇頭節(jié)點(diǎn)的通信半徑為60米;sink節(jié)點(diǎn)距離網(wǎng)絡(luò)中心120 米,在DSABH 方案中,sink 節(jié)點(diǎn)以120 米為半徑繞網(wǎng)絡(luò)中心移動(dòng),移動(dòng)速率為每100秒15弧度。
仿真在兩種算法下分別運(yùn)行10 次,取平均值,得到如圖3所示結(jié)果:

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