張 柯,黃曉芳
(西南科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,四川 綿陽(yáng) 621010)
隨著互聯(lián)網(wǎng)和數(shù)字經(jīng)濟(jì)的飛速發(fā)展,服務(wù)數(shù)字化的程度也在不斷提高。例如,人們經(jīng)常使用電子商務(wù)、在線支付、在線政務(wù)等,這些都需要可靠的安全機(jī)制進(jìn)行保障,公鑰基礎(chǔ)設(shè)施(PKI,public key infrastructure)[1-2]利用公鑰技術(shù)和數(shù)字證書提供服務(wù),能夠?yàn)橛脩粼陂_放環(huán)境中進(jìn)行安全的通訊提供保障?,F(xiàn)有的證書頒發(fā)機(jī)構(gòu)(CA,certificate authority)其公鑰基礎(chǔ)設(shè)施可能使用不同的密鑰體系,不同的安全和認(rèn)證策略,導(dǎo)致需要各自維護(hù)自己的信任域[3],當(dāng)單個(gè)信任域提供的服務(wù)無法滿足用戶的需求,用戶需要進(jìn)行跨域訪問,由此出現(xiàn)跨域認(rèn)證問題。如何消除信任孤島,打通信任體系,實(shí)現(xiàn)各CA之間證書的互認(rèn)互通是亟需解決的問題。
國(guó)內(nèi)外已經(jīng)有大量的學(xué)者針對(duì)跨域認(rèn)證進(jìn)行了相關(guān)研究,并取得了一些成果,提出了一系列跨域認(rèn)證模型。文獻(xiàn)[4]提出了PKI域間認(rèn)證模型,包括層次模型,網(wǎng)狀模型和橋CA模型等,但建立橋CA存在實(shí)際困難。顏海龍等人[5]提出了CA互信互認(rèn)標(biāo)準(zhǔn)體系框架,制定了多CA兼容的數(shù)字證書格式,將現(xiàn)有的數(shù)字證書格式規(guī)范化。彭博等人[6]利用橋CA實(shí)現(xiàn)不同CA的交叉認(rèn)證,利用層次模型實(shí)現(xiàn)橋CA的互信,從理論上構(gòu)建了跨域認(rèn)證模型。以上研究成果表明,CA跨域認(rèn)證仍然存在諸多問題有待解決。
區(qū)塊鏈作為驅(qū)動(dòng)比特幣的底層技術(shù),其具有去中心化,防篡改,透明化的特性。其本質(zhì)是一個(gè)分布式不可篡改的賬本,底層依靠共識(shí)機(jī)制,點(diǎn)對(duì)點(diǎn)傳輸,加密算法等組合而成。區(qū)塊鏈?zhǔn)前凑諘r(shí)間順序?qū)?shù)據(jù)以一定的方式進(jìn)行組合并形成的鏈?zhǔn)浇Y(jié)構(gòu),將用戶的身份信息存入?yún)^(qū)塊鏈中,能夠確保數(shù)據(jù)的安全和非法篡改。W.Wang等人[7]首次提出了基于區(qū)塊鏈的跨域認(rèn)證模型,隨著區(qū)塊鏈的數(shù)據(jù)量不斷增大,存在著用戶跨域認(rèn)證效率不高的問題,周致成等人[8]等針對(duì)傳統(tǒng)PKI跨域認(rèn)證方案的效率問題,通過與區(qū)塊鏈技術(shù)相結(jié)合,提出了基于區(qū)塊鏈的跨域認(rèn)證方案,減少了簽名與驗(yàn)證的次數(shù),提升了跨域認(rèn)證的效率,但用戶仍然需要申請(qǐng)對(duì)應(yīng)信任域證書,產(chǎn)生額外的證書開銷,同時(shí)撤銷需要多次操作區(qū)塊鏈,效率不高。為了提升異構(gòu)域的認(rèn)證效率,馬曉婷等人[9]提出了一種基于區(qū)塊鏈技術(shù)的跨異構(gòu)域認(rèn)證方案,實(shí)現(xiàn)了PKI域和IBC域之間高效安全的通訊,簡(jiǎn)化了重認(rèn)證過程,降低了用戶端計(jì)算量。黃穗等人[10]針對(duì)區(qū)塊鏈跨域認(rèn)證效率低的問題,提出了利用布谷鳥過濾器提升證書的查詢效率,但其存在著誤刪的情況,難以適應(yīng)重要場(chǎng)合的跨域認(rèn)證場(chǎng)景。
針對(duì)以上問題,本文提出了基于區(qū)塊鏈和動(dòng)態(tài)累加器的跨域認(rèn)證方案,通過將不同的CA加入到區(qū)塊鏈中作為分布式信任中心,消除了傳統(tǒng)CA中心化信任的弊端。通過利用智能合約構(gòu)造動(dòng)態(tài)累加器,避免了傳統(tǒng)區(qū)塊鏈跨域認(rèn)證中證書的操作難題,提升了跨域認(rèn)證效率,減少證書存儲(chǔ)開銷,實(shí)現(xiàn)證書的高效查詢、注冊(cè)和撤銷操作。
區(qū)塊鏈?zhǔn)且环N去中心化的分布式不可篡改賬本[11],將數(shù)據(jù)按照時(shí)間先后順序組合而成的塊鏈?zhǔn)浇Y(jié)構(gòu),依托密碼學(xué)方式保證區(qū)塊鏈的防篡改和不可偽造,通過共識(shí)機(jī)制將數(shù)據(jù)寫入到區(qū)塊鏈中,保證數(shù)據(jù)的一致性,利用智能合約進(jìn)行數(shù)據(jù)的處理,能夠在不安全的環(huán)境中進(jìn)行可靠的信息交換,實(shí)現(xiàn)不同實(shí)體之間的信任傳遞[12]。
智能合約[13]是具有自動(dòng)執(zhí)行協(xié)議能力的計(jì)算機(jī)協(xié)議,合約包含可執(zhí)行的代碼和數(shù)據(jù)兩部分,允許用戶通過智能合約對(duì)區(qū)塊鏈的數(shù)據(jù)進(jìn)行相關(guān)的操作并對(duì)用戶的輸入和輸出結(jié)果做出響應(yīng)。比特幣(BTC,Bitcoin)中的智能合約使用依靠的是UTXO(unspent transaction outputs)模型,但合約功能有限,只能實(shí)現(xiàn)交易功能。以太坊依靠以太坊虛擬機(jī)(EVM,Ethereum virtual machine)運(yùn)行智能合約,通過合約地址進(jìn)行智能合約的調(diào)用與執(zhí)行,消耗GAS作為智能合約執(zhí)行成本。超級(jí)賬本(Hyperledger)中鏈碼(Chaincode)支持多種語言,其被編譯成一個(gè)獨(dú)立的應(yīng)用程序,運(yùn)行于隔離的Docker容器中。
通過將區(qū)塊鏈跨域認(rèn)證協(xié)議和密碼累加器機(jī)制結(jié)合,利用智能合約構(gòu)造出動(dòng)態(tài)累加器,將區(qū)塊鏈證書指紋存入動(dòng)態(tài)累加器中,各節(jié)點(diǎn)通過共識(shí)機(jī)制將數(shù)據(jù)寫入到區(qū)塊鏈賬本中,能夠降低證書存儲(chǔ)成本。
密碼學(xué)累加器[14]最早是由 Josh Benaloh 和 Michael de Mare 提出的,它能夠?qū)σ唤M元素進(jìn)行綁定操作,并能夠?qū)现械娜魏卧靥峁┖?jiǎn)短的成員關(guān)系或者非成員關(guān)系證明。相較于其他累加器,動(dòng)態(tài)累加器[15-16]能夠?qū)崿F(xiàn)添加或移除成員時(shí)間復(fù)雜度不會(huì)隨著累加器中成員的數(shù)量增加而增加,其時(shí)間復(fù)雜度為O(1)[16],具有高效的成員添加和刪除效率。Wang P等人[17]給出了動(dòng)態(tài)累加器的定義,下面給出動(dòng)態(tài)累加器的形式化描述。
KeyGen(k,M):為了實(shí)例化參數(shù)而執(zhí)行的概率算法,將安全參數(shù)k和上限M作為入?yún)?,將累加器參?shù)P=(Pu,Pr)作為返回結(jié)果,其中Pu表示累加器的公鑰,Pr表示累加器的私鑰。
AccVal(L,P):用于計(jì)算累加值的概率算法,通過入?yún)和一組元素L={c1,c2,....,cm}(1 WitGen(ac,Al,P):見證生成算法,為每一個(gè)元素創(chuàng)建成員見證的概率算法。輸入ac、Al和參數(shù)P,輸出對(duì)于每一個(gè)ci(i=1,2,....,m)的見證值。 Verify(c,W,v,Pu):驗(yàn)證算法,用來驗(yàn)證給定的值是否為成員身份的確定性算法。輸入元素c、證據(jù)W、累加值v和公鑰Pu,通過證據(jù)W來驗(yàn)證c是否被累計(jì)入v,返回YES或者NO。 DelEle(L+,ac,v,P):從累加值中刪除某些元素的概率算法,將表示為待刪除的元素L-={c1-,c2-,....,ci-}(L-?L,1≤i≤M-m),輔助信息ac,累加值v和參數(shù)P作為入?yún)ⅲ祷匦碌睦奂又祐′保持和集合LL-一致,更新輔助信息ac和au。 本文采用區(qū)塊鏈3種類型之一的聯(lián)盟鏈,其具有拓展性強(qiáng)和共識(shí)速度快等特點(diǎn),適合跨域認(rèn)證場(chǎng)景下大規(guī)模認(rèn)證操作,鏈上各CA節(jié)點(diǎn)需要經(jīng)過授權(quán)才能夠加入,CA節(jié)點(diǎn)作為各個(gè)信任域的根信任節(jié)點(diǎn),主要作用是負(fù)責(zé)驗(yàn)證用戶身份的真實(shí)性和頒發(fā)區(qū)塊鏈證書,同時(shí)接受跨域認(rèn)證用戶的請(qǐng)求,生成區(qū)塊鏈跨域認(rèn)證證書。區(qū)塊鏈賬本數(shù)據(jù)無需中心化的可信中心,通過多個(gè)CA節(jié)點(diǎn)共同維護(hù),寫入賬本的數(shù)據(jù)需要大多數(shù)節(jié)點(diǎn)的同意,區(qū)塊鏈上的數(shù)據(jù)是公開透明的,避免了傳統(tǒng)基于PKI的數(shù)字證書存在的中心化信任和透明度缺失的問題。針對(duì)不同CA下用戶跨域認(rèn)證問題,通過與區(qū)塊鏈技術(shù)結(jié)合,形成統(tǒng)一的區(qū)塊鏈證書,解決了傳統(tǒng)跨域認(rèn)證中存在的證書路徑復(fù)雜,交叉互信難,單點(diǎn)故障問題。利用區(qū)塊鏈將各CA形成統(tǒng)一的信任聯(lián)盟,使得用戶持有的區(qū)塊鏈證書在不同信任域中得到認(rèn)可,消除信任孤島,提升跨域認(rèn)證的效率,降低證書的管理成本。通過引入動(dòng)態(tài)累加器提高身份認(rèn)證的效率,降低節(jié)點(diǎn)的存儲(chǔ)開銷。本章主要設(shè)計(jì)了區(qū)塊鏈證書模型和跨域認(rèn)證協(xié)議。 區(qū)塊鏈證書相較于傳統(tǒng)的數(shù)字證書[2],減少了簽名模塊部分,減輕了CA節(jié)點(diǎn)計(jì)算驗(yàn)證的壓力。同時(shí)為了滿足動(dòng)態(tài)累加器的需求,在文獻(xiàn)[7]提出的區(qū)塊鏈證書基礎(chǔ)上引入了當(dāng)前累加值到區(qū)塊鏈證書中。本文設(shè)計(jì)的區(qū)塊鏈證書如圖1所示。 傳統(tǒng)的基于區(qū)塊鏈的跨域認(rèn)證模型[7]需要對(duì)區(qū)塊鏈進(jìn)行查詢操作,隨著區(qū)塊鏈數(shù)據(jù)的增加,查詢耗時(shí)會(huì)線性增長(zhǎng),針對(duì)跨域認(rèn)證中高并發(fā)的場(chǎng)景下,現(xiàn)有的方案無法進(jìn)行高效的查詢和插入操作的問題,結(jié)合密碼學(xué)累加器,設(shè)計(jì)基于區(qū)塊鏈和累加器的跨域認(rèn)證流程,認(rèn)證流程如圖2所示。 1)UA→BCAB:用戶UA向CAB發(fā)送區(qū)塊鏈跨域認(rèn)證請(qǐng)求。 2)BCAB→UA:{R1}:CAB節(jié)點(diǎn)收到請(qǐng)求響應(yīng)后,將生成的隨機(jī)數(shù)R1發(fā)送給UA。 3)UA→BCAB:{BCertA,SignpriUA(R1),R1}:UA將自己的區(qū)塊鏈證書和CAB傳遞過來的R1進(jìn)行簽名值以及R1返回給CAB。 4)BCAB→BCAA:{GetCertCAA,R2}:CAB通過證書驗(yàn)證簽名值是否有效,檢查BCertA是否過期,根據(jù)證書中的頒發(fā)者向CAA節(jié)點(diǎn)請(qǐng)求獲得CAA根節(jié)點(diǎn)區(qū)塊鏈證書和隨機(jī)數(shù)R2。 5)BCAA→BCAB:{BCertCAA,R2}:CAA節(jié)點(diǎn)收到來自CAB節(jié)點(diǎn)的請(qǐng)求后,返回給CAB自己的證書和隨機(jī)數(shù)R2。 6)BC→BCAB:{BcertA,CAB}:將生成的跨域證書BCertA,CAB發(fā)送給CAB并將生成的哈希值通過節(jié)點(diǎn)之間的共識(shí)算法寫入到區(qū)塊鏈中。 7)BCAB→UA:{BcertA,CAB}:CAB將跨域證書BCertA,CAB發(fā)送UA,完成UA和CAB之間的跨域認(rèn)證。 傳統(tǒng)區(qū)塊鏈查詢數(shù)據(jù)的方式需要遍歷整個(gè)區(qū)塊鏈,隨著區(qū)塊鏈的體積不斷增大,查詢效率會(huì)變得低下。本文通過利用智能合約構(gòu)造動(dòng)態(tài)累加器,將遍歷區(qū)塊鏈中數(shù)據(jù)的方式替換為證明成員在累加器中,使得查詢的時(shí)間復(fù)雜度從O(n)能夠降低至O(1),降低了查詢耗時(shí),提升了跨域認(rèn)證的效率。 本章主要描述了基于Hyperledger Fabric進(jìn)行基于智能合約實(shí)現(xiàn)動(dòng)態(tài)累加器的區(qū)塊鏈證書成員添加,區(qū)塊鏈證書成員證明,區(qū)塊鏈證書成員刪除的鏈碼實(shí)現(xiàn)。 當(dāng)節(jié)點(diǎn)成功驗(yàn)證用戶身份后,從區(qū)塊鏈賬本中讀取當(dāng)前累加器對(duì)象,通過用戶提交的證書信息生成區(qū)塊鏈證書,并通過sha256(cert)生成證書的指紋和隨機(jī)數(shù)n,使得mem=H(sha256(cert),n)滿足裴蜀定理,動(dòng)態(tài)累加器首先通過成員搜索函數(shù)verifyMembership驗(yàn)證當(dāng)前待添加的證書是否已經(jīng)存在,若未存在則動(dòng)態(tài)累加器acc通過proveMembership計(jì)算并生成新的累加值accValue和用戶身份信息對(duì)應(yīng)見證witness。算法描述如算法1所示: 算法1:區(qū)塊鏈跨域證書添加 1)Input: ctx,certValue 2)Output: accVaule,witness 3)ChaincodeStub stub = ctx.getStub(); 4)byte[] ojectBytes = stub.getState(Accumulator.class.getSimpleName()); 5)Accumulator acc = deserialize(ojectBytes); 6)Integer mem = H(sha256(cert),n) 7)witness1=acc .proveMembership(sha256(cert,n)); 8)return accVaule,witness; 用戶將區(qū)塊鏈證書cert、見證值witness、當(dāng)前證書累加值value傳遞給節(jié)點(diǎn),節(jié)點(diǎn)讀取賬本的數(shù)據(jù),反序列化動(dòng)態(tài)累加器對(duì)象,通過傳入的cert,n,生成區(qū)塊鏈成員對(duì)象mem用來驗(yàn)證區(qū)塊鏈證書是否在累加器中,若驗(yàn)證通過返回true,驗(yàn)證不通過返回false。其中value表示當(dāng)前累加器值,mem表示證書成員指紋,n表示隨機(jī)數(shù)由區(qū)塊鏈證書添加時(shí)生成,witness表示通過累加器生成的見證值。算法描述如算法2所示: 算法2:區(qū)塊鏈跨域證書成員驗(yàn)證 1)Input: ctx,value,mem,witness 2)Output: 驗(yàn)證響應(yīng) success/false 3)ChaincodeStub stub = ctx.getStub(); 4)byte[] ojectBytes = stub.getState(Accumulator.class.getSimpleName()); 5)Accumulator acc = deserialize(ojectBytes); 6)boolean verifyPass = acc.verifyMembership(value, mem,n, witness, acc.getN()); 7)if(witness.modPow(mem,acc.getN()).comparteTo(A)==0){ 8)return true; 9)} 10)return false; 首先從區(qū)塊鏈賬本中獲取當(dāng)前動(dòng)態(tài)累加器對(duì)象,通過算法2驗(yàn)證區(qū)塊鏈證書是否在累加器中,若驗(yàn)證通過,從累加器中去掉該成員后重新計(jì)算累加器的值,返回刪除區(qū)塊鏈證書成員操成功響應(yīng)當(dāng)前并通過區(qū)塊鏈節(jié)點(diǎn)共識(shí)將累加器寫入到賬本中,若驗(yàn)證失敗則返回刪除成員失敗,終止操作。 算法3:區(qū)塊鏈證書刪除 1)Input:ctx,mem 2)Output: 刪除響應(yīng) success/false 3)ChaincodeStub stub = ctx.getStub(); 4)byte[] ojectBytes = stub.getState(Accumulator.class.getSimpleName()) 5)Accumuldator acc = deserialize(ojectBytes); 6)BigInteger product = BigInteger.ONE; 7)for(BigInteger cert:certs){ 8)product =product.multiply(H(sha256(cert),cert.getNonce()) 9)} 10)acc.value = acc.value.modPow(product,acc.getN()) 11)return acc.value; 4.1.1 證書存儲(chǔ)安全性 將區(qū)塊鏈證書經(jīng)過Hash(bcer)=m后存儲(chǔ)在區(qū)塊鏈上,Hash函數(shù)的單向性保證了攻擊者無法通過m反推cert,通過Hash的抗碰撞性能夠保證選擇任意的區(qū)塊鏈證書bcert1和bert2,使得Hash(bcert1)=bcert2是計(jì)算上不可行的。 4.1.2 累加器安全性 本文的動(dòng)態(tài)累加器基于強(qiáng)RSA假設(shè),在該假設(shè)下尋找滿足條件的f(w,m)=wmmodn的問題是多項(xiàng)式時(shí)間內(nèi)難解的。如果存在攻擊者C能夠找到一組v=f(x,y),使得v=f(x,y)=wmmodn,其中n是由兩個(gè)大素?cái)?shù)產(chǎn)生,那么強(qiáng)RSA假設(shè)不成立。因此在強(qiáng)RSA假設(shè)下,給定v,m,找到一個(gè)w使得v=f(x,y)是困難的,所以動(dòng)態(tài)累加器f(w,m)=wmmodn是一個(gè)安全的累加器。 4.1.3 非法跨域認(rèn)證安全性分析 跨域認(rèn)證中存在著非授權(quán)的跨域認(rèn)證等安全性問題。因此,為了防止非授權(quán)用戶進(jìn)行跨域認(rèn)證,在跨域認(rèn)證中,用戶與目標(biāo)節(jié)點(diǎn)會(huì)通過挑戰(zhàn)-應(yīng)答方式驗(yàn)證用戶身份的合法性,目標(biāo)節(jié)點(diǎn)會(huì)校驗(yàn)用戶提供的證書和源跨域CA節(jié)點(diǎn)進(jìn)行比對(duì),確保需要驗(yàn)證的隨機(jī)數(shù)和目標(biāo)節(jié)點(diǎn)保存的隨機(jī)數(shù)一致,確保用戶的證書由源節(jié)點(diǎn)簽發(fā)的同時(shí)起到了防止重放攻擊的效果,同時(shí)在區(qū)塊鏈證書的拓展項(xiàng)中加入節(jié)點(diǎn)白名單,只有當(dāng)跨域認(rèn)證用戶的區(qū)塊鏈證書里包含了目標(biāo)節(jié)點(diǎn)的唯一ID,用戶才能夠與目標(biāo)節(jié)點(diǎn)進(jìn)行跨域認(rèn)證操作,從而杜絕了用戶非法進(jìn)行跨域認(rèn)證操作的可能。 4.2.1 實(shí)驗(yàn)環(huán)境 實(shí)驗(yàn)開發(fā)環(huán)境為AMD Ryzen 5 2600X 3.60 GHz CPU 和24 GB內(nèi)存的PC機(jī)。利用VMware Workstation Pro 10.0.177 63創(chuàng)建虛擬機(jī),并在虛擬機(jī)中通過Docker創(chuàng)建節(jié)點(diǎn),為每個(gè)peer節(jié)點(diǎn)分配1 G內(nèi)存和10 G存儲(chǔ)空間。Hyperledger Fabric版本為2.2.0,鏈碼使用Java 1.8開發(fā),Docker版本為19.03.13。 4.2.2 實(shí)驗(yàn)比較 實(shí)驗(yàn)開始前,先批量創(chuàng)建區(qū)塊鏈跨域證書3000條作為測(cè)試數(shù)據(jù)集,其中 RSA動(dòng)態(tài)累加器模數(shù)是一個(gè)長(zhǎng)度為1 024的正整數(shù),是由兩個(gè)通過Miller-Rabin素性檢測(cè)算法生成和的乘積。為了避免偶發(fā)性誤差,將實(shí)驗(yàn)重復(fù)進(jìn)行5次計(jì)算平均值。圖3表示查詢50,100,150,200張證書的平均耗時(shí)。表1表示不同文獻(xiàn)中的優(yōu)缺點(diǎn)比較。圖4表示不同方法在區(qū)塊鏈上的存儲(chǔ)成本比較。 表1 文獻(xiàn)優(yōu)缺點(diǎn)比較 通過證書查詢平均耗時(shí)看出,文獻(xiàn)[7]的查詢耗時(shí)隨著證書的個(gè)數(shù)增長(zhǎng)而線性增長(zhǎng),本文的耗時(shí)隨著證書數(shù)量的增加波動(dòng)不大,并且查詢10 000張證書耗時(shí)仍然為1秒左右,能夠滿足批量跨域認(rèn)證應(yīng)用場(chǎng)景,雖然查詢速度落后于文獻(xiàn)[10],但文獻(xiàn)[10]存在著3%的誤判概率,這在一些重要的身份認(rèn)證場(chǎng)景是難以忽略的。同時(shí),本文的證書存儲(chǔ)相較于其他方法,存儲(chǔ)的消耗約為其他方法的一半,隨著區(qū)塊鏈數(shù)據(jù)的增加,能夠進(jìn)一步降低區(qū)塊鏈證書數(shù)據(jù)存儲(chǔ)的成本。綜上所述,本文將區(qū)塊鏈和動(dòng)態(tài)累加器相結(jié)合,在避免誤判的前提下,提升了跨域認(rèn)證的效率,降低了證書的存儲(chǔ)成本。實(shí)現(xiàn)結(jié)果表明,該方法具備一定的有效性和可行性。 本文首先闡述了區(qū)塊鏈技術(shù)、動(dòng)態(tài)累加器的相關(guān)知識(shí)。針對(duì)傳統(tǒng)的區(qū)塊鏈跨域身份認(rèn)證存在的證書查詢效率低下,重認(rèn)證耗時(shí)長(zhǎng)的問題。提出了基于區(qū)塊鏈和動(dòng)態(tài)累加器的跨域認(rèn)證方案,通過在智能合約中生成動(dòng)態(tài)累加器,利用動(dòng)態(tài)累加器的高效可驗(yàn)證特性和成員元素支持動(dòng)態(tài)添加和刪除的特點(diǎn),構(gòu)造包含累加值的區(qū)塊鏈跨域證書,將證書的指紋作為成員值寫入到累加器中,通過區(qū)塊鏈共識(shí)機(jī)制共同維護(hù)累加器狀態(tài),提升了鏈上數(shù)據(jù)龐大時(shí)的查詢效率,降低了證書存儲(chǔ)開銷。通過實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分析比較,結(jié)果表明,該方法能夠有效提升跨域認(rèn)證效率,降低證書鏈上存儲(chǔ)成本。2 基于區(qū)塊鏈和動(dòng)態(tài)累加器跨域認(rèn)證方案
2.1 區(qū)塊鏈證書
2.2 協(xié)議設(shè)計(jì)
3 關(guān)鍵智能合約設(shè)計(jì)
3.1 區(qū)塊鏈跨域證書添加
3.2 區(qū)塊鏈跨域證書驗(yàn)證
3.3 區(qū)塊鏈證書刪除
4 安全性分析及實(shí)驗(yàn)
4.1 安全性分析
4.2 實(shí)驗(yàn)
5 結(jié)束語