王 棟 李 達(dá) 馮景麗 石竹玉 樸桂榮
(國(guó)網(wǎng)數(shù)字科技控股有限公司(國(guó)網(wǎng)雄安金融科技集團(tuán)有限公司) 北京 100053) (國(guó)家電網(wǎng)有限公司區(qū)塊鏈技術(shù)實(shí)驗(yàn)室 北京 100053) (國(guó)網(wǎng)區(qū)塊鏈科技(北京)有限公司 北京 100053)
構(gòu)建安全高效的現(xiàn)代產(chǎn)業(yè)鏈?zhǔn)恰笆奈濉币?guī)劃的重要任務(wù)之一.在數(shù)字經(jīng)濟(jì)的作用下,激烈的市場(chǎng)競(jìng)爭(zhēng)促使各企業(yè)之間密切合作,共享產(chǎn)業(yè)鏈各環(huán)節(jié)產(chǎn)生的數(shù)據(jù),從而減少不確定性風(fēng)險(xiǎn),優(yōu)化生產(chǎn)服務(wù)流程,提升企業(yè)的經(jīng)濟(jì)價(jià)值[1-2].打通產(chǎn)業(yè)鏈中各企業(yè)不同主體之間以及不同主體內(nèi)部的數(shù)據(jù)流是激活數(shù)據(jù)要素價(jià)值潛力的關(guān)鍵[3].然而,產(chǎn)業(yè)鏈內(nèi)共享的數(shù)據(jù)涉及核心業(yè)務(wù)時(shí),數(shù)據(jù)安全和隱私問(wèn)題將阻礙企業(yè)間的合作和共享意愿.近年來(lái),訪問(wèn)控制技術(shù)被引入各行業(yè)來(lái)解決數(shù)據(jù)安全問(wèn)題[4-6].該技術(shù)通過(guò)監(jiān)控?cái)?shù)據(jù)要素的共享活動(dòng),確保只有經(jīng)過(guò)授權(quán)的企業(yè)才能在一定條件下訪問(wèn)數(shù)據(jù)資源.
屬性基加密(attribute-based encryption, ABE)[5]是實(shí)現(xiàn)細(xì)粒度訪問(wèn)控制的一種有效解決方案,其中基于密鑰策略的屬性基加密(key-policy attribute-based encryption, KP-ABE)[6]與基于密文策略的屬性基加密(ciphertext-policy attribute-based encryption, CP-ABE)[7]受到了廣泛關(guān)注.在KP-ABE中密鑰是根據(jù)訪問(wèn)策略生成的而密文是根據(jù)屬性集生成的,這些屬性決定了可以訪問(wèn)數(shù)據(jù)的群體.與之相反的是在CP-ABE中,密鑰是基于屬性集生成的而密文是由訪問(wèn)策略生成的,只有數(shù)據(jù)需求方的屬性適合滿(mǎn)足訪問(wèn)策略時(shí)可以成功地訪問(wèn)數(shù)據(jù).傳統(tǒng)的基于CP-ABE的訪問(wèn)控制方案如圖1所示.數(shù)據(jù)擁有方將加密后的數(shù)據(jù)資源和訪問(wèn)策略托管至云服務(wù)器,數(shù)據(jù)需求方向一個(gè)可信的權(quán)威機(jī)構(gòu)提交屬性信息以證明自己的身份并獲得相應(yīng)私鑰.最后,數(shù)據(jù)需求方通過(guò)私鑰訪問(wèn)相應(yīng)云服務(wù)器中的密文.與KP-ABE方案相比,CP-ABE方案允許擁有數(shù)據(jù)的企業(yè)自定義訪問(wèn)策略,更適用于產(chǎn)業(yè)鏈中分布式自治的訪問(wèn)控制模式.
圖1 基于CP-ABE的訪問(wèn)控制方案
然而,產(chǎn)業(yè)鏈?zhǔn)瞧髽I(yè)內(nèi)部和企業(yè)之間創(chuàng)造和轉(zhuǎn)移價(jià)值的動(dòng)態(tài)協(xié)作網(wǎng)絡(luò),涉及跨部門(mén)、跨企業(yè)、跨產(chǎn)業(yè)之間的協(xié)作,同時(shí)包含供應(yīng)商、制造商、運(yùn)營(yíng)商、零售商和客戶(hù)等多個(gè)實(shí)體,這種跨領(lǐng)域、多中心、動(dòng)態(tài)性特征使得傳統(tǒng)的方案無(wú)法滿(mǎn)足產(chǎn)業(yè)鏈中復(fù)雜的訪問(wèn)控制場(chǎng)景需求.首先,很難通過(guò)單一的權(quán)威機(jī)構(gòu)對(duì)所有企業(yè)的屬性進(jìn)行認(rèn)證和監(jiān)視,而屬性的多樣性與可信性將直接影響數(shù)據(jù)要素共享的安全性.其次,由于權(quán)威機(jī)構(gòu)負(fù)責(zé)管理所有企業(yè)的解密密鑰,存在密鑰濫用的風(fēng)險(xiǎn),進(jìn)而可能導(dǎo)致產(chǎn)業(yè)鏈中的數(shù)據(jù)資源泄露.此外,考慮到產(chǎn)業(yè)鏈的動(dòng)態(tài)性特征,需要保證系統(tǒng)的前向安全與后向安全,即新加入到產(chǎn)業(yè)鏈的企業(yè)可以訪問(wèn)系統(tǒng)中已共享的數(shù)據(jù)資源,而退出的企業(yè)無(wú)法再訪問(wèn)之前的數(shù)據(jù)資源.為減輕單一權(quán)威機(jī)構(gòu)的負(fù)擔(dān),Chase[8]首次提出了多授權(quán)中心的屬性基加密(multi-authority ABE, MA-ABE)方案.但是該方案需要一個(gè)可信的授權(quán)中心(central authority, CA)管理屬性機(jī)構(gòu)并且不支持屬性更新和用戶(hù)撤銷(xiāo),具有較高的信任成本,難以保證系統(tǒng)的后向安全.
此外,現(xiàn)有的CP-ABE解決方案大多難以保證上傳至云端數(shù)據(jù)的完整性,且存在單點(diǎn)故障的風(fēng)險(xiǎn).為了解決這一問(wèn)題,文獻(xiàn)[9-10]提出了基于區(qū)塊鏈的訪問(wèn)控制方案.該方案將數(shù)據(jù)的哈希值和訪問(wèn)策略上傳至區(qū)塊鏈網(wǎng)絡(luò),利用區(qū)塊鏈的公開(kāi)透明性和不可篡改等特性保證數(shù)據(jù)資源的完整性和可信性.雖然已有方案研究了區(qū)塊鏈與CP-ABE的結(jié)合,但對(duì)于多授權(quán)中心的CP-ABE(multi-authority CP-ABE, MA-CP-ABE)討論較少.區(qū)塊鏈的防篡改、防偽造、可追溯、可審計(jì)等特性,可以有效提高企業(yè)屬性集的可信性,降低屬性機(jī)構(gòu)的管理成本.通過(guò)密碼學(xué)、共識(shí)協(xié)議、分布式存儲(chǔ)、智能合約等多種技術(shù)的有效組合,使得在沒(méi)有CA的參與下可以建立節(jié)點(diǎn)之間的信任關(guān)系.
為了解決上述數(shù)據(jù)要素安全共享、細(xì)粒度訪問(wèn)控制、可信屬性管理、訪問(wèn)可撤銷(xiāo)、數(shù)據(jù)資源完整性等挑戰(zhàn),本文提出了基于區(qū)塊鏈的產(chǎn)業(yè)鏈數(shù)據(jù)要素共享及訪問(wèn)控制方案.
主要研究工作如下:
1) 提出了安全可信的基于區(qū)塊鏈的數(shù)據(jù)要素共享及訪問(wèn)控制模型,緩解產(chǎn)業(yè)鏈中數(shù)據(jù)孤島問(wèn)題.產(chǎn)業(yè)鏈中的企業(yè)通過(guò)區(qū)塊鏈網(wǎng)絡(luò)共享加密后的數(shù)據(jù)資源,所有訪問(wèn)記錄都留存在區(qū)塊鏈中方便日后審計(jì).企業(yè)獲得分布式屬性機(jī)構(gòu)的認(rèn)證后,根據(jù)訪問(wèn)策略訪問(wèn)相應(yīng)數(shù)據(jù)要素.
2) 設(shè)計(jì)了訪問(wèn)可撤銷(xiāo)的MA-CP-ABE算法,提升了訪問(wèn)控制的安全性和靈活性.該算法支持無(wú)可信中心的分布式屬性管理,依據(jù)屬性細(xì)粒度地控制企業(yè)訪問(wèn).
3) 分析證明了本文方案的安全性并與現(xiàn)有方案進(jìn)行了綜合比較.
基于CP-ABE的訪問(wèn)控制方案因其較強(qiáng)的表達(dá)能力和可擴(kuò)展性而受到廣泛關(guān)注.
然而,現(xiàn)有的方案大多依賴(lài)于一個(gè)可信的權(quán)威機(jī)構(gòu)管理所有用戶(hù)的屬性和密鑰,使得權(quán)威機(jī)構(gòu)可以解密系統(tǒng)中的任何密文,存在較高的安全風(fēng)險(xiǎn).為緩解這一問(wèn)題,Chase[8]將傳統(tǒng)方案擴(kuò)展為具有1個(gè)CA和多個(gè)屬性機(jī)構(gòu)(attribute authority, AA)的多屬性權(quán)威方案.CA負(fù)責(zé)為AA生成“種子”,AA負(fù)責(zé)根據(jù)“種子”生成用戶(hù)的屬性密鑰.為進(jìn)一步移除CA,Chase等人[11]在初始化階段引入了偽隨機(jī)函數(shù)共享“種子”.該方案只能抵御na-2個(gè)AA的共謀攻擊,其中na為系統(tǒng)中AA的數(shù)量[12].Lewko等人[13]提出一種分布式MA-CP-ABE解決方案,該方案不需要AA協(xié)作,只需要?jiǎng)?chuàng)建1組初始的公共參數(shù).該方案采用線(xiàn)性秘密共享(linear secret sharing scheme, LSSS)矩陣描述訪問(wèn)策略,相比于AND門(mén)具有更強(qiáng)的表達(dá)能力.但是,該方案無(wú)法保障系統(tǒng)的后向安全.
此外,為了提升MA-CP-ABE中屬性這一關(guān)鍵組件的可信性,Guo等人[14]通過(guò)智能合約定義了數(shù)據(jù)擁有方、數(shù)據(jù)需求方和多個(gè)AA之間的交互.其中,數(shù)據(jù)擁有方采用對(duì)稱(chēng)加密生成密文會(huì)造成巨大的密鑰管理開(kāi)銷(xiāo).Qin等人[15]在云數(shù)據(jù)共享中設(shè)計(jì)的基于區(qū)塊鏈的MA-CP-ABE方案通過(guò)區(qū)塊鏈建立AA之間的信任關(guān)系,實(shí)現(xiàn)CA與多個(gè)AA對(duì)屬性的聯(lián)合管理并防止單點(diǎn)失效.但是,該方案中存在CA并且無(wú)法保障系統(tǒng)的后向安全.Xiao等人[16]提出了基于區(qū)塊鏈的可撤銷(xiāo)的MA-KP-ABE訪問(wèn)控制方案,區(qū)塊鏈為數(shù)據(jù)擁有方提供發(fā)布數(shù)據(jù)服務(wù),主要作為支付平臺(tái)使用.總體而言,現(xiàn)有的訪問(wèn)控制方案不適用于具有跨領(lǐng)域、多中心、動(dòng)態(tài)性特征的產(chǎn)業(yè)鏈系統(tǒng).
本節(jié)簡(jiǎn)單介紹相關(guān)的基礎(chǔ)知識(shí),包括訪問(wèn)策略的定義、雙線(xiàn)性映射和MA-CP-ABE.
設(shè)A={att1,att2,…,attn}是系統(tǒng)的屬性集合,定義訪問(wèn)策略P是A的一類(lèi)非空子集的集合,即P?2A?.對(duì)于任意2個(gè)集合B和C,當(dāng)且僅當(dāng)B?P并且B?C時(shí),使得C?P成立,則稱(chēng)訪問(wèn)策略P是單調(diào)的.對(duì)于任意企業(yè)k的屬性集合Sk,當(dāng)且僅當(dāng)Sk∈P時(shí)稱(chēng)Sk為授權(quán)集合,即企業(yè)k可以訪問(wèn)數(shù)據(jù),否則稱(chēng)之為非授權(quán)集合.本文采用的訪問(wèn)策略都是單調(diào)的.
設(shè)G和GT是2個(gè)p階乘法循環(huán)群,g是G的生成元.雙線(xiàn)性映射e:G×G→GT具有以下性質(zhì):
1) 雙線(xiàn)性性.對(duì)于?g1,g2,g3∈G,?a,b∈p,有
2) 非退化性.e(g,g)≠1.
3) 可計(jì)算性.對(duì)于?g4,g5∈G,能夠在多項(xiàng)式時(shí)間內(nèi)計(jì)算e(g4,g5).
MA-CP-ABE包含以下5個(gè)算法[13].
1)GlobalSetup(1δ)→(GP):系統(tǒng)初始化時(shí)以安全參數(shù)δ作為輸入,輸出系統(tǒng)參數(shù)GP.
2)AuthoritySetup(GP)→(SK,PK):授權(quán)中心以參數(shù)GP作為輸入,生成自己的公鑰PK和私鑰SK.
3)Encrypt(Message,(M,ρ),GP,PK)→(CT):加密算法以消息Message、訪問(wèn)策略(M,ρ)、系統(tǒng)參數(shù)GP和公鑰PK作為輸入,輸出消息的密文CT.
4)KeyGen(GID,GP,i,SK)→(Ki,GID):密鑰生成算法以身份信息GID、全局參數(shù)GP、屬性i和私鑰SK作為輸入,輸入用戶(hù)的密鑰Ki,GID.
5)Decrypt(CT,GP,Ki,GID)→Message:解密算法以密文CT、系統(tǒng)參數(shù)GP以及與屬性身份對(duì)應(yīng)的密鑰Ki,GID作為輸入.當(dāng)屬性集合i滿(mǎn)足密文對(duì)應(yīng)的訪問(wèn)矩陣M時(shí),輸出消息Message.否則,解密失敗.
系統(tǒng)模型如圖2所示,參與實(shí)體包括產(chǎn)業(yè)鏈中的各個(gè)企業(yè)、屬性管理機(jī)構(gòu)和數(shù)據(jù)池.根據(jù)業(yè)務(wù)場(chǎng)景需求將企業(yè)劃分為2類(lèi),分別是數(shù)據(jù)擁有方和數(shù)據(jù)需求方.
圖2 系統(tǒng)模型
1) 數(shù)據(jù)擁有方.為實(shí)現(xiàn)安全的數(shù)據(jù)共享,數(shù)據(jù)擁有方負(fù)責(zé)制定訪問(wèn)策略并加密數(shù)據(jù)資源.在此之后,通過(guò)共享合約將密文存儲(chǔ)地址、哈希值、訪問(wèn)策略等發(fā)布到區(qū)塊鏈上,方便其他企業(yè)訪問(wèn),也可以作為數(shù)據(jù)權(quán)屬的依據(jù).
2) 數(shù)據(jù)需求方.當(dāng)企業(yè)缺失與產(chǎn)業(yè)鏈相關(guān)部分?jǐn)?shù)據(jù)時(shí),數(shù)據(jù)需求方通過(guò)授權(quán)合約訪問(wèn)相關(guān)數(shù)據(jù)資源.為獲取優(yōu)質(zhì)的數(shù)據(jù)資源,這些企業(yè)會(huì)積極配合授權(quán)訪問(wèn)的過(guò)程,也可能會(huì)支付一定報(bào)酬.
3) 屬性機(jī)構(gòu).屬性機(jī)構(gòu)是預(yù)先設(shè)定的區(qū)塊鏈認(rèn)證節(jié)點(diǎn),負(fù)責(zé)認(rèn)證和管理企業(yè)的屬性集合.屬性包含多種類(lèi)型,由不同的機(jī)構(gòu)分別管理.數(shù)據(jù)擁有方根據(jù)不同屬性機(jī)構(gòu)管理的屬性制定訪問(wèn)策略以實(shí)現(xiàn)安全的細(xì)粒度訪問(wèn)控制.當(dāng)業(yè)務(wù)發(fā)生變化導(dǎo)致需要更改屬性時(shí),屬性機(jī)構(gòu)通過(guò)認(rèn)證合約更新企業(yè)的屬性集合.
4) 數(shù)據(jù)池.數(shù)據(jù)池為數(shù)據(jù)要素共享提供充足的存儲(chǔ)空間,方便企業(yè)快速存取數(shù)據(jù)資源.數(shù)據(jù)擁有方將共享數(shù)據(jù)加密后上傳至數(shù)據(jù)池,任何產(chǎn)業(yè)鏈企業(yè)都可以從數(shù)據(jù)池中下載相應(yīng)密文數(shù)據(jù).
本文提出的RM-CP-ABE算法由系統(tǒng)初始化(Setup)、屬性機(jī)構(gòu)初始化(ASetup)、密鑰生成(KeyGen)、密鑰撤銷(xiāo)(KeyRev)、加密(Encrypt)、重加密(ReEnctypt)、解密(Decrypt)算法組成.
1)Setup(1δ)→(GP):系統(tǒng)初始化算法以安全參數(shù)δ作為輸入,輸出系統(tǒng)參數(shù)GP.
2)ASetup(GP)→({APKj,ASKj}j∈A):屬性機(jī)構(gòu)初始化算法以GP作為輸入,輸出屬性機(jī)構(gòu)j的公鑰APKj和私鑰ASKj.
3)KeyGen(GP,UID,{IUID,j,ASKj}j∈A)→({UKI,j}j∈A):密鑰生成算法以GP、企業(yè)的身份信息UID、屬性集IUID,j和ASKj作為輸入,輸出企業(yè)的密鑰UKI,j.
5)Encrypt(key,(M,ρ),GP,{APKj}j∈A)→(CT):加密算法以對(duì)稱(chēng)密鑰key、訪問(wèn)策略(M,ρ)、GP和APKj作為輸入,輸出對(duì)稱(chēng)密鑰的密文CT.
6)ReEncrypt(CT,(M,ρ),{ASKj}j∈A)→(CT*):重加密算法以CT,(M,ρ),ASKj作為輸入,輸出新密文CT*.
7)Decrypt(CT,GP,UID,{UKI,j}j∈A)→(key):解密算法以CT,GP,UID,UKI,j作為輸入,輸出key.
訪問(wèn)控制涉及區(qū)塊鏈上和區(qū)塊鏈下的操作.在區(qū)塊鏈網(wǎng)絡(luò)中,屬性機(jī)構(gòu)之間通過(guò)提前部署的智能合約進(jìn)行交互并管理產(chǎn)業(yè)鏈上企業(yè)的屬性,從而降低參與實(shí)體之間的信任成本,提升屬性機(jī)構(gòu)的權(quán)威性和訪問(wèn)控制的安全性.每個(gè)加入?yún)^(qū)塊鏈的節(jié)點(diǎn)都將獲得唯一的身份標(biāo)識(shí)、公鑰和私鑰.屬性機(jī)構(gòu)會(huì)為每個(gè)注冊(cè)成功的企業(yè)生成1個(gè)屬性列表并采用橢圓曲線(xiàn)數(shù)字簽名算法為其認(rèn)證的屬性簽名背書(shū).數(shù)據(jù)擁有方通過(guò)共享合約發(fā)布共享數(shù)據(jù)資源的信息,而數(shù)據(jù)需求方通過(guò)授權(quán)合約請(qǐng)求訪問(wèn)相應(yīng)數(shù)據(jù)資源.在鏈下,產(chǎn)業(yè)鏈企業(yè)之間以屬性機(jī)構(gòu)背書(shū)的屬性為基礎(chǔ)實(shí)現(xiàn)細(xì)粒度的訪問(wèn)控制.首先,數(shù)據(jù)擁有方制定訪問(wèn)策略并運(yùn)行加密算法,將共享數(shù)據(jù)轉(zhuǎn)換為密文后上傳至存儲(chǔ)服務(wù)器.在此之后,數(shù)據(jù)需求方依據(jù)屬性集判斷是否能解密密文,后續(xù)通過(guò)屬性密鑰還原存儲(chǔ)服務(wù)器中的共享數(shù)據(jù).
本文方案大致分為5個(gè)階段,分別是初始化階段、共享階段、認(rèn)證階段、訪問(wèn)階段、撤銷(xiāo)階段.
產(chǎn)業(yè)鏈中的企業(yè)和屬性機(jī)構(gòu)共同形成聯(lián)盟鏈,作為合法節(jié)點(diǎn)參與數(shù)據(jù)要素共享.屬性機(jī)構(gòu)認(rèn)證企業(yè)的屬性,企業(yè)之間通過(guò)區(qū)塊鏈網(wǎng)絡(luò)共享和訪問(wèn)數(shù)據(jù).在加入系統(tǒng)時(shí),每個(gè)節(jié)點(diǎn)將獲得唯一的真實(shí)身份UID和用于通信和生成數(shù)字簽名的公鑰和私鑰.此外,運(yùn)行Setup算法初始化RM-CP-ABE的必要參數(shù).Setup算法如下:
Setup(1δ)→(GP).基于安全參數(shù)δ生成系統(tǒng)參數(shù)GP=(G,GT,e,N,g,H).其中,G和GT是雙線(xiàn)性循環(huán)群,G是以g為生成元的N階循環(huán)群,雙線(xiàn)性映射e:G×G→GT,哈希函數(shù)H:{0,1}*→G將UID映射為群G的元素.
屬性機(jī)構(gòu)確定GP后,各自運(yùn)行ASetup算法計(jì)算用于認(rèn)證企業(yè)屬性的公鑰和私鑰.ASetup算法如下:
ASetup(GP)→({APKj,ASKj}j∈A).該算法用于生成屬性機(jī)構(gòu)j的密鑰對(duì).屬性機(jī)構(gòu)j為其管理的屬性i選擇隨機(jī)數(shù)Ri,αi,βi∈N,并計(jì)算xi=Riαi,yi=Riβi.隨后,公開(kāi)其公鑰APKj=(Verj,e(g,g)xi,gyi?i),并保存私鑰ASKj=(Verj,Ri,xi,yi?i).Verj用于標(biāo)識(shí)當(dāng)前密鑰版本,屬性更新時(shí)迭代新版本.
初始化時(shí)的存證以交易的形式記錄在區(qū)塊鏈中.區(qū)塊鏈中的每個(gè)區(qū)塊都包含區(qū)塊頭和區(qū)塊體2個(gè)部分,交易存儲(chǔ)在區(qū)塊中,而區(qū)塊頭中保存這些交易的Merkle根、前一個(gè)區(qū)塊的哈希值、時(shí)間戳等,以保證交易的不可篡改、可追溯、可審計(jì).每個(gè)新區(qū)塊都是由共識(shí)協(xié)議確定的通用規(guī)則生成,每個(gè)節(jié)點(diǎn)都存有區(qū)塊鏈的副本,即使部分節(jié)點(diǎn)宕機(jī)也不會(huì)影響訪問(wèn)控制的正常運(yùn)行.
擁有數(shù)據(jù)的企業(yè)通過(guò)區(qū)塊鏈網(wǎng)絡(luò)共享數(shù)據(jù)資源,打通產(chǎn)業(yè)鏈各環(huán)節(jié)的數(shù)據(jù)流,激活數(shù)據(jù)要素的潛力.考慮到數(shù)據(jù)資源的安全性以及數(shù)據(jù)共享的性能,數(shù)據(jù)擁有方首先選擇對(duì)稱(chēng)密鑰key加密原始數(shù)據(jù).然后,制定訪問(wèn)策略(M,ρ)并運(yùn)行Encrypt算法加密key.Encrypt算法如下.
Encrypt(key,(M,ρ),GP,{APKj}j∈A)→(CT):M為一個(gè)規(guī)模為γ×τ的線(xiàn)性秘密共享矩陣,ρ表示矩陣M的行與屬性的映射關(guān)系.隨機(jī)選取一個(gè)隨機(jī)數(shù)s∈N,構(gòu)造一個(gè)隨機(jī)向量V=(s,v2,…,vτ)T,其中v2,…,vτ∈N.計(jì)算λl=MlV,其中Ml是矩陣M的第l行.此外,構(gòu)造1個(gè)隨機(jī)向量W=(0,w2,…,wτ)T,其中w2,…,wτ∈N.計(jì)算Wl=MlW.對(duì)應(yīng)矩陣中的每一行Ml隨機(jī)選取hl∈N,并計(jì)算
C0=key·e(g,g)s,
C1,l=e(g,g)λle(g,g)xρ(l)hl,
C2,l=ghl,
C3,l=gyρ(l)hlgWl.
最后,輸出密文CT=(C0,C1,l,C2,l,C3,l?l).
此后,數(shù)據(jù)擁有方將數(shù)據(jù)密文和密鑰密文打包為數(shù)據(jù)資源D一同上傳至數(shù)據(jù)池,數(shù)據(jù)池為其返回一個(gè)存儲(chǔ)地址AdD.最后,數(shù)據(jù)擁有方運(yùn)行共享合約,將數(shù)據(jù)資源信息分享至區(qū)塊鏈網(wǎng)絡(luò),供其他節(jié)點(diǎn)訪問(wèn).共享合約的核心函數(shù)為newTS(),用于生成共享交易
TS={SID,DHash,MetaD,AdD,P,sign},
其中SID為此共享合約的唯一ID,DHash為數(shù)據(jù)資源D的哈希值,MetaD為D的元數(shù)據(jù),AdD為數(shù)據(jù)資源對(duì)應(yīng)于數(shù)據(jù)池中的存儲(chǔ)地址,P為訪問(wèn)策略,sign為數(shù)據(jù)擁有方的簽名.在共識(shí)交易時(shí),主要驗(yàn)證AdD對(duì)應(yīng)的數(shù)據(jù)資源哈希值是否與DHash一致.
由此,數(shù)據(jù)需求方可根據(jù)區(qū)塊鏈中披露的MetaD確定數(shù)據(jù)資源與需求的匹配程度,再根據(jù)P確定是否可以訪問(wèn).由于區(qū)塊鏈中的交易是不可篡改的,而且訪問(wèn)策略由數(shù)據(jù)擁有方直接發(fā)布,可以保證訪問(wèn)策略是可信的.
考慮到產(chǎn)業(yè)鏈中涉及跨產(chǎn)業(yè)、跨企業(yè)、跨部門(mén)的數(shù)據(jù)共享,而單一的屬性機(jī)構(gòu)很難認(rèn)證所有企業(yè)的屬性類(lèi)別,本文方案設(shè)計(jì)了分布式架構(gòu),即不同屬性機(jī)構(gòu)負(fù)責(zé)不同屬性類(lèi)別.數(shù)據(jù)需求方可根據(jù)訪問(wèn)策略中的屬性類(lèi)型,分別向?qū)?yīng)的屬性機(jī)構(gòu)請(qǐng)求屬性認(rèn)證.屬性機(jī)構(gòu)負(fù)責(zé)驗(yàn)證產(chǎn)業(yè)鏈企業(yè)的屬性并為其生成密鑰,其過(guò)程由認(rèn)證合約輔助完成.認(rèn)證合約包含以下函數(shù).
1)checkAT():當(dāng)企業(yè)向?qū)傩詸C(jī)構(gòu)發(fā)送驗(yàn)證屬性的請(qǐng)求時(shí),屬性機(jī)構(gòu)調(diào)用此函數(shù)驗(yàn)證其屬性.
2)undoAT():當(dāng)企業(yè)信息發(fā)生變化需要更新屬性時(shí),屬性機(jī)構(gòu)調(diào)用此算法撤銷(xiāo)相應(yīng)屬性.
3)newTA():屬性機(jī)構(gòu)為驗(yàn)證通過(guò)的企業(yè)生成新的屬性,并生成屬性交易
TA={AID,atti,UID,sign,Verj},
其中AID為屬性交易的唯一ID,atti為認(rèn)證通過(guò)的屬性,Verj為當(dāng)前版本.
4)sendKey():屬性機(jī)構(gòu)為企業(yè)分發(fā)密鑰.
在認(rèn)證完屬性后,屬性機(jī)構(gòu)通過(guò)運(yùn)行KeyGen算法為企業(yè)生成密鑰,KeyGen算法如下.
KeyGen(GP,UID,{IUID,j,ASKj}j∈A)→({UKI,j}j∈A):UKI,j=({gxiH(UID)yi}i∈IUID,j,Verj).
需要注意的是,為保證通信安全性,將消息以接收方的區(qū)塊鏈公鑰加密后發(fā)送,接收方通過(guò)自身的區(qū)塊鏈私鑰解密后讀取相應(yīng)內(nèi)容.此外,多中心的屬性機(jī)構(gòu)的設(shè)計(jì)可以很好抵御企業(yè)與單屬性機(jī)構(gòu)共謀所導(dǎo)致的密鑰濫用問(wèn)題.同時(shí),將企業(yè)ID與屬性之間形成綁定關(guān)系,也可以解決企業(yè)之間通過(guò)共謀組合出解密密鑰的問(wèn)題.
數(shù)據(jù)需求方調(diào)用授權(quán)合約訪問(wèn)數(shù)據(jù).授權(quán)合約中的函數(shù)accControl()會(huì)驗(yàn)證需求方的TA是否滿(mǎn)足TS中的策略要求.當(dāng)數(shù)據(jù)需求方收集到足夠多的屬性交易時(shí),即可從數(shù)據(jù)池中獲取加密的數(shù)據(jù)資源,通過(guò)運(yùn)行Decrypt算法解密后訪問(wèn).Decrypt算法如下.
授權(quán)合約中的函數(shù)newTX()生成訪問(wèn)交易TX={XID,UID,SID,time},將需求方的訪問(wèn)信息記錄在鏈上,便于之后的審計(jì).其中,XID為訪問(wèn)交易的唯一ID,time用于標(biāo)識(shí)訪問(wèn)數(shù)據(jù)的時(shí)間.即訪問(wèn)交易中記錄了企業(yè)UID,在時(shí)刻time,訪問(wèn)了SID中地址對(duì)應(yīng)的數(shù)據(jù).
由于業(yè)務(wù)發(fā)生變化,部分企業(yè)需要退出產(chǎn)業(yè)鏈或更新一些屬性信息時(shí),同樣運(yùn)行認(rèn)證合約.屬性機(jī)構(gòu)通過(guò)調(diào)用函數(shù)checkAT()重新驗(yàn)證屬性,并通過(guò)函數(shù)undoAT()撤銷(xiāo)相應(yīng)屬性.屬性機(jī)構(gòu)需要運(yùn)行KeyRev算法更新企業(yè)的密鑰,同時(shí)數(shù)據(jù)池需要通過(guò)ReEncrypt算法對(duì)影響到的密文再加密一次,以保證系統(tǒng)的后向安全.具體算法如下.
2)ReEncrypt(CT,(M,ρ).{ASKj}j∈A)→(CT*):企業(yè)被撤銷(xiāo)后對(duì)原始密文再加密1次,以保證數(shù)據(jù)的后向安全.計(jì)算
本節(jié)從保密性、可信性、完整性、可追蹤和可審計(jì)幾方面分析方案的安全性.
保密性:通過(guò)對(duì)稱(chēng)加密和屬性基加密來(lái)保護(hù)企業(yè)敏感數(shù)據(jù)的同時(shí)確保只有授權(quán)企業(yè)能夠讀取相應(yīng)消息.本文方案是一個(gè)多屬性機(jī)構(gòu)的方案,因此即使企業(yè)與某些屬性機(jī)構(gòu)共謀,也無(wú)法獲得完整的解密密鑰.同時(shí),當(dāng)一些企業(yè)退出合作時(shí),屬性機(jī)構(gòu)會(huì)及時(shí)更新其屬性,防止產(chǎn)業(yè)鏈數(shù)據(jù)泄露.此外,企業(yè)之間也可以采用區(qū)塊鏈中的公鑰與私鑰以密文的形式點(diǎn)對(duì)點(diǎn)通信,這樣網(wǎng)絡(luò)中的竊聽(tīng)者就無(wú)法獲得敏感數(shù)據(jù).
可信性:訪問(wèn)控制的可信性依賴(lài)于企業(yè)屬性集和訪問(wèn)策略的可信性.一方面,與傳統(tǒng)的單授權(quán)機(jī)構(gòu)的訪問(wèn)控制方案相比,本文的基于區(qū)塊鏈的多中心屬性授權(quán)機(jī)制可以克服產(chǎn)業(yè)鏈復(fù)雜場(chǎng)景中單個(gè)機(jī)構(gòu)無(wú)法驗(yàn)證所有屬性的難題,并且可以抵御共謀攻擊,提升屬性的可信性.另一方面,與基于云服務(wù)器的訪問(wèn)控制方案相比,訪問(wèn)策略由擁有數(shù)據(jù)的企業(yè)自行制定并發(fā)布至區(qū)塊鏈網(wǎng)絡(luò)中無(wú)法篡改,需求方可根據(jù)鏈上的信息自行訪問(wèn)相應(yīng)數(shù)據(jù).
完整性:擁有數(shù)據(jù)的企業(yè)將共享數(shù)據(jù)的密文哈希值和訪問(wèn)策略以交易的形式發(fā)布至區(qū)塊鏈網(wǎng)絡(luò),以保證數(shù)據(jù)和訪問(wèn)策略的完整性.已授權(quán)的區(qū)塊鏈網(wǎng)絡(luò)中的企業(yè)可以根據(jù)需求隨時(shí)訪問(wèn)相應(yīng)數(shù)據(jù).為了防止擁有數(shù)據(jù)的企業(yè)或第三方存儲(chǔ)服務(wù)器篡改原始數(shù)據(jù),訪問(wèn)數(shù)據(jù)的企業(yè)可根據(jù)已無(wú)法更改的區(qū)塊鏈上的信息來(lái)隨時(shí)查驗(yàn)數(shù)據(jù)的完整性.
可追蹤和可審計(jì):數(shù)據(jù)發(fā)布和訪問(wèn)請(qǐng)求都會(huì)記錄在區(qū)塊鏈網(wǎng)絡(luò)中以實(shí)現(xiàn)對(duì)訪問(wèn)控制的追蹤和審計(jì).對(duì)于擁有數(shù)據(jù)的企業(yè),企業(yè)發(fā)布的交易中包含企業(yè)的簽名,可作為數(shù)據(jù)權(quán)屬的依據(jù),同時(shí)企業(yè)也無(wú)法否認(rèn)其發(fā)布的數(shù)據(jù).數(shù)據(jù)擁有方可以追蹤哪些企業(yè)訪問(wèn)了數(shù)據(jù),也可以根據(jù)訪問(wèn)記錄隨時(shí)撤銷(xiāo)和更新產(chǎn)業(yè)鏈數(shù)據(jù),以防止未經(jīng)授權(quán)的實(shí)體訪問(wèn)數(shù)據(jù).對(duì)于需要數(shù)據(jù)的企業(yè),其每一次請(qǐng)求都會(huì)記錄在區(qū)塊鏈上,很容易檢測(cè)到一些惡意行為,對(duì)其實(shí)行相應(yīng)懲罰.
將MA-CP-ABE方案的選擇明文攻擊(chosen plaintext attack, CPA)安全描述為挑戰(zhàn)者與攻擊者之間的博弈.CPA安全博弈如下:
定義1.如果在多項(xiàng)式時(shí)間內(nèi),攻擊者贏得游戲的優(yōu)勢(shì)是可以忽略的,則本文方案是安全的.
引理1.假設(shè)在多項(xiàng)式時(shí)間內(nèi),沒(méi)有攻擊者可以以不可忽略的優(yōu)勢(shì)破壞MA-CP-ABE的安全性,那么就沒(méi)有攻擊者能以不可忽視的優(yōu)勢(shì)打破此系統(tǒng).
證明. 定義攻擊者和挑戰(zhàn)者之間的交互,挑戰(zhàn)者執(zhí)行協(xié)議并回答攻擊者的查詢(xún).
1) 初始化:挑戰(zhàn)者執(zhí)行ASetup算法生成公鑰和私鑰對(duì),并發(fā)送給攻擊者.
2) 階段1:攻擊者設(shè)定一個(gè)屬性集I1,I2,…,IA,向挑戰(zhàn)者提交(i,UID)來(lái)查詢(xún)密鑰.挑戰(zhàn)者作為回應(yīng)將相應(yīng)密鑰發(fā)送給攻擊者.
3) 挑戰(zhàn):攻擊者將相同大小的消息ME0,ME1發(fā)送給挑戰(zhàn)者.挑戰(zhàn)者隨機(jī)選擇比特b∈{0,1},并根據(jù)訪問(wèn)策略(Mb,ρ)加密MEb.其中,攻擊者的屬性集I1,I2,…,IA都不滿(mǎn)足訪問(wèn)策略(Mb,ρ).最終,將密文發(fā)送給攻擊者.
4) 階段2:攻擊者繼續(xù)向挑戰(zhàn)者查詢(xún)密鑰,同時(shí)其屬性集都與訪問(wèn)策略不符.
5) 猜測(cè):攻擊者輸出對(duì)b的猜測(cè)b′∈{0,1}.當(dāng)b=b′時(shí),攻擊者贏得游戲.攻擊者贏得上述游戲的優(yōu)勢(shì)定義為
其概率由隨機(jī)比特決定.
證畢.
本文方案與相關(guān)CP-ABE訪問(wèn)控制方案的比較如表1所示.從以下6個(gè)方面進(jìn)行比較分析,分別是屬性基的訪問(wèn)結(jié)構(gòu)、是否支持訪問(wèn)撤銷(xiāo)、是否為MA-CP-ABE方案、是否存在CA、是否可以追蹤訪問(wèn)足跡、是否采用了區(qū)塊鏈技術(shù),其中“√”表示具有相應(yīng)功能特性,“×”表示不具備相應(yīng)功能特性.文獻(xiàn)[10]設(shè)計(jì)的訪問(wèn)控制方案采用偉達(dá)定理保護(hù)了訪問(wèn)策略中的隱私,即采用了“正負(fù)號(hào)與門(mén)”訪問(wèn)結(jié)構(gòu).為了更好地表達(dá)能力,本文方案采用的是LSSS結(jié)構(gòu).在訪問(wèn)撤銷(xiāo)方面,文獻(xiàn)[10]設(shè)計(jì)了撤銷(xiāo)合約來(lái)管理離開(kāi)系統(tǒng)的用戶(hù)列表從而實(shí)現(xiàn)訪問(wèn)撤銷(xiāo),而文獻(xiàn)[14]和本文方案設(shè)計(jì)了可撤銷(xiāo)的CP-ABE算法來(lái)實(shí)現(xiàn)用戶(hù)撤銷(xiāo).此外,本文方案支持屬性撤銷(xiāo),即從屬性層面實(shí)現(xiàn)細(xì)粒度的更新和撤銷(xiāo).文獻(xiàn)[11-13,15]和本文方案設(shè)計(jì)了MA-CP-ABE算法來(lái)解決由單授權(quán)機(jī)構(gòu)所引發(fā)的安全問(wèn)題,其中文獻(xiàn)[12-13,15]引入了一個(gè)可信的CA生成公開(kāi)參數(shù)和管理屬性機(jī)構(gòu),而在本文方案中通過(guò)區(qū)塊鏈技術(shù)同步公開(kāi)參數(shù)并且實(shí)現(xiàn)了無(wú)CA的分布式訪問(wèn)控制方案.此外,文獻(xiàn)[10,15]和本文方案進(jìn)一步引入了區(qū)塊鏈技術(shù)提升訪問(wèn)控制的可信性.總的來(lái)說(shuō),本文方案設(shè)計(jì)了訪問(wèn)可撤銷(xiāo)的MA-CP-ABE算法,構(gòu)建了基于區(qū)塊鏈的無(wú)CA的安全可信的訪問(wèn)控制方案.
表1 CP-ABE方案對(duì)比
本文提出了一種基于區(qū)塊鏈的數(shù)據(jù)要素共享及訪問(wèn)控制方案,實(shí)現(xiàn)了細(xì)粒度的訪問(wèn)控制并解決了授權(quán)機(jī)構(gòu)單一、信任成本高、訪問(wèn)難撤銷(xiāo)、單點(diǎn)失效等挑戰(zhàn).通過(guò)設(shè)計(jì)RM-CP-ABE算法實(shí)現(xiàn)了屬性更新和分布式的屬性認(rèn)證.此外,結(jié)合區(qū)塊鏈技術(shù)設(shè)計(jì)了共享合約、授權(quán)合約和認(rèn)證合約實(shí)現(xiàn)安全可信的數(shù)據(jù)共享.理論分析表明,本文方案可以實(shí)現(xiàn)安全的數(shù)據(jù)共享和有效的訪問(wèn)控制.