王元慶,劉百祥
(1.復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院上海市智能信息處理重點(diǎn)實(shí)驗(yàn)室,上海 200433;2.上海市區(qū)塊鏈工程技術(shù)研究中心復(fù)旦?眾安區(qū)塊鏈與信息安全聯(lián)合實(shí)驗(yàn)室,上海 200433)
電子問(wèn)卷允許研究機(jī)構(gòu)、政府部門(mén)及商業(yè)公司等問(wèn)卷發(fā)起方以低成本向大量用戶收集問(wèn)卷回應(yīng),以了解用戶偏好、習(xí)慣或行為模式。近年來(lái),用戶隱私備受重視,用戶期望數(shù)據(jù)隱私能被妥善保護(hù),即問(wèn)卷發(fā)起方需要取得用戶對(duì)其隱私保護(hù)能力的信任,這導(dǎo)致不知名機(jī)構(gòu)難以收集數(shù)據(jù)[1]。另外,問(wèn)卷過(guò)程的非公開(kāi)且不受監(jiān)管特性方便了一些惡意問(wèn)卷發(fā)起方偽造或跨大問(wèn)卷結(jié)果[2-3],以取得較好的問(wèn)卷統(tǒng)計(jì)數(shù)據(jù),影響參考這些數(shù)據(jù)所得出的結(jié)論的有效性。而即使問(wèn)卷發(fā)起方誠(chéng)實(shí)可信,若惡意用戶可以偽造身份并多次回應(yīng)問(wèn)卷,也無(wú)法保證問(wèn)卷結(jié)果的真確性[4-5]。
ANONIZE[5]為目前最具代表性的安全匿名問(wèn)卷系統(tǒng),該系統(tǒng)基于零知識(shí)證明技術(shù)保證用戶匿名性及問(wèn)卷驗(yàn)證性,限制了只有問(wèn)卷發(fā)起方選擇的用戶才可提交一次匿名回應(yīng),但系統(tǒng)未關(guān)注各方合謀攻擊。系統(tǒng)委托問(wèn)卷發(fā)起方生成用戶列表,即給予它選擇用戶的手段,它可與惡意用戶合謀,選擇某一誠(chéng)實(shí)用戶與惡意用戶來(lái)發(fā)起問(wèn)卷。誠(chéng)實(shí)用戶若回應(yīng)問(wèn)卷,合謀雙方即可對(duì)該回應(yīng)進(jìn)行反匿名攻擊,也可以與注冊(cè)機(jī)構(gòu)合謀實(shí)行女巫攻擊,只選擇由注冊(cè)機(jī)構(gòu)虛構(gòu)并控制的用戶來(lái)發(fā)起問(wèn)卷,以生成虛假的問(wèn)卷過(guò)程與結(jié)果。
另外,問(wèn)卷系統(tǒng)未關(guān)注對(duì)匿名回應(yīng)的公布,若回應(yīng)被公布,則會(huì)增加用戶隱私風(fēng)險(xiǎn)。文獻(xiàn)[6]提出的統(tǒng)計(jì)手段可對(duì)網(wǎng)飛公司的匿名影評(píng)數(shù)據(jù)進(jìn)行反匿名攻擊。然而若不要求問(wèn)卷發(fā)起方公布回應(yīng),則變相給予它數(shù)據(jù)造假的機(jī)會(huì),可抵賴部分用戶回應(yīng),以取得較好的問(wèn)卷統(tǒng)計(jì)結(jié)果。對(duì)于公布數(shù)據(jù)時(shí)隱私保護(hù)的問(wèn)題,文獻(xiàn)[7]提出一種隱私保護(hù)計(jì)算方案,引入多個(gè)計(jì)算服務(wù)器為數(shù)據(jù)密文進(jìn)行歸總,但該方案未對(duì)數(shù)據(jù)的健壯性進(jìn)行檢查,也未融合差分隱私技術(shù),隱私保護(hù)程度較低。文獻(xiàn)[8]提出Prio 框架,以秘密共享非交互證明技術(shù)(SNIP)來(lái)保證用戶輸入的健壯性,但同樣未令歸總滿足差分隱私。文獻(xiàn)[9]提出PrivaDA 方案,以適用于定點(diǎn)與浮點(diǎn)數(shù)運(yùn)算的安全多方計(jì)算,構(gòu)建了分布式差分隱私模型,但方案未對(duì)用戶輸入的健壯性進(jìn)行檢查,存在輸入污染問(wèn)題。文獻(xiàn)[10-11]方案兼顧了輸入健壯性及差分隱私保護(hù),但它們的模型只有單個(gè)計(jì)算服務(wù)器,適用于智能電表等實(shí)時(shí)數(shù)據(jù)流的場(chǎng)景。
針對(duì)合謀攻擊的難題,本文提出一種去中心化的隱私保護(hù)匿名問(wèn)卷方案。該方案引入多個(gè)問(wèn)卷工作節(jié)點(diǎn),組成一組少數(shù)合謀的計(jì)算服務(wù)器集群,利用門(mén)限簽名技術(shù)為用戶進(jìn)行注冊(cè),抵抗女巫攻擊,且以門(mén)限簽名為問(wèn)卷生成用戶列表,抵抗反匿名攻擊。針對(duì)數(shù)據(jù)公布,將用戶回應(yīng)進(jìn)行同態(tài)加密,把密文上傳至公開(kāi)防篡改平臺(tái)抵抗數(shù)據(jù)抵賴,將所有同態(tài)密文歸總,委托問(wèn)卷工作節(jié)點(diǎn)采用差分隱私技術(shù)與安全多方計(jì)算技術(shù),輸出隱私保護(hù)的問(wèn)卷歸總結(jié)果。
設(shè)G1、G2和GT為3 個(gè)階為素?cái)?shù)p的乘法循環(huán)群。雙線性映射e:G1×G2→GT具有以下3 個(gè)性質(zhì):
1)雙線性:對(duì)于任意u?G1,v?G2和任意a,b?Zp,有e(ua,vb)=e(u,v)ab。
2)非退化性:對(duì)于g1?G1,g2?G2,使e(g1,g2)≠1。
3)可計(jì)算性:對(duì)于任意u?G1,v?G2,e(u,v)可被某有效算法計(jì)算。
ElGamal 加密系統(tǒng)[12]基于DDH 假設(shè)。設(shè)g為群G0的生成元,選擇a,b,c?RZp。DDH 假設(shè)代表(ga,gb,gab)的分布與(ga,gb,gc)的分布計(jì)算不可區(qū)分。ElGamal 加密系統(tǒng)算法如下:
1)Keygen():取私鑰x?RZp,對(duì)應(yīng)公鑰為h=gx。
2)Enc(m):生 成(E1,E2)=(m˙hr,gr),其中r?RZp。
3)Dec(xE1,E2):計(jì)算并得出m←E1(/E2)x。
同態(tài)加密技術(shù)使運(yùn)算方可以在密文上進(jìn)行運(yùn)算,并保證將運(yùn)算結(jié)果解密后的明文與直接在明文上進(jìn)行運(yùn)算的結(jié)果一致。加法同態(tài)加密提供加法運(yùn)算符⊕,使得E(u)⊕E(v)=E(u+v)。本文方案使用基于橢圓曲線(EC-based)的ElGamal 加密系統(tǒng)[13]。設(shè)E為一Zp上的橢圓曲線,選擇E上一點(diǎn)P,選擇一個(gè)可逆線性函數(shù)f:m?Pm。具體算法如下:
1)Keygen():取私鑰x∈RZp,對(duì)應(yīng)公鑰為Y=xP。
2)Enc(m):生成(E1,E2)=((fm)+rY,rP),r?RZp。
3)Dec(xE1,E2):計(jì)算Pm←E1-xE2,得m←f-(1Pm)。
EC-based ElGamal 加密系統(tǒng)的同態(tài)性質(zhì)為Enc(m1)+Enc(m2)=((fm1)+r1Y+(fm2)+r2Y,r1P+r2P)=(f(m1+m2)+(r1+r2)Y,(r1+r2)P)=Enc(m1+m2),其 中,r1,r2?RZp。
設(shè)t、n為2 個(gè)正整數(shù),其中t≤n。(t,n)門(mén)限秘密共享方案[14]讓n名參與者共享秘密,使得由任意k名參與者組成的子集能夠計(jì)算出該秘密當(dāng)且僅當(dāng)t≤k。本文使用一種簡(jiǎn)單的(n,n)門(mén)限方案,以及使用Pedersen 的(t,n)門(mén)限方案[15]。設(shè)Zp為有限域,其中p為素?cái)?shù),且n≤p。2 種方案的具體算法如下:
1)(n,n)門(mén)限方案:設(shè)x?Zp為需要共享的秘密。任意選擇x1,x2,…,xn?RZp,但需滿足x1+x2+…+xn=x,然后將xi與第i名參與者分享。
2)Pedersen 門(mén)限方案:第i位參與者生成(t?1)階的多項(xiàng) 式函數(shù)p(ix)=a0,i+a1,ix+a2,ix2+…+at-1,ixt-1,其中ak,i?RZp,然后向其他n?1 名參與者的第j名參與者分享p(ij)。第i位參與者收到來(lái)自其他參與者的分享后計(jì)算。此時(shí)視為共享秘密,且每位參與者i擁有碎片yi。拉格朗日插值法保證可從任意t個(gè)碎片中得到,其中Ψi=。Pedersen 門(mén)限方案可與ElGamal 加密系統(tǒng)相結(jié)合,擴(kuò)展基于ElGamal 加密系統(tǒng)的簽名方案至對(duì)應(yīng)的門(mén)限簽名方案[16]。本文使用基于PS 數(shù)字簽名方案[17]的門(mén)限簽名方案。
差分隱私[18]通過(guò)向數(shù)據(jù)加入噪音,使得每項(xiàng)數(shù)據(jù)的存在與否都不會(huì)對(duì)任意隨機(jī)查詢函數(shù)的輸出的概率分布產(chǎn)生有效影響。該技術(shù)可以抵御對(duì)數(shù)據(jù)集的背景知識(shí)攻擊,且可按需求調(diào)整抵御強(qiáng)度,以提高噪音為代價(jià)帶來(lái)高度的隱私保護(hù)。
定義1(ε-差分隱私)設(shè)D1和D2為2 個(gè)相鄰數(shù)據(jù)集,即它們只相異于1 項(xiàng)數(shù)據(jù)。隨機(jī)函數(shù)f滿足ε-差分隱私:
其中,Rf為f的所有可能輸出的集合。
定義2(敏感度)設(shè)d為一正整數(shù),f:D→Rd為一函數(shù)。f的敏感度S(f)定義為:
其中,max 的范圍是D上所有相鄰數(shù)據(jù)集D1和D2。由此S(f)衡量任意一項(xiàng)數(shù)據(jù)的存在與否對(duì)f的輸出的最大改變。Laplace 機(jī)制[18]是一種可以令函數(shù)滿足ε-差分隱私的方法。它為函數(shù)的輸出加入來(lái)自分布函數(shù)形式為P(x)=1/2λ e-λ|x|的Laplace 分布Lap(λ)的噪音,其中λ ≥S(f)/ε。
安全多方計(jì)算技術(shù)使分別持有秘密s1,s2,…,sn的n名參與者p1,p2,…,pn進(jìn)行交互,共同計(jì)算出函數(shù)(fs1,s2,…,sn)的結(jié)果。其中SPDZ 協(xié)議[19]保證了多數(shù)惡意模型下的安全性,即攻擊者即使在控制了n?1 個(gè)參與者的情況下,也不能通過(guò)協(xié)議獲取誠(chéng)實(shí)參與者的秘密。協(xié)議同時(shí)保證了計(jì)算的正確性,即若參與者遵循協(xié)議,則能夠計(jì)算出正確結(jié)果,否則協(xié)議終止。
零知識(shí)證明技術(shù)[20]的應(yīng)用場(chǎng)景涉及一個(gè)證明方和一個(gè)驗(yàn)證方,其中證明方可以在不泄漏知識(shí)本身的情況下聲明他擁有某樣知識(shí),并把該聲明的證明交予驗(yàn)證方驗(yàn)證。該技術(shù)保證驗(yàn)證方從證明中只能學(xué)習(xí)到聲明的真確性。非交互零知識(shí)證明(NIZK)技術(shù)可使證明方在不與驗(yàn)證方通信的情況下證明知識(shí)。對(duì)于關(guān)系R及語(yǔ)言L={x:?w,(x,w)?R}的知識(shí)證明,其中,秘密w為知識(shí),x為聲明。一般采用ZK{w:x?L}的形式描述零知識(shí)證明。在實(shí)際應(yīng)用中,一般使用Fiat-Shamir 啟發(fā)式與Σ 協(xié)議[20]來(lái)實(shí)例化一個(gè)NIZK。
如圖1 所示,本文方案共有3 組參與方,包括問(wèn)卷工作節(jié)點(diǎn)(SWN)、問(wèn)卷發(fā)起方(SA)和用戶(U)。
圖1 去中心化隱私保護(hù)匿名問(wèn)卷方案模型Fig.1 Scheme model of decentralized privacy preserving anonymous surveying
本文方案主要有以下3 個(gè)部分組成:
1)問(wèn)卷工作節(jié)點(diǎn)(SWN)負(fù)責(zé)維護(hù)性別、年齡、職業(yè)等用戶屬性,生成用戶令牌碎片,主要包含回應(yīng)令牌碎片的用戶列表分表、負(fù)責(zé)驗(yàn)證回應(yīng)中的證明和公布隱私保護(hù)的結(jié)果。
2)問(wèn)卷發(fā)起方(SA)是收集問(wèn)卷的一方,負(fù)責(zé)發(fā)布問(wèn)卷面向的用戶屬性、問(wèn)卷題目及對(duì)應(yīng)的選項(xiàng)。
3)用戶(U)是問(wèn)卷的回應(yīng)方,回應(yīng)包含問(wèn)卷選擇密文、密文健壯性的證明以及擁有用戶令牌、回應(yīng)令牌的證明。
本文方案假設(shè)問(wèn)卷工作節(jié)點(diǎn)間存在安全通信通道,且基于某公開(kāi)防篡改的平臺(tái),如以太坊區(qū)塊鏈[21],并在平臺(tái)上發(fā)布問(wèn)卷、提交回應(yīng)及公布問(wèn)卷結(jié)果。圖1 中的步驟概括了方案的流程,對(duì)應(yīng)的描述如下:
1*)問(wèn)卷工作節(jié)點(diǎn)根據(jù)Pedersen 門(mén)限方案,生成各自的(t,n)門(mén)限簽名的公私鑰對(duì),根據(jù)(n,n)門(mén)限秘密共享方案,生成同態(tài)加密公鑰。
2)用戶向各問(wèn)卷工作節(jié)點(diǎn)注冊(cè),節(jié)點(diǎn)收集用戶屬性,驗(yàn)證用戶身份,決定用戶令牌碎片的發(fā)放。
3)用戶收集任意t個(gè)碎片,組合成用戶令牌。
4)問(wèn)卷發(fā)起方在平臺(tái)上發(fā)起問(wèn)卷題目與選項(xiàng),并確定問(wèn)卷面向用戶的屬性。
5)各問(wèn)卷工作節(jié)點(diǎn)根據(jù)問(wèn)卷所列用戶屬性,為問(wèn)卷生成包含回應(yīng)令牌碎片的用戶列表分表。
6)用戶收集任意t個(gè)碎片,組合成回應(yīng)令牌。
7)用戶回應(yīng)問(wèn)卷,回應(yīng)包括選擇密文、密文健壯性的證明以及擁有用戶令牌、回應(yīng)令牌的證明。
8*)問(wèn)卷工作節(jié)點(diǎn)驗(yàn)證用戶回應(yīng)中各證明的正確性,通過(guò)驗(yàn)證的回應(yīng)被視為有效。
9)結(jié)束問(wèn)卷,問(wèn)卷發(fā)起方同態(tài)歸總有效回應(yīng)。
10)問(wèn)卷工作節(jié)點(diǎn)運(yùn)行安全多方計(jì)算,解密回應(yīng)歸總,采用Laplace 機(jī)制,公布隱私保護(hù)的問(wèn)卷結(jié)果。
本文方案模型包括5 個(gè)階段,分別為初期設(shè)置、用戶注冊(cè)、問(wèn)卷發(fā)布、問(wèn)卷收集及問(wèn)卷結(jié)果公布。以下對(duì)各階段的算法進(jìn)行形式化定義:
1)Setup(1λ)→(PK,{Ai}I,A)。由問(wèn)卷工作節(jié)點(diǎn){SWNi}i執(zhí)行,生成同態(tài)加密公鑰PK、{SWNi}i的門(mén)限簽名公鑰{Ai}i和對(duì)應(yīng)的分布式公鑰A。
2)Reg(id,{attrk}k,sid)→σU。由用戶U 與各SWNi交互執(zhí)行。U 以身份id、屬性{attrk}k和秘密sid向所有SWNi注冊(cè),收集至少t個(gè)用戶令牌碎片,最后組成用戶令牌σU。
3)Survey()→(Q,{Mj}j,{Li}i)。由問(wèn)卷發(fā)起方SA 和各SWNi執(zhí)行,SA 生成問(wèn)卷Q和選擇{Mj}j,各SWNi生成用戶列表分表Li。
4)Submit(id,sid,{mj}j,σU,{Li}i)→RU。由U 執(zhí)行,算法中U 以公鑰PK 同態(tài)加密問(wèn)卷選擇{mj}j,提供密文健壯性的證明。另從{Li}i收集t個(gè)回應(yīng)令牌碎片,組成回應(yīng)令牌σid。再以身份id、秘密sid提供持有用戶令牌σU和回應(yīng)令牌σid的證明。最后組合密文和各證明,形成回應(yīng)RU。
5)Announce({xi}I,{RU}U,ε)→{Oj,d}j,d。由{SWNi}i和SA 執(zhí)行。{SWNi}i確認(rèn)所有用戶回應(yīng)RU的有效性,SA 同態(tài)歸總所有有效回應(yīng)中的問(wèn)卷選擇密文。{SWNi}i運(yùn)行多方安全計(jì)算,解密同態(tài)歸總,為歸總加入噪音,輸出隱私保護(hù)的問(wèn)卷結(jié)果{Oj,d}j,d。
本節(jié)構(gòu)建方案的安全模型,描述在安全模型下本文方案的特性。
1)問(wèn)卷工作節(jié)點(diǎn)集群只有少數(shù)合謀的惡意單位,它們會(huì)在各階段不遵循方案流程并采取各種攻擊。雖可在現(xiàn)實(shí)中監(jiān)管節(jié)點(diǎn),但不排除少數(shù)節(jié)點(diǎn)受攻擊者控制。其他多數(shù)節(jié)點(diǎn)為誠(chéng)實(shí)但好奇的單位,它們遵循方案流程,但好奇流程中的數(shù)據(jù)密文。方案委托問(wèn)卷工作節(jié)點(diǎn)驗(yàn)證用戶回應(yīng)的有效性,回應(yīng)為公開(kāi)可驗(yàn)證的,因此假設(shè)節(jié)點(diǎn)會(huì)正確地驗(yàn)證回應(yīng)。
2)問(wèn)卷發(fā)起方是惡意的。為提高問(wèn)卷參與率及提高問(wèn)卷結(jié)果的顯著性,會(huì)嘗試復(fù)制、篡改、抵賴或偽造用戶回應(yīng)。
3)用戶是惡意的。在一些有回應(yīng)獎(jiǎng)勵(lì)的問(wèn)卷中,它們會(huì)嘗試多次提交回應(yīng)和提交無(wú)效回應(yīng)。
2.2.1 匿名性
匿名性要求用戶的回應(yīng)過(guò)程及回應(yīng)數(shù)據(jù)不包含用戶身份的知識(shí),在此特性下無(wú)法關(guān)聯(lián)用戶身份與回應(yīng)。具體而言,若有2 名用戶分別提交了2 個(gè)回應(yīng),任意擁有多項(xiàng)式時(shí)間算力(PPT)的敵手都不能構(gòu)造出優(yōu)于猜測(cè)的算法來(lái)關(guān)聯(lián)身份與回應(yīng)。參考ANONIZE 的匿名性定義,以敵手A 和挑戰(zhàn)者C 間的游戲描述匿名性的要求。游戲中敵手A 控制SA 和{SWNi}i中少數(shù)節(jié)點(diǎn),且可隨意虛構(gòu)新用戶提交回應(yīng),即A 擁有預(yù)言機(jī)Submit 的訪問(wèn)權(quán)。唯一限制是對(duì)于C 所構(gòu)造的用戶id,A 不能訪問(wèn)Submit(id,-)。
1)A 與{SWNi}i中多數(shù)節(jié)點(diǎn)執(zhí)行Setup(1λ)。C構(gòu)造身份為id0和id1的用戶U0和U1,使U0和U1與{SWNi}i交互執(zhí)行Reg(idk,-,(sid)k)→(σU)k。
2)A 與{SWNi}i中多數(shù)節(jié)點(diǎn)執(zhí)行Survey()→(Q,{Mj}j,{Li}i),使得{Li}i中有至少t個(gè)U0和U1回應(yīng)令牌碎片。C 生成m0、m1,選擇挑戰(zhàn)b←{0,1},對(duì)于k=0和1,執(zhí)行Submit(idk,(sid)k,mk⊕b,{Li}i)→(RU)k⊕b。C 未對(duì)mk⊕b加密,在無(wú)機(jī)密性的情況下滿足匿名性。
3)A 可訪問(wèn)Submit(id,-),但id?{id0,id1}。
4)A 輸出b’←{0,1}。若b’=b,則A 勝出。
定義3(匿名性)方案滿足匿名性,當(dāng)對(duì)于任意PPT 的敵手A,有|Pr[Awins]-1/2|≤negl(λ),其 中,negl 為可忽略函數(shù),λ為安全參數(shù)。
2.2.2 驗(yàn)證性
驗(yàn)證性要求只有在用戶列表分表中有至少t個(gè)回應(yīng)令牌碎片的用戶才可能提交有效回應(yīng),也要求每個(gè)回應(yīng)對(duì)用戶的唯一性,即在匿名性的情況下仍可檢測(cè)到用戶提交多個(gè)回應(yīng)。以下以游戲定義驗(yàn)證性,游戲中敵手A 控制SA 和{SWNi}i中少數(shù)節(jié)點(diǎn)。
1)A 與{SWNi}i中多數(shù)節(jié)點(diǎn)執(zhí)行Setup(1λ)。C選擇用戶屬性attr。
2)A 可以訪問(wèn)預(yù)言機(jī)Reg(id,attr,sid)→σU來(lái)注冊(cè)擁有屬性attr 的用戶不多于p(λ)次,其中p為多項(xiàng)式函數(shù)。A 可以訪問(wèn)預(yù)言機(jī)Reg(id,{attrk}k,sid)→σU不多于p(λ)次,其中attr?{attrk}k。
3)A 與{SWNi}i中多數(shù)節(jié)點(diǎn)執(zhí)行Survey()→(Q,{Mj}j,{Li}i),其中多數(shù)節(jié)點(diǎn)的Li包含U 的回應(yīng)令牌碎片當(dāng)且僅當(dāng)U 擁有屬性attr。
4)A 可輸出RU←Submit(id,sid,{mj}j,σU,{Li}i)不多于2p(λ)次。
5)C 驗(yàn)證所有回應(yīng){RU}U。設(shè)R為所有有效回應(yīng),L為某多數(shù)節(jié)點(diǎn)的Li。若|R|>|L|,則A 勝出。
定義4(驗(yàn)證性)方案滿足驗(yàn)證性,對(duì)于任意PPT 的敵手A,有Pr[A wins]≤negl(λ)。
2.2.3 機(jī)密性
機(jī)密性要求用戶的回應(yīng)過(guò)程及回應(yīng)數(shù)據(jù)不包含問(wèn)卷選擇明文的知識(shí),在此特性下無(wú)法得知回應(yīng)的問(wèn)卷選擇。回應(yīng)發(fā)布在公開(kāi)平臺(tái)上,若不能保密回應(yīng)的選擇,即使?jié)M足匿名性,也難以抵抗統(tǒng)計(jì)手段的反匿名攻擊,因此機(jī)密性在方案中尤其重要。
機(jī)密性的定義類似于匿名性,區(qū)別在于C 只控制一個(gè)用戶U0,只執(zhí)行Submit(id0,(sid)0,mb,σU,{Li}i)→(RU)b一 次,但對(duì)mb加密。設(shè)該游戲?yàn)镚ame’。
定義5(機(jī)密性)方案滿足機(jī)密性,任意PPT 的敵手A 在Game’中勝出的概率小于1/2+negl(λ)。
2.2.4 隱私保護(hù)
隱私保護(hù)保證問(wèn)卷回應(yīng)的歸總滿足ε-差分隱私。方案在安全多方計(jì)算協(xié)議中為歸總加入噪音,為此給出符合場(chǎng)景的f-隱私[22]定義。
定義6(f-隱私)給定任意一個(gè)計(jì)算函數(shù)f的安全多方計(jì)算協(xié)議Π,假設(shè)協(xié)議Π 共有s個(gè)計(jì)算方,在其中有不多于s?1 個(gè)惡意計(jì)算方時(shí),函數(shù)f的計(jì)算滿足f-隱私,當(dāng)存在一個(gè)以協(xié)議的公共參數(shù)P、惡意方集合I、能查詢惡意方的預(yù)言機(jī)O與函數(shù)輸出y=f(s1,s2,…,sn)作為輸入的模擬器SI,且該模擬器可模擬協(xié)議中惡意方的計(jì)算的過(guò)程,使得模擬過(guò)程的分布與真正在協(xié)議中計(jì)算過(guò)程的分布不可區(qū)分,即{S(IP,I,O,y)}≡{VIEWΠ(I)}。
下文給出符合多工作節(jié)點(diǎn)場(chǎng)景下的不可區(qū)分性的ε-分布式差分隱私(ε-IND-DDP)定義[9,22]。
定義7(ε-IND-DDP)假設(shè)VΠ為協(xié)議Π 所有可能的過(guò)程的集合。涉及多數(shù)惡意計(jì)算方I的模型下的協(xié)議Π 所執(zhí)行的函數(shù)f滿足ε-IND-DDP,對(duì)于任意相鄰數(shù)據(jù)集D1和D2,以及任意過(guò)程V?VΠ,有Pr[(I)?V]≤eεPr[VIEWΠ(D2)(I)?V]+negl(λ)。
設(shè)安全參數(shù)為λ。假設(shè)共有n個(gè)問(wèn)卷工作節(jié)點(diǎn){SWN}ii。方案為少數(shù)合謀模型,設(shè)定門(mén)限為t=n/2+1,采用SPDZ 安全多方計(jì)算協(xié)議。根據(jù)Elgamal同態(tài)加密方案,采用PS 數(shù)字簽名方案。PS 數(shù)字簽名方案包含以下3 個(gè)算法:
1)Keygen():生成密鑰sk=(x,y)與公鑰pk=(X,Y)=,其中g(shù)2?G2。
2)Sign(sk,m):生成σ←(h,hx+ym),其中h?RG1。
3)Verfp(kσ,m):檢查
3){SWN}ii以SMPC 運(yùn)行算法1,生成并公布同態(tài)加密公鑰PK,且秘密共享私鑰SK。
算法1公私鑰生成算法
算法2隱私保護(hù)算法
本節(jié)分析方案在匿名性、驗(yàn)證性、機(jī)密性及隱私保護(hù)方面的安全性,并討論對(duì)合謀攻擊的抵御。
定理1當(dāng)ZK 滿足零知識(shí)特性,以及偽隨機(jī)函數(shù)滿足偽隨機(jī)特性時(shí),方案滿足匿名性。
證明游戲中對(duì)于k?{0,1},C 給與A 回應(yīng)(RU)k⊕b=(mk⊕b,(πm)k⊕b,(πid)k⊕b,Ck⊕b),其中C 未對(duì)mk⊕b加密。而A 可訪問(wèn)Submit,若A 能輸出b’使得b’=b,則A 勝出。設(shè)該游戲?yàn)镚ame0,現(xiàn)考慮新游戲Game1。Game1與Game0的區(qū)別在于回應(yīng)中的(πm)k⊕b,(πid)k⊕b被一模擬器所模擬。ZK 的零知識(shí)特性保證該模擬器可在無(wú)秘密的情況下模擬(πm)k⊕b和(πid)k⊕b,使得模擬器的輸出(πm)*、(πid)*與(πm)k⊕b、(πid)k⊕b不可區(qū)分。因此,Game1 將證明換成(πm)*、(πid)*后,A 在游戲中的勝率不會(huì)發(fā)生不可忽略的變化?,F(xiàn)考慮新游戲Game2,Game2 與Game1 的區(qū)別在于以隨機(jī)函數(shù)替代偽隨機(jī)函數(shù)來(lái)生成回應(yīng)中的Ck⊕b。根據(jù)偽隨機(jī)函數(shù)的偽隨機(jī)特性,生成的Ck⊕b與相同長(zhǎng)度的隨機(jī)字符串str*不可區(qū)分。因此,Game2將Ck⊕b換成str*后,與Game1相比A的勝率不會(huì)發(fā)生不可忽略的變化。在Game2 中,C 給A 的回應(yīng)(RU)k⊕b=(mk⊕b,(πm)*,(πid)*,str*),除mk⊕b外的所有信息都與b無(wú)關(guān)。因此,A 在Game2 中沒(méi)有優(yōu)于猜測(cè)的算法來(lái)選擇b’使得b’=b。又因?yàn)镚ame2 和Game0 中A 的勝率的差異可被忽略,所以A 在Game0 中的勝率為1/2+neg(lλ),因此方案滿足匿名性。
定理2當(dāng)ZK 滿足正確性和知識(shí)證明特性,以及門(mén)限簽名方案滿足不可偽造特性時(shí),方案滿足驗(yàn)證性。
證明以U?L表示用戶U 擁有身份id 且滿足|{i:σi,id?Li}|≥t。假設(shè)存在敵手A*可以不可忽略的概率勝出游戲,代表A*可以不可忽略的概率達(dá)成以下至少一個(gè)條件,以使得|R|>|L|。
1)A*控制的某名用戶U∈L提交了2 個(gè)回應(yīng)(RU)k=(({EU,j,d}j,d)k,(πm)k,(πid)k,Ck),其中k={0,1},但C0≠C1。2 個(gè)回應(yīng)都通過(guò)了對(duì)C 的驗(yàn)證。
2)A*控制的某名用戶U?L提交回應(yīng)RU=({EU,j,d}j,d,πm,πid,C)并通過(guò)了對(duì)C 的驗(yàn)證。
條 件1 中C0≠C1,即至少一個(gè)Cx是錯(cuò)誤的且。但(RU)x通過(guò)了驗(yàn)證,即(πid)x被判斷為正確。ZK 的正確特性保證此情況出現(xiàn)的概率可忽略,所以A*達(dá)成條件1 的概率可忽略。
條件2 中U?L但提交的回應(yīng)RU通過(guò)了驗(yàn)證,即πid被判斷為正確。ZK 的知識(shí)證明特性保證存在一個(gè)抽取器,抽取器可以壓倒性的概率抽取出πid的知識(shí),包括身份id、秘密sid和簽名σU、σid。但因?yàn)閁?L,即|{i:σi,id?Li}| 因?yàn)锳*可達(dá)成條件1 或條件2 的概率皆可忽略,根據(jù)反證法,證明了A*不存在,因此方案滿足驗(yàn)證性。 定理3方案滿足機(jī)密性,當(dāng)ZK 滿足零知識(shí)特性和加密方案時(shí)滿足CPA 安全。 證明游戲Game’中C給與A回應(yīng)(RU0)b=(Eb,(πm)b,(πid)0,(C)0),其中假設(shè)問(wèn)卷問(wèn)題數(shù)j=1 且問(wèn)題選擇數(shù)d1=1,所以Eb的明文mb的值為0 或1,但m0≠m1。而A 可訪問(wèn)Submit,若A 能輸出b′使得b′=b,則A 勝出。現(xiàn)考慮新游戲Game1’,Game1’與Game’的區(qū)別在于回應(yīng)中(πm)b被模擬器所模擬。ZK 的零知識(shí)特性保證模擬器輸出的(πm)*與(πm)b不可區(qū)分。因此,Game1’在將(πm)b換成(πm)*后,A 在游戲中的勝率不會(huì)發(fā)生不可忽略的變化。在Game1’中,C給A的回應(yīng)(RU0)b=(Eb,(πm)*,(πid)0,(C)0),除Eb外的所有信息都與b無(wú)關(guān),即A 需要確定Eb的明文為m0還是m1。加密方案的CPA 安全特性保證A 的勝率不高于1/2+neg(lλ)。又因?yàn)镚ame1’和Game’中A的勝率的差異可被忽略,所以A在Game’中的勝率不高于1/2+neg(lλ),因此方案滿足機(jī)密性。 定理4方案滿足ε-IND-DDP,安全多方計(jì)算協(xié)議保證計(jì)算的正確性且滿足f-隱私。 證明方案采用的SPDZ 安全多方計(jì)算協(xié)議已被文獻(xiàn)[19]證明滿足f-隱私,即存在可模擬惡意方計(jì)算過(guò)程的模擬器,以此保證協(xié)議在多數(shù)惡意模型下惡意計(jì)算方無(wú)法獲取誠(chéng)實(shí)方的輸入。同時(shí),SPDZ協(xié)議滿足正確性,即若協(xié)議正常結(jié)束,則協(xié)議只能以可忽略的概率輸出錯(cuò)誤計(jì)算結(jié)果。所以,正確性保證了協(xié)議的正常輸出是由Laplace 機(jī)制在歸總上正確地執(zhí)行后所生成,且f-隱私保證了惡意計(jì)算方無(wú)法獲取有關(guān)歸總及Laplace 噪音的信息。因此,由采用Laplace 機(jī)制所達(dá)成的ε-差分隱私令協(xié)議所執(zhí)行的函數(shù)滿足ε-IND-DDP。 合謀攻擊抵御有以下2 種方法: 1)反匿名攻擊。在ANONIZE 中敵手有選擇用戶的手段,可以繞開(kāi)匿名性保護(hù),因?yàn)槎x只要求敵手無(wú)法分辨來(lái)自2 名誠(chéng)實(shí)用戶的2 個(gè)回應(yīng)。本文方案中敵手無(wú)法選擇用戶,只能表明問(wèn)卷面向的用戶屬性,由多數(shù)問(wèn)卷工作節(jié)點(diǎn)決策最終用戶列表。而即使在極端情況下,問(wèn)卷列表只包含某一誠(chéng)實(shí)用戶與惡意用戶的回應(yīng)令牌,本文方案的機(jī)密性保護(hù)誠(chéng)實(shí)用戶的問(wèn)卷選擇,隱私保護(hù)特性保護(hù)用戶的選擇無(wú)法從差分隱私歸總中被推導(dǎo)出,所以本文方案能夠抵御反匿名攻擊。 2)女巫攻擊。本文方案中敵手只控制少數(shù)工作節(jié)點(diǎn),敵手虛構(gòu)的用戶無(wú)法通過(guò)多數(shù)節(jié)點(diǎn)的身份驗(yàn)證,不能得到至少t個(gè)用戶令牌碎片,因此無(wú)法以虛構(gòu)的用戶提交有效回應(yīng)。 本節(jié)對(duì)比分析本文方案與文獻(xiàn)[5]、文獻(xiàn)[8]及文獻(xiàn)[9]方案的性能,然后對(duì)本文方案進(jìn)行仿真實(shí)驗(yàn),各方案的性能對(duì)比如表1 所示。 表1 不同方案的性能對(duì)比Table1 Performance comparison of different schemes 從表1 可以看出,ANONIZE 方案的架構(gòu)是中心化的,只有一個(gè)注冊(cè)機(jī)構(gòu)(RA),且安全模型中所有角色都為惡意單位,所以它無(wú)法抵御RA 的女巫攻擊及SA的反匿名攻擊。而本文方案采用去中心化的架構(gòu),且問(wèn)卷工作節(jié)點(diǎn)集群的安全模型為少數(shù)合謀,以門(mén)限簽名抵御合謀攻擊。ANONIZE 方案構(gòu)成了單點(diǎn)信任的需求。若要信任問(wèn)卷結(jié)果,需假設(shè)問(wèn)卷發(fā)起方?jīng)]有抵賴數(shù)據(jù),已過(guò)濾無(wú)效的數(shù)據(jù),及歸總數(shù)據(jù)時(shí)沒(méi)有引入污染。本文方案不需單點(diǎn)信任,防篡改平臺(tái)可抵抗數(shù)據(jù)抵賴,節(jié)點(diǎn)基于多方安全計(jì)算,在解密歸總時(shí)加入適當(dāng)?shù)腖aplace 噪音,保證結(jié)果不被污染。PrivaDA 和Prio是去中心化的,同樣不需要單點(diǎn)信任。Prio 在歸總過(guò)程中未加入Laplace 噪音,隱私保護(hù)程度低。PrivaDA未考慮數(shù)據(jù)健壯性的驗(yàn)證,無(wú)法抵抗數(shù)據(jù)污染。Prio的SNIP 協(xié)議需要向每個(gè)工作節(jié)點(diǎn)發(fā)送秘密共享證明,證明總長(zhǎng)度為O(nd),其中,n為節(jié)點(diǎn)數(shù)量,d為輸入長(zhǎng)度。本文方案只需上傳長(zhǎng)度為O(d)的NIZK 至公開(kāi)平臺(tái)以供驗(yàn)證。PrivaDA 和Prio中用戶與節(jié)點(diǎn)秘密共享數(shù)據(jù),需假設(shè)節(jié)點(diǎn)不會(huì)拒收碎片,本文方案中防篡改平臺(tái)保證用戶數(shù)據(jù)不被抵賴。 仿真實(shí)驗(yàn)使用了AWS 上類型為t2-large 的EC2機(jī)器,配置為3.0 GHz 的Intel CPU 處理器和8 GB 的內(nèi)存,環(huán)境為64 位的Ubuntu 16.04。實(shí)驗(yàn)使用C 語(yǔ)言v0.5.14 版本的PBC 庫(kù)進(jìn)行方案各階段的雙線性密碼運(yùn)算,同時(shí)使用支持SPDZ 安全多方計(jì)算協(xié)議的SCALE-MAMBA 庫(kù)進(jìn)行算法部分(算法1 和算法2)的運(yùn)算。 實(shí)驗(yàn)?zāi)M方案有N=100 個(gè)用戶與n=3 個(gè)問(wèn)卷工作節(jié)點(diǎn)的場(chǎng)景,其中簽名的門(mén)限為t=2,問(wèn)卷的題目數(shù)為Q=10,題目的選擇數(shù)為D=4,差分隱私參數(shù)ε=1。表2為對(duì)方案各階段運(yùn)算100 次的平均計(jì)算時(shí)間開(kāi)銷和數(shù)據(jù)存儲(chǔ)開(kāi)銷??梢钥闯觯許MPC 運(yùn)行的算法部分時(shí)間開(kāi)銷較其他階段高,其中運(yùn)行算法1 前需進(jìn)入SMPC時(shí)間開(kāi)銷最高的預(yù)處理階段,生成隨機(jī)參數(shù),以供算法1和算法2 的線上運(yùn)行階段使用。SMPC 的運(yùn)算不需用戶參與,因此對(duì)實(shí)時(shí)性的要求不高,實(shí)驗(yàn)中算法部分的時(shí)間開(kāi)銷為秒至分鐘級(jí)別,符合實(shí)際應(yīng)用的需求。 表2 方案各階段的時(shí)間和存儲(chǔ)開(kāi)銷Table 2 Time and storage costs of each stage in the scheme 表2 列出了算法各階段理論上的計(jì)算開(kāi)銷,其中,E表示群上指數(shù)運(yùn)算耗時(shí),P表示雙線性配對(duì)運(yùn)算耗時(shí),H表示哈希運(yùn)算耗時(shí)。在問(wèn)卷發(fā)布階段,假設(shè)所有用戶都能參與問(wèn)卷,所以每個(gè)節(jié)點(diǎn)都生成N個(gè)回應(yīng)令牌碎片。在問(wèn)卷收集階段,每個(gè)用戶需在各個(gè)長(zhǎng)度為N的令牌碎片列表中找出t個(gè)可用的碎片,因此平均需遍歷并比對(duì)tN/2 個(gè)碎片。而在問(wèn)卷結(jié)果階段,節(jié)點(diǎn)共同檢查回應(yīng)中的零知識(shí)證明,即平均每個(gè)節(jié)點(diǎn)需處理N/n個(gè)回應(yīng)。實(shí)驗(yàn)需檢查零知識(shí)證明的問(wèn)卷結(jié)果公布階段耗時(shí)較高,但此階段由節(jié)點(diǎn)負(fù)責(zé),不影響系統(tǒng)對(duì)用戶的響應(yīng)。對(duì)實(shí)時(shí)性要求較高的為用戶注冊(cè)及問(wèn)卷收集階段,其中用戶注冊(cè)階段忽略網(wǎng)絡(luò)的開(kāi)銷需0.041 7 s,問(wèn)卷收集階段主要耗時(shí)在找出可用碎片以組成回應(yīng)令牌,此過(guò)程平均需1.575 s,加上構(gòu)造零知識(shí)證明的耗時(shí)共需2.18 s,可滿足用戶使用需求。在存儲(chǔ)開(kāi)銷方面,初期設(shè)置與問(wèn)卷結(jié)果公布階段只需少量存儲(chǔ),且與用戶數(shù)N無(wú)關(guān)。問(wèn)卷發(fā)布與問(wèn)卷收集階段平均對(duì)每個(gè)用戶的存儲(chǔ)開(kāi)銷為0.774 KB 和27.452 KB,適合于區(qū)塊鏈等公開(kāi)平臺(tái)上存儲(chǔ)的量級(jí)。 圖2 為問(wèn)卷發(fā)布階段及問(wèn)卷收集階段的時(shí)間開(kāi)銷隨用戶數(shù)變化的數(shù)據(jù)。從圖2 可以看出,時(shí)間開(kāi)銷隨用戶數(shù)的線性增長(zhǎng)較為緩慢,即使在用戶數(shù)為5 000 時(shí)的大型問(wèn)卷中,問(wèn)卷發(fā)布階段中各節(jié)點(diǎn)需33 s 完成回應(yīng)令牌碎片的生成,而用戶在問(wèn)卷收集階段中需79 s找出可用碎片以生成回應(yīng)令牌,即用戶從問(wèn)卷發(fā)布至確認(rèn)可以進(jìn)行問(wèn)卷回應(yīng)前的延遲約為2 min,可見(jiàn)方案在大型問(wèn)卷中具備較好的實(shí)用性。 圖2 多用戶場(chǎng)景下主要階段的時(shí)間開(kāi)銷Fig.2 Time cost of the main stages in multi-user scenario 本文基于門(mén)限簽名方案和差分隱私技術(shù),提出一種去中心化的隱私保護(hù)的匿名問(wèn)卷方案。采用同態(tài)加密技術(shù)為回應(yīng)加密,將密文上傳至公開(kāi)防篡改平臺(tái)抵抗數(shù)據(jù)抵賴,借助安全多方計(jì)算技術(shù)使差分隱私歸總過(guò)程安全,并融入零知識(shí)證明技術(shù)保證方案的正確性。實(shí)驗(yàn)結(jié)果表明,該方案的時(shí)間和存儲(chǔ)開(kāi)銷符合實(shí)際應(yīng)用需求,在大型問(wèn)卷中具有較好的實(shí)用性。下一步將研究本文方案在以太坊等區(qū)塊鏈平臺(tái)上部署時(shí)需要面對(duì)的挑戰(zhàn),包括安全多方計(jì)算協(xié)議和智能合約的集成問(wèn)題。4.3 機(jī)密性
4.4 隱私保護(hù)
4.5 合謀攻擊抵御
5 性能分析
6 結(jié)束語(yǔ)