房保綱, 鐘伯成, 張家磊
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
無線傳感器網(wǎng)絡(luò)(wireless sensor networks,WSNs)[1]是在指定區(qū)域內(nèi)部署大量的微型電子傳感器,并以自組織和多跳的方式構(gòu)建而成。這些微型傳感器節(jié)點(diǎn)通常具有非常有限的能量、存儲空間和計算能力,節(jié)點(diǎn)之間需要相互協(xié)作對周圍的數(shù)據(jù)進(jìn)行感知、采集、處理,并發(fā)送給所需的用戶。目前,無線傳感器網(wǎng)絡(luò)已經(jīng)被廣泛地應(yīng)用到工業(yè)控制、電子醫(yī)療、國防軍事、智慧交通等領(lǐng)域[2]。
為了延長傳感器網(wǎng)絡(luò)的生命周期并且減少傳感器冗余數(shù)據(jù)的傳輸,傳感器需要在網(wǎng)絡(luò)中進(jìn)行協(xié)作收集和處理原始的數(shù)據(jù),以減少原始數(shù)據(jù)的發(fā)送量。數(shù)據(jù)聚合技術(shù)便是常用的方法之一。近些年來,很多研究者提出了相關(guān)的數(shù)據(jù)安全聚合協(xié)議。He W等人[3]提出了CPDA(cluster-based private data aggregation)協(xié)議,協(xié)議的核心思想是利用簇協(xié)議和多項(xiàng)式代數(shù)的性質(zhì)來進(jìn)行數(shù)據(jù)聚合中的隱私保護(hù)。無線傳感器節(jié)點(diǎn)隨機(jī)組合成簇,在每一個簇里,利用多項(xiàng)式的加法性質(zhì)去計算聚合結(jié)果。協(xié)議具有計算和通信開銷較大的缺點(diǎn)。Castelluccia C等人[4]提出了AHE(additively homomorphic encryption)協(xié)議,其思想是允許設(shè)備在密文上進(jìn)行數(shù)據(jù)聚合操作,采用端對端的加密機(jī)制來實(shí)現(xiàn)數(shù)據(jù)聚合。He等人提出了SMART(slice-mix-aggregate)協(xié)議,主要思想是建立在切分技術(shù)和可加性的關(guān)聯(lián)屬性上,每一個節(jié)點(diǎn)通過對原始感知數(shù)據(jù)切分成數(shù)據(jù)分片來加密原始感知數(shù)據(jù),該協(xié)議具有計算開銷小的優(yōu)點(diǎn),但數(shù)據(jù)的完整性較差。IPHCDA[5](integrity protecting hierarchical concealed data aggregation)協(xié)議采用一個基于橢圓曲線加密的同態(tài)加密算法來提供數(shù)據(jù)的完整性和機(jī)密性,該協(xié)議支持完整性驗(yàn)證,安全性更高,聚合結(jié)果準(zhǔn)確性高,缺點(diǎn)是計算和通信的開銷較大。
本文提出了一種基于橢圓曲線ElGamal密碼體制的數(shù)據(jù)安全聚合方法,利用外包服務(wù)器計算橢圓曲線中運(yùn)算量較大的倍點(diǎn)運(yùn)算,從而能夠有效降低傳感器計算和通信的開銷,同時使用同態(tài)加密和聚合簽名技術(shù)有效保護(hù)數(shù)據(jù)的機(jī)密性和完整性。
同態(tài)加密算法能夠在不解密的情況下直接對密文數(shù)據(jù)進(jìn)行計算。假設(shè)EK(·)為一個加密函數(shù),K為加密密鑰,Dk(·)為相對應(yīng)的解密函數(shù)。如果在某種運(yùn)算操作°下存在一種有效的算法Alg滿足Alg(EK(x),EK(y))=EK(x°y),則EK(·)是一個運(yùn)算°下的同態(tài)加密。
ElGamal密碼體制[6,7]是一種典型的公鑰密碼體制,基于橢圓曲線的ElGamal密碼體制具有加法同態(tài)的性質(zhì)。橢圓曲線ElGamal算法的安全性是建立在橢圓曲線離散對數(shù)問題之上的。橢圓曲線離散問題是指,對于等式Q=kP,已知k和P的情況下知道計算Q比較容易;反之,已知Q和P的情況下知道計算k比較困難。對于有限域上的橢圓曲線E,設(shè)q=pn,n=2n′,明文消息為整數(shù)m,則m可以表示為m=m0+m1p+…+mn-1pn-1。使用ElGamal加密時,將消息m用編碼函數(shù)map( )編碼到橢圓曲線上,解密時只需將橢圓曲線上的點(diǎn)用解碼函數(shù)rmap( )解碼即可。
系統(tǒng)模型主要包含4個部分:多個WSNs節(jié)點(diǎn),一個中間聚合器節(jié)點(diǎn)(middle aggregate nodes,MANs),一個聚合節(jié)點(diǎn)(aggregate node,AN),一臺提供外包服務(wù)的服務(wù)器(outsourcing servers)。無線傳感器節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的采集,中間聚合器節(jié)點(diǎn)負(fù)責(zé)聚合和驗(yàn)證多個傳感器節(jié)點(diǎn)的消息的簽名值,并利用同態(tài)加密得到中間密文,然后對中間聚合密文進(jìn)行數(shù)字簽名。最后,聚合器節(jié)點(diǎn)負(fù)責(zé)驗(yàn)證由多個中間聚合器節(jié)點(diǎn)對傳感器消息的數(shù)字簽名,并利用同態(tài)加密性質(zhì)獲得最終的聚合數(shù)據(jù)。
2.2.1 系統(tǒng)初始化過程
本文提出的方法中,假設(shè)系統(tǒng)中有一個可信任機(jī)構(gòu)TA(trust authority)負(fù)責(zé)生成無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)、中間聚合節(jié)點(diǎn)和聚合節(jié)點(diǎn)的密鑰參數(shù)并通過安全的信道傳輸相應(yīng)的系統(tǒng)參數(shù)??尚湃螜C(jī)構(gòu)TA產(chǎn)生系統(tǒng)參數(shù)和密鑰信息的具體過程如下:
1)假設(shè)τ是一個整數(shù),并且τ>0,則TA產(chǎn)生2個τ比特的素數(shù)q1,q2;
2)TA計算n=q1q2,并構(gòu)造一個階數(shù)為n的橢圓曲線點(diǎn)群G;
3)TA隨機(jī)選擇群G的兩個生成元P1,P2,并計算H=q2P2,則H為群G的一個子群的隨機(jī)生成元,而且子群的階為q1,其中該聚合節(jié)點(diǎn)的公鑰為PKAN={n,G,P1,H},私鑰為SKAN=q1;
4)TA為任意一個中間聚合器節(jié)點(diǎn)生成的公鑰信息為PKMAj={G,P3,n,Qj},私鑰為PKMAj={dj};
5)TA為標(biāo)識符為IDi的傳感器節(jié)點(diǎn)生成的私鑰為Si,k=SPi,k,其中k∈{0,1}。
2.2.2 傳感器節(jié)點(diǎn)處理過程
無線傳感器節(jié)點(diǎn)在收集到數(shù)據(jù)后,系統(tǒng)采用公鑰加法同態(tài)加密算法對數(shù)據(jù)進(jìn)行加密處理。在方法中,假設(shè)傳感器具有較弱的計算能力,所以,橢圓曲線密碼學(xué)中的倍點(diǎn)運(yùn)算可以外包給服務(wù)器進(jìn)行計算,從而減少傳感器的運(yùn)算量。具體過程如下:
2.2.3 中間聚合器節(jié)點(diǎn)處理過程
2)中間聚合器節(jié)點(diǎn)判斷IDMAj是否與自己的一致,然后判斷時間戳Tstamp是否在誤差范圍內(nèi);
3)中間聚合器節(jié)點(diǎn)收集所有的有效消息,然后進(jìn)行簽名的批量驗(yàn)證,AggVer(ω,Si,Ti,n)→TUREorFALSE;
2.2.4 聚合器節(jié)點(diǎn)處理過程
2)聚合器節(jié)點(diǎn)檢查標(biāo)識符IDAN和時間戳Tstamp,如果標(biāo)識符一致且時間戳在允許的誤差范圍內(nèi),則繼續(xù)數(shù)據(jù)處理過程;
3)聚合器節(jié)點(diǎn)進(jìn)行聚合簽名的驗(yàn)證AggVer(ω,SMAj,TMAj,n)→TUREorFALSE,如果返回值是真,則繼續(xù)處理過程;
1)數(shù)據(jù)機(jī)密性:由于本文應(yīng)用了同態(tài)加密和聚合簽名技術(shù),因此,無論是傳感器節(jié)點(diǎn)還是中間聚合器節(jié)點(diǎn)在未獲得私鑰的情況下不能獲得明文數(shù)據(jù),所以本文能夠保證數(shù)據(jù)的機(jī)密性。
2)數(shù)據(jù)完整性:本文應(yīng)用了基于身份的聚合簽名技術(shù),數(shù)字簽名技術(shù)可以驗(yàn)證消息的完整性,所以,可以保證中間聚合器節(jié)點(diǎn)和聚合器節(jié)點(diǎn)收到的消息是完整的,未被篡改。
3)抗重放攻擊:本文運(yùn)用了時間戳技術(shù),將時間戳嵌入到通信的信息中可以有效的抵御重放攻擊。
為了評估本文在具體的傳感器節(jié)點(diǎn)上的性能與可行性,基于 TinyOS[8]平臺給出算法的原型實(shí)現(xiàn),并基于傳感器網(wǎng)絡(luò)研究中廣泛使用的Crossbow MICAz節(jié)點(diǎn)分析了算法的計算開銷。MICAz節(jié)點(diǎn)的配置為:
處理器為STM32F103C8,存儲為128 kB閃存和20 kB電可擦除只讀存儲器,通信為CC2420無線模塊,傳輸速率為250 Kbps,傳輸協(xié)議為IEEE 802.15.4,探測對象為環(huán)境溫度、空氣壓力、磁場強(qiáng)度、空氣濕度等。
使用開源軟件C++ TOSSIM庫和PBC(pairing-based cryptography)庫對無線傳感器網(wǎng)絡(luò)中的傳感器節(jié)點(diǎn)、中間聚合器節(jié)點(diǎn)以及聚合器節(jié)點(diǎn)的計算開銷進(jìn)行評估。
在所提出的方法中,傳感器節(jié)點(diǎn)可以將昂貴的橢圓曲線倍點(diǎn)運(yùn)算外包給服務(wù)器,只需計算普通的橢圓曲線加法運(yùn)算,所以傳感器的計算開銷很小,且與傳感器節(jié)點(diǎn)的數(shù)量無關(guān)。如圖1所示,隨著傳感器數(shù)量的增加,計算開銷并沒有線性增長。因?yàn)橹虚g聚合器節(jié)點(diǎn)MA需要對傳感器節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行聚合驗(yàn)證,所以,它的計算開銷和傳感器節(jié)點(diǎn)的數(shù)量成線性相關(guān)。如圖2所示,中間聚合器節(jié)點(diǎn)的開銷和傳感器數(shù)量呈正比關(guān)系。
圖1 傳感器節(jié)點(diǎn)計算開銷
圖2 中間聚合節(jié)點(diǎn)的計算開銷
針對無線傳感器網(wǎng)絡(luò)數(shù)據(jù)聚合中安全性和計算開銷問題,本文基于同態(tài)加密和聚合簽名技術(shù)提出了一種能夠保證數(shù)據(jù)的機(jī)密性和降低計算開銷的數(shù)據(jù)聚合方法。無線傳感器借助外包服務(wù)器計算橢圓曲線倍點(diǎn)運(yùn)算,從而減少了傳感器節(jié)點(diǎn)的計算開銷。中間聚合器節(jié)點(diǎn)使用橢圓曲線ElGamal密碼體制進(jìn)行數(shù)據(jù)的聚合簽名,從而保證了數(shù)據(jù)的機(jī)密性。同時還使用了時間戳技術(shù)來抵御敵手的重放攻擊。實(shí)驗(yàn)仿真表明:所提方法在計算和通信開銷方面較低且高效可行。