張凌云,陳玉玲
(貴州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 公共大數(shù)據(jù)國家重點(diǎn)實(shí)驗(yàn)室,貴陽 550025)
當(dāng)前,大數(shù)據(jù)正在成為信息時(shí)代競爭的核心戰(zhàn)略資源,如何高效、安全地進(jìn)行數(shù)據(jù)共享是學(xué)者們聚焦的熱點(diǎn)。為了解決“數(shù)據(jù)孤島”問題,需要建立一個(gè)公平、合理的數(shù)據(jù)共享模型。數(shù)據(jù)泄露、信任危機(jī)、利益沖突等問題使得數(shù)據(jù)共享難以進(jìn)行。隨著區(qū)塊鏈[1-2]、云存儲(chǔ)以及密文策略屬性基加密(Ciphertext Policy Attribute-Based Encryption,CP-ABE)的完善和普及,數(shù)據(jù)共享逐漸走進(jìn)人們的日常生活。但是,量子計(jì)算機(jī)的出現(xiàn)給采用傳統(tǒng)加密方式的數(shù)據(jù)共享方案帶來了沖擊,數(shù)據(jù)共享變得不再安全,且很少有學(xué)者將抗量子攻擊密碼方案運(yùn)用到數(shù)據(jù)共享領(lǐng)域。
SAHAI 等[3]在2004 年開創(chuàng)性地提出基于模糊身份的加密,從而引申出屬性基加密(Attribute-Based Encryption,ABE)的概念。2006 年,GOYAL 等[4]將訪問策略分別嵌入到密文與密鑰中,將ABE 分成CPABE 與密鑰策略屬性基加密(Key Policy Attribute-Based Encryption,KP-ABE),但是此方案的安全性沒有在標(biāo)準(zhǔn)模型下進(jìn)行證明。針對(duì)該問題,WATERS[5]提出一種高效的具有通用訪問結(jié)構(gòu)的CP-ABE 方案,但是該方案不滿足自適應(yīng)安全性。為此,2012 年,LEWKO 等[6]提出一種標(biāo)準(zhǔn)模型下自適應(yīng)安全的CP-ABE 方案。為了實(shí)現(xiàn)抗量子攻擊,SOO 等[7]基于環(huán)上容錯(cuò)學(xué)習(xí)(Ring-Learning with Errors,R-LWE)[8]提出一種新的格CP-ABE[9-10]。ZHAO 等[11]針對(duì)密鑰撤銷問題,于2020 年在TAN 等研究的基礎(chǔ)上提出一種云環(huán)境下的可撤銷格屬性基加密方案。
共享經(jīng)濟(jì)的概念由美國社會(huì)學(xué)教授FELSON等[12]于1978 年首次提出。大數(shù)據(jù)的興起將數(shù)據(jù)共享帶到了新的高度。2017 年,XIA 等[13]基于區(qū)塊鏈技術(shù)提出一種輕量、高效、可擴(kuò)展的電子醫(yī)療數(shù)據(jù)共享方案,該方案使得醫(yī)療數(shù)據(jù)能夠安全地進(jìn)行共享并能夠保證數(shù)據(jù)不被泄露。次年,為了使得醫(yī)療數(shù)據(jù)支持細(xì)粒度的訪問控制,LIANG 等[14]提出一種以用戶為中心的健康數(shù)據(jù)共享解決方案。XUAN 等[15]在2020 年基于演化博弈論提出一種新的數(shù)據(jù)共享方式,通過智能合約來動(dòng)態(tài)調(diào)整參數(shù)大小,鼓勵(lì)用戶積極參與到數(shù)據(jù)共享中,但是,該方案并沒有說明是在公鏈還是聯(lián)盟鏈中共享數(shù)據(jù)。2021 年,MA 等[16]提出一種新的多關(guān)鍵詞可搜索加密技術(shù),并結(jié)合區(qū)塊鏈、ABE 設(shè)計(jì)了一種安全、可信的數(shù)據(jù)共享方案,但是該方案沒有考慮數(shù)據(jù)的更新問題。同年,GUO等[17]提出一種可以支持可信數(shù)據(jù)共享服務(wù)的區(qū)塊鏈輔助框架,這種區(qū)塊鏈輔助的框架能夠解決查詢授權(quán)的信任問題。然而,在分布式系統(tǒng)中很難創(chuàng)建一個(gè)完全可信的環(huán)境。QIN[1]在2021 年基于多機(jī)構(gòu)CP-ABE 以及(t,n)門限秘密共享,解決了傳統(tǒng)數(shù)據(jù)共享單點(diǎn)故障以及相互不信任的問題。2022 年,ZHANG 等[18]將區(qū)塊鏈技術(shù)和CP-ABE 加密技術(shù)相結(jié)合,提出一種安全可信的農(nóng)產(chǎn)品管理系統(tǒng),以確保數(shù)據(jù)的高效共享和監(jiān)督。
上述數(shù)據(jù)共享方案都是基于傳統(tǒng)的CP-ABE 技術(shù),安全性基于雙線性配對(duì)或三素?cái)?shù)子群決策問題,沒有達(dá)到抗量子的安全性,且未說明用戶為什么要選擇區(qū)塊鏈而不是在私下進(jìn)行交易。此外,傳統(tǒng)的CP-ABE 雖然支持訪問控制,但是不支持?jǐn)?shù)據(jù)的分級(jí)加密,擁有密鑰的用戶都能訪問同樣的數(shù)據(jù)。
針對(duì)上述問題,本文提出一種新的數(shù)據(jù)共享方案,主要工作如下:
1)基于CP-ABER-LWE及聯(lián)盟鏈提出一種抗量子攻擊的數(shù)據(jù)共享方案。
2)針對(duì)數(shù)據(jù)擁有者的主觀意愿,提出一種數(shù)據(jù)分級(jí)加密方式,將用戶屬性分為高敏感與低敏感兩類,并對(duì)數(shù)據(jù)進(jìn)行分級(jí)加密。
3)基于演化博弈論建立一種數(shù)據(jù)共享模型,以鼓勵(lì)用戶積極參與到聯(lián)盟鏈中。
區(qū)塊鏈的概念由中本聰在2008 年[19]首次提出。與普通的數(shù)據(jù)庫不同,區(qū)塊鏈?zhǔn)怯刹煌?jié)點(diǎn)參與、不同節(jié)點(diǎn)保存同一份數(shù)據(jù)的分布式數(shù)據(jù)庫系統(tǒng)。每個(gè)區(qū)塊通過密碼學(xué)方法產(chǎn)生并包含上一個(gè)區(qū)塊的哈希值,它的第一個(gè)區(qū)塊稱為創(chuàng)世紀(jì)塊(genesis block)。由于不需要信任機(jī)構(gòu)且具有不可篡改、不可偽造等特性,區(qū)塊鏈經(jīng)常被應(yīng)用于溯源[20-21]、數(shù)據(jù)確權(quán)[22-23]、數(shù)據(jù)共享等領(lǐng)域。區(qū)塊鏈又分為公鏈、私鏈、聯(lián)盟鏈3 種,本文使用的是聯(lián)盟鏈。相比于私鏈,聯(lián)盟鏈具有在指定成員之間的完全公開透明性。相比于公鏈,聯(lián)盟鏈又對(duì)外部成員完全保密,在分布式系統(tǒng)中保留了傳統(tǒng)可信第三方的特性,想加入聯(lián)盟鏈的人員或組織必須滿足準(zhǔn)入機(jī)制,一旦有成員作惡,系統(tǒng)可以將其踢出聯(lián)盟鏈。因此,聯(lián)盟鏈能夠有效解決采用公鏈或在私下交易的數(shù)據(jù)共享過程中所存在的信任危機(jī)問題。
Hyperledger Fabric 支持聯(lián)盟鏈與私鏈的開發(fā),Hyperledger Fabric 中存在以下4 種節(jié)點(diǎn):
1)Client 節(jié)點(diǎn)。該類節(jié)點(diǎn)用來發(fā)起提案,如安裝鏈碼、更新鏈碼、調(diào)用鏈碼中的方法。
2)Peer 節(jié)點(diǎn)。該類節(jié)點(diǎn)是系統(tǒng)中最普通的節(jié)點(diǎn),用來維護(hù)賬本。
3)Orderer 節(jié)點(diǎn)。該類節(jié)點(diǎn)是排序節(jié)點(diǎn),主要負(fù)責(zé)對(duì)交易進(jìn)行排序。
4)背書節(jié)點(diǎn)。該類節(jié)點(diǎn)是系統(tǒng)中由背書策略指定的一些特殊的Peer 節(jié)點(diǎn)。
首先由Client 節(jié)點(diǎn)發(fā)起提案,接著由Peer 節(jié)點(diǎn)進(jìn)行背書,如果滿足背書策略,則發(fā)送給Orderer 節(jié)點(diǎn)進(jìn)行排序并生成區(qū)塊,最后交給Peer 節(jié)點(diǎn)保存。Hyperledger Fabric 是第一個(gè)支持由不同語言對(duì)鏈碼進(jìn)行編程的平臺(tái),如Java、Go、Node.js 等,不要求某種特定的語言,因此,在實(shí)際中得到廣泛應(yīng)用。
定義1[線性秘密共享方案(Linear Secret Shar‐ing Schemes,LSSS)][24]令U是屬性空間,q是一個(gè)大素?cái)?shù),在Zq上的秘密共享方案Π滿足U上的訪問結(jié)構(gòu),如果滿足如下兩點(diǎn)則稱為是線性方案:
1)每個(gè)參與方共享的秘密數(shù)組成了Zq上的列向量。
2)對(duì)于U上的訪問結(jié)構(gòu)A,存在一個(gè)l行、n列的稱為Π的共享生成矩陣W。對(duì)于i=1,2,…,n,W的第i行標(biāo)記為一個(gè)屬性ρ(i()ρ是一個(gè)映射,將矩陣W第i行映射到Π)。給定一個(gè)向量v=(s,r2,…,rn),s?Zq是各個(gè)參與方共享的秘密數(shù),且r2,…,rn是隨機(jī)選取的。λ=Wl×n?v是線性秘密共享方案的共享生成向量,其第i行是參與方ρ(i)所持有的秘密份額。
線性重構(gòu)為:假設(shè)Π是訪問結(jié)構(gòu)A 的線性秘密共享方案,S是屬性集。當(dāng)S是授權(quán)集時(shí),定義I={1,2,…,l}以及I={i|ρ(i)?S},對(duì)于共享向量{λi}i?I,存在一個(gè)常數(shù)向量w={wi?Zp},當(dāng)W?w=(1,0,…,0)T時(shí),可以得到,且wi可以在多項(xiàng)式時(shí)間內(nèi)找到。如果S不是授權(quán)集,那么向量w不存在。
基于R-LWE 的CP-ABE 的安全性以決策性R-LWE 問題為基礎(chǔ),包含了如下4 個(gè)多項(xiàng)式時(shí)間算法:
1)Setup(1φ,U)→P,Km。啟動(dòng)算法以安全參數(shù)φ和屬性空間U為輸入,通過在分圓多項(xiàng)式環(huán)中選取各個(gè)參數(shù),最后輸出公共參數(shù)P 以及主密鑰Km。
2)Encrypt(P,M,A)→C。加密算法需要輸入3 個(gè)參數(shù),分別是公共參數(shù)P、密文M以及屬性空間對(duì)應(yīng)的訪問結(jié)構(gòu)A,輸出密文C。
3)KeyGen(Km,U)→KDec。用戶解密密鑰生成算法輸入2 個(gè)參數(shù),分別是主密鑰Km和用戶的屬性集合U,算法輸出用戶解密密鑰KDec。
4)Decrypt(P,C,KDec)→Mor ⊥。解密算法輸入3 個(gè)參數(shù),分別是公共參數(shù)P、密文C以及用戶的解密密鑰KDec。當(dāng)用戶的屬性集合滿足密文中的訪問策略時(shí)輸出明文M,否則輸出⊥。
演化博弈論[25]于1973 年被首次提出,提出者認(rèn)為與傳統(tǒng)博弈理論不同,演化博弈論不要求參與人是完全理性、完全信息的,而是認(rèn)為人類通常是通過試錯(cuò)的方法來達(dá)到博弈均衡。類似于進(jìn)化論,演化博弈論所選擇的均衡是一個(gè)達(dá)到均衡過程的函數(shù),給出納什均衡的生物學(xué)解釋:納什均衡是無數(shù)次動(dòng)態(tài)博弈的穩(wěn)定狀態(tài)。令0 (1-x)?u(m,m*)+x?u(m,m)< (1-x)?u(m*,m*)+x?u(m*,m) 從而得到u(m,m*) 定 義2 令G=<{1,2},((m,m*),(m,m*)),(ui)>是一個(gè)對(duì)稱策略博弈,對(duì)于函數(shù)u,m*是G的一個(gè)演化穩(wěn)定策略(ESS)需要滿足如下兩點(diǎn): 1)(m*,m*)是G的一個(gè)納什均衡。 2)u(m,m) 2.1.1 成員組成 如圖1 所示,本文方案成員組成具體如下: 圖1 成員組成Fig.1 Membership composition 1)DO(Data Owner):數(shù)據(jù)擁有者是數(shù)據(jù)的提供方,負(fù)責(zé)加密數(shù)據(jù)并上傳到云端,同時(shí)也作為聯(lián)盟鏈的Peer 節(jié)點(diǎn)保存賬本。 2)Cloud:云端負(fù)責(zé)存儲(chǔ)數(shù)據(jù)以及作為聯(lián)盟鏈的Client 調(diào) 用Smart Contract 接 口。 3)AA(Attribute Authority):屬性機(jī)構(gòu)負(fù)責(zé)為數(shù)據(jù)使用者頒發(fā)解密密鑰,同時(shí)作為聯(lián)盟鏈的Client 調(diào)用Smart Contract 接口。 4)CA(Certification Authority):證書頒發(fā)機(jī)構(gòu)負(fù)責(zé)為成員頒發(fā)公私鑰作為聯(lián)盟成員的憑證。 5)DU(Data User):數(shù)據(jù)使用者從云端獲取數(shù)據(jù)并解密使用,同時(shí)也作為聯(lián)盟鏈的Peer 節(jié)點(diǎn)保存賬本。 6)Blockchain:上述成員都參與了一個(gè)區(qū)塊鏈網(wǎng)絡(luò),鏈上存儲(chǔ)了各種公共參數(shù)、DO 上傳數(shù)據(jù)的證明以及數(shù)據(jù)使用者使用數(shù)據(jù)的各種信息。 本文中所涉及的常用符號(hào)及變量定義如表1所示。 表1 常用符號(hào)定義Table 1 Common symbol definitions 2.1.2 CBDSC CBDSC 一共由4 個(gè)多項(xiàng)式時(shí)間算法組成: 1)SystemSetup(1φ,U)→P,Km:系統(tǒng)初始化由CA完成,通過安全參數(shù)φ及屬性空間U生成公共參數(shù)P以及主密鑰Km,并調(diào)用智能合約將P 上傳到區(qū)塊鏈網(wǎng)絡(luò)。 2)DOEncrypt(P,Mhigh,Mlow,)→CR-LWE:加密階段數(shù)據(jù)擁有者通過公共參數(shù)P、高敏感數(shù)據(jù)Mhigh、低敏感數(shù)據(jù)Mlow以及訪問結(jié)構(gòu)A 生成密文CR-LWE并上傳到云服務(wù)器,云服務(wù)器調(diào)用智能合約將數(shù)據(jù)擁有者上傳數(shù)據(jù)的憑證存儲(chǔ)到區(qū)塊鏈。 3)AAKeyGen(Km,kDU,S)→KDec:屬性機(jī)構(gòu)通過DU 發(fā)來的屬性集S、公鑰kDU和主密鑰Km生成解密密鑰,并將發(fā)送給DU,DU 在本地生成解密密鑰KDec。 4)DUDecrypt(P,KDec,CR-LWE)→MhighorMlow:數(shù)據(jù)使用者通過公共參數(shù)P、自己的解密密鑰KDec以及密文CR-LWE解密出數(shù)據(jù),同時(shí)云端將數(shù)據(jù)使用者使用數(shù)據(jù)的信息通過智能合約上傳到區(qū)塊鏈。 2.1.3 智能合約部署 本文系統(tǒng)中一共部署了3 個(gè)智能合約,分別是公共參數(shù)上傳合約(Public Parameter Upload Contract,PPUC)、數(shù)據(jù)擁有者上傳數(shù)據(jù)憑證合約(Data Upload Information Contract,DUC)和數(shù)據(jù)下載信息合約(Data Download Information Contract,DDC),本文主要介紹后面2 個(gè)。 1)數(shù)據(jù)擁有者上傳數(shù)據(jù)憑證合約 算法1 展示了DUC 的整體流程,DO 需要提供自己的DOID(DO 加入系統(tǒng)頒發(fā)的公鑰)以及密文,DUC首先獲取DO 上傳數(shù)據(jù)的時(shí)間,通過gethash()函數(shù)將DO 的DOID 以及數(shù)據(jù)取哈希之后,以鍵值對(duì)的形式將憑證存儲(chǔ)到區(qū)塊鏈,DO 的數(shù)據(jù)結(jié)構(gòu)如圖2所示。 圖2 DO 的數(shù)據(jù)結(jié)構(gòu)Fig.2 Data structure of DO 算法1 DUC 的Addowner 函數(shù) 2)數(shù)據(jù)下載信息合約 算法2 展示了DDC 存儲(chǔ)下載證明的流程,由于云端是Client 節(jié)點(diǎn),因此DU 只需提供自己的ID,DU的數(shù)據(jù)結(jié)構(gòu)如圖3 所示。 圖3 DU 的數(shù)據(jù)結(jié)構(gòu)Fig.3 Data structure of DU 圖4 分級(jí)LSSSFig.4 Grading LSSS 算 法2 DDC 的AddDuInfo 函 數(shù) DU 在生成解密密鑰后用DO 的公鑰向云端請(qǐng)求數(shù)據(jù),云端返回該數(shù)據(jù)地址并將此次請(qǐng)求信息調(diào)用智能合約上傳到區(qū)塊鏈。解密算法首先找到向量w使得: 針對(duì)少數(shù)用戶抱有私下交易比參與聯(lián)盟鏈更符合自身利益而不愿意加入聯(lián)盟鏈的想法,本文提出一種基于演化博弈論的聯(lián)盟鏈數(shù)據(jù)共享模型,以鼓勵(lì)用戶參與到聯(lián)盟鏈中。 本文模型涉及兩類用戶User1與User2,策略集G={參與聯(lián)盟鏈,不參與聯(lián)盟鏈}。 假設(shè)1令數(shù)據(jù)帶來的固有收益為V,當(dāng)兩類用戶都選擇參與聯(lián)盟鏈時(shí),數(shù)據(jù)帶來的額外收益為C。 假設(shè)2當(dāng)有一方選擇參與聯(lián)盟鏈,另一方選擇不參與聯(lián)盟鏈時(shí),不參與方需要承擔(dān)數(shù)據(jù)泄露等問題造成的損失,假設(shè)損失概率為P,損失價(jià)值為Q。 假設(shè)3雙方都不參與聯(lián)盟鏈,除了損失收益PQ外,選取其他共享方式造成的損失或獲得的收益為R。 本文模型收益矩陣如表2 所示。 表2 收益矩陣Table 2 Payoff matrix 3.2.1 策略求解 User1選擇參與聯(lián)盟鏈的期望收益為: 其中:x為User2參與聯(lián)盟鏈的概率。 User1選擇不參與聯(lián)盟鏈的期望收益為: User1的期望收益為: 可得復(fù)制動(dòng)態(tài)方程: 令F(y)=0,解得當(dāng)F(y)>0 時(shí),表示隨時(shí)間的變化,User1選擇參與聯(lián)盟鏈的概率不斷增加;當(dāng)F(y)<0 時(shí),表示隨時(shí)間的變化,User1選擇不參與聯(lián)盟鏈的概率不斷增加。同理,User2的復(fù)制動(dòng)態(tài)方程為: 令F(x)=0,解得當(dāng)F(x)>0 時(shí),表示隨時(shí)間的變化,User2選擇參與聯(lián)盟鏈的概率不斷增加;當(dāng)F(x)<0 時(shí),表示隨時(shí)間的變化,User2選擇不參與聯(lián)盟鏈的概率不斷增加。 3.2.2 策略分析 由上述求解可知,演化模型的局部穩(wěn)定點(diǎn)為(0,0)、(0,1)、(1,0)、(x*,y*),對(duì)應(yīng)的雅克比矩陣J為: 如果一個(gè)局部平衡點(diǎn)滿足detJ>0 且trJ<0,那么這個(gè)點(diǎn)就是局部漸進(jìn)平衡點(diǎn),稱為演化博弈的穩(wěn)定策略,即ESS。根據(jù)雅克比矩陣進(jìn)行系統(tǒng)的穩(wěn)定分析,如表3 所示。 表3 穩(wěn)定性分析結(jié)果Table 3 Stability analysis results 從 表3 可以看出,除了C>0,0 1)R>C:此時(shí)(0,0)、(0,1)、(1,0)都是不穩(wěn)定點(diǎn),ESS 點(diǎn)只有(1,1),對(duì)應(yīng)的相位圖如圖5 所示(彩色效果見《計(jì)算機(jī)工程》官網(wǎng)HTML 版,下同)。由于C>0 且PQ>0,因此如果R>C,那么雙方不參與聯(lián)盟鏈所帶來的收益一定小于雙方參與聯(lián)盟鏈所帶來的收益。因此,根據(jù)相位圖的演變情況,即便有少數(shù)人剛開始選擇不參與聯(lián)盟鏈,但是最終會(huì)收斂到(1,1),即雙方都參與聯(lián)盟鏈。 圖5 R>C 對(duì)應(yīng)的相位圖Fig.5 Phase diagram corresponding to R>C 2)-PQ 圖6 -PQ 3)R<-PQ:此時(shí)(0,1)、(1,0)都是不穩(wěn)定點(diǎn),ESS 點(diǎn)有(0,0)、(1,1)兩個(gè)。由于R<-PQ,因此-PQ+R所對(duì)應(yīng)的值與C的大小不確定,對(duì)應(yīng)的相位圖如圖7 所示。隨著參數(shù)的變化,演化模型最終會(huì)收斂到(0,0)和(1,1)兩個(gè)平衡點(diǎn)。 圖7 R<-PQ &R+PQ>-1 對(duì)應(yīng)的相位圖Fig.7 Phase diagram corresponding to R<-PQ &R+PQ>-1 由于R>C和-PQ 情況1演化策略的效果如圖8(a)所示,此時(shí)R+PQ>-1,隨著時(shí)間的推移,最終雙方都會(huì)選擇參與聯(lián)盟鏈。 圖8 演化策略的效果Fig.8 Effect of evolutionary strategy 情況2演化策略的效果如圖8(b)所示,當(dāng)R+PQ<-1 時(shí),雙方都會(huì)選擇不參與聯(lián)盟鏈。 綜上,如果想要演化結(jié)果是雙方都參與聯(lián)盟鏈,則需要滿足R+PQ>-1。 當(dāng)S?{高權(quán)限屬性集}時(shí),解密算法首先找到向量w,使得 因此,M=M'modp。當(dāng)數(shù)據(jù)使用者想要用低權(quán)限屬性去解密高敏感數(shù)據(jù)時(shí),會(huì)遺留如下一項(xiàng)導(dǎo)致解密不成功: ars1K0-ars2K0 文獻(xiàn)[26]使用合數(shù)階雙線性群[27]構(gòu)造CP-ABE,而本文的分級(jí)加密使用了多項(xiàng)式環(huán),因此,通過Java 的JPBC 和Rings jar 包構(gòu)建加密方案。圖9中的橫坐標(biāo)表示屬性的數(shù)量,且呈指數(shù)增長,縱坐標(biāo)是每選擇10 個(gè)操作的平均時(shí)間,圖9(a)、圖9(b)和圖9(c)分別是啟動(dòng)、加密和解密時(shí)間的比較結(jié)果??梢钥闯觯S著屬性的增加,基于R-LWE 的CP-ABE算法效率明顯高于基于合數(shù)階雙線性群的CP-ABE算法,但是在密鑰生成方面[圖9(d)],基于R-LWE的CP-ABE 算法復(fù)雜度為O(nlogan),n為系統(tǒng)中屬性的個(gè)數(shù),而基于合數(shù)階雙線性群的密鑰生成算法的復(fù)雜度是O(n)。因此,隨著屬性的增加,本文分級(jí)加密方案效率將逐漸低于文獻(xiàn)[26]方案。 圖9 2 種方案的時(shí)間對(duì)比Fig.9 Time comparison of two schemes 本節(jié)主要測試在部署DUC 和DDC 這2 個(gè)智能合約后不同數(shù)量的背書節(jié)點(diǎn)對(duì)聯(lián)盟鏈吞吐量的影響。 4.4.1 DUC 智能合約 表4 展示了在部署DUC 后不同背書節(jié)點(diǎn)對(duì)聯(lián)盟鏈吞吐量的影響。從表4 可以看出,當(dāng)系統(tǒng)中有2 個(gè)背書節(jié)點(diǎn)時(shí),系統(tǒng)對(duì)Addowner 函數(shù)的最大響應(yīng)時(shí)間為2.03 s,最小響應(yīng)時(shí)間為0.03 s,每秒處理的平均交易數(shù)為1.9;對(duì)QueryData 函數(shù)的最大響應(yīng)時(shí)間為0.02 s,最小響應(yīng)時(shí)間可以忽略不計(jì),每秒處理的平均交易數(shù)為374.3。由于Addowner 函數(shù)中涉及獲取當(dāng)前時(shí)間、封裝用戶、轉(zhuǎn)換哈希等操作,而QueryData只涉及查詢以及封裝操作,因此在響應(yīng)時(shí)間上QueryData 要高于Addowner,在每秒處理的平均交易數(shù)上QueryData 明顯少于Addowner。 表4 不同數(shù)量的背書節(jié)點(diǎn)對(duì)聯(lián)盟鏈吞吐量的影響1Table 4 The impact 1 of different numbers of endorsement nodes on the throughput of the consortium blockchain 4.4.2 DDC 智能合約 表5 展示了在部署DDC 后不同背書節(jié)點(diǎn)對(duì)聯(lián)盟鏈吞吐量的影響。從表5 可以看出,當(dāng)系統(tǒng)中有2 個(gè)背書節(jié)點(diǎn)時(shí),系統(tǒng)對(duì)AddDuInfo 函數(shù)的最大響應(yīng)時(shí)間為2.04 s,最小響應(yīng)時(shí)間為0.02 s,每秒處理的平均交易數(shù)為1.9;對(duì)QueryDownloadRecords函數(shù)的最大響應(yīng)時(shí)間為0.03 s,最小響應(yīng)時(shí)間可以忽略不計(jì),每秒處理的平均交易數(shù)為359.6。由于AddDuInfo 函數(shù)中同樣涉及獲取當(dāng)前時(shí)間、封裝用戶、轉(zhuǎn)換哈希等操作,而QueryDownloadRecords 僅涉及查詢、遍歷以及封裝操作,因此在響應(yīng)時(shí)間上AddDuInfo 高于QueryDownloadRecords,在每秒處理的平均交易數(shù)上AddDuInfo 明顯少于QueryDownloadRecords。 表5 不同數(shù)量的背書節(jié)點(diǎn)對(duì)聯(lián)盟鏈吞吐量的影響2Table 5 The impact 2 of different numbers of endorsement nodes on the throughput of the consortium blockchain 利用區(qū)塊鏈和訪問控制技術(shù)進(jìn)行數(shù)據(jù)共享是當(dāng)今信息化時(shí)代的一個(gè)熱門課題,本文針對(duì)共享過程中存在的數(shù)據(jù)泄漏、信任危機(jī)和傳統(tǒng)加密無法抵御量子攻擊等問題,提出一種基于格上CP-ABE 的聯(lián)盟鏈數(shù)據(jù)共享方案。此外,針對(duì)少數(shù)用戶抱有私下交易比參與聯(lián)盟鏈更符合自身利益而不愿意加入聯(lián)盟鏈的想法,通過構(gòu)建演化博弈模型分析不同參數(shù)對(duì)共享雙方策略選擇的影響。對(duì)本文的加密方案、部署智能合約后的聯(lián)盟鏈系統(tǒng)進(jìn)行測試,通過Matlab 對(duì)演化模型進(jìn)行模擬,結(jié)果表明,分級(jí)加密方案效率高于基于合數(shù)階雙線性群的加密方案,增加背書節(jié)點(diǎn)能夠提高聯(lián)盟鏈系統(tǒng)的吞吐量,本文所提演化模型能夠?qū)蚕黼p方起到激勵(lì)作用。下一步將對(duì)R-LWE 密鑰生成效率偏低的問題進(jìn)行研究,并探究如何對(duì)密鑰進(jìn)行追溯。2 具體方案
2.1 系統(tǒng)結(jié)構(gòu)
2.2 系統(tǒng)實(shí)現(xiàn)
3 基于演化博弈論的聯(lián)盟鏈數(shù)據(jù)共享模型
3.1 基本假設(shè)與模型建立
3.2 模型分析
4 實(shí)驗(yàn)分析
4.1 博弈模型參數(shù)分析
4.2 分級(jí)加密正確性分析
4.3 效率分析
4.4 聯(lián)盟鏈吞吐量測試
5 結(jié)束語