本發(fā)明涉及無(wú)線傳感傳感器網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,特別是一種面向兩層傳感器網(wǎng)絡(luò)的隱私保護(hù)MAX/MIN查詢處理方法。
背景技術(shù):
目前,無(wú)線傳感器網(wǎng)絡(luò)(Wireless sensor networks)已被廣泛用于諸如醫(yī)療衛(wèi)生、環(huán)境監(jiān)測(cè)、智能交通、國(guó)防軍事等各種重要領(lǐng)域。兩層傳感器網(wǎng)絡(luò)(Two-tiered wireless sensor networks)是一種具有特殊結(jié)構(gòu)的無(wú)線傳感器網(wǎng)絡(luò),在傳統(tǒng)的無(wú)線傳感器網(wǎng)絡(luò)的基礎(chǔ)上引入計(jì)算、存儲(chǔ)資源充足的存儲(chǔ)節(jié)點(diǎn)(Storage nodes)作為中間層,負(fù)責(zé)接收、存儲(chǔ)所在單元內(nèi)感知節(jié)點(diǎn)上傳的數(shù)據(jù),并響應(yīng)、執(zhí)行來(lái)自基站的查詢指令。除存儲(chǔ)節(jié)點(diǎn)外,兩層傳感器網(wǎng)絡(luò)中還包含兩類設(shè)備節(jié)點(diǎn),即基站(Base station)和感知節(jié)點(diǎn)(Sensor nodes)。其中基站是負(fù)責(zé)與外部用戶交互的設(shè)備,如服務(wù)器、PC等;感知節(jié)點(diǎn)是各類資源均受限的感知設(shè)備,通常其價(jià)格低廉,適用于大量部署。
如圖1所示,兩層傳感器網(wǎng)絡(luò)通常被劃分成若干個(gè)單元,每個(gè)單元由一個(gè)存儲(chǔ)節(jié)點(diǎn)和若干個(gè)感知節(jié)點(diǎn)組成。單元內(nèi)的所有感知節(jié)點(diǎn)構(gòu)成下層多跳通信網(wǎng)絡(luò),而各單元內(nèi)的存儲(chǔ)節(jié)點(diǎn)構(gòu)成上層多跳通信網(wǎng)絡(luò),基站通過(guò)按需無(wú)線鏈接(On-demand-wireless-link)方式(如衛(wèi)星等)與存儲(chǔ)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)通信。在執(zhí)行查詢處理時(shí),基站將查詢指令發(fā)送至存儲(chǔ)節(jié)點(diǎn),然后由存儲(chǔ)節(jié)點(diǎn)根據(jù)自身存儲(chǔ)的感知數(shù)據(jù)執(zhí)行查詢處理,并將查詢結(jié)果反饋給基站,從而完成整個(gè)查詢處理過(guò)程。顯然,在查詢處理過(guò)程中,基站僅需與存儲(chǔ)節(jié)點(diǎn)進(jìn)行通信,因此兩層傳感器網(wǎng)絡(luò)具查詢高效等優(yōu)點(diǎn);且由于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的簡(jiǎn)單性和中間層存儲(chǔ)節(jié)點(diǎn)的資源充裕性,兩層傳感器網(wǎng)絡(luò)具有鏈路質(zhì)量穩(wěn)定、路由結(jié)構(gòu)簡(jiǎn)單和負(fù)載均衡等優(yōu)點(diǎn)。
由于存儲(chǔ)節(jié)點(diǎn)不僅存儲(chǔ)著單元內(nèi)所有感知節(jié)點(diǎn)采集的大量數(shù)據(jù),同時(shí)還負(fù)責(zé)執(zhí)行上層的查詢請(qǐng)求,使其在兩層傳感器網(wǎng)絡(luò)中處于極其關(guān)鍵的位置,容易成為各種攻擊的首要目標(biāo),從而影響著整個(gè)網(wǎng)絡(luò)的安全性。當(dāng)網(wǎng)絡(luò)中存在存儲(chǔ)節(jié)點(diǎn)被外部惡意攻擊時(shí),攻擊者可能會(huì)通過(guò)被攻擊的存儲(chǔ)節(jié)點(diǎn),直接或間接的竊取大量的感知數(shù)據(jù)信息和查詢處理結(jié)果。
兩層無(wú)線傳感網(wǎng)絡(luò)中的MAX/MIN查詢是獲取目標(biāo)區(qū)域及時(shí)間內(nèi)的數(shù)據(jù)最大值或最小值的一種用途廣泛的數(shù)據(jù)查詢方法。例如在倉(cāng)庫(kù)火災(zāi)監(jiān)控應(yīng)用中,可以利用MAX/MIN查詢監(jiān)控最高溫度值以實(shí)現(xiàn)火災(zāi)險(xiǎn)情的發(fā)現(xiàn)和監(jiān)控。顯然MAX/MIN查詢是一種特殊的Top-k查詢,即Top-1查詢,理論上任何Top-k查詢都能解決MAX/MIN查詢問(wèn)題;但由于MAX/MIN查詢的特殊性,可以設(shè)計(jì)相應(yīng)的專有協(xié)議算法,從而有效地提高查詢效率。在兩層傳感器網(wǎng)絡(luò)中實(shí)現(xiàn)隱私保護(hù)MAX/MIN查詢的挑戰(zhàn)在于:(1)如何使存儲(chǔ)節(jié)點(diǎn)在無(wú)法獲取感知數(shù)據(jù)明文數(shù)值的情況下,比較感知數(shù)據(jù)的大小,以確定最值,即查詢結(jié)果;(2)如何盡可能降低感知節(jié)點(diǎn)的能量消耗。
現(xiàn)有的與兩層傳感器網(wǎng)絡(luò)中隱私保護(hù)MAX/MIN查詢方法密切相關(guān)的專利或文獻(xiàn)主要有:專利“基于無(wú)線傳感器網(wǎng)絡(luò)中復(fù)合型數(shù)據(jù)的Top-k查詢方法及系統(tǒng)”(申請(qǐng)日期:2013.11.13,公開號(hào):CN103617197A)、“在無(wú)線傳感器網(wǎng)絡(luò)中分布式Top-k查詢方法”(申請(qǐng)日期:2013.7.19,公開號(hào):CN103369570A)、“一種無(wú)線傳感器網(wǎng)絡(luò)中連續(xù)的Top-k區(qū)域查詢方法”(申請(qǐng)日期:2011.1.24,公開號(hào):CN102143547A)和“Secure outsourced aggregation with one-way chains”(申請(qǐng)日期:2010.11.18,公開號(hào):US20100290617A1),這四項(xiàng)專利都是面向傳統(tǒng)的傳感器網(wǎng)絡(luò)環(huán)境中的Top-k查詢,盡管Top-k查詢可以轉(zhuǎn)換為MAX/MIN查詢,即當(dāng)k=1時(shí)。但由于Top-k查詢專為獲取前k個(gè)數(shù)據(jù)而設(shè)計(jì),這就需要每一個(gè)感知節(jié)點(diǎn)在每一個(gè)時(shí)間周期內(nèi)上傳采集的所有數(shù)據(jù),而MAX/MIN查詢只需要唯一的最大數(shù)據(jù)即可,因此,利用現(xiàn)有的Top-k查詢方法獲取最值,將帶來(lái)大量的顯然不必要的數(shù)據(jù)通信。所以,現(xiàn)有的這些安全Top-k查詢方法并不適用于解決隱私保護(hù)MAX/MIN查詢。
論文“Y.Yao,N.Xiong,J.H.Park,et al.Privacy-preserving max/min query in two-tiered wireless sensor networks.Computers and Mathematics with Applications,2013,65(9):1318–1325”和“H.Dai,G.Yang,and X.Qin."EMQP:An Energy-Efficient Privacy-Preserving MAX/MIN Query Processing in Tiered Wireless Sensor Networks."International Journal of Distributed Sensor Networks 2013(2013)”都實(shí)現(xiàn)了與本發(fā)明功能相同的面向兩層傳感網(wǎng)的隱私保護(hù)MAX/MIN查詢,但在執(zhí)行查詢處理的過(guò)程中,感知數(shù)據(jù)上傳過(guò)程中需要生產(chǎn)和傳輸?shù)腍MAC編碼數(shù)據(jù)較多,從而導(dǎo)致通信代價(jià)較高,也使得網(wǎng)絡(luò)的生命周期縮短。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是克服現(xiàn)有技術(shù)的不足而提供一種面向兩層傳感器網(wǎng)絡(luò)的隱私保護(hù)MAX/MIN查詢處理方法,使整個(gè)查詢處理過(guò)程對(duì)于存儲(chǔ)節(jié)點(diǎn)而言具有隱私保護(hù)能力,從而確保查詢過(guò)程中敏感數(shù)據(jù)的隱私安全性。
本發(fā)明為解決上述技術(shù)問(wèn)題采用以下技術(shù)方案:
一種面向兩層傳感器網(wǎng)絡(luò)的隱私保護(hù)MAX查詢方法,包括以下步驟:
步驟1、在每一個(gè)時(shí)間周期t內(nèi),多個(gè)感知節(jié)點(diǎn)分別計(jì)算自身采集感知數(shù)據(jù)的最大值,并利用僅與基站共享的密鑰對(duì)最大值進(jìn)行加密得到最大值的密文數(shù)據(jù),計(jì)算出最大值的密文數(shù)據(jù)所對(duì)應(yīng)的隨機(jī)安全比較碼;感知節(jié)點(diǎn)將構(gòu)造出的數(shù)據(jù)收集消息發(fā)送至該感知節(jié)點(diǎn)所在單元內(nèi)的存儲(chǔ)節(jié)點(diǎn)M;該數(shù)據(jù)收集消息包含該感知節(jié)點(diǎn)的ID信息、時(shí)間周期t和在t內(nèi)采集的最大值的密文數(shù)據(jù)及其對(duì)應(yīng)的隨機(jī)安全比較碼;
步驟2、存儲(chǔ)節(jié)點(diǎn)M接收每一個(gè)感知節(jié)點(diǎn)上傳的數(shù)據(jù)收集消息并存儲(chǔ);
步驟3、基站發(fā)送查詢指令至存儲(chǔ)節(jié)點(diǎn)M,查詢指令包含查詢目標(biāo)時(shí)間周期信息、查詢感知節(jié)點(diǎn)集合信息以及查詢目標(biāo)信息;此時(shí)的查詢目標(biāo)為最大值;
步驟4、存儲(chǔ)節(jié)點(diǎn)M接收到基站發(fā)來(lái)的最大查詢指令后,以自身存儲(chǔ)的來(lái)自感知節(jié)點(diǎn)的隨機(jī)安全比較碼集合S為輸入,根據(jù)MinSC算法執(zhí)行以下操作:
步驟4.1、初始化安全比較碼集合其中,T0用于存放0型安全比較碼,T1用于存放1型安全比較碼;
步驟4.2、若則執(zhí)行4.8;若獲取當(dāng)前S中的第一個(gè)安全比較碼a,并從S中移除a;若且此時(shí),若a的編碼類型為0,則將a加入到T0中,并標(biāo)記當(dāng)前安全比較碼最大的集合為T0;若a的編碼類型為1,則將a加入到T1中,并標(biāo)記當(dāng)前安全比較碼最大的集合為T1;若或時(shí),此時(shí),若a的編碼類型為0,且當(dāng)前安全比較碼最大的集合為T0,則執(zhí)行步驟4.3;若a的編碼類型為0,而當(dāng)前安全比較碼最大的集合為T1,則執(zhí)行步驟4.4;若a的編碼類型為1,且當(dāng)前安全比較碼最大的集合為T0,則執(zhí)行步驟4.5;若a的編碼類型為1,且當(dāng)前安全比較碼最大的集合為T1,則執(zhí)行步驟4.6;
步驟4.3、如果則將a加入到T0中;如果則根據(jù)安全比較碼的數(shù)值比較特性判斷T1中所有數(shù)據(jù)是否均小于a,若是,則清空T1中所有數(shù)據(jù)并將a加入到T0中,并標(biāo)記當(dāng)前安全比較碼最大的集合為T0;否則,移除T1中比a小的數(shù)據(jù);
步驟4.4、如果T1中所有數(shù)據(jù)均大于a,則將a加入到T0中;否則,根據(jù)安全比較碼的數(shù)值比較特性判斷T1中所有數(shù)據(jù)是否均小于a,若是,則移除T1中所有數(shù)據(jù),然后將a添加到T0并標(biāo)記當(dāng)前安全比較碼最大的集合為T0;否則,移除T1中比a小的數(shù)據(jù);
步驟4.5、如果T0中的所有數(shù)據(jù)均大于a,則將a添加到T1中;否則,根據(jù)安全比較碼的數(shù)值比較特性判斷T0中的所有數(shù)據(jù)是否均小于a,若是,則移除T1中所有數(shù)據(jù),然后將a添加到T1中,并標(biāo)記為當(dāng)前安全比較碼最大的集合為T1;否則,移除T0中所有小于a的數(shù)據(jù);
步驟4.6、如果則將a添加到T1中;否則根據(jù)安全比較碼的數(shù)值比較特性判斷T0中所有數(shù)據(jù)是否均小于a,若是,則清空T0中所有數(shù)據(jù)并將a添加到T1,并標(biāo)記為當(dāng)前安全比較碼最大的集合為T1;否則移除T0中比a小的數(shù)據(jù);
步驟4.7、如果則執(zhí)行步驟4.8,否則繼續(xù)執(zhí)行步驟4.2-4.6;
步驟4.8、若安全比較碼最大的集合為T0,則最大安全比較碼集合Ψ=T0,否則Ψ=T1;
步驟5、存儲(chǔ)節(jié)點(diǎn)M根據(jù)Ψ中各安全比較碼計(jì)算對(duì)應(yīng)的最小候選密文集,并構(gòu)造查詢反饋信息并發(fā)送至基站;
步驟6、當(dāng)基站接收到存儲(chǔ)節(jié)點(diǎn)M發(fā)來(lái)的查詢反饋消息后,基站利用與感知節(jié)點(diǎn)共享的加密密鑰,解密最小候選密文集中的密文數(shù)據(jù),此時(shí)即可確定出最終查詢結(jié)果,即最大值。
作為本發(fā)明所述的一種面向兩層傳感器網(wǎng)絡(luò)的隱私保護(hù)MAX查詢方法進(jìn)一步優(yōu)化方案,步驟1中的所有感知節(jié)點(diǎn)的采樣頻率相同。
作為本發(fā)明所述的一種面向兩層傳感器網(wǎng)絡(luò)的隱私保護(hù)MAX查詢方法進(jìn)一步優(yōu)化方案,步驟1中的隨機(jī)安全比較碼是對(duì)感知數(shù)據(jù),依次進(jìn)行0-1編碼、數(shù)值化和HMAC處理之后得到的編碼集合。
一種面向兩層傳感器網(wǎng)絡(luò)的隱私保護(hù)MIN查詢方法,包括以下步驟:
步驟Ⅰ、在每一個(gè)時(shí)間周期t內(nèi),多個(gè)感知節(jié)點(diǎn)分別計(jì)算自身采集感知數(shù)據(jù)的最小值,并利用僅與基站共享的密鑰對(duì)最小值進(jìn)行加密得到最小值的密文數(shù)據(jù),計(jì)算出最小值的密文數(shù)據(jù)所對(duì)應(yīng)的隨機(jī)安全比較碼;感知節(jié)點(diǎn)將構(gòu)造出的數(shù)據(jù)收集消息發(fā)送至該感知節(jié)點(diǎn)所在單元內(nèi)的存儲(chǔ)節(jié)點(diǎn)M;該數(shù)據(jù)收集消息包含該感知節(jié)點(diǎn)的ID信息、時(shí)間周期t和在t內(nèi)采集的最小值的密文數(shù)據(jù)及其對(duì)應(yīng)的隨機(jī)安全比較碼;
步驟Ⅱ、存儲(chǔ)節(jié)點(diǎn)M接收每一個(gè)感知節(jié)點(diǎn)上傳的數(shù)據(jù)收集消息并存儲(chǔ);
步驟Ⅲ、基站發(fā)送查詢指令至存儲(chǔ)節(jié)點(diǎn)M,查詢指令包含查詢目標(biāo)時(shí)間周期信息、查詢感知節(jié)點(diǎn)集合信息以及查詢目標(biāo)信息,此時(shí)的查詢目標(biāo)為最小值;
步驟Ⅳ、存儲(chǔ)節(jié)點(diǎn)M接收到基站發(fā)來(lái)的最小查詢指令后,以自身存儲(chǔ)的來(lái)自感知節(jié)點(diǎn)的隨機(jī)安全比較碼集合S為輸入,根據(jù)MinSC算法執(zhí)行以下操作:
步驟401、初始化安全比較碼集合其中T0用于存放0型安全比較碼,T1用于存放1型安全比較碼;
步驟402、若則執(zhí)行408;若獲取當(dāng)前S中的第一個(gè)安全比較碼a,并從S中移除a;若且此時(shí),若a的編碼類型為0,則將a加入到T0中,并標(biāo)記當(dāng)前安全比較碼最小的集合為T0;若a的編碼類型為1,則將a加入到T1中,并標(biāo)記當(dāng)前安全比較碼最小的集合為T1;若或時(shí),此時(shí),若a的編碼類型為0,且當(dāng)前安全比較碼最小的集合為T0,則執(zhí)行步驟403;若a的編碼類型為0,而當(dāng)前安全比較碼最小的集合為T1,則執(zhí)行步驟404;若a的編碼類型為1,且當(dāng)前安全比較碼最小的集合為T0,則執(zhí)行步驟405;若a的編碼類型為1,且當(dāng)前安全比較碼最小的集合為T1,則執(zhí)行步驟406;
步驟403、如果則將a加入到T0中;如果則根據(jù)安全比較碼的數(shù)值比較特性判斷T1中所有數(shù)據(jù)是否均大于a,若是,則清空T1中所有數(shù)據(jù)并將a加入到T0中,并標(biāo)記當(dāng)前安全比較碼最小的集合為T0;否則,移除T1中比a大的數(shù)據(jù);
步驟404、如果T1中所有數(shù)據(jù)均小于a,則將a加入到T0中;否則,根據(jù)安全比較碼的數(shù)值比較特性判斷T1中所有數(shù)據(jù)是否均大于a,若是則移除T1中所有數(shù)據(jù),將a添加到T0并標(biāo)記當(dāng)前安全比較碼最小的集合為T0;否則移除T1中比a大的數(shù)據(jù);
步驟405、如果T0中的所有數(shù)據(jù)均小于a,則將a加入到T1中;否則,根據(jù)安全比較碼的數(shù)值比較特性判斷T0中的所有數(shù)據(jù)是否均大于a,若是則移除T1中所有數(shù)據(jù),然后將a添加到T1中,并標(biāo)記當(dāng)前安全比較碼最小的集合為T1;否則移除T0中所有大于a的數(shù)據(jù);
步驟406、如果則將a加入到T1中;否則根據(jù)安全比較碼的數(shù)值比較特性判斷T0中所有數(shù)據(jù)是否均大于a,若是則清空T0中所有數(shù)據(jù)并將a添加到T1,并標(biāo)記當(dāng)前安全比較碼最小的集合為T1,否則移除T0中比a大的數(shù)據(jù);
步驟407、如果則執(zhí)行步驟408,否則繼續(xù)執(zhí)行步驟402-406;
步驟408、若安全比較碼最小的集合為T0,則最小安全比較碼集合Ψ=T0,否則Ψ=T1;
步驟Ⅴ、存儲(chǔ)節(jié)點(diǎn)M根據(jù)Ψ中各安全比較碼計(jì)算對(duì)應(yīng)的最小候選密文集,并構(gòu)造查詢反饋信息并發(fā)送至基站;
步驟Ⅵ、當(dāng)基站接收到存儲(chǔ)節(jié)點(diǎn)M發(fā)來(lái)的查詢反饋消息后,基站利用與感知節(jié)點(diǎn)共享的加密密鑰,解密最小候選密文集中的密文數(shù)據(jù),此時(shí)即可確定出最終的查詢結(jié)果,即最小值。
作為本發(fā)明所述的一種面向兩層傳感器網(wǎng)絡(luò)的隱私保護(hù)MIN查詢方法進(jìn)一步優(yōu)化方案,步驟Ⅰ中的所有感知節(jié)點(diǎn)的采樣頻率相同。
作為本發(fā)明所述的一種面向兩層傳感器網(wǎng)絡(luò)的隱私保護(hù)MIN查詢方法進(jìn)一步優(yōu)化方案,步驟Ⅰ中的隨機(jī)安全比較碼是對(duì)感知數(shù)據(jù),依次進(jìn)行0-1編碼、數(shù)值化和HMAC處理之后得到的編碼集合。
本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
(1)有效的保證查詢過(guò)程中的數(shù)據(jù)隱私安全性:
本發(fā)明基于基站和感知節(jié)點(diǎn)可信的前提,則對(duì)于任意感知節(jié)點(diǎn)采集的感知數(shù)據(jù)而言,僅當(dāng)查詢處理方法能夠確保M無(wú)法獲取感知數(shù)據(jù)和查詢結(jié)果的明文數(shù)值時(shí),才能保證查詢處理過(guò)程中的數(shù)據(jù)隱私安全;
對(duì)于感知數(shù)據(jù)的隱私安全性:在MAX/MIN查詢處理過(guò)程中,感知節(jié)點(diǎn)首先對(duì)感知數(shù)據(jù)進(jìn)行對(duì)稱加密處理,其密鑰僅與基站共享,因此,在沒(méi)有密鑰的情況下獲取感知數(shù)據(jù)的復(fù)雜度與破解加密算法相同,從而確保任意傳輸路徑中的其它節(jié)點(diǎn)都無(wú)法獲取其明文數(shù)值;其次,感知節(jié)點(diǎn)利用HMAC機(jī)制,構(gòu)造用于數(shù)據(jù)比較的安全比較碼,使得M在無(wú)需感知數(shù)據(jù)明文參與的情況下,即可實(shí)現(xiàn)感知數(shù)據(jù)之間的大小比較,從而確定出蘊(yùn)含查詢結(jié)果的候選密文集;HMAC機(jī)制的單向性和計(jì)算復(fù)雜性,使得M盡管擁有HMAC數(shù)據(jù),但無(wú)法反向逆推其對(duì)應(yīng)的感知數(shù)據(jù);
對(duì)于查詢結(jié)果的隱私安全性:MAX/MIN查詢結(jié)果的計(jì)算由M和基站協(xié)作完成;其中,M以感知節(jié)點(diǎn)上傳的隨機(jī)安全比較碼為輸入,利用MinSC算法獲得蘊(yùn)含查詢結(jié)果的候選密文集,并發(fā)送給基站;最終由基站解密這些密文數(shù)據(jù),從而計(jì)算出最終的查詢結(jié)果;可見,M的查詢處理執(zhí)行過(guò)程,只涉及到由HMAC生成的安全比較碼和加密數(shù)據(jù),由于沒(méi)有密鑰信息,M無(wú)法獲得候選密文集對(duì)應(yīng)的明文數(shù)值,因此也就無(wú)法獲得明文的查詢結(jié)果;
(2)本發(fā)明提出的方法中,感知節(jié)點(diǎn)需要上傳的用于數(shù)值比較的安全比較碼數(shù)量比現(xiàn)有方案更少,從而有效地降低了感知節(jié)點(diǎn)與存儲(chǔ)節(jié)點(diǎn)之間的通信代價(jià):
(3)由前述數(shù)據(jù)收集協(xié)議和查詢處理協(xié)議可知,在兩層傳感器網(wǎng)絡(luò)中,數(shù)據(jù)的通信消耗可以分為兩類:其一是單元內(nèi)所有感知節(jié)點(diǎn)上傳數(shù)據(jù)至存儲(chǔ)節(jié)點(diǎn)過(guò)程中產(chǎn)生的通信代價(jià);其二是基站向存儲(chǔ)節(jié)點(diǎn)發(fā)送指令和存儲(chǔ)節(jié)點(diǎn)執(zhí)行查詢并返回查詢結(jié)果至基站所產(chǎn)生的通信代價(jià);由于感知節(jié)點(diǎn)的能量資源受限,而存儲(chǔ)節(jié)點(diǎn)的能量資源豐富,因此兩層傳感器網(wǎng)絡(luò)的生命周期取決于感知節(jié)點(diǎn)的能量消耗。且對(duì)于MAX/MIN查詢來(lái)說(shuō),感知節(jié)點(diǎn)上傳數(shù)據(jù)階段需要上傳的總數(shù)據(jù)量也遠(yuǎn)高于存儲(chǔ)節(jié)點(diǎn)向基站上傳的查詢結(jié)果數(shù)據(jù)量,因此感知節(jié)點(diǎn)之間的通信代價(jià)直接影響著兩層傳感網(wǎng)絡(luò)的生命周期。
附圖說(shuō)明
圖1是兩層傳感器網(wǎng)絡(luò)結(jié)構(gòu)示意圖。
圖2是數(shù)據(jù)收集過(guò)程的流程示意圖,表示本發(fā)明方法中的感知節(jié)點(diǎn)采集并上傳感知數(shù)據(jù)的流程示意。
圖3是查詢處理過(guò)程的流程示意圖,表示本發(fā)明方法中的基站與存儲(chǔ)節(jié)點(diǎn)協(xié)作完成MAX/MIN查詢的流程示意。
圖4是MinSC算法的流程示意圖,表示本發(fā)明方法中數(shù)據(jù)在非明文情況下進(jìn)行比較的流程示意。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)說(shuō)明:
本發(fā)明采用0-1編碼、HMAC定義隨機(jī)安全比較碼,并基于此給出秘密比較模型;進(jìn)而提出一種最大的安全比較碼集合生成算法實(shí)現(xiàn)能量高效的隱私保護(hù)MAX/MIN查詢。為了進(jìn)一步說(shuō)明技術(shù)方案,本發(fā)明首先給出相關(guān)符號(hào)定義與假設(shè),然后再給出技術(shù)方案詳細(xì)過(guò)程。
一、相關(guān)符號(hào)定義與假設(shè)
在兩層傳感器網(wǎng)絡(luò)中,由于各單元內(nèi)部數(shù)據(jù)的存儲(chǔ)和通信相互獨(dú)立,對(duì)于覆蓋多個(gè)單元的復(fù)雜MAX/MIN查詢而言,可以通過(guò)對(duì)各單元進(jìn)行獨(dú)立MAX/MIN查詢,再將查詢結(jié)果在基站進(jìn)行合并處理,即可獲得最終的查詢結(jié)果。因此,本發(fā)明將聚焦于獲取一個(gè)單元內(nèi)的最大(小)數(shù)據(jù)的MAX/MIN查詢,展開技術(shù)方案的描述。
圖1是兩層傳感器網(wǎng)絡(luò)結(jié)構(gòu)示意圖,假設(shè)網(wǎng)絡(luò)單元C中包含n個(gè)感知節(jié)點(diǎn),記為Γ={s1,s2,…,sn},存儲(chǔ)節(jié)點(diǎn)記為M,t為時(shí)間周期標(biāo)簽;設(shè)網(wǎng)絡(luò)中所有感知節(jié)點(diǎn)的采樣頻率相同(即所有節(jié)點(diǎn)在單位時(shí)間內(nèi)采集的數(shù)據(jù)數(shù)量相同),對(duì)于任一感知節(jié)點(diǎn)si,i為整數(shù)且1≤i≤n,id(si)表示si的ID,si在t內(nèi)采集到N個(gè)數(shù)據(jù),記為Di={di,1,di,2,…,di,N},si僅與基站共享密鑰ki?;景l(fā)布的查詢指令記為Q=(Θ,t,Γ),其中Θ∈{MAX,MIN}表示查詢的類型,t為查詢的時(shí)間周期,Γ為查詢覆蓋的感知節(jié)點(diǎn)集合。例如,Q=(MAX,t,{s1,s4,s6,s11})表示查詢的感知節(jié)點(diǎn)s1,s4,s6,s11在時(shí)間周期t內(nèi)獲得的最大感知數(shù)據(jù)。此外,max(·)表示數(shù)據(jù)集合中的最大值。
隨機(jī)安全比較碼的定義:對(duì)任一感知數(shù)據(jù)x,依次進(jìn)行0-1編碼、數(shù)值化和HMAC處理之后得到的編碼集合稱為安全比較碼,x的0型和1型安全比較碼分別記為Esc0(x)和Esc1(x)。隨機(jī)地從Esc0(x)和Esc1(x)中選出其中的一個(gè)編碼,所選編碼則稱為x的隨機(jī)安全比較碼。x的隨機(jī)安全比較碼記做其編碼類型記為
根據(jù)0-1編碼的數(shù)值比較特性可知,不同類型的安全比較碼之間可以進(jìn)行比較,即對(duì)于數(shù)據(jù)x和y,則x>y,否則x≤y。
在實(shí)際應(yīng)用中,盡管感知節(jié)點(diǎn)采集的感知數(shù)據(jù)的數(shù)值可能相同,但如果在進(jìn)行數(shù)據(jù)比較時(shí),將采集時(shí)間以及感知節(jié)點(diǎn)的ID信息也考慮進(jìn)來(lái),則所有感知數(shù)據(jù)都可以比較大小。因此,為了描述的方便,我們不妨假設(shè)所有感知數(shù)據(jù)均不相等,即均可比較大小;并以MAX查詢處理過(guò)程為例展開技術(shù)方案的描述。
二、方法流程
本發(fā)明的核心是設(shè)計(jì)兩個(gè)數(shù)據(jù)傳輸協(xié)議:數(shù)據(jù)收集協(xié)議和查詢處理協(xié)議,具體內(nèi)容如下。
I.數(shù)據(jù)收集協(xié)議
查詢單元C=(M,{s1,s2,…,sn})內(nèi),任意感知節(jié)點(diǎn)si將其在單位時(shí)間周期t內(nèi)采集的N個(gè)感知數(shù)據(jù){di,1,di,2,…,di,N}中的最大值進(jìn)行加密,并生成隨機(jī)安全比較碼,然后上傳至M。詳細(xì)協(xié)議過(guò)程如下:
步驟1),感知節(jié)點(diǎn)采集感知數(shù)據(jù)并確定所采集數(shù)據(jù)中的最大值di=max(di,1,di,2,…,di,N);
步驟2),計(jì)算di的隨機(jī)安全比較碼并設(shè)置其類型(若為0編碼類型則否則隨機(jī)安全比較碼的詳細(xì)計(jì)算步驟如下:
步驟2.1),首先計(jì)算di的0編碼和1編碼;
步驟2.2),然后分別對(duì)其進(jìn)行數(shù)值化處理,并利用HMAC函數(shù)對(duì)其進(jìn)行單向不可逆處理,得di的0型和1型安全比較碼Esc0(di)和Esc1(di);
步驟2.3),隨機(jī)從Esc0(di)和Esc1(di)中選擇其中一個(gè)的編碼,所選編碼即為隨機(jī)安全比較碼,將di的隨機(jī)安全比較碼記做記錄其類型
步驟3),感知節(jié)點(diǎn)利用與基站共享的密鑰ki,對(duì)di進(jìn)行加密,得到密文數(shù)據(jù)
步驟4),構(gòu)建將如下數(shù)據(jù)消息發(fā)送給M,其中id(si)表示si的ID信息;
步驟5),當(dāng)本單元內(nèi)所有感知節(jié)點(diǎn)都完成數(shù)據(jù)上傳時(shí),M接收并存儲(chǔ)si發(fā)來(lái)的數(shù)據(jù)消息。
II.查詢處理協(xié)議
查詢處理過(guò)程由M和基站協(xié)作完成,其關(guān)鍵在于M以感知節(jié)點(diǎn)上傳的隨機(jī)安全比較碼集合為輸入,通過(guò)調(diào)用MinSC算法確定最大安全比較碼集合,進(jìn)而確定包含查詢結(jié)果的最小候選密文集(Minimal Set of Encrypted Candidates),記為R。然后M將R返回給基站,再由基站解密R中的密文數(shù)據(jù),進(jìn)而確定最終的查詢結(jié)果。具體協(xié)議過(guò)程如下所示。
步驟1),基站向M發(fā)送查詢指令Q=(MAX,t,Γ),Γ={s1,s2,…,sm};然后等待M的查詢反饋消息。
步驟2),M接收到Q后,首先以自身存儲(chǔ)的由si∈Γ在t時(shí)間內(nèi)上傳的隨機(jī)安全比較碼集合S為輸入,調(diào)用MinSC算法,計(jì)算S中的最大的安全比較碼集Ψ。其中MinSC算法的具體步驟如下:
步驟2.1),初始化安全比較碼集合分別用于存放0型和1型安全比較碼;若當(dāng)前安全比較碼較大的集合為T0,則設(shè)置標(biāo)記flag=0;否則設(shè)置flag=1;
步驟2.2),若獲取當(dāng)前S中的第一個(gè)編碼a,并從S中移除a。若且此時(shí),若a.type=0,則將a加入到T0中,并設(shè)置flag=0;若a.type=1,則將a加入到T1中,并設(shè)置flag=1。若或時(shí),此時(shí),如果a.type=0且flag=0時(shí),則進(jìn)行步驟2.3);如果a.type=0且flag=1時(shí),則進(jìn)行步驟2.4);如果a.type=1且flag=0時(shí),則進(jìn)行步驟2.5);如果a.type=1且flag=1時(shí),執(zhí)行步驟2.6);
步驟2.3),如果則將a加入到T0中;如果則根據(jù)安全比較碼的數(shù)值比較特性(以下比較原理相同)判斷是否T1中所有數(shù)據(jù)均小于a,若是,則清空T1中所有數(shù)據(jù)并將a加入到T0中,否則,移除T1中比a小的數(shù)據(jù);
步驟2.4),如果T1中所有數(shù)據(jù)均大于a,則將a加入到T0中;否則,判斷是否T1中所有數(shù)據(jù)均小于a,若是,則移除T1中所有數(shù)據(jù),然后將a添加到T0并設(shè)置flag=0;否則,移除T1中比a小的數(shù)據(jù);
步驟2.5),如果T0中的所有數(shù)據(jù)均大于a,則將a添加到T1中;否則,判斷是否T0中的所有數(shù)據(jù)均小于a,若是,則移除T1中所有數(shù)據(jù),然后將a添加到T1中,并將flag的值改為1,即flag=1;否則,移除T0中所有小于a的數(shù)據(jù);
步驟2.6),如果則將a添加到T1中;否則判斷是否T0中所有數(shù)據(jù)均小于a,若是,則清空T0中所有數(shù)據(jù)并將a添加到T1,否則移除T0中比a小的數(shù)據(jù);
步驟2.7),如果則轉(zhuǎn)向步驟2.8),否則繼續(xù)執(zhí)行步驟2.2);
步驟2.8),如果flag=0,則最大安全比較碼集合Ψ=T0,否則Ψ=T1;
步驟3),計(jì)算與Ψ中各安全比較碼相對(duì)應(yīng)的最小候選密文集R,即R中的數(shù)據(jù)均為Ψ中各安全比較碼對(duì)應(yīng)的密文數(shù)據(jù),并構(gòu)造如下的數(shù)據(jù)消息,發(fā)送給基站;
步驟4),當(dāng)接收到M發(fā)送的查詢反饋消息后,基站利用與感知節(jié)點(diǎn)共享的密鑰ki,解密R中的密文數(shù)據(jù),此時(shí)即可確定最終的查詢結(jié)果。
由上述協(xié)議流程可知,數(shù)據(jù)收集協(xié)議給出了感知節(jié)點(diǎn)對(duì)自身采集數(shù)據(jù)的具體處理過(guò)程,而查詢處理協(xié)議則描述了基站與存儲(chǔ)節(jié)點(diǎn)之間如何進(jìn)行協(xié)作以完成查詢結(jié)果計(jì)算的具體流程。
本發(fā)明的具體實(shí)施方式可描述為如下兩個(gè)異步的處理過(guò)程,且實(shí)現(xiàn)隱私保護(hù)的MAX/MIN查詢的關(guān)鍵在于MinSC算法。
一、數(shù)據(jù)收集過(guò)程,如圖2所示:
(1)在每一個(gè)時(shí)間周期t內(nèi),感知節(jié)點(diǎn)首先計(jì)算自身采集的感知數(shù)據(jù)的最大值,并利用僅與基站共享的密鑰對(duì)其加密;然后計(jì)算其對(duì)應(yīng)的隨機(jī)安全比較碼;最后,感知節(jié)點(diǎn)構(gòu)造數(shù)據(jù)收集消息并發(fā)送至其所在單元內(nèi)的存儲(chǔ)節(jié)點(diǎn)M,該消息包含該節(jié)點(diǎn)的ID信息、時(shí)間周期t和在t內(nèi)采集的最大值的密文數(shù)據(jù)及其對(duì)應(yīng)的隨機(jī)安全比較碼。
(2)M接收每一個(gè)感知節(jié)點(diǎn)上傳的數(shù)據(jù)收集消息,并存儲(chǔ)該消息中的各項(xiàng)數(shù)據(jù)。
二、查詢處理過(guò)程,最小值查詢與最大值查詢類似。以查詢最大值為例,如圖3所示:
步驟1),基站發(fā)送MAX/MIN查詢指令(MAX,t,Γ)至M,然后等待M的查詢反饋消息。其中,t表示查詢目標(biāo)時(shí)間周期,MAX表示期望獲得最大的感知數(shù)據(jù),Γ表示查詢感知節(jié)點(diǎn)集合;
步驟2),M接收到基站發(fā)來(lái)的查詢指令后,以自身存儲(chǔ)的來(lái)自感知節(jié)點(diǎn)的隨機(jī)安全比較碼集合S為輸入,根據(jù)MinSC算法如圖4所示,執(zhí)行以下操作:
步驟2.1),初始化安全比較碼集合分別用于存放0型和1型安全比較碼;flag=0和flag=1分別表示當(dāng)前安全比較碼較大的集合為T0和T1;
步驟2.2),當(dāng)時(shí),獲取當(dāng)前S中的第一個(gè)編碼a,并從S中移除a。如果a.type=0且flag=0時(shí),則進(jìn)行步驟2.3);如果a.type=0且flag=1時(shí),則進(jìn)行步驟2.4);如果a.type=1且flag=0時(shí),則進(jìn)行步驟2.5);如果a.type=1且flag=1時(shí),執(zhí)行步驟2.6);
步驟2.3),如果則將a加入到T0中;如果則根據(jù)安全比較碼的數(shù)值比較特性(以下比較原理相同)判斷是否T1中所有數(shù)據(jù)均小于a,若是,則清除T1中的數(shù)據(jù)并將a加入到T0中,否則,移除T1中比a小的數(shù)據(jù);
步驟2.4),如果T1中所有數(shù)據(jù)均大于a,則將a加入到T0中;否則,判斷是否T1中所有數(shù)據(jù)均小于a,若是,則移除T0中所有數(shù)據(jù),然后將a添加到T0并設(shè)置flag=0;否則,移除T1中比a小的數(shù)據(jù);
步驟2.5),如果T0中的所有數(shù)據(jù)均大于a,則將a添加到T1中;否則,判斷是否T0中的所有數(shù)據(jù)均小于a,若是,則移除T1中所有數(shù)據(jù),然后將a添加到T1中,并將flag的值改為1,即flag=1;否則,移除T0中所有小于a的數(shù)據(jù);
步驟2.6),如果則將a添加到T1中;否則判斷是否T0中所有數(shù)據(jù)均小于a,若是,則清空T0中所有數(shù)據(jù)并將a添加到T1,否則移除T0中比a小的數(shù)據(jù);
步驟2.7),如果則轉(zhuǎn)向步驟2.8),否則繼續(xù)執(zhí)行步驟2.2);
步驟2.8),如果flag=0,則最大安全比較碼集合Ψ=T0,否則Ψ=T1;
根據(jù)步驟2.1)~2.8)計(jì)算最大安全比較碼集合Ψ;
步驟3),M根據(jù)Ψ中各安全比較碼計(jì)算對(duì)應(yīng)的最小候選密文集R,并構(gòu)造查詢反饋信息,發(fā)送至基站;
步驟4),當(dāng)接收到M發(fā)來(lái)的查詢反饋消息后,基站利用與感知節(jié)點(diǎn)共享的加密密鑰,解密R中的密文數(shù)據(jù),此時(shí)即可確定最終的查詢結(jié)果;查詢過(guò)程結(jié)束。
需要指出的是,以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化和替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。