吳云鵬,張書奎+,龍 浩,2,張 力
(1.蘇州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006;2.徐州工業(yè)職業(yè)技術(shù)學(xué)院 信息與電氣工程學(xué)院,江蘇 徐州 221002)
移動(dòng)群智感知(MCS)[1,2]通過從普通用戶攜帶的嵌入了大量傳感器的智能設(shè)備中獲取感知數(shù)據(jù),降低了任務(wù)所有者的數(shù)據(jù)采集成本,因此有著廣闊的應(yīng)用前景[3-5,7-10]。但是用戶貢獻(xiàn)的感知數(shù)據(jù)中會(huì)隱含著用戶的年齡、行蹤和健康狀況等敏感信息[6]。當(dāng)這些信息被攻擊者竊取時(shí),將會(huì)導(dǎo)致嚴(yán)重的隱私泄露甚至人身攻擊[11-15]?,F(xiàn)有的隱私保護(hù)方案雖然在一定程度上防止了隱私信息的泄露,但是當(dāng)請(qǐng)求者在云端進(jìn)行監(jiān)聽、請(qǐng)求者與誠(chéng)實(shí)且好奇的云相互串通、請(qǐng)求者的同態(tài)加密私鑰泄漏等情況發(fā)生時(shí),用戶的隱私信息將無法得到保護(hù)。
針對(duì)上述問題,本文提出了一種基于云輔助的隱私保護(hù)機(jī)制,結(jié)合數(shù)據(jù)擾動(dòng)技術(shù)和密碼學(xué)技術(shù),通過對(duì)用戶貢獻(xiàn)的數(shù)據(jù)拆分處理使得數(shù)據(jù)脫敏,使用同態(tài)加密對(duì)拆分后的數(shù)據(jù)進(jìn)行處理,并使用多個(gè)匿名憑證來隱藏身份,引入誠(chéng)實(shí)且好奇的云對(duì)加密后的數(shù)據(jù)進(jìn)行融合處理,實(shí)現(xiàn)了群智感知中在保護(hù)移動(dòng)用戶隱私信息的情況下進(jìn)行數(shù)據(jù)的融合與分析。通過該方案,可防止攻擊者、云、請(qǐng)求者直接獲取用戶貢獻(xiàn)的數(shù)據(jù),實(shí)現(xiàn)了對(duì)移動(dòng)用戶隱私信息的良好保護(hù),并且由于誠(chéng)實(shí)且好奇的云對(duì)數(shù)據(jù)融合后的結(jié)果仍是密文,防止了其數(shù)據(jù)提供給第三方,從而保護(hù)了請(qǐng)求者的權(quán)益并降低了請(qǐng)求者的計(jì)算與存儲(chǔ)負(fù)擔(dān)。
Ganti等提出移動(dòng)群智感知這一技術(shù)時(shí)就給出了解決移動(dòng)群智感知中隱私保護(hù)問題的3種主要思路:①匿名化[6,16],在將數(shù)據(jù)發(fā)送給第三方前隱藏身份信息;②密碼學(xué)[17,18],使用密碼技術(shù)來轉(zhuǎn)換數(shù)據(jù);③數(shù)據(jù)擾動(dòng),在提交感知數(shù)據(jù)之前,將噪聲信息添加到感知數(shù)據(jù)中,但不會(huì)影響數(shù)據(jù)的準(zhǔn)確性。這3種方式為群智感知中隱私保護(hù)的研究指明了方向。
文獻(xiàn)[6]構(gòu)建了一個(gè)具有隱私保護(hù)的移動(dòng)群智感知系統(tǒng),通過引入k-匿名機(jī)制,向同一用戶頒發(fā)多個(gè)臨時(shí)的匿名證書(數(shù)字證書,即假名,包含相應(yīng)的私鑰/公鑰),使用ECDSA算法對(duì)數(shù)據(jù)樣本進(jìn)行簽名,并通過不同時(shí)刻采用不同的假名向請(qǐng)求者發(fā)送數(shù)據(jù),從而達(dá)到用戶與數(shù)據(jù)的不可鏈接性,使得內(nèi)部攻擊者不能識(shí)別、跟蹤和描述用戶。
文獻(xiàn)[18]為了實(shí)現(xiàn)參與者隱私保護(hù),引入云輔助請(qǐng)求者匯總、存儲(chǔ)和處理收集的數(shù)據(jù),減少了請(qǐng)求者與參與者的直接通信,防止請(qǐng)求者直接接觸數(shù)據(jù),保護(hù)了參與者的隱私信息,同時(shí)使用BGV全同態(tài)加密將參與者的數(shù)據(jù)加密后發(fā)送給云進(jìn)行處理,防止了誠(chéng)實(shí)且好奇的云直接接觸數(shù)據(jù)從而泄露參與者的隱私信息。
文獻(xiàn)[19]也引入了云輔助請(qǐng)求者處理數(shù)據(jù),為了對(duì)隱私信息進(jìn)行保護(hù),對(duì)用戶貢獻(xiàn)的數(shù)據(jù)進(jìn)行BGV全同態(tài)加密,使用環(huán)簽名組對(duì)用戶身份進(jìn)行認(rèn)證,避免了誠(chéng)實(shí)且好奇的云獲得參與者的真實(shí)身份,保護(hù)了用戶的隱私。
文獻(xiàn)[20]為了保護(hù)用戶的隱私,在一定時(shí)間間隔內(nèi),用戶使用多個(gè)不同的假名同時(shí)提交多份報(bào)告來隱藏真實(shí)身份,但其中只有一個(gè)報(bào)告是真實(shí)信息,從而達(dá)到迷惑攻擊者的目的,使得攻擊者很難確定是否為同一用戶。同時(shí)使用Paillier公鑰密碼對(duì)消息加密傳遞,防止了隱私信息的泄露。
上述的這些方案,雖然在一定程度上實(shí)現(xiàn)了對(duì)用戶的隱私信息的保護(hù),但仍然存在一些問題。文獻(xiàn)[6]是明文發(fā)送,使得攻擊者及請(qǐng)求者可以從貢獻(xiàn)的數(shù)據(jù)中挖掘用戶的隱私。文獻(xiàn)[18-20]雖然引入了第三方云來防止請(qǐng)求者直接獲取用戶的數(shù)據(jù),但當(dāng)請(qǐng)求者在云端進(jìn)行監(jiān)聽或者與誠(chéng)實(shí)且好奇的云串通時(shí),則無法保證用戶的隱私信息安全。文獻(xiàn)[18]與文獻(xiàn)[19]使用全同態(tài)加密機(jī)制,使得請(qǐng)求者的成本過高。
Paillier公鑰密碼體制是1999年由Paillier發(fā)明的概率公鑰加密系統(tǒng),它的安全性基于判定復(fù)合剩余類的困難問題[21]。該加密算法是一種同態(tài)加密算法,支持任意多次的加法同態(tài)操作。和其它加密方案一樣,它主要包含3種算法:KeyGen,Encrypt,Decrypt。
c=Epk(m)=gmrNmodN2
(1)
(2)
由于Paillier公鑰加密算法具有加法同態(tài)性質(zhì),對(duì)消息M1和M2的密文做乘法操作就相當(dāng)于對(duì)明文進(jìn)行加法操作后再加密[22]
E(M1)×E(M2)=(gM1r1NmodN2)×(gM2r2NmodN2)=
gM1+M2(r1·r2)NmodN2=E(M1+M2)
(3)
本文所提方案主要包括移動(dòng)用戶(Mobile User),請(qǐng)求者(Requester),云(Cloud),可信任的權(quán)威機(jī)構(gòu)(TA)以及匿名證書頒發(fā)機(jī)構(gòu)(PCA)5個(gè)實(shí)體,如圖1所示。
(1)可信任機(jī)構(gòu)(trust authority,TA):TA負(fù)責(zé)對(duì)整個(gè)系統(tǒng)進(jìn)行初始化,包括對(duì)請(qǐng)求者、云、移動(dòng)用戶、PCA等實(shí)體進(jìn)行注冊(cè),生成公共參數(shù),密鑰分發(fā)以及感知任務(wù)分發(fā)等。
(2)請(qǐng)求者(Requester):請(qǐng)求者是群智感知任務(wù)的發(fā)起者,它想要獲取移動(dòng)用戶數(shù)據(jù)的匯總統(tǒng)計(jì)數(shù)據(jù),但是由于它的存儲(chǔ)及計(jì)算能力的限制,請(qǐng)求者會(huì)將大部分任務(wù)委托給云。
(3)移動(dòng)用戶(Mobile User):移動(dòng)用戶是指擁有智能設(shè)備,同時(shí)愿意為請(qǐng)求者的感知任務(wù)提供數(shù)據(jù)的人。這些數(shù)據(jù)可以是傳感器感知數(shù)據(jù)也可以是其它數(shù)據(jù)。
(4)云(Cloud):云接收移動(dòng)用戶的加密數(shù)據(jù),然會(huì)根據(jù)請(qǐng)求者的要求對(duì)加密數(shù)據(jù)進(jìn)行計(jì)算。
(5)匿名證書頒發(fā)機(jī)構(gòu)(PCA):PCA根據(jù)移動(dòng)用戶的請(qǐng)求為其頒發(fā)多個(gè)匿名證書(即假名),這些假名之間沒有任何聯(lián)系。移動(dòng)用戶使用假名對(duì)自己提交的數(shù)據(jù)進(jìn)行簽名。
圖1 系統(tǒng)架構(gòu)
本文所提出的架構(gòu)中,TA與PCA是可以完全信任的,不會(huì)被攻擊者攻破,也不會(huì)與任何實(shí)體串通。假設(shè)請(qǐng)求者和云都是誠(chéng)實(shí)且好奇的,這就意味著它們將嚴(yán)格遵循預(yù)定義的協(xié)議,但可能會(huì)根據(jù)現(xiàn)有信息挖掘它人隱私,泄露用戶的數(shù)據(jù)[18]。
(1)移動(dòng)用戶:移動(dòng)用戶匿名的參與群智感知任務(wù),其身份信息不應(yīng)泄露。移動(dòng)用戶貢獻(xiàn)的數(shù)據(jù)包含隱私信息,應(yīng)該進(jìn)行保護(hù),即使發(fā)生請(qǐng)求者的同態(tài)加密私鑰被攻擊者竊取或者請(qǐng)求者在云端監(jiān)聽等情況,移動(dòng)用戶貢獻(xiàn)的完整數(shù)據(jù)信息也無法被獲取。同時(shí)用戶的身份與數(shù)據(jù)信息是不可鏈接的。
(2)請(qǐng)求者:請(qǐng)求者應(yīng)在無法知道任何移動(dòng)用戶明文數(shù)據(jù)的情況下,獲得移動(dòng)用戶數(shù)據(jù)的融合結(jié)果。
(3)云:云在不知道移動(dòng)用戶身份與數(shù)據(jù)明文的情況下,根據(jù)請(qǐng)求者的要求誠(chéng)實(shí)的對(duì)數(shù)據(jù)進(jìn)行融合,同時(shí)將計(jì)算結(jié)果在不泄露的情況下傳遞給請(qǐng)求者。
初始時(shí),TA向請(qǐng)求者、云、PCA和移動(dòng)用戶分配公鑰/私鑰,這些密鑰用于相互之間的通信以及數(shù)字簽名,保護(hù)數(shù)據(jù)的安全性及完整性。當(dāng)請(qǐng)求者要獲得特定數(shù)據(jù)的統(tǒng)計(jì)信息時(shí),將它的請(qǐng)求以及同態(tài)加密公鑰hpk發(fā)送給TA。TA收到任務(wù)請(qǐng)求時(shí),廣播請(qǐng)求者的任務(wù)及同態(tài)加密公鑰給所有參與的移動(dòng)用戶。參與的移動(dòng)用戶從智能手機(jī)或者其它感知設(shè)備獲取到所需數(shù)據(jù)m,從PCA通過安全通道獲取n個(gè)匿名憑證AC,為了防止PCA頒發(fā)給用戶的假名組被攻擊者竊取,使用用戶的公鑰對(duì)其加密。為了解決現(xiàn)有方案中請(qǐng)求者在云端監(jiān)聽、請(qǐng)求者與云相互串通或請(qǐng)求者的密鑰泄露等情況從而危及用戶的隱私安全,本文將數(shù)據(jù)m分拆為n份脫敏并使用請(qǐng)求者同態(tài)加密公鑰hpk進(jìn)行加密處理,完整的數(shù)據(jù)可以通過同態(tài)加密的同態(tài)性來計(jì)算獲得,接著使用匿名憑證AC對(duì)加密后的數(shù)據(jù)進(jìn)行簽名,最后將處理好的數(shù)據(jù)發(fā)送給云。云接收到用戶傳來的信息后,首先向PCA驗(yàn)證接收到的匿名憑證真實(shí)性,然后驗(yàn)證數(shù)據(jù)的真實(shí)性以及完整性,接著通過對(duì)密文進(jìn)行計(jì)算獲取統(tǒng)計(jì)信息,并將相應(yīng)結(jié)果簽名后發(fā)送給請(qǐng)求者。請(qǐng)求者接收到消息后驗(yàn)證數(shù)據(jù)的真實(shí)性以及完整性后,使用同態(tài)加密私鑰hsk解密得到融合結(jié)果。
在此階段,TA生成必要的參數(shù)和密鑰,并將移動(dòng)用戶、請(qǐng)求者、云、PCA注冊(cè)到系統(tǒng),同時(shí)為請(qǐng)求者、云、移動(dòng)用戶、PCA生成RSA密鑰,用于身份認(rèn)證以及通信。請(qǐng)求者的公鑰/私鑰對(duì)記為pkr/skr,云的公鑰/私鑰對(duì)記為pkc/skc,移動(dòng)用戶Wi的公鑰/私鑰對(duì)記為pki/ski,PCA的公鑰/私鑰對(duì)記為pkPCA/skPCA。 為了方便敘述,表1將對(duì)本文所涉及到的符號(hào)加以解釋說明。
表1 文中涉及符號(hào)
本節(jié)中將會(huì)對(duì)所提方案各步驟進(jìn)行詳細(xì)介紹。
3.3.1 任務(wù)生成
首先,請(qǐng)求者生成自己的Paillier同態(tài)加密公鑰hpk=(N,g)和私鑰hsk=λ(N)。 然后將任務(wù)τ與公鑰hpk發(fā)送給TA,并用自己的私鑰skr對(duì)其進(jìn)行簽名,以標(biāo)注自己的身份。其中τ是任務(wù)標(biāo)簽,包含著任務(wù)的名稱、操作類型、任務(wù)截止時(shí)間標(biāo)簽等。本文中主要任務(wù)為對(duì)所有用戶貢獻(xiàn)的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)求和。
3.3.2 任務(wù)分發(fā)
TA從請(qǐng)求者收到 {τ,hpk} 后,發(fā)送給所有參與任務(wù)的參與者,同時(shí)將τ發(fā)送給云和PCA,云接收后就會(huì)知道對(duì)于收到的數(shù)據(jù)做何種操作。
3.3.3 假名獲取
用戶為了隱藏真實(shí)身份,同時(shí)為了防止發(fā)送給云的信息被破解使得隱私信息泄露,用戶Wi會(huì)從PCA請(qǐng)求多個(gè)假名(即匿名憑證),當(dāng)PCA對(duì)用戶的身份驗(yàn)證成功后,為其分配其請(qǐng)求數(shù)目的匿名憑證ACWi,j,其形式為
ACWi,j={PIDWi,j,skWi,j,τ,σskPCA,t}
(4)
其中,PIDWi,j是假名身份;skWi,j是對(duì)應(yīng)于假名身份的密鑰;τ是任務(wù)描述,表示此證書用于參與何種任務(wù);σskPCA是PCA使用自己的私鑰skPCA對(duì)其它字段生成的簽名,用于驗(yàn)證假名的真實(shí)性;t為此證書的生命周期時(shí)間。
為了防止PCA頒發(fā)給用戶的假名組被攻擊者等竊取獲得,PCA利用Wi的公鑰pki將生成的所有假名ACWi加密后傳送給用戶Wi。
算法1:數(shù)據(jù)分解算法DSplit(m,n,M(1∶n))
輸入: 感知數(shù)據(jù)m,假名個(gè)數(shù)n,數(shù)組M(1∶n)
輸出: 分解結(jié)果M(1∶n)
(1)初始化數(shù)組M(1∶n),并賦初始值為0
(2)i←1,x←1
(3) whilei (4) ifm<=1 then break endif (5)x←隨機(jī)生成一個(gè)1到m/2之間的整數(shù) (6)M(i)←x (7)m←m-x (8)i++ (9) repeat (10)M(i)←m (11) returnM 3.3.4 感知數(shù)據(jù)提交 用戶Wi收到從PCA頒發(fā)的假名后,使用自己的私鑰ski對(duì)收到的信息進(jìn)行解密,從而獲得假名組ACWi={ACWi,1,ACWi,2,…,ACWi,j…}。 然后用戶Wi將在任務(wù)規(guī)定的時(shí)間范圍內(nèi)參與任務(wù),執(zhí)行任務(wù)規(guī)定的內(nèi)容,提交感知數(shù)據(jù)。 如果請(qǐng)求者在云端監(jiān)聽或者與誠(chéng)實(shí)且好奇的云相互串通,或者請(qǐng)求者的同態(tài)加密私鑰hsk被泄露,用戶的隱私信息將會(huì)受到泄露的風(fēng)險(xiǎn)。為了防止用戶提交給云的數(shù)據(jù)被請(qǐng)求者、云、攻擊者竊取,對(duì)感知數(shù)據(jù)進(jìn)行拆分脫敏,將拆分的數(shù)據(jù)分別與獲得的假名組任意搭配傳送給云。這樣,請(qǐng)求者、誠(chéng)實(shí)且好奇云和惡意攻擊者即使獲得了一份數(shù)據(jù)也無法在眾多數(shù)據(jù)中獲得其它分片數(shù)據(jù),從而使敏感信息得到保護(hù)。 假設(shè)用戶Wi需要提交給云的數(shù)據(jù)是mi,從PCA獲得的假名數(shù)目是ni,將數(shù)據(jù)mi分解為 {mi,1,mi,2,…,mi,ni},mi=mi,1+mi,2+…+mi,ni。 然后將mi,j與請(qǐng)求得到的ACWi,j相對(duì)應(yīng)傳送給云。由于對(duì)數(shù)據(jù)進(jìn)行拆分的方法多種多樣,這里我們提供了算法1作為參考。 ci,j=Ehpk(mi,j)=gmi,jri,jNmodN2 (5) 由于Paillier公鑰密碼體制具有加法同態(tài)性,所以Ehpk(mi)=Ehpk(mi,1)×Ehpk(mi,2)×…×Ehpk(mi,n),云利用此屬性得到用戶貢獻(xiàn)的完整數(shù)據(jù)。證明如下 Ehpk(mi,1)×Ehpk(mi,2)×…×Ehpk(mi,n)= (6) 當(dāng)用戶得到加密的數(shù)據(jù)后,將它們與ACWi相匹配,使用ACWi,j相對(duì)應(yīng)的私鑰skWi,j對(duì)ci,j進(jìn)行簽名,從而保證數(shù)據(jù)的完整性以及不可否認(rèn)性,得到的簽名為σskWi,j,則用戶Wi上傳的數(shù)據(jù)為 {ci,1,σskwi,1,ACWi,1} (7) 移動(dòng)用戶對(duì)數(shù)據(jù)的具體提交方式見算法2。 算法2:數(shù)據(jù)提交算法DSubmit(m,n) 輸入:數(shù)據(jù)m,假名數(shù)n /*C(j)即密文ci,j,S(j)即簽名σskWi,j*/ (1)M(1∶n),C(1∶n),S(1∶n) (2)DSplit(m,n,M(1∶n)) /*將數(shù)據(jù)分解為n份*/ (3)forj←1 tondo (4)C(j)=Ehpk(M(j)) /*Paillier同態(tài)加密處理*/ (5)S(j)←使用第j個(gè)假名ACWi,j相對(duì)應(yīng)得私skWi,j對(duì)C(j)進(jìn)行數(shù)字簽名 (6) 將C(j),S(j)與匿名證書ACWi,j發(fā)送給云 (7)repeat 3.3.5 身份驗(yàn)證與數(shù)據(jù)丟失重傳 云收到從用戶W1,W2,…,Wi,…發(fā)來的消息 {ci,j,δskWi,j,ACWi,j} 后,首先驗(yàn)證匿名證書ACWi,j的真實(shí)性與有效性,并用匿名證書對(duì)應(yīng)的簽名公鑰pkWi,j驗(yàn)證數(shù)字簽名σskWi,j,從而證明用戶身份的真實(shí)性以及數(shù)據(jù)的完整性。 用戶發(fā)送給云的信息由于存在網(wǎng)絡(luò)阻塞、故障等原因可能發(fā)生某份數(shù)據(jù)分片丟失未能傳遞給云的情況。數(shù)據(jù)分片的丟失,使得云無法獲取用戶的完整數(shù)據(jù)參與運(yùn)算,將會(huì)污染計(jì)算結(jié)果,降低計(jì)算結(jié)果的精度,因此需要采用合理的機(jī)制對(duì)數(shù)據(jù)進(jìn)行丟失重傳。本文所采用的方案如下: 云向PCA驗(yàn)證匿名證書時(shí),PCA根據(jù)云與其通信發(fā)來的匿名證書ACWi,j判定云是否接收到了用戶Wi的所有數(shù)據(jù)分片。當(dāng)PCA獲取到云收到的用戶Wi匿名憑證時(shí),與分配給Wi的匿名組中的匿名證書進(jìn)行比對(duì),判斷云是否收到了所有的數(shù)據(jù)分片,如果云未收到的匿名憑證組中的所有匿名,則發(fā)生了數(shù)據(jù)丟失,此時(shí)PCA會(huì)通知用戶Wi對(duì)云未接收到的匿名證書所在的數(shù)據(jù)進(jìn)行重傳。若用戶Wi一定時(shí)間內(nèi)未對(duì)數(shù)據(jù)進(jìn)行重傳,則PCA會(huì)通知云丟棄用戶Wi匿名憑證組所在的所有數(shù)據(jù)。 3.3.6 數(shù)據(jù)融合 云驗(yàn)證成功且與PCA交互完成后,對(duì)接收到的所有數(shù)據(jù)進(jìn)行統(tǒng)計(jì)求和操作。假設(shè)云收到完整數(shù)據(jù)的用戶數(shù)為t,用戶Wi的匿名證書數(shù)為ni,根據(jù)Paillier密碼體制的同態(tài)屬性,云進(jìn)行如下計(jì)算 (8) 其中,mi,j是用戶Wi第j個(gè)假名所對(duì)應(yīng)的數(shù)據(jù)。 3.3.7 融合結(jié)果獲取 (9) 3.3.8 擴(kuò)展 除了求和的計(jì)算之外,我們還可以計(jì)算獲得平均值以及方差。 (1)平均值 (10) (2)方差 (11) 為了便于計(jì)算可以將公式進(jìn)一步化簡(jiǎn)為 (12) (13) 在本章中將基于本文的安全模型與安全性要求對(duì)提出的方案進(jìn)行安全性分析。 對(duì)于移動(dòng)用戶而言,我們通過k-匿名實(shí)現(xiàn)了對(duì)用戶身份信息的保護(hù)。用戶在參與群智感知任務(wù)時(shí),會(huì)向PCA獲取多個(gè)具有一定生命周期、無關(guān)聯(lián)的匿名證書來隱藏自己的真實(shí)身份參與群智感知任務(wù),通過k-匿名良好地保護(hù)了用戶的身份隱私,實(shí)現(xiàn)了不可鏈接性,隨著參與用戶的增多,用戶可以更好地隱藏在人群中。因此,攻擊者、云、請(qǐng)求者將無法獲得移動(dòng)用戶的真實(shí)身份,極好地實(shí)現(xiàn)了用戶身份隱私的保護(hù)。 對(duì)于用戶的數(shù)據(jù)安全,由于采用了Paillier同態(tài)加密,它是基于n次剩余困難問題,在已知密文和公鑰或者只知道密文的情況下,很難計(jì)算獲取到私鑰從而解密得到明文,因此Paillier加密體制是單向的,攻擊者或者云在不知道請(qǐng)求者同態(tài)加密私鑰的情況下無法得知用戶貢獻(xiàn)數(shù)據(jù)的明文信息。 同時(shí),當(dāng)同態(tài)加密私鑰被攻擊者或者云通過某種手段獲知的情況下,或者請(qǐng)求者攔截監(jiān)聽移動(dòng)用戶到云端的消息,請(qǐng)求者與云串通時(shí),本文的方案同樣可以良好保護(hù)用戶的隱私。由于移動(dòng)用戶Wi參與移動(dòng)群智感知任務(wù)時(shí),其數(shù)據(jù)mi將會(huì)被拆分為ni個(gè)子數(shù)據(jù),然后通過請(qǐng)求者的Paillier同態(tài)加密公鑰進(jìn)行加密后發(fā)送給云。假設(shè)請(qǐng)求者的同態(tài)加密私鑰被攻擊者或者云竊取,請(qǐng)求者攔截監(jiān)聽移動(dòng)用戶到云端的消息,或請(qǐng)求者與云串通時(shí),由于用戶對(duì)數(shù)據(jù)進(jìn)行了拆分,并通過多個(gè)不同的無關(guān)聯(lián)的匿名身份將數(shù)據(jù)通過匿名安全信道發(fā)送給云,攻擊者、請(qǐng)求者、云也無法得到完整的真實(shí)數(shù)據(jù)。假如有n個(gè)移動(dòng)用戶參與移動(dòng)群智感知任務(wù),每個(gè)用戶獲取的假名平均為x(x>1),則攻擊者、請(qǐng)求者或者云在得到一個(gè)數(shù)據(jù)的情況下,獲取其它的分拆數(shù)據(jù)組成完整數(shù)據(jù)的概率為 (14) 由于x遠(yuǎn)遠(yuǎn)小于n,則攻擊者或者云得到完整的數(shù)據(jù)的概率近似為1/(xn)x-1。 所以攻擊者、請(qǐng)求者或者云要得到完整的真實(shí)數(shù)據(jù)是很難的。用戶的真實(shí)完整數(shù)據(jù)良好隱藏在大量的數(shù)據(jù)中。因此實(shí)現(xiàn)了對(duì)用戶數(shù)據(jù)的保護(hù),解決了請(qǐng)求者的同態(tài)加密私鑰被攻擊者竊取或者請(qǐng)求者在云端監(jiān)聽等情況下用戶的隱私安全。 在本文中,PCA可以對(duì)匿名證書的真實(shí)性以及有效性進(jìn)行驗(yàn)證,通過云發(fā)送來的匿名證書驗(yàn)證信息來確認(rèn)云是否接受到用戶完整的數(shù)據(jù)分片,對(duì)于未收到的數(shù)據(jù)分片通過重傳與丟棄機(jī)制對(duì)丟失的數(shù)據(jù)分片進(jìn)行重傳,防止了數(shù)據(jù)分片丟失影響融合結(jié)果的準(zhǔn)確性,從而保證數(shù)據(jù)的完整性。 對(duì)于請(qǐng)求者來說,我們將數(shù)據(jù)的收集與計(jì)算委托給了云,請(qǐng)求者只能獲得數(shù)據(jù)的融合結(jié)果,防止了請(qǐng)求者直接接觸用戶的數(shù)據(jù),而且由于用戶對(duì)貢獻(xiàn)的數(shù)據(jù)進(jìn)行了拆分出來,使得請(qǐng)求者在云端進(jìn)行監(jiān)聽或者與云串通時(shí)也無法獲取到用戶的完整數(shù)據(jù)。 對(duì)于云,委托給云的計(jì)算,由于同態(tài)加密的存在,計(jì)算是在密文上進(jìn)行的,結(jié)果是密文,云在沒有同態(tài)加密私鑰的情況下也無法獲得計(jì)算結(jié)果的明文信息,這保障了請(qǐng)求者的權(quán)益,防止了誠(chéng)實(shí)且好奇的云將計(jì)算結(jié)果泄露。同時(shí)由于同態(tài)加密的存在也防止了攻擊者監(jiān)聽云與請(qǐng)求者的通信時(shí),計(jì)算結(jié)果的泄露。 我們基于openssl庫(kù),將Paillier密碼中N設(shè)置為1024位進(jìn)行了模擬實(shí)驗(yàn),使用來自文獻(xiàn)[23]的開放數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)集,并與文獻(xiàn)[6](記為R6)和文獻(xiàn)[20](記為R20)中的方案進(jìn)行對(duì)比分析。 首先,對(duì)移動(dòng)用戶在獲取不同匿名證書數(shù)量的情況下參與移動(dòng)群智感知任務(wù)時(shí)用戶的加密以及簽名成本進(jìn)行實(shí)驗(yàn)分析。如圖2所示,隨著獲取的證書增多,用戶的數(shù)據(jù)分片也將增多,需要對(duì)每個(gè)數(shù)據(jù)分片進(jìn)行加密與簽名,因此隨著用戶獲取匿名證書個(gè)數(shù)的增加,其加密以及簽名成本呈線性增長(zhǎng)。當(dāng)用戶獲取的匿名證書數(shù)為x時(shí),攻擊者、云、請(qǐng)求者得到完整的數(shù)據(jù)的概率近似為1/(xn)x-1,由于感知任務(wù)參與人數(shù)n是一個(gè)較大的數(shù),隨著x的增大,得到完整的數(shù)據(jù)的概率逐漸降低,但當(dāng)x過大時(shí),用戶需要付出較大的成本。為了在保證安全性的同時(shí)降低用戶的成本,用戶在參與移動(dòng)群智感知任務(wù)時(shí),其申請(qǐng)的匿名證書數(shù)應(yīng)在合理的范圍內(nèi)。由于當(dāng)x=2時(shí),概率為1/2n,此時(shí)攻擊者、云、請(qǐng)求者很難得到完整的數(shù)據(jù),用戶完整的數(shù)據(jù)將會(huì)隱藏在眾多用戶的數(shù)據(jù)之中,因此用戶獲取的匿名證書數(shù)應(yīng)在2個(gè)~5個(gè),此時(shí)既能保證安全性又能降低用戶的成本。 圖2 不同匿名證書數(shù)下的花費(fèi)成本 假設(shè)每個(gè)用戶獲取3個(gè)匿名證書,所有的加密、簽名成本為200個(gè)用戶的平均值。如圖3(a)所示,我們的方案與R6和R20的簽名成本相差不大。但R6由于沒有對(duì)用戶貢獻(xiàn)的數(shù)據(jù)進(jìn)行加密等處理,所以R6的加密成本為零。我們的方案與R20的方案均使用了Paillier密碼體制進(jìn)行加密,所以成本相對(duì)較高,這是為了實(shí)現(xiàn)數(shù)據(jù)隱私保護(hù)做出的犧牲,但是如圖3(b)所示,總成本在可接受的范圍內(nèi)。而且與R20相比,在實(shí)現(xiàn)更高的安全性的情況下,總成本要遠(yuǎn)低于R20,具有較好的性能。 圖3 移動(dòng)用戶端成本比較 接著,實(shí)驗(yàn)?zāi)M了200名用戶選定參與移動(dòng)群智感知任務(wù)時(shí)請(qǐng)求者的計(jì)算成本。由于R6沒有對(duì)數(shù)據(jù)進(jìn)行加密,所以其解密成本為零,而我們的方案與R20為了保護(hù)移動(dòng)用戶的隱私,對(duì)數(shù)據(jù)使用了Paillier同態(tài)密碼進(jìn)行加密,請(qǐng)求者接收到的消息依然是密文,因此需要解密獲得結(jié)果,解密成本如圖4(a)所示。如圖4(b)與圖4(c)所示,R6的200人簽名驗(yàn)證成本為224 ms,200個(gè)用戶數(shù)據(jù)融合成本為0.023 ms。由于本文中方案與R20將數(shù)據(jù)融合交給了云,數(shù)據(jù)融合成本為零,只需要對(duì)從云傳來的結(jié)果的簽名進(jìn)行驗(yàn)證,簽名驗(yàn)證成本為0.03 ms,遠(yuǎn)遠(yuǎn)小于R6。對(duì)于請(qǐng)求者的總成本如圖4(d)所示,我們的方案與R20相比請(qǐng)求者的總成本相差不大,而R6要遠(yuǎn)高于我們的方案。 圖4 相同用戶數(shù)下請(qǐng)求者成本比較 如圖5所示,由于本文中的方案與R20將數(shù)據(jù)的融合計(jì)算委托給了云,無論參與用戶數(shù)量是多少,請(qǐng)求者只驗(yàn)證、解密從云中獲取的單個(gè)結(jié)果,所以請(qǐng)求者花費(fèi)的成本是不變的。而R6由于需要驗(yàn)證、計(jì)算從每個(gè)用戶獲取的數(shù)據(jù),所以R6中請(qǐng)求者的成本隨著參與用戶數(shù)的提升而不斷提高。 圖5 不同用戶數(shù)下請(qǐng)求者成本比較 最后,實(shí)驗(yàn)分析了方案擴(kuò)展部分中平均值、方差的計(jì)算總成本。由于本文中的方案將數(shù)據(jù)的融合計(jì)算委托給了云,減輕了請(qǐng)求者的計(jì)算負(fù)擔(dān),所以此處的總成本指的是單個(gè)參與用戶和請(qǐng)求者的成本之和,如圖6所示。 圖6 統(tǒng)計(jì)成本 大量移動(dòng)智能設(shè)備的使用促進(jìn)了移動(dòng)群智感知的發(fā)展,降低了數(shù)據(jù)的采集成本。然而,移動(dòng)用戶在參與感知任務(wù)時(shí)可能面臨隱私信息泄露。為了應(yīng)對(duì)這一挑戰(zhàn),本文提出一種基于云輔助的解決方案,該方案中請(qǐng)求者將感知數(shù)據(jù)的融合計(jì)算委托給云,減輕了請(qǐng)求者的計(jì)算以及存儲(chǔ)負(fù)擔(dān);用戶申請(qǐng)多個(gè)假名并將貢獻(xiàn)的數(shù)據(jù)進(jìn)行拆分脫敏,使用同態(tài)加密對(duì)拆分后的數(shù)據(jù)進(jìn)行處理,實(shí)現(xiàn)了對(duì)移動(dòng)用戶的隱私信息的保護(hù),解決了現(xiàn)有方案中當(dāng)請(qǐng)求者在云端監(jiān)聽或者與云服務(wù)器串通時(shí)無法良好保護(hù)用戶隱私的問題。
gmi,i+mi,2+…+mi,n(ri,1ri,2…ri,n)NmodN2=
Ehpk(mi,1+mi,2+…+mi,n)=Ehpk(mi)
{ci,2,σskwi,2,ACWi,2}
…
{ci,n,σskwi,n,ACWi,n}4 安全性分析
5 實(shí)驗(yàn)分析
6 結(jié)束語