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