李 莉,杜慧娜,李 濤
(東北林業(yè)大學(xué) 信息與計(jì)算機(jī)工程學(xué)院,哈爾濱 150040)
溯源系統(tǒng)通常被用來(lái)展示商品生產(chǎn)各環(huán)節(jié)的狀態(tài)信息,但是,供應(yīng)鏈的復(fù)雜性使得傳統(tǒng)溯源系統(tǒng)缺乏透明度以及存在可追溯性差、數(shù)據(jù)不同步等問(wèn)題[1-2]。區(qū)塊鏈作為一種分布式賬本技術(shù)[3],其去中心化、難篡改等特點(diǎn)能在溯源系統(tǒng)的建立中發(fā)揮重要作用[4-5]。但是,在目前的區(qū)塊鏈溯源系統(tǒng)中,多采用將完全可見(jiàn)數(shù)據(jù)上鏈的方法以保證數(shù)據(jù)的可追溯性,這帶來(lái)了一定的用戶隱私泄露風(fēng)險(xiǎn)。過(guò)多的隱私保護(hù)又將使得交易不可監(jiān)管,這在需要監(jiān)管機(jī)構(gòu)介入的溯源應(yīng)用中不可接受[6-7],因此,在對(duì)交易雙方身份進(jìn)行有效監(jiān)管的同時(shí)實(shí)現(xiàn)用戶的隱私保護(hù)成為一個(gè)研究熱點(diǎn)。
在區(qū)塊鏈隱私保護(hù)方面,MONERO[8]通過(guò)環(huán)簽名技術(shù),使用簽名用戶與其他用戶的公鑰對(duì)交易信息進(jìn)行簽名,使得攻擊者無(wú)法從簽名中確定交易發(fā)起者的身份,從而保護(hù)了用戶的隱私。零幣使用zk-SNARKs零知識(shí)證明[9]對(duì)交易信息進(jìn)行完全隱藏,有效地保護(hù)了信息的隱匿性。李龔亮等[10]提出一種既能對(duì)交易進(jìn)行加密又能支持零知識(shí)證明的隱私保護(hù)方案,實(shí)現(xiàn)了交易數(shù)據(jù)的完全隱匿。但是,以上方法多采用將數(shù)據(jù)完全隱藏的方式來(lái)保護(hù)用戶的隱私安全,這在需要監(jiān)管介入的溯源系統(tǒng)中并不適用。
在區(qū)塊鏈的用戶身份監(jiān)管和訪問(wèn)權(quán)限控制方面,張思亮等[11]提出一種基于環(huán)簽名、零知識(shí)證明、隱私地址的可追蹤賬本交易隱私保護(hù)方案,該方案可以有效地實(shí)現(xiàn)監(jiān)管人對(duì)用戶身份的追蹤。李佩麗等[12]對(duì)群簽名進(jìn)行改進(jìn),實(shí)現(xiàn)了交易雙方身份的監(jiān)管。王震等[13]通過(guò)監(jiān)管方對(duì)用戶的匿名證書(shū)進(jìn)行解密從而實(shí)現(xiàn)監(jiān)管。姜軼涵等[14]基于零知識(shí)證明、同態(tài)加密等,設(shè)計(jì)一種可以對(duì)一段時(shí)間內(nèi)所有用戶的交易金額進(jìn)行審計(jì)的方案,從而實(shí)現(xiàn)了交易內(nèi)容的追蹤。謝絨娜[15]與田有亮等[16]通過(guò)訪問(wèn)權(quán)限細(xì)粒度劃分來(lái)提高數(shù)據(jù)安全性。
經(jīng)過(guò)分析可以發(fā)現(xiàn):現(xiàn)存溯源系統(tǒng)研究大多將完全可見(jiàn)的數(shù)據(jù)上鏈以保證數(shù)據(jù)的可溯源性,這增加了用戶隱私泄露的可能性;現(xiàn)存隱私保護(hù)技術(shù)大多采用將數(shù)據(jù)完全隱匿的方式來(lái)保證用戶的隱私安全,但是,在要求數(shù)據(jù)可追溯與監(jiān)管的溯源系統(tǒng)中并不適用;現(xiàn)存可監(jiān)管方案大多通過(guò)引入單管理員角色進(jìn)行交易或數(shù)據(jù)監(jiān)管,此時(shí)管理員擁有絕對(duì)的權(quán)限,如果管理員是惡意的,可能導(dǎo)致用戶隱私泄露。
本文提出一種基于群簽名與屬性加密的雙重隱私保護(hù)方案,以解決區(qū)塊鏈溯源中隱私保護(hù)與數(shù)據(jù)可追溯性難以平衡的問(wèn)題。使用群簽名實(shí)現(xiàn)用戶身份的加密與監(jiān)管,利用可選擇的屬性加密方案,使得用戶自主選擇是否對(duì)部分隱私數(shù)據(jù)進(jìn)行相應(yīng)的屬性加密從而實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)權(quán)限控制。對(duì)群簽名進(jìn)行改進(jìn),在區(qū)塊鏈系統(tǒng)中使用多群管理員機(jī)制群簽名策略,以解決傳統(tǒng)群簽名在區(qū)塊鏈溯源用戶監(jiān)管方面的不足。
本文相關(guān)技術(shù)背景介紹如下:
1)BBS04 群簽名。在群簽名方案中[17],一個(gè)群體中的任何一個(gè)群成員都可以以匿名的形式代表群體對(duì)消息進(jìn)行簽名,且群簽名可公開(kāi)驗(yàn)證。BONEH 等[18]于2004 年提出一種短群簽名方案,該方案構(gòu)造了強(qiáng)度小于200 Byte 的簽名,安全性基于具有雙線性映射群的q-SDH,相對(duì)于RAS 簽名更簡(jiǎn)單且更短。BBS04 群簽名的簡(jiǎn)短性可節(jié)省鏈上存儲(chǔ)空間,且其可追蹤性能夠很好地應(yīng)用于有監(jiān)管者介入的區(qū)塊鏈溯源系統(tǒng)。但是,單個(gè)群管理員擁有至高的權(quán)限,一旦其產(chǎn)生惡意想法,有可能導(dǎo)致數(shù)據(jù)泄露,威脅用戶的隱私安全。因此,需要引入多群管理員機(jī)制,使得群管理員之間相互制約,這也符合區(qū)塊鏈的去中心化原則。
2)DKSAP 隱私地址協(xié)議。隱私地址協(xié)議是一種用于保護(hù)交易接收方隱私安全的技術(shù)。發(fā)送方在創(chuàng)建交易時(shí)為交易接收方隨機(jī)生成一個(gè)接收地址,且該隱私地址可以被交易接收方所計(jì)算與打開(kāi)。通過(guò)每次交易來(lái)更換用戶的交易接收地址,可以更好地保護(hù)接收方的隱私安全。本文使用隱私地址保護(hù)交易接收方的隱私安全,攻擊者無(wú)法通過(guò)數(shù)據(jù)分析來(lái)獲取交易接收方的信息,且群管理員可以對(duì)接收方進(jìn)行監(jiān)管。
3)Bulletproofs 零知識(shí)證明。Bulletproofs[19]是BUNZ 等于2018 年提出的一種知識(shí)系統(tǒng)的零知識(shí)證明,可用于證明一個(gè)秘密的存在。Bulletproofs 支持范圍證明的聚合,可證明m個(gè)承諾存在于給定的范圍內(nèi),其邊際成本較低且不需要可信設(shè)置。本文所提方案應(yīng)用Bulletproofs 零知識(shí)的范圍證明,對(duì)用戶的撤銷狀態(tài)進(jìn)行范圍證明,通過(guò)證明所驗(yàn)證的撤銷標(biāo)記是否在[0,1]范圍內(nèi)來(lái)判斷用戶的撤銷狀態(tài)。
4)CP-ABE 屬性加密。屬性加密是一種新型的加密技術(shù)[20],其將用戶的訪問(wèn)權(quán)限與用戶的身份屬性相關(guān)聯(lián),為密文設(shè)定訪問(wèn)結(jié)構(gòu),只有屬性基與訪問(wèn)結(jié)構(gòu)相對(duì)應(yīng)才可以對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)。
本文隱私保護(hù)方案的目標(biāo)如下:
1)實(shí)現(xiàn)用戶隱私保護(hù)與用戶可監(jiān)管之間的平衡。現(xiàn)存溯源系統(tǒng)大多將完全透明的數(shù)據(jù)上鏈以保證數(shù)據(jù)的可追溯與可監(jiān)管,該方式提高了用戶信息及數(shù)據(jù)泄露的可能性,本文方案考慮隱私保護(hù)與用戶監(jiān)管2 個(gè)方面,目標(biāo)是在保護(hù)用戶隱私的同時(shí)實(shí)現(xiàn)用戶的監(jiān)管。
2)改進(jìn)目前溯源系統(tǒng)中的數(shù)據(jù)可溯源訪問(wèn)機(jī)制。本文方案的目標(biāo)是在保護(hù)用戶隱私的同時(shí)實(shí)現(xiàn)數(shù)據(jù)的可追溯,應(yīng)用屬性加密“一對(duì)多”的數(shù)據(jù)細(xì)粒度訪問(wèn)特點(diǎn),使得溯源系統(tǒng)中的數(shù)據(jù)可被多人訪問(wèn)又不被所有人可見(jiàn)。
3)引入監(jiān)管角色,在實(shí)現(xiàn)用戶身份追蹤的同時(shí)保證用戶隱私。鑒于溯源系統(tǒng)需要監(jiān)管介入且監(jiān)管機(jī)構(gòu)不唯一的特性,本文應(yīng)用群簽名實(shí)現(xiàn)用戶的監(jiān)管,對(duì)群簽名進(jìn)行改進(jìn),設(shè)置多群管理員機(jī)制,解決單群管理員權(quán)限過(guò)高所帶來(lái)的隱私泄露風(fēng)險(xiǎn),在實(shí)現(xiàn)可監(jiān)管的同時(shí)提高方案的安全性。同時(shí),將隱私地址協(xié)議與群簽名相融合,實(shí)現(xiàn)交易接收方追蹤。
本文方案要實(shí)現(xiàn)溯源系統(tǒng)中交易雙方身份的追蹤,同時(shí)設(shè)置多群管理員機(jī)制以符合區(qū)塊鏈的去中心化原則。根據(jù)溯源系統(tǒng)中的具體場(chǎng)景設(shè)置4 種角色,分別是簽名者、驗(yàn)證者、群管理員、數(shù)據(jù)查看者:簽名者對(duì)溯源信息進(jìn)行簽名;驗(yàn)證者驗(yàn)證消息是否為群成員所簽并對(duì)數(shù)據(jù)進(jìn)行廣播;群管理員為用戶生成私鑰并對(duì)簽名者的身份進(jìn)行追蹤;數(shù)據(jù)查看者查看鏈上溯源數(shù)據(jù)。
本文方案提供雙重隱私保護(hù):第一重使用群簽名為用戶提供身份隱私保護(hù)同時(shí)實(shí)現(xiàn)用戶身份的可追蹤;第二重使用屬性加密為用戶與溯源數(shù)據(jù)設(shè)置特定的訪問(wèn)結(jié)構(gòu),實(shí)現(xiàn)數(shù)據(jù)的細(xì)粒度訪問(wèn)控制。方案框架如圖1 所示。
本文方案的實(shí)現(xiàn)步驟具體如下:
步驟1根據(jù)共識(shí)機(jī)制選出一定數(shù)量的群管理員并為其分配密鑰。
步驟2系統(tǒng)初始化。生成群公鑰、群管理員私鑰、屬性密鑰、監(jiān)管密鑰等。
步驟3用戶注冊(cè)。系統(tǒng)為用戶生成公鑰、屬性密鑰,各群管理員為用戶生成私鑰片段,用戶通過(guò)計(jì)算獲得自己的私鑰。
步驟4生成上鏈數(shù)據(jù)。交易發(fā)起方調(diào)用智能合約選擇是否為溯源信息設(shè)置訪問(wèn)結(jié)構(gòu),并申請(qǐng)將溯源信息廣播到區(qū)塊鏈。
步驟5驗(yàn)證消息合法性。驗(yàn)證者對(duì)交易發(fā)起方的身份進(jìn)行驗(yàn)證并執(zhí)行驗(yàn)證通過(guò)的廣播請(qǐng)求。
步驟6身份追蹤。群管理員進(jìn)行投票決定是否對(duì)交易進(jìn)行追蹤,如果投票值大于群管理員數(shù)量的2/3,則對(duì)交易進(jìn)行追蹤。
步驟7數(shù)據(jù)共享。用戶訪問(wèn)數(shù)據(jù)信息,如果用戶設(shè)置了屬性加密,在用戶屬性密鑰與數(shù)據(jù)訪問(wèn)結(jié)構(gòu)一致時(shí)允許訪問(wèn);如果沒(méi)有設(shè)置屬性加密,則可直接對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)。
系統(tǒng)初始化主要完成2 個(gè)任務(wù),即初始化系統(tǒng)相關(guān)屬性并為監(jiān)管角色(群管理員)生成相關(guān)密鑰。具體步驟如下:
1)在共識(shí)階段選出t(t≥1)個(gè)群管理員,系統(tǒng)為各群管理員分發(fā)公鑰Y。
2)隨機(jī)選取G的生成元g2,g1由同構(gòu)映射ψ(g2)產(chǎn)生。選 取,令u,v∈,每個(gè)GM 的密鑰為。
3)設(shè)置系統(tǒng)屬性集為Sj={s1,s2,…,sn}。
4)初始化一個(gè)空的撤銷列表RL 與投票值Tr,其中,RL 用來(lái)存儲(chǔ)撤銷用戶的撤銷標(biāo)記,Tr用來(lái)收集其他管理員在追蹤問(wèn)題上的意見(jiàn)(支持與不支持)。
5)生成群公鑰為:
gpk=(g1,g2,h,u,v,{wj|1≤j≤t})
群追蹤密鑰為:
gmsk=(δ1,δ2)
用戶提出注冊(cè)申請(qǐng),各群管理員為用戶生成私鑰片段并返回,用戶通過(guò)計(jì)算獲得自己的私鑰與ID。具體過(guò)程如下:
1)用戶i向所有群管理員提出注冊(cè)申請(qǐng),并提交用戶屬性集Si={s1,s2,…,sn}。
2)各群管理員生成用戶i的私鑰片段,x∈Zp,并通過(guò)安全信道發(fā)送給用戶i,用戶i計(jì)算私鑰。
3)用戶計(jì)算自己的ID,IDi=。
對(duì)溯源信息進(jìn)行處理,假設(shè)用戶Bob 向用戶Alice 購(gòu)買(mǎi)產(chǎn)品,相關(guān)數(shù)據(jù)為m,m包含商品的生產(chǎn)日期、生產(chǎn)地點(diǎn)、原料、交易金額等信息,Bob 與Alice的密鑰對(duì)分別為(IDAlice,AAlice)和(IDBob,ABob)。上鏈數(shù)據(jù)生成過(guò)程如下:
1)用戶Alice 生成一個(gè)臨時(shí)密鑰對(duì)(R,r),其中,R=rG,該密鑰對(duì)隨交易傳輸,同時(shí)根據(jù)ty=H(r·IDBob)=H(IDBob·R),計(jì)算共享秘密ty并使用群公鑰進(jìn)行加密,發(fā)送方使用生成消息接收方所共有的臨時(shí)地址S.A。
3)使用Hash 函數(shù)計(jì)算詢問(wèn)值:
c←H(M||T1||T2||T3||R1||R2||R3||R4||R5)
4)根據(jù)c生成參數(shù),其中:
σ1←xα
σ2←xβ
sα←rα+cα
sβ←rβ+cβ
sx←rx+cx
5)生成Alice 撤銷標(biāo)記的Bulletproofs 零知識(shí)證明,通過(guò)該證明可以在不獲取用戶撤銷標(biāo)記具體值的情況下驗(yàn)證Alice 身份的合法性,步驟如下:
構(gòu)造aL、aR,使得
隨機(jī)選取盲化因子sL∈、sR∈、θ∈Zp,構(gòu)造sL、sR的承諾S=。
計(jì)算:
y=H(A,S)
z=H(A,S,y)
Ti=,i={1,2}
x=H(T1,T2,z)
l=l(x)=aL-z+sL·x
r=r(x)=yn?(aR+z+sR·x)+z2·2
t(x)=
τ(x)=τ1·x+τ2·x2+z2·γ,γ∈ZP
ε=α+θ·x
構(gòu)造關(guān)于reg 的承諾V=greghγ。由此,零知識(shí)證明η={τ(x),ε,t(x),l(x),r(x)}。
6)簽名為:
σ←(M,T1,T2,T3,c,sα,sβ,sx,,S.A,t,η)
7)加密產(chǎn)品相關(guān)信息m,輸入明文m、gmsk 以及訪問(wèn)策略(M,ρ),返回密文CT。其中,CT={C=},M為l×n的訪問(wèn)矩陣,Mi表示矩陣中的第i行,函數(shù)ρ將Mi映射到屬性,記ρ{1,2,…,l}→{1,2,…,n},ty為共享秘密,p為隨機(jī)值。
8)將產(chǎn)品相關(guān)信息CT、撤銷標(biāo)記的知識(shí)證明η、加密后的共享秘密ty、簽名等信息廣播給驗(yàn)證節(jié)點(diǎn)。
消息合法性驗(yàn)證過(guò)程如下:
1)對(duì)零知識(shí)證明η進(jìn)行驗(yàn)證,判斷用戶的身份是否合法。驗(yàn)證步驟為:計(jì)算;判斷是否成立;判斷ASx·g-z·=hμgl是否成立;判斷t(x)=
2)在驗(yàn)證通過(guò)后,計(jì)算:
然后計(jì)算:
如果c=,則簽名有效;否則,簽名無(wú)效。若簽名有效,則將驗(yàn)證通過(guò)的溯源信息上傳到區(qū)塊鏈。
當(dāng)用戶做出不誠(chéng)信行為或想要主動(dòng)退出時(shí),群管理員可以對(duì)用戶執(zhí)行撤銷操作。假設(shè)要撤銷用戶1,2,…,r,撤銷列表RL 包含所有被撤銷用戶的私鑰。其中,RL={(A1,x1,reg1),…,(Ar,xr,regr)}。分如下兩種情況討論:
1)如果是群管理員執(zhí)行撤銷操作,則群管理員將用戶的私鑰信息加入到撤銷列表RL 中,同時(shí)更新用戶的撤銷標(biāo)記,然后發(fā)布新的撤銷列表RL,若撤銷成功,則返回0;否則,返回?1。
2)如果是群成員主動(dòng)申請(qǐng)撤銷操作,則用戶先將自己的撤銷標(biāo)記(Ai,regi,σ)發(fā)送給GM,GM 驗(yàn)證群成員的身份,如果驗(yàn)證成功,則執(zhí)行第一種操作。
在收到對(duì)某筆交易的追蹤請(qǐng)求時(shí),所有的群管理員共同決定是否對(duì)交易進(jìn)行追蹤,當(dāng)超過(guò)2/3 的群管理員持贊成意見(jiàn)時(shí),則對(duì)交易的參與方進(jìn)行追蹤。追蹤過(guò)程如下:
1)交易發(fā)送方的追蹤
通過(guò)群公鑰計(jì)算出用戶的私鑰,然后對(duì)用戶信息索引進(jìn)行讀取,獲取用戶身份信息。
對(duì)請(qǐng)求讀取數(shù)據(jù)的CA 進(jìn)行屬性集合檢驗(yàn),通過(guò)后可讀取各群管理員存儲(chǔ)的用戶密鑰片段,然后最多通過(guò)O(nt)(n為群管理員處注冊(cè)的用戶數(shù))次乘法計(jì)算,即可獲取用戶的身份信息。證明過(guò)程如下:
2)交易接收方的追蹤
通過(guò)打開(kāi)簽名獲取臨時(shí)交易地址S.A以及共享秘密ty,即可從S.A中抽取接收方公鑰,追蹤到接收方的身份。證明過(guò)程如下:
已知S.A=,ty=H(r·IDBob)=H(IDBob·R),,證畢。
3)追責(zé)
根據(jù)產(chǎn)品的狀態(tài)信息判斷出責(zé)任方,可對(duì)違規(guī)用戶進(jìn)行撤銷操作,從而懲戒惡意行為。
當(dāng)用戶需要查看溯源信息時(shí),發(fā)出查看申請(qǐng),系統(tǒng)根據(jù)用戶的屬性私鑰和訪問(wèn)策略(M,ρ)下的密文CT 進(jìn)行解密,如果用戶的屬性集能夠滿足數(shù)據(jù)的訪問(wèn)策略,則允許用戶對(duì)數(shù)據(jù)進(jìn)行訪問(wèn),輸出明文;否則,訪問(wèn)失敗。
本文方案性能分析具體如下:
1)匿名性。本文方案將群簽名與隱私地址相結(jié)合以保護(hù)交易雙方的身份信息,使用戶身份信息對(duì)非群管理員不可見(jiàn),從而保證方案的匿名性。其中,使用多群管理員機(jī)制的群簽名技術(shù)保護(hù)用戶隱私,追蹤密鑰僅由群管理員擁有,用戶的私鑰由群管理員共同生成,且保證了在有少量惡意群管理員節(jié)點(diǎn)的情況下無(wú)法進(jìn)行用戶身份信息復(fù)原。相較單群管理員方案,本文方案擁有更強(qiáng)的匿名性,且其他用戶無(wú)法獲取交易用戶的具體信息,從而保護(hù)了用戶隱私。另外,使用隱私保護(hù)技術(shù),每筆交易都生成一個(gè)臨時(shí)地址,該臨時(shí)地址必須用追蹤密鑰才可以解密,使得攻擊者無(wú)法將交易信息進(jìn)行關(guān)聯(lián),從而保護(hù)了交易接收方的隱私。
2)可追蹤性。本文方案通過(guò)使用群追蹤密鑰來(lái)計(jì)算用戶私鑰,然后讀取本地的用戶索引獲取到交易發(fā)起方的身份,打開(kāi)簽名得到解密后的共享秘密,進(jìn)而獲取接收方的身份信息,實(shí)現(xiàn)對(duì)交易接收方的追蹤。
3)安全性。本文方案基于群簽名、屬性加密以及隱私地址進(jìn)行設(shè)計(jì),群密鑰只保存在群管理員手中,且單個(gè)群管理員只負(fù)責(zé)生成用戶的部分密鑰,完整的密鑰由用戶根據(jù)各群管理員傳回的密鑰片段計(jì)算生成。因此,不存在單群管理員泄露用戶私鑰造成用戶隱私泄露的可能性。相比傳統(tǒng)的單群管理員群簽名方案,本文方案具有更高的安全性。使用隱私地址技術(shù),每次交易都為交易接收方生成一個(gè)新的地址,使得攻擊方無(wú)法通過(guò)數(shù)據(jù)分析來(lái)獲取接收方的地址,提高了接收方的隱私安全性。另外,用戶對(duì)上傳的數(shù)據(jù)可選擇性地設(shè)置屬性加密,通過(guò)為數(shù)據(jù)設(shè)置特定的訪問(wèn)結(jié)構(gòu)實(shí)現(xiàn)數(shù)據(jù)的細(xì)粒度訪問(wèn)控制,進(jìn)一步實(shí)現(xiàn)數(shù)據(jù)的安全保護(hù)。
通過(guò)實(shí)驗(yàn)對(duì)本文隱私保護(hù)方案進(jìn)行測(cè)試,以驗(yàn)證其正確性以及效率。實(shí)驗(yàn)基于聯(lián)盟鏈平臺(tái)fisco-bcos進(jìn)行,fisco-bcos 為對(duì)外開(kāi)源的底層區(qū)塊鏈平臺(tái),可插入隱私保護(hù)算法。共識(shí)算法采用PBFT,雙線性映射使用pbc 庫(kù)實(shí)現(xiàn),編程語(yǔ)言采用GO 語(yǔ)言。實(shí)驗(yàn)設(shè)備配置為Ubuntu-20.04.2.0 64 位,CPU 為Intel Core i7-6500U@2.50 GHz。
本文方案主要實(shí)現(xiàn)交易雙方身份監(jiān)管,因此,方案注重能否實(shí)現(xiàn)用戶身份追蹤。本次實(shí)驗(yàn)通過(guò)模擬惡意節(jié)點(diǎn)對(duì)消息進(jìn)行簽名能否通過(guò)驗(yàn)證,以及合法用戶對(duì)消息進(jìn)行簽名能否實(shí)現(xiàn)身份跟蹤,以測(cè)試本文方案的正確性。預(yù)設(shè)4 種場(chǎng)景進(jìn)行測(cè)試,實(shí)驗(yàn)結(jié)果如表1 所示。
表1 正確性測(cè)試結(jié)果Table 1 Correctness test results
從表1 可以看出,本文方案可以正確地實(shí)現(xiàn)對(duì)用戶的身份追蹤以及對(duì)數(shù)據(jù)的細(xì)粒度訪問(wèn)控制。
3.4.1 方案對(duì)比
本節(jié)分別從管理員數(shù)量、追蹤方、是否可對(duì)用戶進(jìn)行撤銷懲罰以及是否控制數(shù)據(jù)訪問(wèn)權(quán)限4 個(gè)方面,對(duì)本文方案進(jìn)行分析并將其與其他方案作對(duì)比。從表2 可以看出,本文方案可以在分化群管理員權(quán)限的同時(shí),實(shí)現(xiàn)用戶雙方身份的可追蹤與細(xì)粒度訪問(wèn)控制,在用戶的信息保護(hù)方面更具優(yōu)勢(shì)。
表2 方案性能對(duì)比Table 2 Schemes performance comparison
3.4.2 計(jì)算成本
設(shè)|M|為模冪運(yùn)算的計(jì)算成本,|P|為雙線性對(duì)運(yùn)算的計(jì)算成本,|H|為哈希運(yùn)算的計(jì)算成本。從表3可以看出,與文獻(xiàn)[21]方案相比,本文方案需要更高的時(shí)間成本,當(dāng)群管理員不同時(shí),所消耗的時(shí)間成本逐漸增加,在初始化、生成上鏈數(shù)據(jù)以及驗(yàn)證階段,由于需要多群管理員參與,消耗的時(shí)間成本與群管理員數(shù)量相關(guān)。
表3 2 種方案各步驟花費(fèi)的計(jì)算成本對(duì)比Table 3 Calculation cost comparison of each step of two schemes
為了得知本文方案具體的時(shí)間代價(jià),在Ubuntu-20.04.2.0 系統(tǒng)中編寫(xiě)程序,分別對(duì)群管理員個(gè)數(shù)不同、屬性個(gè)數(shù)不同以及零知識(shí)證明情況下所消耗的時(shí)間成本進(jìn)行測(cè)試。
1)群管理員數(shù)不同時(shí)各階段所花費(fèi)的時(shí)間
由于本文方案主要花費(fèi)時(shí)間在上鏈數(shù)據(jù)生成、驗(yàn)證以及追蹤階段,通過(guò)編寫(xiě)程序進(jìn)行測(cè)試,呈現(xiàn)群管理員數(shù)量對(duì)時(shí)間代價(jià)的影響,測(cè)試結(jié)果如圖2 所示。
圖2 群管理員數(shù)量對(duì)時(shí)間代價(jià)的影響Fig.2 Influence of the number of group administrators on time cost
從圖2 可以看出,隨著群管理員數(shù)量的增加,所花費(fèi)的時(shí)間逐漸增多,在群管理員數(shù)量為16 時(shí),約消耗1 127 ms,在群管理員數(shù)量為64 時(shí),約消耗3 794 ms,本文方案可以根據(jù)實(shí)際需要選擇群管理員數(shù)量,在保證用戶身份可追蹤且保護(hù)用戶隱私的情況下,增加毫秒級(jí)別的時(shí)間是可以接受的。
2)屬性個(gè)數(shù)不同時(shí)屬性加密所花費(fèi)的時(shí)間
在本文方案中,用戶對(duì)數(shù)據(jù)選擇性地進(jìn)行屬性加密,從而實(shí)現(xiàn)數(shù)據(jù)的細(xì)粒度訪問(wèn)權(quán)限控制。由于本文方案中的角色劃分種類較少,因此屬性集包含的屬性值數(shù)量較少,對(duì)屬性個(gè)數(shù)為4~8 時(shí)加密算法的時(shí)間代價(jià)進(jìn)行測(cè)試,結(jié)果如圖3 所示。從圖3 可以看出,當(dāng)屬性個(gè)數(shù)分別為4、6、8 時(shí),加解密花費(fèi)的時(shí)間代價(jià)逐漸上升,其中,當(dāng)屬性個(gè)數(shù)為4 時(shí),加解密分別約消耗324 ms、246 ms,當(dāng)屬性個(gè)數(shù)為8 時(shí),加解密分別約消耗443 ms、382 ms。
圖3 同文件下屬性加密所花費(fèi)的時(shí)間Fig.3 Time spent on attribute encryption under the same file
3)零知識(shí)證明生成與驗(yàn)證所花費(fèi)的時(shí)間
本文方案使用零知識(shí)證明驗(yàn)證用戶的撤銷標(biāo)記,在不泄露用戶身份隱私的情況下驗(yàn)證用戶身份的合法性。由于本文方案驗(yàn)證撤銷標(biāo)記是否在[0,1]區(qū)間內(nèi),因此對(duì)范圍[0,1]進(jìn)行證明。其中,橢圓曲線群階為1 024。從圖4 可以看出,零知識(shí)證明生成與驗(yàn)證所花費(fèi)的時(shí)間對(duì)方案性能的影響在可接受范圍內(nèi)。
圖4 零知識(shí)證明生成與驗(yàn)證所花費(fèi)的時(shí)間Fig.4 Time spent on generation and verification of zero-knowledge proof
綜上所述,本文方案所花費(fèi)的時(shí)間在可接受范圍內(nèi),相較其他單一方向監(jiān)管的隱私保護(hù)方案,本文方案不僅可以實(shí)現(xiàn)用戶雙方的監(jiān)管與群管理員分權(quán),而且可以選擇性地決定是否對(duì)數(shù)據(jù)進(jìn)行屬性加密,在群簽名的基礎(chǔ)上實(shí)現(xiàn)數(shù)據(jù)的雙重保護(hù),安全性更高。
針對(duì)基于區(qū)塊鏈的溯源系統(tǒng)中數(shù)據(jù)隱私與可追溯性難以平衡的問(wèn)題,提出一種區(qū)塊鏈可監(jiān)管雙重隱私保護(hù)方案。由多群管理員共同生成用戶密鑰,滿足溯源場(chǎng)景對(duì)監(jiān)管介入的需求,同時(shí)用戶有選擇性地對(duì)數(shù)據(jù)進(jìn)行屬性加密,在保證數(shù)據(jù)可追溯的同時(shí)實(shí)現(xiàn)數(shù)據(jù)的細(xì)粒度訪問(wèn)控制。實(shí)驗(yàn)結(jié)果表明,該方案所花費(fèi)的時(shí)間成本在可接受范圍內(nèi),并且能夠?qū)崿F(xiàn)更高級(jí)別的隱私安全。本文方案中群管理員所擁有的權(quán)限相等,且追蹤時(shí)間隨著群管理員數(shù)目的增加而延長(zhǎng),如何提高追蹤效率以及使用分級(jí)群簽名來(lái)對(duì)監(jiān)管機(jī)構(gòu)的權(quán)限進(jìn)行更細(xì)粒度的劃分,將是下一步的研究方向。