楊 振 宇
(安徽交通職業(yè)技術(shù)學(xué)院, 合肥 230051)
數(shù)據(jù)聚合是處理無(wú)線網(wǎng)絡(luò)通信數(shù)據(jù)的一種重要手段,通過(guò)對(duì)中間節(jié)點(diǎn)數(shù)據(jù)的聚合操作可顯著降低數(shù)據(jù)通信的開(kāi)銷(xiāo)[1-2]。但需注意的是,數(shù)據(jù)聚合操作中的數(shù)據(jù)隱私保護(hù)問(wèn)題不可忽視。
針對(duì)傳統(tǒng)傳輸網(wǎng)絡(luò)數(shù)據(jù)聚合算法存在隱私保護(hù)性較低和通信量較大的問(wèn)題,葉木林提出了一種基于傳輸網(wǎng)絡(luò)數(shù)據(jù)聚合技術(shù)的隱私保護(hù)方案[3]。該方案中,運(yùn)用部分?jǐn)?shù)據(jù)交換的策略以減少數(shù)據(jù)串通階段不必要的數(shù)據(jù)交換,運(yùn)用隨機(jī)發(fā)送策略以提高數(shù)據(jù)聚合精度。該方案的算法通信效率及數(shù)據(jù)聚合精確度較高,可在一定程度上滿足隱私保護(hù)的要求。陳思光等人提出了一種基于霧計(jì)算的智能電網(wǎng)安全與隱私保護(hù)數(shù)據(jù)聚合方案[4],利用云霧合作的多級(jí)聚合模型和同態(tài)加密算法,對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行多層隱私保護(hù)。對(duì)實(shí)時(shí)數(shù)據(jù)通過(guò)加密獲得第一層隱私保護(hù),在霧端通過(guò)細(xì)粒度聚合獲得第二層隱私保護(hù),在云節(jié)點(diǎn)將其作為系數(shù)嵌入符合霍納規(guī)則的一元多項(xiàng)式從而完成第三層隱私保護(hù)。云霧數(shù)據(jù)聚合操作可有效抵御偽裝攻擊,保護(hù)數(shù)據(jù)的完整性,從而極大地減少冗余數(shù)據(jù)的傳輸量。相對(duì)于其他方案,此方案在安全性、實(shí)用性和高效性方面表現(xiàn)出極大優(yōu)勢(shì)。
區(qū)塊鏈技術(shù)因其無(wú)需中介機(jī)構(gòu)參與即可完成雙方互信的行為特性,可作為分布式環(huán)境下在實(shí)體間建立信任的新思路與新方法[5]。因此,為進(jìn)一步探討通信數(shù)據(jù)聚合的隱私保護(hù)問(wèn)題,本次研究將提出一種基于區(qū)塊鏈技術(shù)的傳輸網(wǎng)絡(luò)通信數(shù)據(jù)聚合隱私保護(hù)算法。本算法中,首先采用隱私同態(tài)技術(shù)對(duì)無(wú)線網(wǎng)絡(luò)通信數(shù)據(jù)進(jìn)行初步聚合,然后應(yīng)用區(qū)塊鏈技術(shù)對(duì)聚合數(shù)據(jù)在節(jié)點(diǎn)間傳播持續(xù)時(shí)間、區(qū)塊大小、傳播速度、區(qū)塊生成間隔與區(qū)塊安全性之間的制約關(guān)系進(jìn)行調(diào)整,從而實(shí)現(xiàn)無(wú)線網(wǎng)絡(luò)通信數(shù)據(jù)隱私保護(hù)。
區(qū)塊鏈技術(shù)的本質(zhì),是利用加密的鏈?zhǔn)絽^(qū)塊結(jié)構(gòu)對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證和存儲(chǔ),各節(jié)點(diǎn)之間的驗(yàn)證、通信及信任等關(guān)系通過(guò)P2P網(wǎng)絡(luò)技術(shù)和共識(shí)機(jī)制而實(shí)現(xiàn)。其中,數(shù)據(jù)信息由所有節(jié)點(diǎn)共同參與維護(hù),數(shù)據(jù)信息的同步也是通過(guò)參與維護(hù)的每個(gè)節(jié)點(diǎn)定期與相鄰節(jié)點(diǎn)進(jìn)行信息交換來(lái)實(shí)現(xiàn)[6]。為了保證所有合法節(jié)點(diǎn)所持有的數(shù)據(jù)信息都相同,在此應(yīng)用區(qū)塊鏈技術(shù)建立起共識(shí)機(jī)制。區(qū)塊鏈技術(shù)的整體基礎(chǔ)框架如圖1所示。
圖1 區(qū)塊鏈技術(shù)的基礎(chǔ)框架
數(shù)據(jù)層包括底層數(shù)據(jù)區(qū)塊和鏈?zhǔn)浇Y(jié)構(gòu),可通過(guò)哈希算法、時(shí)間戳算法、Merkle樹(shù)算法、非對(duì)稱加密算法等實(shí)現(xiàn)對(duì)區(qū)塊數(shù)據(jù)完整性和可溯源性的保護(hù)。網(wǎng)絡(luò)層包括數(shù)據(jù)傳播機(jī)制和交易驗(yàn)證機(jī)制,其主要任務(wù)是保證區(qū)塊鏈上的各節(jié)點(diǎn)能夠通過(guò)P2P網(wǎng)絡(luò)實(shí)現(xiàn)有效通信,主要通過(guò)對(duì)網(wǎng)絡(luò)組網(wǎng)方式及節(jié)點(diǎn)之間數(shù)據(jù)的傳遞和驗(yàn)證來(lái)實(shí)現(xiàn)。區(qū)塊鏈網(wǎng)絡(luò)采用的P2P技術(shù)是其核心技術(shù)之一,是實(shí)現(xiàn)去中心化和動(dòng)態(tài)變化的主要手段。共識(shí)層包括共識(shí)機(jī)制、發(fā)行機(jī)制和激勵(lì)機(jī)制,其主要作用是保證區(qū)塊鏈上各分布式節(jié)點(diǎn)間數(shù)據(jù)的一致性和真實(shí)性。應(yīng)用層主要負(fù)責(zé)對(duì)接區(qū)塊鏈頂層的應(yīng)用及其相關(guān)系統(tǒng),是區(qū)塊鏈可編程特性的依托,以區(qū)塊鏈支持的各類腳本代碼及智能合約作為支撐。
區(qū)塊鏈技術(shù)中,基于時(shí)間戳的鏈?zhǔn)絽^(qū)塊結(jié)構(gòu)及基于P2P網(wǎng)絡(luò)的數(shù)據(jù)傳輸機(jī)制、分布式節(jié)點(diǎn)的共識(shí)機(jī)制、可編程的鏈上腳本的應(yīng)用,是區(qū)塊鏈技術(shù)區(qū)別于其他技術(shù)的最大特點(diǎn)。
(1) 開(kāi)放共識(shí)。每一臺(tái)設(shè)備都作為一個(gè)節(jié)點(diǎn)被允許獲得完整的數(shù)據(jù)信息。
(2) 去中心化。每一個(gè)節(jié)點(diǎn)都是端到端的關(guān)系,不存在中心設(shè)備或機(jī)構(gòu),所有節(jié)點(diǎn)共同完成網(wǎng)絡(luò)的維護(hù)且地位平等。
(3) 去三方化。節(jié)點(diǎn)之間直接建立信任關(guān)系,無(wú)需第三方參與;同時(shí),運(yùn)行規(guī)則和數(shù)據(jù)可共享,能減少對(duì)信任的干擾。
(4) 隱秘性。用戶只與公鑰地址相對(duì)應(yīng),不關(guān)聯(lián)真實(shí)身份。
(5) 不可篡改。在區(qū)塊鏈系統(tǒng)中,當(dāng)某個(gè)區(qū)塊出現(xiàn)篡改數(shù)據(jù)的情況時(shí),需要在共識(shí)機(jī)制特定時(shí)間內(nèi)對(duì)應(yīng)修改其所有后續(xù)區(qū)塊數(shù)據(jù),以及大量的系統(tǒng)節(jié)點(diǎn)來(lái)參與,從而保證區(qū)塊鏈的安全性。
(6) 可追溯。區(qū)塊鏈采用帶時(shí)間戳的鏈?zhǔn)絽^(qū)塊結(jié)構(gòu)存儲(chǔ)數(shù)據(jù)來(lái)建立數(shù)據(jù)時(shí)間維度,對(duì)于區(qū)塊上的交易均采用密碼學(xué)方法使相鄰2個(gè)區(qū)塊間建立聯(lián)系,因此交易過(guò)程可追溯。
(7) 可編程。區(qū)塊鏈支持在腳本上進(jìn)行應(yīng)用層的開(kāi)發(fā),可以通過(guò)智能合約實(shí)現(xiàn)較復(fù)雜的去中心化操作。
實(shí)現(xiàn)信息安全,主要應(yīng)該解決實(shí)體間的信任關(guān)系問(wèn)題。無(wú)線網(wǎng)絡(luò)通信數(shù)據(jù)聚合技術(shù)的主要目的是,通過(guò)節(jié)點(diǎn)計(jì)算將可靠性差且冗余的數(shù)據(jù)剔除,同時(shí)對(duì)中間聚合節(jié)點(diǎn)接收到的來(lái)自子節(jié)點(diǎn)的隱私信息進(jìn)行聚合處理,從而減少通信開(kāi)銷(xiāo)、延長(zhǎng)無(wú)線通信網(wǎng)絡(luò)生命周期。
首先,對(duì)數(shù)據(jù)進(jìn)行初步聚合處理。隱私同態(tài)技術(shù)的特點(diǎn)是,中間節(jié)點(diǎn)可以對(duì)接收到的隱私數(shù)據(jù)直接進(jìn)行聚合操作[7],不需要再對(duì)隱私數(shù)據(jù)進(jìn)行解密,當(dāng)出現(xiàn)中間聚合節(jié)點(diǎn)被攻擊捕獲的情況時(shí),可以降低隱私信息泄露的概率,提高隱私信息的機(jī)密性[8-9]。在此,采用同態(tài)技術(shù)對(duì)無(wú)線網(wǎng)絡(luò)通信數(shù)據(jù)進(jìn)行聚合處理,具體算法共分為以下4個(gè)階段。
(1) 算法初始化階段。此階段主要可完成數(shù)據(jù)網(wǎng)絡(luò)及其節(jié)點(diǎn)的設(shè)置。如,始端節(jié)點(diǎn)將某個(gè)查詢請(qǐng)求發(fā)送到距離最近的節(jié)點(diǎn)D0,D0節(jié)點(diǎn)再將接收到的查詢請(qǐng)求信號(hào)發(fā)送至其他節(jié)點(diǎn),于是建立了一個(gè)以D0節(jié)點(diǎn)為始端節(jié)點(diǎn)的數(shù)據(jù)聚合樹(shù);之后,始端節(jié)點(diǎn)向網(wǎng)絡(luò)內(nèi)每個(gè)節(jié)點(diǎn)發(fā)布Hash函數(shù)的參數(shù)α,α為大的素?cái)?shù);最后,始端節(jié)點(diǎn)向各個(gè)節(jié)點(diǎn)發(fā)送對(duì)應(yīng)的地址(ID)信息。
(2) 數(shù)據(jù)準(zhǔn)備階段。對(duì)需要聚合的數(shù)據(jù)進(jìn)行隱私數(shù)據(jù)采集及加密處理。當(dāng)子節(jié)點(diǎn)接收到始端節(jié)點(diǎn)的查詢請(qǐng)求時(shí),各節(jié)點(diǎn)隨即對(duì)監(jiān)測(cè)區(qū)域進(jìn)行檢測(cè),并將所采集到的隱私數(shù)據(jù)Yi存儲(chǔ)在內(nèi)存中,再對(duì)Yi進(jìn)行加密處理,以保證隱私數(shù)據(jù)在上傳過(guò)程中的機(jī)密性。其加密算法為:
Mi=Enc(Yi)=Yi+IDi
(1)
式中:Mi表示密文;Enc表示加密函數(shù);IDi表示節(jié)點(diǎn)閾值。
然后,計(jì)算出感知數(shù)據(jù)的同態(tài)消息驗(yàn)證碼,供始端節(jié)點(diǎn)對(duì)接收到的數(shù)據(jù)進(jìn)行完整性判斷。其同態(tài)Hash驗(yàn)證碼函數(shù)為:
H(Yi)=αYi
(2)
式中:H()表示同態(tài)Hash函數(shù)。
最后,將子節(jié)點(diǎn)密文信息和同態(tài)Hash消息驗(yàn)證碼(Mi,H(Yi))上傳至上層聚合節(jié)點(diǎn)。
(3) 數(shù)據(jù)聚合階段。對(duì)于需要進(jìn)行聚合和隱私保護(hù)的數(shù)據(jù),在完成驗(yàn)證之后,即對(duì)其進(jìn)行聚合處理。首先,進(jìn)行密文聚合處理,采用基于端到端的加密處理機(jī)制。上層聚合節(jié)點(diǎn)在未對(duì)接收到的隱私信息進(jìn)行解密的情況下,直接對(duì)隱私信息進(jìn)行聚合處理,減少了運(yùn)算開(kāi)銷(xiāo),也降低了節(jié)點(diǎn)被妥協(xié)的風(fēng)險(xiǎn),增強(qiáng)了隱私信息的機(jī)密性。其次,對(duì)節(jié)點(diǎn)ID進(jìn)行聚合,使中間聚合節(jié)點(diǎn)只需上傳少量數(shù)據(jù)即可在一定程度上減少網(wǎng)絡(luò)的通信開(kāi)銷(xiāo)。其聚合函數(shù)表示為:
(3)
然后,對(duì)Hash函數(shù)消息驗(yàn)證碼進(jìn)行聚合。上層聚合節(jié)點(diǎn)將接收到的消息驗(yàn)證碼進(jìn)行聚合處理,將其聚合成一個(gè)消息驗(yàn)證碼,以減少數(shù)據(jù)的通信開(kāi)銷(xiāo)。其聚合函數(shù)表示為:
(4)
最后,將隱私信息的聚合結(jié)果(MA,HA)上傳至上層節(jié)點(diǎn),并循環(huán)數(shù)據(jù)聚合階段的操作,直到始端接收到最終的聚合數(shù)據(jù)。
(4) 數(shù)據(jù)驗(yàn)證階段。完成數(shù)據(jù)聚合后,還需對(duì)聚合后的數(shù)據(jù)結(jié)果進(jìn)行驗(yàn)證。在開(kāi)始驗(yàn)證前,首先要始端節(jié)點(diǎn)對(duì)其接收到的聚合數(shù)據(jù)進(jìn)行解密處理。其解密函數(shù)表示為:
(5)
其中:D()為Dec解密函數(shù)。
再對(duì)解密處理后的隱私信息重新進(jìn)行計(jì)算,并核對(duì)其同態(tài)消息驗(yàn)證碼:
H(SY)=αSY
(6)
HA和H(SY)若相等,表明隱私數(shù)據(jù)安全;否則,表明隱私數(shù)據(jù)在上傳中遭到了篡改,則丟棄此數(shù)據(jù)。
在上述無(wú)線網(wǎng)絡(luò)通信數(shù)據(jù)聚類處理的基礎(chǔ)上,通過(guò)區(qū)塊鏈技術(shù)對(duì)聚合算法中的數(shù)據(jù)進(jìn)行隱私保護(hù)[10]。Sk表示生成的私鑰,Gk表示生成的公鑰,則有
Sk=SHA256(Yi)
Gk=Secp256k1(Sk)
(7)
式中:SHA256表示哈希算法;Secp256k1表示ECC橢圓曲線算法。
在數(shù)據(jù)傳遞的過(guò)程中,每輪區(qū)塊的生成率影響著傳輸網(wǎng)絡(luò)的安全性,且:
(8)
式中:P為每輪區(qū)塊的生成率;Vr為信息交換在傳輸網(wǎng)絡(luò)中的傳播速率;S為區(qū)塊在傳輸網(wǎng)絡(luò)中的大??;tr為每輪持續(xù)時(shí)間。
區(qū)塊在傳輸網(wǎng)絡(luò)中生成的時(shí)間間隔td與每輪持續(xù)時(shí)間成正比,因此:
(9)
由此可知,交易傳播速度、區(qū)塊生成時(shí)間間隔和區(qū)塊大小影響著傳輸網(wǎng)絡(luò)在傳輸網(wǎng)絡(luò)中的安全性,且相互制約。于是,區(qū)塊在傳輸網(wǎng)絡(luò)中生成的時(shí)間間隔與區(qū)塊大小的關(guān)系可以表示為:
(10)
式中:s為每個(gè)交易數(shù)據(jù)在傳輸網(wǎng)絡(luò)中的平均大?。籕為每秒上傳傳輸網(wǎng)絡(luò)中的交易數(shù)量。在給定信息交換數(shù)量和交換信息數(shù)據(jù)大小的情況下,區(qū)塊大小及其在傳輸網(wǎng)絡(luò)中生成的時(shí)間間隔之間會(huì)相互制約。
應(yīng)用此算法實(shí)現(xiàn)對(duì)每輪持續(xù)時(shí)間、區(qū)塊大小、交易傳播速度、區(qū)塊生成間隔與區(qū)塊安全性之間的制約關(guān)系的控制,最終以公鑰和私鑰的形式實(shí)現(xiàn)對(duì)傳輸網(wǎng)絡(luò)聚合數(shù)據(jù)隱私的保護(hù)。
通過(guò)實(shí)驗(yàn)來(lái)驗(yàn)證本次算法的有效性。實(shí)驗(yàn)設(shè)備環(huán)境為Win7CPUCroei34G,軟件環(huán)境為Matlab。在覆蓋面積為100 m×100 m的區(qū)域內(nèi)隨機(jī)部署1 000個(gè)節(jié)點(diǎn),通信節(jié)點(diǎn)傳輸半徑為30 m,參數(shù)α為10 B。觀察算法的隱私性,并與文獻(xiàn)[3][4]方法進(jìn)行對(duì)比。設(shè)定密鑰池的規(guī)模為1 000,妥協(xié)節(jié)點(diǎn)的比例設(shè)為30%。
(1) 數(shù)據(jù)隱私保護(hù)性能對(duì)比。選取不同私鑰數(shù)對(duì)應(yīng)的節(jié)點(diǎn)隱私泄露概率,分析數(shù)據(jù)隱私保護(hù)性能,隱私數(shù)據(jù)泄露與妥協(xié)節(jié)點(diǎn)數(shù)的關(guān)系如圖2所示。
圖2 隱私數(shù)據(jù)泄露與妥協(xié)節(jié)點(diǎn)數(shù)的關(guān)系
可以看出,當(dāng)妥協(xié)節(jié)點(diǎn)所占比例大于5%時(shí),隱私泄露概率增幅逐漸減小,妥協(xié)節(jié)點(diǎn)增加相同比例造成的隱私泄露概率并未隨之出現(xiàn)大幅增加。這是因?yàn)?,?jié)點(diǎn)使用與其上層節(jié)點(diǎn)或子節(jié)點(diǎn)共享的私鑰構(gòu)建信息傳遞關(guān)系,區(qū)塊鏈技術(shù)的制約關(guān)系實(shí)現(xiàn)了對(duì)節(jié)點(diǎn)之間異常數(shù)據(jù)擾動(dòng)的干擾。妥協(xié)節(jié)點(diǎn)數(shù)量增加帶來(lái)的影響主要包括2個(gè)方面:首先,傳輸網(wǎng)絡(luò)中的節(jié)點(diǎn)將會(huì)使其相鄰節(jié)點(diǎn)的喚醒共識(shí)機(jī)制,以生成更為復(fù)雜的擾動(dòng)數(shù)據(jù),增強(qiáng)傳輸網(wǎng)絡(luò)抵抗外部攻擊的能力;其次,當(dāng)節(jié)點(diǎn)被捕獲時(shí),攻擊者需對(duì)已獲取的中間節(jié)點(diǎn)加密信息進(jìn)行破譯,才有機(jī)會(huì)獲取更多的隱私數(shù)據(jù),于是加大了隱私數(shù)據(jù)泄露的風(fēng)險(xiǎn)。
(2) 抗數(shù)據(jù)丟失能力。對(duì)比不同參與節(jié)點(diǎn)數(shù)量情況下的數(shù)據(jù)丟包量,分析本次方法的安全性能。實(shí)際參與數(shù)據(jù)聚合的節(jié)點(diǎn)比例與丟包率的關(guān)系如圖3所示。
圖3 實(shí)際參與數(shù)據(jù)聚合的節(jié)點(diǎn)比例與丟包率的關(guān)系
可以看出,當(dāng)部分節(jié)點(diǎn)數(shù)據(jù)未被始端成功接收時(shí),即無(wú)線網(wǎng)絡(luò)中節(jié)點(diǎn)未全部參與聚合,便會(huì)出現(xiàn)數(shù)據(jù)丟失的情況。與文獻(xiàn)[3][4]對(duì)比,本次算法在參與聚合節(jié)點(diǎn)比例低于90%的情況下顯示出較高的數(shù)據(jù)保護(hù)能力,在參與聚合的節(jié)點(diǎn)數(shù)僅為50%的情況下丟包率依然穩(wěn)定在0.05%以內(nèi)。這主要是因?yàn)?,聚合?shù)據(jù)在節(jié)點(diǎn)之間傳遞的過(guò)程中,持續(xù)時(shí)間、區(qū)塊大小、交易傳播速度、區(qū)塊生成間隔受到區(qū)塊鏈技術(shù)的制約,制約關(guān)系隨著參與節(jié)點(diǎn)數(shù)的減少而減弱。
(3) 通信開(kāi)銷(xiāo)情況。對(duì)比不同節(jié)點(diǎn)數(shù)量情況下每輪信息傳遞的能量消耗,分析本次方法的通信開(kāi)銷(xiāo)情況。通信開(kāi)銷(xiāo)對(duì)比情況如圖4所示。
圖4 通信開(kāi)銷(xiāo)對(duì)比
可以看出,在生命周期內(nèi)所有節(jié)點(diǎn)每輪消耗的總能量是不相同的。與文獻(xiàn)[3]、[4]中的算法相比,本次算法每輪消耗的總能量最少。由此可見(jiàn),本次算法在實(shí)現(xiàn)隱私數(shù)據(jù)保護(hù)的同時(shí),并未對(duì)傳輸節(jié)點(diǎn)的開(kāi)銷(xiāo)產(chǎn)生負(fù)面影響,不會(huì)導(dǎo)致傳輸網(wǎng)絡(luò)的生命周期縮短。
本次研究提出基于區(qū)塊鏈技術(shù)的無(wú)線網(wǎng)絡(luò)通信數(shù)據(jù)聚合隱私算法,在隱私同態(tài)技術(shù)支持下對(duì)數(shù)據(jù)進(jìn)行初步加密與聚合處理。采用區(qū)塊鏈技術(shù)實(shí)現(xiàn)對(duì)聚合后數(shù)據(jù)傳輸網(wǎng)絡(luò)的隱私保護(hù),根據(jù)數(shù)據(jù)在區(qū)塊間的持續(xù)時(shí)間、區(qū)塊大小、交易傳播速度、區(qū)塊生成間隔等特性建立制約關(guān)系,提高數(shù)據(jù)的安全性。實(shí)驗(yàn)結(jié)果顯示:在不影響通信開(kāi)銷(xiāo)的前提下,妥協(xié)節(jié)點(diǎn)數(shù)比例小于30%時(shí),數(shù)據(jù)泄露概率始終保持在50%以下;當(dāng)參與聚合的節(jié)點(diǎn)數(shù)比例為50%時(shí),丟包率仍穩(wěn)定在0.05%以內(nèi)。這表明本算法具有較高的安全性。