李睿,李晉國(guó),陳浩
(1. 湖南大學(xué) 信息科學(xué)與工程學(xué)院,湖南 長(zhǎng)沙 410082;2. 上海電力學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,上海 200090)
無(wú)線傳感器網(wǎng)絡(luò)[1~3]一個(gè)重要的用途是對(duì)特定環(huán)境和目標(biāo)進(jìn)行有效識(shí)別和跟蹤,例如在軍事領(lǐng)域利用無(wú)線傳感器網(wǎng)絡(luò)監(jiān)控戰(zhàn)場(chǎng)狀況;在生物領(lǐng)域?qū)μ囟ㄎ锓N的活動(dòng)進(jìn)行監(jiān)測(cè)[4]。在實(shí)現(xiàn)目標(biāo)識(shí)別和跟蹤時(shí),傳感器網(wǎng)絡(luò)需要分類(lèi)和統(tǒng)計(jì)相關(guān)環(huán)境數(shù)據(jù),克服監(jiān)控區(qū)域內(nèi)運(yùn)動(dòng)物體的不可預(yù)測(cè)性以及監(jiān)測(cè)環(huán)境中物種的多樣性帶來(lái)的影響,達(dá)到最終識(shí)別和跟蹤特定目標(biāo)的目的。在監(jiān)測(cè)區(qū)域內(nèi),眾多的傳感器節(jié)點(diǎn)通常會(huì)收集很多監(jiān)測(cè)數(shù)據(jù),如果將傳感器節(jié)點(diǎn)收集到的所有監(jiān)測(cè)數(shù)據(jù)都傳輸?shù)絪ink節(jié)點(diǎn)進(jìn)行處理后再分類(lèi)和統(tǒng)計(jì),則傳感器網(wǎng)絡(luò)內(nèi)產(chǎn)生的巨大網(wǎng)內(nèi)數(shù)據(jù)流不但會(huì)過(guò)多消耗傳感器節(jié)點(diǎn)能量,縮短了傳感器網(wǎng)絡(luò)的生命周期,更重要的是這些數(shù)據(jù)流會(huì)消耗過(guò)多的網(wǎng)絡(luò)帶寬造成傳輸時(shí)延,無(wú)法達(dá)到對(duì)特定目標(biāo)的實(shí)時(shí)監(jiān)測(cè)。
兩層傳感器網(wǎng)絡(luò)從單層無(wú)結(jié)構(gòu)傳感器網(wǎng)絡(luò)進(jìn)化而來(lái)。由于其簡(jiǎn)單、易擴(kuò)展、節(jié)能等特點(diǎn)[5,6],兩層傳感器網(wǎng)絡(luò)已廣泛使用在各個(gè)領(lǐng)域,其典型結(jié)構(gòu)如圖1所示。在兩層無(wú)線傳感器網(wǎng)絡(luò)中包含3類(lèi)節(jié)點(diǎn)。1) 普通傳感器節(jié)點(diǎn)。該類(lèi)節(jié)點(diǎn)與單層傳感器網(wǎng)絡(luò)中的傳感器節(jié)點(diǎn)一致,數(shù)目眾多,分散在整個(gè)監(jiān)測(cè)區(qū)域的各個(gè)角落,能量和計(jì)算資源都非常有限。2) sink節(jié)點(diǎn)。該節(jié)點(diǎn)與傳統(tǒng)單層傳感器網(wǎng)絡(luò)中的sink節(jié)點(diǎn)也一致,是一個(gè)終端節(jié)點(diǎn),負(fù)責(zé)對(duì)網(wǎng)絡(luò)內(nèi)發(fā)送查詢請(qǐng)求,并獲得相應(yīng)的查詢結(jié)果。3) 存儲(chǔ)節(jié)點(diǎn)。該類(lèi)節(jié)點(diǎn)數(shù)目相對(duì)于傳感器節(jié)點(diǎn)較少,但配備了相對(duì)豐富的存儲(chǔ)和計(jì)算資源,負(fù)責(zé)收集臨近傳感器節(jié)點(diǎn)采集的監(jiān)測(cè)數(shù)據(jù)并處理sink節(jié)點(diǎn)發(fā)送的處理請(qǐng)求。
如果利用兩層傳感器網(wǎng)絡(luò)中存儲(chǔ)節(jié)點(diǎn)的計(jì)算和存儲(chǔ)能力,各個(gè)存儲(chǔ)節(jié)點(diǎn)首先對(duì)其收集到的數(shù)據(jù)進(jìn)行分類(lèi)和統(tǒng)計(jì),再將分類(lèi)和統(tǒng)計(jì)的結(jié)果傳給sink節(jié)點(diǎn)無(wú)疑會(huì)極大地減小網(wǎng)內(nèi)數(shù)據(jù)流,達(dá)到對(duì)特定目標(biāo)快速跟蹤和識(shí)別的目的。
然而,在兩層傳感器網(wǎng)絡(luò)中存儲(chǔ)節(jié)點(diǎn)處在傳感器節(jié)點(diǎn)和sink節(jié)點(diǎn)的中間,扮演了至關(guān)重要的角色,因此在敵對(duì)環(huán)境中更容易遭受攻擊者的攻擊。被攻擊者妥協(xié)的存儲(chǔ)節(jié)點(diǎn)將對(duì)整個(gè)網(wǎng)絡(luò)產(chǎn)生較大的破壞性。其破壞性體現(xiàn)在如下幾個(gè)方面:1) 妥協(xié)的存儲(chǔ)節(jié)點(diǎn)自身存儲(chǔ)的大量傳感器節(jié)點(diǎn),采集的敏感數(shù)據(jù)會(huì)被泄漏;2) 存儲(chǔ)在妥協(xié)存儲(chǔ)節(jié)點(diǎn)上的 sink分類(lèi)統(tǒng)計(jì)規(guī)則會(huì)被泄漏;3) 攻擊者可操縱妥協(xié)的存儲(chǔ)節(jié)點(diǎn)偽造虛假的分類(lèi)統(tǒng)計(jì)結(jié)果。因此,在兩層結(jié)構(gòu)的傳感器網(wǎng)絡(luò)下亟需設(shè)計(jì)安全的分類(lèi)協(xié)議,避免以上3個(gè)破壞性方面問(wèn)題的出現(xiàn)。但設(shè)計(jì)這樣一個(gè)安全分類(lèi)協(xié)議具有很大的困難性,需要解決以下2個(gè)關(guān)鍵問(wèn)題:1) 需要存儲(chǔ)節(jié)點(diǎn)在不知道分類(lèi)和統(tǒng)計(jì)規(guī)則以及傳感器節(jié)點(diǎn)采集的數(shù)據(jù)真實(shí)值情況下進(jìn)行正確地分類(lèi)和統(tǒng)計(jì),該條件是為了避免妥協(xié)的存儲(chǔ)節(jié)點(diǎn)泄露存儲(chǔ)在其上的敏感信息;2) 需要對(duì)分類(lèi)結(jié)果進(jìn)行相應(yīng)的抽樣認(rèn)證,該條件是為了避免攻擊者惡意偽造虛假結(jié)果。
本文研究?jī)蓪觽鞲衅骶W(wǎng)絡(luò)中的安全分類(lèi)問(wèn)題,并提出了一種安全分類(lèi)(SSC, safe and secure classification)協(xié)議。SSC協(xié)議能實(shí)現(xiàn)在保護(hù)分類(lèi)數(shù)據(jù)和分類(lèi)規(guī)則隱私的情況下,存儲(chǔ)節(jié)點(diǎn)進(jìn)行正確分類(lèi);sink節(jié)點(diǎn)可以采用抽樣檢查的方法對(duì)分類(lèi)結(jié)果進(jìn)行認(rèn)證,檢測(cè)出妥協(xié)存儲(chǔ)節(jié)點(diǎn)偽造的分類(lèi)統(tǒng)計(jì)結(jié)果。在 SSC協(xié)議中,首先需要解決的一個(gè)問(wèn)題是實(shí)現(xiàn)在隱私保護(hù)的情況下實(shí)現(xiàn)數(shù)據(jù)的分類(lèi),為了解決這個(gè)問(wèn)題,本文采用前綴技術(shù)將判斷一個(gè)數(shù)據(jù)隸屬于某一個(gè)區(qū)間變成判斷一個(gè)數(shù)據(jù)是否隸屬于某一個(gè)集合。該變換消除了分類(lèi)過(guò)程中的大小比較,在只有等值比較的情況下實(shí)現(xiàn)了判斷數(shù)據(jù)與范圍的隸屬關(guān)系。在此基礎(chǔ)上提出了一種不經(jīng)意比較技術(shù) MHash。MHash采用模運(yùn)算和單向散列技術(shù), 在保護(hù)傳感器采集數(shù)據(jù)和分類(lèi)規(guī)則安全性的基礎(chǔ)上實(shí)現(xiàn)了正確的分類(lèi)。針對(duì)查詢結(jié)果正確性認(rèn)證問(wèn)題,本文的思路是將傳感器節(jié)點(diǎn)采集的數(shù)據(jù)組織成2條鏈:?jiǎn)蝹€(gè)傳感器節(jié)點(diǎn)采集的數(shù)據(jù)形成一條鏈;相鄰傳感器節(jié)點(diǎn)采集的數(shù)據(jù)形成另外一條鏈,本文稱這種技術(shù)為“十”字鄰居技術(shù)。利用該技術(shù),sink可以對(duì)分類(lèi)統(tǒng)計(jì)的最終結(jié)果進(jìn)行抽樣檢查來(lái)驗(yàn)證分類(lèi)結(jié)果的正確性。本文算法最終在Intel Lab[7]提供的數(shù)據(jù)集上進(jìn)行驗(yàn)證,實(shí)驗(yàn)結(jié)果證實(shí)了所提算法的有效性。
本文主要貢獻(xiàn)有:1) 提出了兩層傳感器網(wǎng)絡(luò)中的安全分類(lèi)問(wèn)題;2) 提出了 MHash,一種不經(jīng)意比較方案,并結(jié)合前綴編碼和 MHash提出安全分類(lèi)技術(shù);3) 提出了用于抽樣認(rèn)證分類(lèi)結(jié)果的“十”字鄰居技術(shù)。
圖1 兩層結(jié)構(gòu)的傳感器網(wǎng)絡(luò)
就目前所知,有關(guān)兩層傳感器網(wǎng)絡(luò)安全數(shù)據(jù)分類(lèi)方面的研究還沒(méi)有,和本文研究最為相關(guān)的是:針對(duì)普通傳感器網(wǎng)絡(luò)的數(shù)據(jù)分類(lèi)算法和針對(duì)兩層傳感器網(wǎng)絡(luò)的相關(guān)安全協(xié)議。下面將從這些方面分析現(xiàn)有工作。
無(wú)線傳感器網(wǎng)絡(luò)的重要任務(wù)之一是有效識(shí)別和跟蹤特定目標(biāo)。Wang等人使用Mica聲音傳感器跟蹤目標(biāo),采用分類(lèi)器將特征信號(hào)從白噪聲數(shù)據(jù)中提取[8]。Simon等人研究了狙擊手定位系統(tǒng),根據(jù)聲音信號(hào)處理特征進(jìn)行了應(yīng)用[9],通過(guò)DSP芯片對(duì)狙擊步槍和普通手槍進(jìn)行分類(lèi)識(shí)別。文獻(xiàn)[10]和文獻(xiàn)[11]以大鴨島為研究環(huán)境,設(shè)置大量傳感器研究野生動(dòng)物,使用多種傳感器分類(lèi)識(shí)別各種野生動(dòng)物,sink節(jié)點(diǎn)主要負(fù)責(zé)分類(lèi)部分的工作。
識(shí)別和跟蹤特定目標(biāo)也是智能交通的重要研究方向。文獻(xiàn)[12]分類(lèi)識(shí)別了行人、車(chē)輛等運(yùn)動(dòng)目標(biāo),通過(guò)結(jié)合較為先進(jìn)的硬件設(shè)施實(shí)現(xiàn)高識(shí)別率。主要結(jié)合Mica2節(jié)點(diǎn)和磁力及聲音感應(yīng)器,同時(shí)安裝了少量MIR傳感器,可處理雷達(dá)信號(hào)。然而該方案采用的傳感器節(jié)點(diǎn)較為昂貴,因此限制了其實(shí)際的應(yīng)用價(jià)值。
此外,通過(guò)設(shè)計(jì)可實(shí)現(xiàn)分類(lèi)器進(jìn)一步提高針對(duì)各種特征的分類(lèi)精確度[13~17]。但這些分類(lèi)工作通常是使用 sink節(jié)點(diǎn)對(duì)采集的信號(hào)集中進(jìn)行分類(lèi)和識(shí)別,需要傳感器節(jié)點(diǎn)上傳所有數(shù)據(jù),因此,對(duì)網(wǎng)絡(luò)造成了較大的負(fù)擔(dān)。Zhao等設(shè)計(jì)了協(xié)作式的分類(lèi)算法,節(jié)點(diǎn)在傳數(shù)據(jù)前完成分類(lèi),并將最終結(jié)果反饋至sink。Pattem等提出了一種針對(duì)能量有限環(huán)境的跟蹤識(shí)別算法評(píng)價(jià)體系[16]。然而文獻(xiàn)[15,16]需要限制網(wǎng)內(nèi)節(jié)點(diǎn)全部同構(gòu),且存儲(chǔ)和運(yùn)算能力較強(qiáng),增加了實(shí)際部署的成本。
兩層結(jié)構(gòu)的傳感器網(wǎng)絡(luò)也有相關(guān)分類(lèi)工作,Wang等人提出針對(duì)該結(jié)構(gòu)的基于協(xié)作和任務(wù)分解的分類(lèi)識(shí)別算法[17],但未考慮存儲(chǔ)節(jié)點(diǎn)受到威脅的情形。
兩層傳感器網(wǎng)絡(luò)近年來(lái)在隱私與數(shù)據(jù)完整性方面有著較為豐富的研究工作。以下從這2個(gè)方面對(duì)國(guó)內(nèi)外研究工作進(jìn)行分析。
1) 隱私保護(hù)
范圍查詢的隱私保護(hù)問(wèn)題在兩層傳感器網(wǎng)絡(luò)中最先受到關(guān)注,文獻(xiàn)[18~20]采用應(yīng)用在數(shù)據(jù)庫(kù)領(lǐng)域的桶劃分方法[21]實(shí)現(xiàn)了在兩層傳感器網(wǎng)絡(luò)下對(duì)范圍查詢數(shù)據(jù)的隱私性和完整性保護(hù)。然而桶方案易被估算實(shí)際數(shù)據(jù)值,且多維情形下能耗隨維度指數(shù)增長(zhǎng)[22]。Chen&Liu提出SafeQ安全查詢協(xié)議[23]避免桶方案的缺陷。但是SafeQ的能耗仍然過(guò)高,因此本文作者提出QuerySec[24],一種利用多項(xiàng)式技術(shù)進(jìn)行隱私保護(hù)的安全協(xié)議。
Top-k查詢?cè)趦蓪觽鞲衅骶W(wǎng)絡(luò)中也較為重要。Zhang等人[25]最先提出針對(duì)兩層傳感器網(wǎng)絡(luò)的 top-k協(xié)議,但是該協(xié)議只考慮了查詢結(jié)果的可校驗(yàn),并未考慮數(shù)據(jù)隱私。陳紅等人提出了基于輔助計(jì)算節(jié)點(diǎn)的安全top-k查詢協(xié)議[26],該協(xié)議需要額外的硬件支持。本文作者進(jìn)一步提出 SecTQ協(xié)議[27],通過(guò)采用估算相關(guān)技術(shù)轉(zhuǎn)換 top-k查詢。李建中等隨后提出安全top-k隱私保護(hù)數(shù)據(jù)傳輸協(xié)議[28]。本文作者進(jìn)一步考慮了網(wǎng)絡(luò)中上層安全傳輸問(wèn)題,提出了一種針對(duì)兩層傳感器網(wǎng)絡(luò)的安全數(shù)據(jù)聚合協(xié)議[29],通過(guò)布魯姆過(guò)濾器結(jié)合前綴保護(hù)數(shù)據(jù)隱私。
2) 完整性保護(hù)
Sheng和Li[18]提出以桶為基礎(chǔ)設(shè)計(jì)的編碼技術(shù),使各個(gè)傳感器的空桶具有唯一編碼數(shù),編碼數(shù)可以用于認(rèn)證查詢結(jié)果的完整性。Shi等[19,20]提出時(shí)空交錯(cuò)校驗(yàn)(spatiotemporal crosscheck)方案降低了通信開(kāi)銷(xiāo)。其核心算法是以比特圖(bit map)作為傳感器描述桶數(shù)據(jù)的技術(shù)手段,傳感器之間相互廣播比特圖。但是妥協(xié)的傳感器偽造位圖會(huì)對(duì)其他節(jié)點(diǎn)造成破壞。Chen和Liu[21]提出鄰居鏈表(neighborhood chain)避免此類(lèi)問(wèn)題,但是鄰居鏈表需要存儲(chǔ)兩次數(shù)據(jù),通信能量和存儲(chǔ)空間開(kāi)銷(xiāo)由此增大。假如存在數(shù)據(jù)(6,5,8)和(4,3,5),最高界與最低界分別為(10,10,10)和(0,0,0),SafeQ 協(xié)議中,二者的鄰居鏈為{(0,0,0)|(4,3,5), (4,3,5)|(6,5,8), (6,5,8)|(10,10,10),(10,10,10)},數(shù)據(jù)量增加了2倍以上。
圖1是典型的兩層傳感器網(wǎng)絡(luò),節(jié)點(diǎn)分為3種類(lèi)型:存儲(chǔ)節(jié)點(diǎn)、傳感器節(jié)點(diǎn)和sink節(jié)點(diǎn)。多個(gè)傳感器部署在單個(gè)存儲(chǔ)節(jié)點(diǎn)旁邊,構(gòu)成單元(cell)。采集溫度、濕度等環(huán)境數(shù)據(jù)是傳感器節(jié)點(diǎn)的主要任務(wù),然而傳感器節(jié)點(diǎn)易失效,計(jì)算與存儲(chǔ)能力有限。存儲(chǔ)節(jié)點(diǎn)計(jì)算能力較強(qiáng)、存儲(chǔ)容量較大、節(jié)點(diǎn)不易失效又能移動(dòng)。傳感器節(jié)點(diǎn)將采集數(shù)據(jù)后周期性地反饋至存儲(chǔ)節(jié)點(diǎn)。根據(jù)用戶需要sink制定分類(lèi)標(biāo)準(zhǔn),存儲(chǔ)節(jié)點(diǎn)收到sink的分類(lèi)標(biāo)準(zhǔn)后執(zhí)行分類(lèi)統(tǒng)計(jì),反饋分類(lèi)結(jié)果至sink,sink根據(jù)用戶要求整理計(jì)算返回的結(jié)果。
兩層傳感器網(wǎng)絡(luò)基本假設(shè)。
1) 傳感區(qū)域有多個(gè)單元,每個(gè)單元含一個(gè)存儲(chǔ)節(jié)點(diǎn)和多個(gè)傳感器節(jié)點(diǎn),節(jié)點(diǎn)本身的位置已知,節(jié)點(diǎn)所在的單元已知,每個(gè)傳感器具有唯一的ID。
2) 存儲(chǔ)節(jié)點(diǎn)和傳感器松散同步,收集時(shí)間由多個(gè)互不重疊的周期組成,節(jié)點(diǎn)在一個(gè)周期內(nèi)采樣n次, (η,t, {d1,d2,… ,dn})表示傳感器sη采集的數(shù)據(jù),其中周期序號(hào)由t表示,傳感器節(jié)點(diǎn)采集的數(shù)據(jù)由d1,d2,… ,dn表示;每個(gè)周期末傳感器會(huì)向存儲(chǔ)節(jié)點(diǎn)傳輸數(shù)據(jù)。
3) sink和傳感器共享密鑰kp,同時(shí)各個(gè)傳感器節(jié)點(diǎn)單獨(dú)和sink共享一個(gè)惟一的各不相同的密鑰。例如,sink和傳感器sη共享的密鑰用kη表示;同時(shí)各個(gè)存儲(chǔ)節(jié)點(diǎn)和sink各自共享一個(gè)唯一的各不相同的密鑰,例如,負(fù)責(zé)第i個(gè)單元數(shù)據(jù)收集的存儲(chǔ)節(jié)點(diǎn)和sink共享的密鑰表示為ki。
本文的威脅模型中,可信的是sink,個(gè)別或少量的存儲(chǔ)節(jié)點(diǎn)和傳感器節(jié)點(diǎn)可能被攻擊者妥協(xié)。存儲(chǔ)節(jié)點(diǎn)被妥協(xié)后,會(huì)對(duì)數(shù)據(jù)隱私造成破壞,泄露sink的分類(lèi)規(guī)則和傳感器的數(shù)據(jù);傳感器被妥協(xié)后,會(huì)修改分類(lèi)結(jié)果,也會(huì)泄露sink的分類(lèi)規(guī)則,需要抽樣認(rèn)證分類(lèi)結(jié)果的正確性。
本模型中假設(shè)傳感器節(jié)點(diǎn)被妥協(xié)后不會(huì)偽造自身數(shù)據(jù)。這是由于:1) 這一類(lèi)的傳感器數(shù)據(jù)偽造很難被阻止;2) 單個(gè)周期單個(gè)傳感器傳輸?shù)臄?shù)據(jù)極為有限,被妥協(xié)的少量傳感器偽造自身數(shù)據(jù)不會(huì)對(duì)最終的結(jié)果造成太大影響[30,31]。本文的威脅模型是半可信模型[32],即存儲(chǔ)節(jié)點(diǎn)和傳感器節(jié)點(diǎn)均試圖找到sink節(jié)點(diǎn)的分類(lèi)規(guī)則實(shí)際值,此外存儲(chǔ)節(jié)點(diǎn)也試圖找到傳感器節(jié)點(diǎn)的數(shù)據(jù),但二者之間不會(huì)存在合作。
本文系統(tǒng)模型中考慮的不經(jīng)意比較問(wèn)題是:假定di是sink節(jié)點(diǎn)的數(shù)據(jù),dj是傳感器Sη的數(shù)據(jù),存儲(chǔ)節(jié)點(diǎn)負(fù)責(zé)比較二者數(shù)據(jù)是否相等。然而在這個(gè)過(guò)程中,存儲(chǔ)節(jié)點(diǎn)不能知道二者數(shù)據(jù)真實(shí)值,sink節(jié)點(diǎn)和傳感器也不能相互知道彼此數(shù)據(jù)的真實(shí)值。該問(wèn)題的困難之處在于,由于節(jié)點(diǎn)是無(wú)線通信,信號(hào)具有廣播性,傳感器節(jié)點(diǎn)Sη和sink無(wú)法約定同一密鑰,同時(shí)存儲(chǔ)節(jié)點(diǎn)在比較數(shù)據(jù)過(guò)程中不能泄露相應(yīng)的隱私信息。這是接下來(lái)的不經(jīng)意比較協(xié)議考慮的問(wèn)題,首先介紹不經(jīng)意比較函數(shù)。
加密函數(shù)在滿足以下條件后,稱為不經(jīng)意比較函數(shù),假定有函數(shù)f1、f2,f1又叫內(nèi)層函數(shù),f2又叫外層函數(shù)。
數(shù)據(jù)用x來(lái)表示,密鑰為k、k1、k2。
1) 可區(qū)分:任意k 、x1和x2,若x1≠x2,則f2(x1,k)≠f2(x2,k)且f1(x1,k)≠f1(x2,k)。
2) 安全性:通過(guò)f1的加密結(jié)果f1(x,k),不能計(jì)算x和k;同樣,通過(guò)f2的加密結(jié)果f2(x,k)和x不能計(jì)算k。
3) 可交換:任意k1、k2和x,f2(f1(x,k2),k1) =f2(f1(x,k1),k2)。
假設(shè)有f1和f2這2個(gè)不經(jīng)意比較函數(shù),存儲(chǔ)節(jié)點(diǎn)負(fù)責(zé)比較傳感器Sη的數(shù)據(jù)dj和sink數(shù)據(jù)di是否相等,步驟如下。
1) sink用共享密鑰kp加密數(shù)據(jù)di,加密結(jié)果為(di)kp,用函數(shù)f1和共享密鑰ks對(duì)加密數(shù)據(jù)再次進(jìn)行加密,加密結(jié)果為f1((di)kp,ks), 隨后把加密結(jié)果f1((di)kp,ks)傳輸?shù)酱鎯?chǔ)節(jié)點(diǎn)。
2) sink節(jié)點(diǎn)向存儲(chǔ)節(jié)點(diǎn)傳輸加密結(jié)果f1((di)kp,ks)后,再由sink轉(zhuǎn)發(fā)到傳感器Sη。
3) 傳感器接收加密結(jié)果f1((di)kp,ks),隨后采用加密函數(shù)f2和共享密鑰kη將加密結(jié)果加密,得到f2(f1((di)kp,ks),kη),該結(jié)果最終傳輸?shù)酱鎯?chǔ)節(jié)點(diǎn)。
4) 傳感器Sη用共享密鑰kp對(duì)數(shù)據(jù)dj進(jìn)行加密,得到(dj)kp,隨后應(yīng)用加密函數(shù)f1和共享密鑰kη對(duì)數(shù)據(jù)進(jìn)一步加密,得到f1((dj)kp,kη),最后傳輸至存儲(chǔ)節(jié)點(diǎn)。
5) 存儲(chǔ)節(jié)點(diǎn)接收來(lái)自傳感器的加密數(shù)據(jù)f1((dj)kp,kη)后,使用函數(shù)f2和共享密鑰ks進(jìn)行加密,得到f2(f1((dj)kp,kη),ks)。
6) 存儲(chǔ)節(jié)點(diǎn)最終對(duì)比結(jié)果f2(f1((di)kp,ks),kη)和f2(f1((dj)kp,kη),ks),若二者相等,則有di和dj相等;反之則di不等于dj。
上述過(guò)程的加密中,內(nèi)層加密可以采用f1和f2以外的加密方法。sink在第一步中用密鑰ks和kp對(duì)數(shù)據(jù)進(jìn)行加密,保護(hù)數(shù)據(jù)的隱秘性,此外,傳感器傳輸?shù)臄?shù)據(jù)也是通過(guò) 2次加密保證了數(shù)據(jù)的安全。圖2所示是不經(jīng)意比較協(xié)議基本過(guò)程。
圖2 不經(jīng)意比較協(xié)議
不經(jīng)意比較函數(shù)可以通過(guò)交換加密技術(shù)(commutative cipher)[33~36]來(lái)實(shí)現(xiàn),然而交換加密大部分是以 Pohling-Hellman函數(shù)為基礎(chǔ)(例如,CE(x,k)=xkmodM,M表示大素?cái)?shù),k表示密鑰,x表示明文),該類(lèi)指數(shù)級(jí)的運(yùn)算很難被傳感器網(wǎng)絡(luò)支持,計(jì)算代價(jià)過(guò)高。本文以輕量級(jí)計(jì)算為設(shè)計(jì)目標(biāo)提出MHash協(xié)議。MHash是以模運(yùn)算和散列函數(shù)為基礎(chǔ)進(jìn)行設(shè)計(jì)的,結(jié)合考慮二者的單向性和可交換性。存儲(chǔ)節(jié)點(diǎn)仍然負(fù)責(zé)比較傳感器Sη的節(jié)點(diǎn)數(shù)據(jù)dj和sink節(jié)點(diǎn)數(shù)據(jù)dj是否大小相等,本文以此為例解釋 MHash協(xié)議的基本工作原理,內(nèi)層加密利用模運(yùn)算減少其計(jì)算量,即(x+k) modM表達(dá)的是函數(shù)E(x,k)。
1) sink加密數(shù)據(jù)di得到結(jié)果E(di,kp+ks), 隨后將結(jié)果傳輸至存儲(chǔ)節(jié)點(diǎn);
2) 一旦接收E(di,kp+ks),存儲(chǔ)節(jié)點(diǎn)會(huì)將加密結(jié)果后傳輸至傳感器Sη;
3) 收到結(jié)果E(di,kp+ks),Sη隨后計(jì)算其散列值H(E(E(di,kp+ks),kη)), 將結(jié)果傳輸至存儲(chǔ)節(jié)點(diǎn);
4) 傳感器Sη加密數(shù)據(jù)dj得到結(jié)果E(dj,kp+kη),將結(jié)果傳輸至存儲(chǔ)節(jié)點(diǎn);
5) 接收E(dj,kp+kη)后,存儲(chǔ)節(jié)點(diǎn)Sη計(jì)算其散列值H(E(E(dj,kp+kη),ks));
6) 最終,存儲(chǔ)節(jié)點(diǎn)對(duì)比H(E(E(dj,kp+kη),ks))和H(E(E(di,kp+ks),kη))是否大小相等,若二者相等,則di等于dj,反之di不等于dj。
圖3給出了MHash的基本工作過(guò)程。MHash協(xié)議中,M為大素?cái)?shù),被加密數(shù)據(jù)均小于M。H表示散列函數(shù),例如具有單向性的SHA1或MD5。散列函數(shù)具有單向性的特性,通過(guò)H(x) 無(wú)法獲取x的實(shí)際值。盡管散列函數(shù)有可能存在沖突,但實(shí)際應(yīng)用中很難存在不同數(shù)值被散列到同一位置的情況。
圖3 MHash協(xié)議
MHash協(xié)議下,f1函數(shù)設(shè)計(jì)為:f1(x,k)=(x+k)modM;f2函數(shù)設(shè)計(jì)為;f2(x,k)=H((x+k) modM);不經(jīng)意函數(shù)的設(shè)計(jì)要求均被這2個(gè)函數(shù)滿足。
可區(qū)分:散列函數(shù)較低的沖突幾率集合模運(yùn)算的特性保證了函數(shù)f1和f2的可區(qū)分性。
安全性:通過(guò)f1(x,k)= (x+k) modM無(wú)法獲取x和k的實(shí)際值,通過(guò)f2(x,k)=H((x+k) modM)和x無(wú)法獲取密鑰k。這些特性是由密鑰的隱秘性和散列函數(shù)單向性保證的。
可交換:由于協(xié)議是基于模運(yùn)算,而模運(yùn)算具有可交換性,因此協(xié)議具有可交換性,即任意k1、k2和x,滿足((x+k2) modM+k1) modM=((x+k1)mod M +k2) modM。
本節(jié)將結(jié)合不經(jīng)意比較協(xié)議 MHash和前綴成員確認(rèn)算法設(shè)計(jì)安全分類(lèi)協(xié)議。
為了保護(hù)數(shù)據(jù)隱私不被妥協(xié)的存儲(chǔ)節(jié)點(diǎn)以及少量傳感器泄露,本文采用前綴成員技術(shù)[37,38]將隸屬范圍計(jì)算變換為成員判斷。前綴成員確認(rèn)技術(shù)可以將判斷數(shù)據(jù)是否屬于指定范圍的問(wèn)題變換成判斷2個(gè)集合是否存在交集的問(wèn)題。將數(shù)據(jù)用二進(jìn)制表示。{0,1}k{*}w-k表示k長(zhǎng)前綴,即首先是k個(gè)“0”或“1”字符,隨后跟著w-k個(gè)“*”字符的前綴。如2長(zhǎng)度前綴“11***”。x和k長(zhǎng)度前綴匹配是指該前綴表達(dá)的范圍包含了數(shù)據(jù)x,當(dāng)該前綴和數(shù)據(jù)x前k位是完全一樣時(shí),x一定與該k前綴匹配。如11**和x匹配,x的前2位一定是11。若前綴P的范圍在前綴Q之內(nèi),則前綴Q稱為P的祖先前綴。例如,前綴11**是110*的祖先前綴。若前綴Q為P祖先前綴中的最小前綴,則前綴Q稱為P的父前綴。前面11**即是110*的父前綴。若一個(gè)集合包含了某數(shù)據(jù)的所有前綴,則該集合在本文稱為前綴科(即Prefix Family)。例如,用二進(jìn)制b1b2…bw表示數(shù)據(jù)N,則其前綴科為:{b1b2…bw,b1b2…bw-1*, …,b1*…*,**…*},用F(x) 表示,共含w+1個(gè)元素。
對(duì)于任意前綴P和數(shù)據(jù)x,x匹配P當(dāng)且僅當(dāng)P屬于F(x)。因此,要確認(rèn)數(shù)據(jù)x和范圍[a,b]的關(guān)系,必須首先轉(zhuǎn)換[a,b]為最小前綴集合,表示為S([a,b]),集合中所有前綴代表的范圍合并后剛好為[a,b]。例如,S([6, 11])={011*, 10**},隨后轉(zhuǎn)換x為前綴科F(x),只有在F(x)∩S([a,b])≠Φ時(shí),x屬于范圍[a,b]。
為了便于集合運(yùn)算,文獻(xiàn)[39]提出一種前綴轉(zhuǎn)換成唯一數(shù)字的方法,也是本文采用的方案:通過(guò)“1”字符作為分界符,分離“0”或“1”字符和后面的“*”字符,隨后用“0”字符表示“*”。例如前綴 101**,先加入分界符得到 1011***,之后替換“*”字符為“0”字符得到1011000。圖4是判別數(shù)據(jù)2和范圍[0, 4]相互關(guān)系的過(guò)程。
圖4 前綴成員確認(rèn)
sink以設(shè)計(jì)好的分類(lèi)規(guī)則為基礎(chǔ),建立分類(lèi)協(xié)議,建立步驟如下:1) 變換分類(lèi)規(guī)則的各個(gè)區(qū)間為前綴;2) 變換前綴為對(duì)應(yīng)的數(shù),模糊化分類(lèi)結(jié)果;3) 用共享密鑰kp和ks加密各個(gè)數(shù);4) 將最終結(jié)果傳輸至存儲(chǔ)節(jié)點(diǎn)。
收到加密的結(jié)果后,存儲(chǔ)節(jié)點(diǎn)將其轉(zhuǎn)發(fā)至單元內(nèi)各個(gè)傳感器。傳感器對(duì)收到的加密分類(lèi)規(guī)則做如下處理:1) 采用單獨(dú)和 sink共享的密鑰再次加密分類(lèi)標(biāo)準(zhǔn); 2)使用散列函數(shù)散列加密結(jié)果;3) 擾亂分類(lèi)結(jié)果,構(gòu)建擾亂表后再用單獨(dú)和sink共享的密鑰加密;4) 使用隨機(jī)算法擾亂分類(lèi)規(guī)則;5) 傳輸處理好的分類(lèi)規(guī)則和擾亂表至存儲(chǔ)節(jié)點(diǎn)。收到分類(lèi)規(guī)則后,存儲(chǔ)節(jié)點(diǎn)保存分類(lèi)規(guī)則作為分類(lèi)標(biāo)準(zhǔn),并將擾亂表傳輸至sink。
圖5中(1)給出了簡(jiǎn)單分類(lèi)規(guī)則的一個(gè)示例,將屬于不同區(qū)間的各個(gè)數(shù)據(jù)分到不同的類(lèi)當(dāng)中,本示例將用這個(gè)簡(jiǎn)單的分類(lèi)規(guī)則為基礎(chǔ),描述建立分類(lèi)規(guī)則協(xié)議的整個(gè)過(guò)程。從圖5中(2)開(kāi)始,sink首先將所有的區(qū)間變換成前綴;隨后將前綴全部數(shù)值化;由于單個(gè)區(qū)間總有多個(gè)前綴,因此可以用來(lái)對(duì)分類(lèi)規(guī)則進(jìn)一步模糊化,即使各個(gè)分類(lèi)結(jié)果和各個(gè)集合對(duì)應(yīng),隨后隨機(jī)從集合中抽取一個(gè)數(shù)來(lái)表示分類(lèi)結(jié)果。如圖5所示,“a”可以對(duì)應(yīng)“Ⅱ、Ⅳ、Ⅸ”,因此,規(guī)則[0,11]→a可變?yōu)橐?guī)則“10100→Ⅸ”和“01000→Ⅳ”,最終實(shí)現(xiàn)模糊化。
圖5 分類(lèi)規(guī)則預(yù)計(jì)算示例
上述處理過(guò)程完成后,sink以及各個(gè)傳感器節(jié)點(diǎn)分別加密分類(lèi)規(guī)則,步驟如下:1) sink使用共享密鑰kp和ks加密結(jié)果,圖6中(2)給出了這個(gè)過(guò)程;2) sink傳輸加密結(jié)果至存儲(chǔ)節(jié)點(diǎn);3) 存儲(chǔ)節(jié)點(diǎn)將加密結(jié)果進(jìn)一步傳輸至單元內(nèi)的所有傳感器;4) 傳感器節(jié)點(diǎn)加密分類(lèi)規(guī)則,并對(duì)其進(jìn)行散列,圖6中(3)給出了這個(gè)過(guò)程;5)傳感器節(jié)點(diǎn)隨機(jī)擾亂分類(lèi)結(jié)果和規(guī)則順序,圖6中(4)給出了這個(gè)過(guò)程;6)傳感器節(jié)點(diǎn)加密擾亂表,將擾亂表和加密亂后的分類(lèi)規(guī)則全部傳輸至存儲(chǔ)節(jié)點(diǎn);7)存儲(chǔ)節(jié)點(diǎn)保存分類(lèi)規(guī)則作為對(duì)傳感器數(shù)據(jù)的分類(lèi)標(biāo)準(zhǔn),并將加密擾亂表傳輸至sink。
圖6 分類(lèi)規(guī)則加密和擾亂示例
以上是建立分類(lèi)協(xié)議的過(guò)程,本節(jié)描述如何執(zhí)行分類(lèi)協(xié)議。
假定傳感器Sη采集了數(shù)據(jù)“6”。Sη在周期末對(duì)收集的數(shù)據(jù)處理步驟如下:1) 如圖 7中(2),轉(zhuǎn)換各個(gè)數(shù)據(jù)為前綴科;2) 如圖 7中(3),數(shù)字化所有前綴;3) 如圖7中(4),采用2個(gè)共享的密鑰加密所有數(shù)字;4)將加密結(jié)果傳輸至存儲(chǔ)節(jié)點(diǎn)。收到傳感器傳輸?shù)臄?shù)據(jù)后,存儲(chǔ)節(jié)點(diǎn)處理步驟如下:1) 如圖7中(5),用和sink共享的密鑰再次加密數(shù)據(jù),散列加密結(jié)果;2) 利用傳感器的分類(lèi)規(guī)來(lái)分類(lèi)。比如,H(E(E(01000,kp+kη),ks))=H(E(E(01000,kp+ks),kη)),根據(jù)規(guī)則H(E(E(01000,kp+ks),kη))→Ⅱ,分類(lèi)該數(shù)據(jù)到第Ⅱ類(lèi)。存儲(chǔ)節(jié)點(diǎn)用共享密鑰ks加密分類(lèi)結(jié)果后傳輸至sink節(jié)點(diǎn),本示例中存儲(chǔ)節(jié)點(diǎn)使sink知道,傳感器節(jié)點(diǎn)Sη在類(lèi)別Ⅱ中存在數(shù)據(jù)。sink進(jìn)一步對(duì)分類(lèi)結(jié)果轉(zhuǎn)換,得到正確的數(shù)據(jù)和類(lèi)的映射:1) sink根據(jù)擾亂表獲取正確的分類(lèi)結(jié)果,例如sink在分類(lèi)表中得到Ⅳ→Ⅱ,由此知道數(shù)據(jù)實(shí)際要分到類(lèi)Ⅳ;2)隨后以自身的擾亂表為基礎(chǔ)得到其所屬的真實(shí)類(lèi),例如本示例中,若存在“a”對(duì)應(yīng){Ⅱ,Ⅳ,Ⅸ},則數(shù)據(jù)最終是類(lèi)“a”的成員。
圖7 分類(lèi)示例
以上分類(lèi)協(xié)議的建立可以確保存儲(chǔ)節(jié)點(diǎn)執(zhí)行正確分類(lèi)的同時(shí)不獲取傳感器采集數(shù)據(jù)和分類(lèi)規(guī)則的實(shí)際值,隨后將分類(lèi)結(jié)果傳輸至sink。然而妥協(xié)的存儲(chǔ)節(jié)點(diǎn)可能會(huì)修改分類(lèi)結(jié)果,因此本文通過(guò)抽樣認(rèn)證實(shí)現(xiàn)對(duì)分類(lèi)結(jié)果的認(rèn)證,檢測(cè)存儲(chǔ)節(jié)點(diǎn)的惡意行為,即由sink集中指定特定存儲(chǔ)節(jié)點(diǎn)反饋特定傳感器特定區(qū)間中的數(shù)據(jù)抽樣認(rèn)證分類(lèi)結(jié)果。和范圍查詢協(xié)議的完整性認(rèn)證方案不同在于,已有方法是以有序數(shù)據(jù)為基礎(chǔ)的,數(shù)據(jù)通常事先排好序或者根據(jù)編碼排序,本文算法則通過(guò)加密和散列使數(shù)據(jù)的大小信息無(wú)法分辨,且數(shù)據(jù)完全保持無(wú)序狀態(tài),然而在存儲(chǔ)節(jié)點(diǎn)返回空數(shù)據(jù)結(jié)果時(shí),算法無(wú)法區(qū)分是否確實(shí)無(wú)數(shù)據(jù)還是因?yàn)榇鎯?chǔ)節(jié)點(diǎn)惡意刪除了數(shù)據(jù)。
本文設(shè)計(jì)了“十”字鄰居技術(shù)認(rèn)證抽樣結(jié)果完整性?!笆弊粥従蛹夹g(shù)從 2個(gè)角度使傳感器節(jié)點(diǎn)采集的數(shù)據(jù)具備相關(guān)性:相關(guān)同節(jié)點(diǎn)的數(shù)據(jù)和相關(guān)相鄰傳感器節(jié)點(diǎn)的數(shù)據(jù)。首先連接傳感器節(jié)點(diǎn)形成鏈。即在周期末將各個(gè)傳感器的數(shù)據(jù)傳輸至其前驅(qū)節(jié)點(diǎn),如圖8所示。傳感器的前驅(qū)是指這個(gè)傳感器可以通過(guò)一跳通信到達(dá)的節(jié)點(diǎn),而sink知道該鏈信息。執(zhí)行了上面的步驟后,本文排序各個(gè)傳感器節(jié)點(diǎn)的數(shù)據(jù)(包含各個(gè)后繼的數(shù)據(jù)),在數(shù)據(jù)間形成鄰居關(guān)系。假定傳感器S1是S2的前驅(qū),S1在某周期內(nèi)獲取數(shù)據(jù){3,5,6,8},S2獲取數(shù)據(jù){5,8,9},S2同步數(shù)據(jù)到S1,則數(shù)據(jù)鄰居鏈如圖9所示,其中的二進(jìn)制符號(hào)“01”、“10”、“11”用來(lái)區(qū)分該數(shù)據(jù)屬于本地節(jié)點(diǎn)還是后繼節(jié)點(diǎn),“01”表示數(shù)據(jù)屬于后繼節(jié)點(diǎn),“10”表示數(shù)據(jù)屬于本身節(jié)點(diǎn),“11”表示數(shù)據(jù)同時(shí)屬于后繼節(jié)點(diǎn)和本身節(jié)點(diǎn)。
圖8 傳感器節(jié)點(diǎn)鏈
圖9 數(shù)據(jù)鏈
本文只計(jì)算和加密傳感器自身采集數(shù)據(jù)的前綴科,直接嵌入后繼節(jié)點(diǎn)數(shù)據(jù),這樣才能確保分類(lèi)結(jié)果的正確性。數(shù)據(jù)鏈則基于SafeQ中提出的鄰居鏈技術(shù)實(shí)現(xiàn),如圖10所示,加密圖9的3個(gè)數(shù)據(jù)“5”,“6”,“8”得到數(shù)據(jù)鏈。
圖10 加密數(shù)據(jù)鏈
相鄰傳感器之間如何實(shí)現(xiàn)數(shù)據(jù)同步建立聯(lián)系是本節(jié)主要討論的問(wèn)題。若直接傳輸傳感器的數(shù)據(jù)至它的前驅(qū)節(jié)點(diǎn),會(huì)造成較大通信開(kāi)銷(xiāo),經(jīng)過(guò)詳細(xì)分析Intel Lab的實(shí)際采集數(shù)據(jù),發(fā)現(xiàn)被采集的數(shù)據(jù)重復(fù)率在同一個(gè)周期的相鄰節(jié)點(diǎn)間很高,統(tǒng)計(jì)一維數(shù)據(jù)的情形發(fā)現(xiàn),數(shù)據(jù)平均重復(fù)率在同周期相鄰節(jié)點(diǎn)之間高達(dá) 91.3%。文獻(xiàn)[40]利用普通傳感器網(wǎng)絡(luò)相鄰節(jié)點(diǎn)間的采集數(shù)據(jù)重復(fù)較大的特點(diǎn)研究了數(shù)據(jù)壓縮算法。本文結(jié)合倒置布魯姆過(guò)濾器[41]技術(shù)實(shí)現(xiàn)數(shù)據(jù)傳輸,減少節(jié)點(diǎn)間的通信開(kāi)銷(xiāo)。
若2個(gè)數(shù)據(jù)集的不同數(shù)據(jù)共有d個(gè),倒置布魯姆過(guò)濾器消耗O(d)空間就足夠以較大的概率同步這2個(gè)數(shù)據(jù)集,同時(shí)不需要考慮數(shù)據(jù)集的元素個(gè)數(shù)。倒置布魯姆過(guò)濾器的基礎(chǔ)是布魯姆過(guò)濾器的和異或運(yùn)算的特殊性。異或具有如下特性:x⊕y=y⊕x;x⊕x=0;x⊕0=x。倒置布魯姆過(guò)濾器的各個(gè)單元包含3個(gè)元素,即數(shù)據(jù)異或值DataSum,數(shù)據(jù)散列結(jié)果異或值HashSum和計(jì)數(shù)器count。數(shù)據(jù)散列結(jié)果異或可以用于指定單元具有單個(gè)還是多個(gè)異或結(jié)果,此時(shí)計(jì)數(shù)器值是1或-1。倒置布魯姆過(guò)濾器的基礎(chǔ)構(gòu)成是同構(gòu)的布魯姆過(guò)濾器結(jié)構(gòu),對(duì)倒置布魯姆過(guò)濾器執(zhí)行減法運(yùn)算是指二者各個(gè)對(duì)應(yīng)單元的計(jì)數(shù)器執(zhí)行減法運(yùn)算,數(shù)據(jù)散列異或值和數(shù)據(jù)異或值隨后相應(yīng)異或。該運(yùn)算可以表達(dá)為 IBF(C)-IBF(D)=IBF(C-D),其中C和D是集合,C-D是2個(gè)集合中的不重復(fù)數(shù)據(jù);如C={a,b,c,d},D={b,d,e,f},那么C-D={a,c,e,f}。
以下描述本文方案中倒置布魯姆過(guò)濾器的整體工作流程,仍然采用以上的例子來(lái)說(shuō)明。假定傳感器節(jié)點(diǎn)S1是S2的前驅(qū),同一周期內(nèi),S1獲得數(shù)據(jù){3,5,6,8},S2獲得數(shù)據(jù){5,8,9}。二者分別建立圖 11(a)以及圖 11(b)所示的倒置布魯姆過(guò)濾器。S2將建立的倒置布魯姆過(guò)濾器傳輸至S1,S1計(jì)算如圖11(c)的結(jié)果IBF3=IBF1-IBF2。
根據(jù)IBF3傳感器節(jié)點(diǎn)S1能夠恢復(fù)節(jié)點(diǎn)間的不同數(shù)據(jù)。首先掃描布魯姆過(guò)濾器計(jì)數(shù)器值等于1或者-1的部分,對(duì)比HashSum和DataSum散列值。若存在HashSum和H(DataSum)相等,則取出相應(yīng)部分的數(shù)據(jù),刪除布魯姆過(guò)濾器中對(duì)應(yīng)這些數(shù)據(jù)的信息,反復(fù)操作。圖12給出了利用IBF3恢復(fù)了數(shù)據(jù)3的整個(gè)過(guò)程。若計(jì)數(shù)器值等于“1”,恢復(fù)的數(shù)據(jù)屬于IBF2,不屬于IBF1;反之,若計(jì)數(shù)器值等于“-1”,恢復(fù)的數(shù)據(jù)屬于IBF1,不屬于IBF2。
圖11 IBF示例
圖12 數(shù)據(jù)恢復(fù)示例
倒置布魯姆過(guò)濾器只有在散列表中存在至少一個(gè)count等于1或-1,同時(shí)hashSum和DataSum散列值相等才能恢復(fù)數(shù)據(jù),這種情形的出現(xiàn)概率很高[41]。數(shù)據(jù)集間有d個(gè)不同數(shù)據(jù)且散列函數(shù)有k個(gè)時(shí),恢復(fù)數(shù)據(jù)失敗的概率是O(d-k)。本文的方案中,只需在抽樣反饋結(jié)果為空時(shí),恢復(fù)抽樣節(jié)點(diǎn)的數(shù)據(jù)已確認(rèn)結(jié)果。傳感器節(jié)點(diǎn)在傳輸?shù)怪貌剪斈愤^(guò)濾器時(shí),采用前驅(qū)和后繼節(jié)點(diǎn)間的共享密鑰事先加密以保護(hù)數(shù)據(jù)隱私[42]。
分類(lèi)結(jié)果的正確性認(rèn)證有2種情況。
1) 抽樣區(qū)間的分類(lèi)結(jié)果有數(shù)據(jù)
當(dāng)抽樣區(qū)間存在數(shù)據(jù)即不為空時(shí),存儲(chǔ)節(jié)點(diǎn)反饋數(shù)據(jù)后,sink節(jié)點(diǎn)解密這些數(shù)據(jù)得到原始數(shù)據(jù),隨后進(jìn)行判斷:① 數(shù)據(jù)鏈必須連續(xù);② 抽樣區(qū)間內(nèi),最大數(shù)據(jù)的后繼和最小數(shù)據(jù)的前驅(qū)形成的區(qū)間必須覆蓋整個(gè)抽樣區(qū)間。只有同時(shí)滿足這2個(gè)條件,且區(qū)間內(nèi)傳感器獲得的數(shù)據(jù)和分類(lèi)結(jié)果個(gè)數(shù)吻合,則分類(lèi)結(jié)果正確,反之錯(cuò)誤。
2) 反饋的抽樣區(qū)間沒(méi)有數(shù)據(jù)
當(dāng)抽樣區(qū)間不存在數(shù)據(jù)即為空時(shí),則需分 2種情況來(lái)確認(rèn)結(jié)果的正確性。第一,節(jié)點(diǎn)的各個(gè)區(qū)間統(tǒng)計(jì)值不是全部為零,則解密抽樣區(qū)間最接近的區(qū)間內(nèi)的數(shù)據(jù)來(lái)計(jì)算相關(guān)數(shù)據(jù);假定抽樣區(qū)間邊界比最近區(qū)間邊界要大,那么可以通過(guò)判斷抽樣區(qū)間是否包含于最近區(qū)間內(nèi)的最大數(shù)據(jù)和其后繼形成的區(qū)間,若包含,則分類(lèi)結(jié)果正確,反之錯(cuò)誤。第二,節(jié)點(diǎn)的各個(gè)區(qū)間統(tǒng)計(jì)值全部等于零,則sink對(duì)節(jié)點(diǎn)前驅(qū)統(tǒng)計(jì)值進(jìn)行查找,若前驅(qū)各個(gè)區(qū)間統(tǒng)計(jì)值不是全不等于零,則通過(guò)解密這些不等于零的區(qū)間內(nèi)數(shù)據(jù)來(lái)判別前驅(qū)是否存在節(jié)點(diǎn)的數(shù)據(jù),若存在,則分類(lèi)結(jié)果錯(cuò)誤,反之能以很高概率判斷分類(lèi)的正確性。
本節(jié)主要分析 SSC協(xié)議的算法復(fù)雜度和安全性。算法復(fù)雜度有空間和時(shí)間復(fù)雜度,安全性則包含隱私性和正確性。
假設(shè)sink分類(lèi)規(guī)則含類(lèi)m個(gè),傳感器節(jié)點(diǎn)單個(gè)周期采集數(shù)據(jù)n個(gè),相鄰傳感器有不同數(shù)據(jù)d個(gè)。表1給出了本文方案的最壞情況下計(jì)算復(fù)雜度以及通信開(kāi)銷(xiāo)、空間復(fù)雜度。
表1 SSC協(xié)議中的算法復(fù)雜度分析
1) 分類(lèi)協(xié)議隱私性
SSC協(xié)議能在有妥協(xié)存儲(chǔ)節(jié)點(diǎn)的情形下確保sink分類(lèi)規(guī)則的隱私。這是由于sink對(duì)分類(lèi)規(guī)則做了如下處理:1) 轉(zhuǎn)換范圍為前綴,單個(gè)范圍可以對(duì)應(yīng)多個(gè)前綴,同時(shí)擾亂分類(lèi)結(jié)果,因此存儲(chǔ)節(jié)點(diǎn)很難通過(guò)數(shù)據(jù)值本身分析出分類(lèi)規(guī)則的真實(shí)值;2) 用2種共享密鑰對(duì)數(shù)據(jù)進(jìn)行加密,存儲(chǔ)節(jié)點(diǎn)很難在不知道密鑰時(shí)解密結(jié)果;3) 用共享密鑰加密和散列分類(lèi)規(guī)則,同時(shí)通過(guò)各個(gè)傳感器節(jié)點(diǎn)單獨(dú)擾亂,存儲(chǔ)節(jié)點(diǎn)幾乎無(wú)法通過(guò)處理后結(jié)果分析分類(lèi)規(guī)則。部分傳感器被妥協(xié)時(shí),存儲(chǔ)節(jié)點(diǎn)和sink共享的密鑰不被知道的情形下,分類(lèi)規(guī)則也很難破解。
接下來(lái)進(jìn)一步分析分類(lèi)規(guī)則,若存儲(chǔ)節(jié)點(diǎn)和其同單元的某個(gè)傳感器節(jié)點(diǎn)同時(shí)被妥協(xié),且相應(yīng)密鑰也被知道,那么sink的分類(lèi)規(guī)則將被解密,然而由于規(guī)則被重新擾亂,因此分類(lèi)規(guī)則的確切值仍然很難知道;此外,剩下的傳感器上的規(guī)則也不會(huì)被知道,這是由于這些規(guī)則是用 sink和傳感器單獨(dú)共享密鑰進(jìn)行了加密和散列處理,各個(gè)分類(lèi)規(guī)則也再次執(zhí)行了擾亂,所以剩下節(jié)點(diǎn)上的規(guī)則確切值也不會(huì)被知道。
2) 傳感器數(shù)據(jù)和分類(lèi)結(jié)果的隱私性
SSC協(xié)議采用2種密鑰對(duì)對(duì)傳感器數(shù)據(jù)進(jìn)行加密,即單元內(nèi)的共享密鑰和節(jié)點(diǎn)的獨(dú)立共享密鑰,妥協(xié)的存儲(chǔ)節(jié)點(diǎn)在不知道密鑰實(shí)際值的情況下,較難破解數(shù)據(jù)的實(shí)際值;此外,各個(gè)傳感器的分類(lèi)規(guī)則都具備了本身的特征,因此數(shù)據(jù)的分類(lèi)結(jié)果真實(shí)值很難被攻擊者獲取。
3) 抽樣結(jié)果正確性
指定抽樣節(jié)點(diǎn)的區(qū)間統(tǒng)計(jì)值不等于零,就可以完全認(rèn)證分類(lèi)結(jié)果的正確性。而該區(qū)間統(tǒng)計(jì)值等于零時(shí),需要看該節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn)提供的數(shù)據(jù)是否包含該節(jié)點(diǎn)數(shù)據(jù),含有此類(lèi)數(shù)據(jù),但無(wú)法通過(guò)倒置布魯姆過(guò)濾器對(duì)數(shù)據(jù)進(jìn)行恢復(fù),則惡意行為無(wú)法判斷,數(shù)據(jù)正確性也認(rèn)證不了。這種情況發(fā)生的概率為O(d-k)[41],而k=3,d>5時(shí)這種情形出現(xiàn)的概率極小,因此本文算法不能認(rèn)證數(shù)據(jù)正確性,檢測(cè)惡意行為的概率非常小。
本文以網(wǎng)內(nèi)傳輸?shù)臄?shù)據(jù)量和分類(lèi)結(jié)果數(shù)據(jù)量大小來(lái)評(píng)估算法性能,最終驗(yàn)證所提協(xié)議(SSC)的有效性。算法在 OMnet++上仿真,實(shí)驗(yàn)數(shù)據(jù)集是Intel Lab[7]部署的44個(gè)傳感器節(jié)點(diǎn)在2004年1月3日到2004年3月10日之間采集的數(shù)據(jù)。實(shí)驗(yàn)將44個(gè)節(jié)點(diǎn)分成4組,每組含11個(gè)傳感節(jié)點(diǎn),并帶有存儲(chǔ)節(jié)點(diǎn)。sink通過(guò)將分類(lèi)規(guī)則分發(fā)到傳感器節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)以建立分類(lèi)協(xié)議,因此首要分析的是分類(lèi)規(guī)則帶來(lái)的傳輸功耗。如圖13所示,在不同的分類(lèi)粒度大小下,非加密和加密分類(lèi)規(guī)則傳輸功耗不斷變少,分類(lèi)數(shù)目也隨著分類(lèi)粒度增大而減少。加密規(guī)則是非加密規(guī)則的8倍,但占用空間有限的分類(lèi)規(guī)則產(chǎn)生的傳輸功耗并不大,傳感網(wǎng)絡(luò)還是可以承受。
圖13 分類(lèi)規(guī)則的傳輸功耗
傳感器節(jié)點(diǎn)將采集的數(shù)據(jù)加密并計(jì)算其前綴編碼。接下來(lái)需要分析的是前綴編碼所消耗的傳輸功耗。不采用前綴編碼和采用前綴編碼時(shí),網(wǎng)內(nèi)數(shù)據(jù)傳輸量如圖 14所示,前者功耗不會(huì)隨分類(lèi)粒度大小發(fā)生變化,傳輸量一直是 2.23×105KB,后者功耗隨著分類(lèi)粒度的變大而增大,在粒度為100和10 000時(shí),功耗相對(duì)前者分別增加24.7%和53.6%。在此期間前綴編碼是不斷增長(zhǎng)的。前綴編碼引入了額外的傳輸功耗,但這部分功耗很小,隨后的分類(lèi)機(jī)制大大減少了網(wǎng)內(nèi)數(shù)據(jù)的傳輸量。
存儲(chǔ)節(jié)點(diǎn)在分類(lèi)結(jié)束后會(huì)向 sink反饋?zhàn)罱K的分類(lèi)統(tǒng)計(jì)的結(jié)果,因此,需要對(duì)其傳輸功耗和延遲進(jìn)一步進(jìn)行分析。如圖15所示,非加密和加密的分類(lèi)結(jié)果在分類(lèi)粒度不斷變大時(shí),功耗會(huì)逐漸減少,加密結(jié)果的功耗在同等條件下是非加密結(jié)果的7倍。如圖16所示,固定分類(lèi)粒度大小為100,采用不分類(lèi)和本文的分類(lèi)協(xié)議時(shí),分類(lèi)情形下的傳輸功耗一直是0.13×105KB,而不分類(lèi)情形下傳輸功耗隨著數(shù)據(jù)量增大而迅速增長(zhǎng),該功耗是分類(lèi)情形下的數(shù)十倍甚至上百倍。例如數(shù)據(jù)量分別為1 338、5 741、11 677,16 854時(shí),非分類(lèi)的傳輸功耗分別為0.17×106KB、0.74×106KB,1.49×106KB,2.16×106KB,分別是分類(lèi)傳輸功耗的12.38、56.41、115.77、167.54倍。
圖14 數(shù)據(jù)傳輸功耗
圖15 分類(lèi)結(jié)果的空間開(kāi)銷(xiāo)
圖16 分類(lèi)和不分類(lèi)空間開(kāi)銷(xiāo)比較
如圖 17所示,存儲(chǔ)節(jié)點(diǎn)的傳輸延遲在同樣數(shù)據(jù)量的情形下,若經(jīng)1-2跳傳輸至sink,分類(lèi)方案比非分類(lèi)方案高出9到1.5倍,3跳以上時(shí),分類(lèi)方案的傳輸延遲開(kāi)始具有優(yōu)勢(shì),低于非分類(lèi)方案37.5%以上。
圖17 傳輸延遲
無(wú)線傳感器網(wǎng)絡(luò)中進(jìn)行特定目標(biāo)的識(shí)別和跟蹤的基礎(chǔ)技術(shù)是分類(lèi)統(tǒng)計(jì),本文以兩層傳感器網(wǎng)絡(luò)自身的特點(diǎn)設(shè)計(jì)了一套安全的分類(lèi)協(xié)議 SSC。該協(xié)議中,待分類(lèi)敏感數(shù)據(jù)和分類(lèi)規(guī)則的真實(shí)值不被存儲(chǔ)節(jié)點(diǎn)所知,但仍能進(jìn)行正確的分類(lèi)。本文通過(guò)提出不經(jīng)意比較技術(shù)MHash保護(hù)了傳感器采集數(shù)據(jù)和分類(lèi)規(guī)則的隱私性。利用該技術(shù),存儲(chǔ)節(jié)點(diǎn)能夠在不知道任何數(shù)據(jù)真實(shí)值的情況下判斷數(shù)據(jù)實(shí)際值是否相等;本文進(jìn)一步通過(guò)結(jié)合前綴成員確認(rèn)算法和MHash協(xié)議實(shí)現(xiàn)對(duì)未知數(shù)據(jù)的最終正確分類(lèi)。此外,本文通過(guò)”十”字鄰居技術(shù)認(rèn)證了分類(lèi)統(tǒng)計(jì)最終結(jié)果的正確性。該技術(shù)首先組織傳感器節(jié)點(diǎn)形成鏈,使用倒置布魯姆過(guò)濾器同步各個(gè)傳感器節(jié)點(diǎn)和其相應(yīng)前驅(qū)節(jié)點(diǎn)的數(shù)據(jù),隨后以排序方法組織各個(gè)節(jié)點(diǎn)的數(shù)據(jù)形成鏈。利用該技術(shù),sink可以對(duì)分類(lèi)統(tǒng)計(jì)的最終結(jié)果進(jìn)行抽樣檢查。本文算法最終在 Intel Lab[7]提供的數(shù)據(jù)集上進(jìn)行了驗(yàn)證,證實(shí)算法的有效性。
[1] 李建中, 李金寶, 石勝飛. 傳感器網(wǎng)絡(luò)及其數(shù)據(jù)管理的概念、問(wèn)題與進(jìn)展[J]. 軟件學(xué)報(bào), 2003,14(10):1717-1727.LI J Z, LI J B, SHI S F. Concepts, issues and advance of sensor networks and data management of sensor networks[J]. Journal of Software, 2003, 14(10):1717-1727.
[2] 崔莉, 鞠海玲, 苗勇等. 無(wú)線傳感器網(wǎng)絡(luò)研究進(jìn)展[J]. 計(jì)算機(jī)研究與發(fā)展, 2005,42(1):163-174.CUI L, JU HL, MIAO Y,et al. Overview of wireless sensor network[J]. Computer Research and Development, 2005, 42(1): 163-174.
[3] 唐勇, 周明天, 張欣. 無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議研究進(jìn)展[J]. 軟件學(xué)報(bào), 2006,17(3):422-433.TANG Y, ZHOU M T, ZHANG X. Overview of routing protocols in wireless sensor networks[J]. Journal of Software, 2006, 17(3):410-42l
[4] HU W, TRAN V N, BULUSU N,et al. Design and evaluation of a hybrid sensor network for cane-toad monitoring[J]. ACM Transactions on Sensor Networks, 2009, 5(1): 1-28.
[5] DESNOYERS P, GANESAN D, LI H,et al. PRESTO: a predictive storage architecture for sensor networks[A]. Proceeding of Workshop on Hot Topics in Operating Systems (HotOS’05)[C]. Berkeley, CA:USENIX Association, 2005.
[6] RATNASAMY S, KARP B. SHENKER S,et al. Data-centric storage in sensor nets with ght, a geographic hash table[J]. Mobile Networks and Applications, 2003,4(8):427-442.
[7] Intel lab data[EB/OL]. http://berkeley.intel-research.net/ labdata.
[8] WANG Q, CHEN W, ZHENG R,et al. Acoustic target tracking using tiny wireless sensor devices[A]. Proc of 2nd Intl Conf on Information Processing in Sensor Networks[C]. Palo Alto, CA, 2003.642-657.
[9] HE T, KRISHNAMURTHY S, STANKOVIC J A,et al. An energy-efficient surveillance system using wireless sensor networks[A].Proc of Intl Conf on Mobile Systems, Applications, and Services[C].Boston, MA, 2004.270-283.
[10] BROOKS R R, SAYEED A M. Distributed target classification and tracking in sensor networks[J]. Proceedings of the IEEE, 2003, 91(8):1163-1171.
[11] GU L, JIA D, VICAIRE P,et al. Lightweight detection and classification for wireless sensor networks in realistic environments[A].Third ACM Conference on Embedded Networked Sensor Systems[C]. New York: ACM Press, 2005.205-217.
[12] HUANG Q, XING T, LIU H. Vehicle classification in wireless sensor networks based on rough neural networks[A]. Proceedings of the 2nd IASTED International Conference on Advances in Computer Science and Technology[C]. Anaheim: ACTA Press, 2006.141-144.
[13] PAI H, HAN Y, SUNG J. Two-dimensional coded classification schemes in wireless sensor networks[J]. IEEE Transactions on Wireless Communications, 2008, 7(5): 1450-1455.
[14] KULAKOV A, DAVCEV D, TRAJKOVSKI G. Implementing artificial neural-networks in wireless sensor networks[A]. Proceedings of IEEE Sarnoff Symposium on Advances in Wired and Wireless Communications[C]. Piscataway: IEEE, 2005.94-97.
[15] ZHAO F, LIU J, GUIBAS L,et al. Collaborative signal and information processing: an information directed approach[A]. Proceedings of the IEEE, Piscataway[C]. 2003, 91(8): 1199-1209.
[16] PATTEM S, PODURI S, KRISHNAMACHARI B. Energy-quality tradeoffs for target tracking in wireless sensor networks[A]. Proc of 2nd Intl Conf on Information Processing in Sensor Networks[C]. Berlin: Springer-Verlag, 2003.32-46.
[17] WANG H, ESTRIN D, GIROD L. Preprocessing in a tiered sensor network for habitat monitoring[J]. EURASIP Journal on Applied Signal Processing, 2003(4): 392-401.
[18] SHENG B, LI Q. Verifiable privacy-preserving sensor network storage for range query[J]. IEEE Transaction on Mobile Computing, 2011,10(9): 1312-1326.
[19] SHI J, ZHANG R, ZHANG Y. A spatiotemporal approach to secure range queries in tiered sensor networks[J]. IEEE Transactions on Wireless Communications. 2011,10(1): 264-273.
[20] ZHANG R, SHI J, ZHANG Y,et al. Secure cooperative data storage and query processing in unattended tiered sensor networks[J]. IEEE Journal on Selected Areas in Communications, Special Issue on Cooperative Networking Challenges and Applications, 2012, 30(2):433-441.
[21] HACIGUMUS H, IYER B, LI C,et al. Executing sql over encrypted data in the database-service-provider model[A]. Proc ACM Inte Conf on Management of Data (SIGMOD2002)[C]. 2002. 216-227.
[22] HORE B, MEHROTRA S, TSUDIK G. A privacy-preserving index for range queries[A]. Proc 30th Inte Conf on Very Large Data(VLDB2004)[C]. 2004.720-731.
[23] CHEN F, LIU A X. Privacy and integrity preserving range queries in sensor networks[J]. IEEE/ACM Transactions on Networking, 2012,20(6):1774-1787.
[24] YI Y Q, LI R, CHEN F,et al. A digital watermarking approach to secure and precise range query processing in sensor networks[A].Proceedings of the IEEE Conference on Computer Communications 2013 (INFOCOM2013)[C]. Turin, Italy, 2013.
[25] ZHANG R, SHI J, LIU Y Z,et al. Verifiable fine-grained top-kqueries in tiered sensor networks[A]. Proceeding of IEEE International Conference on Computer Communications (INFOCOM 2010)[C].Piscataway, NJ: IEEE, 2010. 1199-1207.
[26] 范永健, 陳紅. 兩層傳感器網(wǎng)絡(luò)中可驗(yàn)證隱私保護(hù)的 top-k查詢協(xié)議[J]. 計(jì)算機(jī)學(xué)報(bào). 2012, 35(3): 423-433.FAN Y J, CHEN H. Verifiable privacy-preserving top-kquery protocol in two-tiered sensor networks[J]. Chinese Journal of Computers,2012,35(3):423-433.
[27] 李睿, 林亞平, 易葉青等. 兩層傳感器網(wǎng)絡(luò)中安全top-k查詢協(xié)議[J]. 計(jì)算機(jī)研究與發(fā)展, 2012, 49(9):1947-1958.LI R, LIN YP, YI Y Q,et al. A secure top-kquery protocol in two-tiered sensor networks[J]. Computer Research and Development,2012,49(9):1947-1958.
[28] 廖小靜, 李建中, 余磊. 一種能量有效的雙層傳感器網(wǎng)絡(luò)安全top-k查詢機(jī)制[J]. 計(jì)算機(jī)研究與發(fā)展, 2013, 50(3): 490-497.LIAO X J, LI J Z, YU L. Secure and efficient top-kquery processing in two-tier sensor network[J]. Computer Research and Development,2013, 50(3): 490-497.
[29] 李睿, 林亞平, 李晉國(guó). 兩層傳感器網(wǎng)絡(luò)中一種高效的加密數(shù)據(jù)條件聚合協(xié)議研究[J]. 通信學(xué)報(bào), 2012, 33(12):58-68.LI R, LIN Y P, LI J G. Efficient conditional aggregation of encrypted data in tiered sensor networks[J]. Journal on Communications,2012,33(12):58-68.
[30] CHAN H, PERRIG A, SONG D. Secure hierarchical in-network aggregation in sensor networks[A]. Proceedings of the 13th ACM Conference on Computer and Communications Security[C]. New York: ACM Press, 2006.278-287.
[31] YANG Y, WANG X. ZHU S,et al. Sdap: a secure hop-by-hop data aggregation protocol for sensor networks[J]. ACM Transactions on Information and System Security, 2008, 11(4):1-43.
[32] YAO Y Y, XIONG N, PARK J,et al. Privacy-preserving max/min query in two-tiered wireless sensor networks[J]. Computer and Mathematics with Application, 2012, 2: 1-8.
[33] AGRAWAL R, EVFIMIEVSKI A, SRIKANT R. Information sharing across private databases[A]. Proceedings of the 2003 ACM SIGMOD International Conference on Management of data[C]. New York:ACM Press, 2003. 86-97.
[34] BAWA M, BAYARDO R R. Privacy-preserving indexing of documents on the network[A]. Proceedings of the 29th International Conference on Very Large Data Bases[C]. Berlin: VLDB Endowment,2003.922-933.
[35] HORE B, MEHROTRA S, TSUDIK G. A privacy-preserving index for range queries[A]. Proceedings of the 30th International Conference on Very Large Data Bases[C]. Toronto: VLDB Endowment, 2004.720-731.
[36] CHENG J, YANG H, WONG S,et al. Design and implementation of cross-domain cooperative firewall[A]. IEEE International Conference of Network Protocol Piscataway IEEE[C]. 2007.284-293.
[37] CHENG J, YANG H, WONG S H,et al. Design and implementation of cross-domain cooperative firewall[A]. Proc International Conference on Network Protocols[C]. Piscataway: IEEE, 2007. 284-293.
[38] LIU A X, CHEN F. Collaborative enforcement of firewall policies in virtual private networks[A]. Proceedings of the Twenty-Seventh ACM Symposium on Principles of Distributed Computing[C]. New York:ACM Press, 2008: 95-104.
[39] CHANG Y K. Fast binary and multiway prefix searches for packet forwarding[J]. Computer Networks, 2007, 51(3): 588-605.
[40] HU Y P, LI R, ZHOU S W,et al. CCS-MAC: Exploiting the overheard data for compression in wireless sensor networks[J]. Computer Communication, 2011,34: 1696-1707.
[41] EPPSTEIN D, GOODRICH M T, UYEDA F,et al. What’s the difference? efficient set reconciliation without prior context[A]. ACM SIGCOMM Computer Communication Review[C]. New York: ACM Press, 2011: 218-229.
[42] XIAO S, GONG W, TOWSLEY D. Secure wireless communication with dynamic secrets[A]. Proc IEEE Inte Conf on Computer Communications, Piscataway: IEEE[C]. 2010.1-9.