馬海峰,高永福,薛慶水,李玉霞,王俊華
(1.上海應(yīng)用技術(shù)大學(xué) 計(jì)算機(jī)科學(xué)與信息工程學(xué)院,上海 201418;2.清華大學(xué) 網(wǎng)絡(luò)科學(xué)與網(wǎng)絡(luò)空間研究院,北京 100084)
目前隨著互聯(lián)網(wǎng)的發(fā)展,逐漸呈現(xiàn)著教育信息化的趨勢(shì),而且教育始終是所有人最關(guān)注的領(lǐng)域之一。由于新冠肺炎[1]的影響,越來(lái)越多的人選擇在線學(xué)習(xí),這進(jìn)一步加快了在線教育的發(fā)展。網(wǎng)絡(luò)教育帶來(lái)便利的同時(shí)產(chǎn)生一些問(wèn)題。例如,數(shù)字文憑的不安全性[2]、不同機(jī)構(gòu)之間對(duì)文憑的接受程度不同。
在教育領(lǐng)域,已經(jīng)逐漸有一些高校開(kāi)始將區(qū)塊鏈應(yīng)用于數(shù)字文憑上,以記錄用戶(hù)的學(xué)習(xí)成果。Mike等[19]提供了一種基于以太坊基礎(chǔ)設(shè)施的區(qū)塊鏈平臺(tái),并且嘗試著將其應(yīng)用于流行的MOOC(massive open online courses)平臺(tái);OpenLearn平臺(tái)允許學(xué)生進(jìn)行課程注冊(cè),完成課程之后獲得學(xué)習(xí)文憑,并對(duì)產(chǎn)生的交易進(jìn)行加密和簽名,但是該方案太過(guò)于理想,并未設(shè)計(jì)安全審計(jì);Guo等[6]提出了一種基于區(qū)塊鏈的數(shù)字版權(quán)管理方案,用于數(shù)字文憑的共享和管理,該方案使用智能合約來(lái)實(shí)現(xiàn)數(shù)字文憑的存儲(chǔ)、驗(yàn)證。但是由于區(qū)塊鏈的透明性,任何人均可以查看鏈上內(nèi)容,數(shù)字文憑的內(nèi)容具有隱私性,因此數(shù)字文憑的隱私無(wú)法完全被保護(hù),這些方案在設(shè)計(jì)之初并未充分考慮隱私保護(hù),因此數(shù)字文憑無(wú)法在不同的利益相關(guān)者之間進(jìn)行廣泛傳播。
綜合上述不足,該篇文章提出了一種改進(jìn)的數(shù)字文憑共享驗(yàn)證方案。這篇文章的工作主要有如下幾點(diǎn):
(1)針對(duì)聯(lián)盟鏈密鑰分發(fā)中心的單點(diǎn)失效問(wèn)題,為患者和機(jī)構(gòu)引入組機(jī)制,組內(nèi)成員進(jìn)行環(huán)簽密使用已有的環(huán)簽密方案[18],使該文章內(nèi)的聯(lián)盟鏈的密鑰分發(fā)中心至多可以對(duì)n-1個(gè)惡意節(jié)點(diǎn)的作惡進(jìn)行抵抗。
(2)相較文獻(xiàn)[16]中使用的云存儲(chǔ),該方案采用了鏈下和鏈上的混合的數(shù)據(jù)存儲(chǔ)模式,以減少區(qū)塊鏈的存儲(chǔ)負(fù)責(zé),使用星際文件存儲(chǔ)系統(tǒng)存儲(chǔ)加密后的數(shù)字文憑,解決了數(shù)字文憑集中存儲(chǔ)存在容易被非法篡改、刪除的情況。
(3)用戶(hù)的數(shù)字文憑數(shù)據(jù)通過(guò)發(fā)起交易,記錄在智能合約中,可通過(guò)智能合約自動(dòng)執(zhí)行記錄用戶(hù)的所有行為,允許用戶(hù)根據(jù)其數(shù)字文憑的訪問(wèn)記錄。
(4)分析了聯(lián)盟鏈生成區(qū)塊的時(shí)間,以及結(jié)合改進(jìn)后的環(huán)簽密[18]后聯(lián)盟鏈生成區(qū)塊的時(shí)間和效率,并其它方案進(jìn)行比較。最后根據(jù)安全分析顯示,該方案比類(lèi)似場(chǎng)景下的區(qū)塊鏈方案的魯捧性更強(qiáng),安全性更高,且對(duì)聯(lián)盟鏈區(qū)塊的生成效率并無(wú)太多影響。
(1)雙線性性:對(duì)于任意a,b∈Zp和R,S∈G1, 有e(Ra,Rb)=e(R,S)ab;
(2)非退化性:存在R,S∈G1, 使得e(R,S)≠1G2。 這里1G2代表G2群的單位元;
區(qū)塊鏈技術(shù)[7]作為一種前沿的分布式基礎(chǔ)架構(gòu)及計(jì)算范疇,正在重新定義數(shù)據(jù)的存儲(chǔ)、驗(yàn)證、傳輸和管理方式。它以其獨(dú)特的區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ),不僅對(duì)數(shù)據(jù)進(jìn)行加密驗(yàn)證,確保其真實(shí)性和完整性,還依托于分布式網(wǎng)絡(luò)的節(jié)點(diǎn)通過(guò)共識(shí)算法共同作出數(shù)據(jù)更新的決策,從而對(duì)整個(gè)系統(tǒng)中數(shù)據(jù)一致性進(jìn)行維護(hù)。區(qū)塊鏈通過(guò)先進(jìn)的密碼學(xué)技術(shù),為數(shù)據(jù)的傳輸和訪問(wèn)提供了強(qiáng)有力的安全保障,使得信息在各個(gè)節(jié)點(diǎn)間的傳遞既安全又可靠。此外,智能合約作為區(qū)塊鏈技術(shù)的一個(gè)重要組成部分,由自動(dòng)化的腳本代碼構(gòu)成,能夠在預(yù)設(shè)條件觸發(fā)時(shí)自動(dòng)執(zhí)行合約內(nèi)容,這使得區(qū)塊鏈的操作不僅高效,也減少了人為的干預(yù)和錯(cuò)誤。區(qū)塊鏈技術(shù)以其數(shù)據(jù)一致性、抗篡改能力和透明度等特點(diǎn),在眾多領(lǐng)域得到應(yīng)用,例如車(chē)聯(lián)網(wǎng)[8]、數(shù)字化醫(yī)療[9]、供應(yīng)鏈管理[10]等各種學(xué)術(shù)領(lǐng)域當(dāng)中,本文對(duì)其在數(shù)字化文憑驗(yàn)證和共享領(lǐng)域的應(yīng)用進(jìn)行了深入分析,指出利用區(qū)塊鏈的特性能較好實(shí)現(xiàn)數(shù)字文憑的去中心化認(rèn)證。
目前較為成熟的公共區(qū)塊鏈有以太坊[11]和比特幣等,但這兩種網(wǎng)絡(luò)都存在一個(gè)較為相似的問(wèn)題,網(wǎng)絡(luò)上寫(xiě)入數(shù)據(jù)的成本較高,這會(huì)加大教育機(jī)構(gòu)的寫(xiě)入成本,因此該方案使用Hyperledger Fabric[12]聯(lián)盟鏈存儲(chǔ)數(shù)字文憑的哈希值。
該方案使用分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)而不是中心化的云存儲(chǔ)[13]。在分布式數(shù)據(jù)存儲(chǔ)中,不存在單點(diǎn)故障,因?yàn)閿?shù)據(jù)分散并存儲(chǔ)在不同的節(jié)點(diǎn)中。此外,由于對(duì)等體可以直接分享內(nèi)容,因此可以實(shí)現(xiàn)更快的數(shù)據(jù)訪問(wèn),因?yàn)閷?duì)等可以直接分享內(nèi)容,而不像集中式存儲(chǔ)有高帶寬要求。使用行星際文件系統(tǒng)[14](IPFS)作為其分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)。作為其分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)[15]。IPFS定義了一個(gè)點(diǎn)對(duì)點(diǎn)協(xié)議,允許數(shù)據(jù)可以通過(guò)分布式節(jié)點(diǎn)進(jìn)行訪問(wèn)。IPFS被與云存儲(chǔ)服務(wù)相比,被認(rèn)為是更快、更安全、更可靠的存儲(chǔ)服務(wù)。它還旨在網(wǎng)絡(luò)的數(shù)據(jù)冗余問(wèn)題。這主要是因?yàn)镮PFS使用內(nèi)容尋址而不是位置尋址來(lái)識(shí)別存儲(chǔ)在網(wǎng)絡(luò)上的數(shù)據(jù)。IPFS使用數(shù)據(jù)文件的哈希值作為其標(biāo)識(shí)符。文件的哈希值作為其標(biāo)識(shí)符,這對(duì)數(shù)據(jù)來(lái)說(shuō)始終是唯一的。在數(shù)據(jù)被更新或改變的情況下,將上傳一個(gè)較新的數(shù)據(jù)版本。如果一個(gè)特定的數(shù)據(jù)文件被請(qǐng)求,數(shù)據(jù)標(biāo)識(shí)符被用來(lái)在不同的對(duì)等體中定位該文件。IPFS上的一個(gè)節(jié)點(diǎn),如果其存儲(chǔ)的哈希值與內(nèi)容標(biāo)識(shí)符相匹配,標(biāo)識(shí)符的節(jié)點(diǎn)將把數(shù)據(jù)文件返回給請(qǐng)求者。
該方案涉及5個(gè)角色,教育機(jī)構(gòu)、用戶(hù)、IPFS系統(tǒng)、聯(lián)盟鏈系統(tǒng)、其它機(jī)構(gòu):
教育機(jī)構(gòu)(educational institution,EI):教育機(jī)構(gòu)用來(lái)生成用戶(hù)的數(shù)字文憑,教育機(jī)構(gòu)負(fù)責(zé)將數(shù)字文憑加密后上傳到IPFS系統(tǒng),同時(shí)需將數(shù)字文憑的哈希值上傳至區(qū)塊鏈。
用戶(hù)(User,U):用戶(hù)可在教育機(jī)構(gòu)中學(xué)習(xí),可以在IPFS獲取到加密后的數(shù)字文憑。
IPFS系統(tǒng):教育機(jī)構(gòu)生成用戶(hù)的數(shù)字文憑后,對(duì)數(shù)字文憑進(jìn)行加密,加密后以IPFS對(duì)象形式上傳至IPFS系統(tǒng)。
聯(lián)盟鏈系統(tǒng):教育機(jī)構(gòu)生成用戶(hù)的數(shù)字文憑之后,通過(guò)SHA-1算法求出數(shù)字文憑的哈希值,并且使用用戶(hù)的id, 和哈希值構(gòu)成鍵值對(duì),存儲(chǔ)值聯(lián)盟鏈;公司或其它機(jī)構(gòu)訪問(wèn)記錄也一并上鏈。
其它機(jī)構(gòu):想要核實(shí)用戶(hù)的數(shù)字文憑真實(shí)性的公司或者教育機(jī)構(gòu)。
主要包括以下步驟:①系統(tǒng)初始化;②教育機(jī)構(gòu)生成用戶(hù)的數(shù)字文憑,將其加密后上傳至IPFS系統(tǒng);③教育機(jī)構(gòu)將數(shù)字文憑的索引值與用戶(hù)的ID存儲(chǔ)至區(qū)塊鏈系統(tǒng);④用戶(hù)通過(guò)CID從IPFS系統(tǒng)中將加密后的文憑取出;⑤用戶(hù)使用自己的密鑰解密文憑;⑥用戶(hù)將文憑發(fā)送給想要驗(yàn)證的機(jī)構(gòu)或公司;⑦機(jī)構(gòu)或公司從區(qū)塊鏈中根據(jù)用戶(hù)的ID取出數(shù)字文憑的索引值,判斷數(shù)字文憑是否屬于用戶(hù)。
該方案設(shè)定為教育機(jī)構(gòu)上傳用戶(hù)的數(shù)字文憑,原因是教育機(jī)構(gòu)會(huì)生成用戶(hù)的數(shù)字文憑,使用環(huán)簽密簽密后可直接上傳。圖1表示方案整個(gè)流程。
圖1 方案流程
2.2.1 系統(tǒng)建立
該算法包括兩個(gè)過(guò)程,分別為初始化參數(shù)設(shè)置以及建立輔助中心密鑰。
2.2.2 密鑰生成
密鑰的生成算法主要有兩個(gè)階段構(gòu)成:用戶(hù)認(rèn)證和密鑰融合。
2.2.3 文憑簽密
在該系統(tǒng)中,已經(jīng)獲得授權(quán)密鑰的教育機(jī)構(gòu)或個(gè)人用戶(hù)可以進(jìn)行文憑的簽密操作。假設(shè)數(shù)字文憑的發(fā)送方的身份標(biāo)識(shí)為ids, 即教育機(jī)構(gòu),接收方的身份標(biāo)識(shí)為idr即文憑的驗(yàn)證者,待加密的數(shù)字文憑的內(nèi)容為M∈G2。 發(fā)送方遵循如下的簽密步驟來(lái)操作這些數(shù)據(jù)。
首先確定一個(gè)由發(fā)送方的標(biāo)識(shí)構(gòu)成的身份集合U=(id1,…,idt),其中ids∈U包含了發(fā)送方的身份標(biāo)簽,發(fā)送方ids將在整個(gè)身份集的名義下生成一個(gè)經(jīng)過(guò)認(rèn)證的加密文本。
隨后,發(fā)送方選擇隨機(jī)一個(gè)數(shù)k∈Zp, 并計(jì)算出加密文本R=k·P,C=M·e(k·A,H0(idr)), 均為先前確定的參數(shù)。
對(duì)于i∈{1,…,t}
2.2.4 信息上傳
教育機(jī)構(gòu)在通過(guò)IPFS網(wǎng)絡(luò)上傳數(shù)據(jù)之前,對(duì)數(shù)據(jù)進(jìn)行簽密,圖2說(shuō)明了數(shù)字文憑在上傳到IPFS之前所經(jīng)歷的一系列步驟。
圖2 文件上傳
教育機(jī)構(gòu)以IPFS對(duì)象的形式通過(guò)IPFS上傳數(shù)據(jù),該對(duì)象由數(shù)據(jù)字段和鏈接字段組成。數(shù)據(jù)字段由數(shù)據(jù)文件組成,鏈接字段由數(shù)據(jù)標(biāo)識(shí)符組成。IPFS數(shù)據(jù)字段只能容納256 kb的數(shù)據(jù),因此,如果數(shù)據(jù)文件大于256 kb,則將其分解為多個(gè)IPFS對(duì)象,并存儲(chǔ)在不同的節(jié)點(diǎn)上。
主對(duì)象由指向每個(gè)IPFS對(duì)象的鏈接字段組成,可用于定位其它對(duì)象并恢復(fù)數(shù)字文憑。
存儲(chǔ)結(jié)束后,IPFS系統(tǒng)根據(jù)上傳的IPFS對(duì)象,使用SHA2-256哈希算法對(duì)數(shù)字文憑進(jìn)行哈希操作,生成一段哈希值,并返回給教育機(jī)構(gòu),教育機(jī)構(gòu)到該哈希值之后,將其通過(guò)安全信道發(fā)送給用戶(hù)。
教育機(jī)構(gòu)在本地使用SHA-1哈希算法,求出用戶(hù)的數(shù)字文憑的哈希值,得到索引值后,與用戶(hù)id生成鍵值對(duì),調(diào)用鏈碼,上傳至聯(lián)盟鏈。
2.2.5 文憑獲取
用戶(hù)想要獲得自己的數(shù)字文憑,將自己的數(shù)字文憑發(fā)送給其它機(jī)構(gòu)時(shí),需要根據(jù)自己所擁有的哈希值向IPFS系統(tǒng)發(fā)送一個(gè)獲取數(shù)據(jù)請(qǐng)求。
IPFS根據(jù)用戶(hù)發(fā)送過(guò)來(lái)的哈希值,根據(jù)哈希值在系統(tǒng)中尋找文件片,將文件片合并之后返回給查找的用戶(hù),用戶(hù)拿到密文后解密。
2.2.6 文憑分享和身份驗(yàn)證
用戶(hù)將文憑解密后,將本人的文憑通過(guò)安全信道發(fā)送給有需求的公司或者其它機(jī)構(gòu),當(dāng)公司或者其它機(jī)構(gòu)收到用戶(hù)發(fā)來(lái)的數(shù)字文憑,并且想要驗(yàn)證該文憑是否屬于用戶(hù),需要向聯(lián)盟鏈發(fā)送獲取用戶(hù)id對(duì)應(yīng)的數(shù)字文憑的哈希值的請(qǐng)求。
區(qū)塊鏈根據(jù)公司或者其它機(jī)構(gòu)發(fā)送過(guò)來(lái)的請(qǐng)求的用戶(hù)id值,調(diào)用鏈碼,返回給公司或者其它機(jī)構(gòu)該用戶(hù)的數(shù)字文憑的哈希值,該訪問(wèn)記錄會(huì)存儲(chǔ)至鏈上。
公司或者其它機(jī)構(gòu)拿到該用戶(hù)id的數(shù)字文憑的哈希值時(shí),求出用戶(hù)發(fā)送的數(shù)字文憑的哈希值,兩者進(jìn)行比較,若相同,則驗(yàn)證通過(guò),否則,拉黑該用戶(hù)。
智能合約在聯(lián)盟鏈啟動(dòng)時(shí)部署,可以通過(guò)智能合約上傳文憑摘要、獲取文憑摘要、記錄用戶(hù)行為,該章節(jié)中,主要介紹文中使用的智能合約和算法邏輯。智能合約使用編程語(yǔ)言Solidity編碼。該文章設(shè)計(jì)的智能合約包括DiplomaRecord合約和BehaviorRecord合約。
2.3.1 上傳文憑合約
算法1是Solidity語(yǔ)言的智能合約代碼。定義了一個(gè)哈希表dipRec,用于存儲(chǔ)每個(gè)用戶(hù)上傳的文憑記錄。DipRec是一個(gè)結(jié)構(gòu)體,包含了文憑的相關(guān)信息,如哈希值、索引、位置和元數(shù)據(jù)。
算法1:
Contract DiplomaRecord
Mapping(address=>DipRec[])dipRec; %定義上傳文憑的哈希表
Struct DipRec{
byte hash;
byte index;
byte location;
byte metadata;
}
Function uploadRecord(index, hash, metadata)上傳智能合約
Push DipRec (index, hash, location, metadata,userId)
into dipRec [userId];
uploadRecord函數(shù)是一個(gè)公開(kāi)的函數(shù),用于將文憑記錄上傳到智能合約。它接受3個(gè)參數(shù):索引(index)、哈希值(hash)和元數(shù)據(jù)(metadata)。在函數(shù)內(nèi)部,首先創(chuàng)建一個(gè)新的DipRec對(duì)象,并將傳入的參數(shù)賦值給對(duì)應(yīng)的字段。然后,將新的記錄添加到dipRec哈希表中,使用當(dāng)前用戶(hù)的地址作為鍵。
2.3.2 獲取文憑合約
算法2為getRecod函數(shù),getRecord函數(shù)是一個(gè)公開(kāi)的只讀函數(shù),用于獲取指定用戶(hù)的文憑記錄。它接受一個(gè)地址類(lèi)型的參數(shù)userId,并返回該用戶(hù)的文憑記錄數(shù)組。在函數(shù)內(nèi)部,根據(jù)傳入的userId作為鍵從dipRec哈希表中獲取記錄,并將其賦值給records數(shù)組。最后,通過(guò)return關(guān)鍵字返回該數(shù)組作為函數(shù)的結(jié)果。
算法2:
Contract DiplomaRecord
Mapping(address=>DipRec[])dipRec;
Struct DipRec{
byte hash;
byte index;
byte location;
byte metadata;
}
Function getRecord(userId)
Record = dipRec[userId];
Return record;
2.3.3 用戶(hù)行為記錄合約
算法3定義了一個(gè)名為“BehaviorRecord”的智能合約,其中包含了訪問(wèn)控制的功能。
算法3:
Contract BehaviorRecord
Mapping(address=>AccessStruct[]access);%定義訪問(wèn)控制
Struct AccessStruct{
String txid;
Uint time;
Address requester;
}
DiplomaRecord diplomaRecord;
Function setContrat(address of DiplomaRecord)%初始化智能合約
diplomaRecord = DiplomaRecord(address of DiplomaRecord)
Function requestRecord(address,txid,location)
LogAccess(msg.sender,address,txid,location,“recorded”)
access是一個(gè)哈希表,用于存儲(chǔ)每個(gè)地址對(duì)應(yīng)的訪問(wèn)記錄。AccessStruct結(jié)構(gòu)體包含了訪問(wèn)記錄的相關(guān)信息,如交易ID(txid)、訪問(wèn)時(shí)間(time)和請(qǐng)求者地址(requester)。
在setContract函數(shù)中,通過(guò)傳入的 ofDiplomaRecord地址初始化了diplomaRecord 變量,該變量表示一個(gè)名為“DiplomaRecord”的智能合約實(shí)例。
requestRecord函數(shù)用于請(qǐng)求記錄。它接受請(qǐng)求者地址(requester)、交易ID(txid)和位置(location)作為參數(shù)。首先,它將訪問(wèn)記錄寫(xiě)入到access哈希表中,記錄了訪問(wèn)者的相關(guān)信息和訪問(wèn)時(shí)間。接下來(lái),它通過(guò)調(diào)用diploma-Record實(shí)例的record函數(shù)來(lái)記錄訪問(wèn)行為,傳遞了交易ID和位置作為參數(shù)。
3.1.1 隱私保護(hù)
對(duì)MLR(multimedia learning resources)所有者的數(shù)據(jù)采用環(huán)簽密方案,充分保證了用戶(hù)對(duì)本人數(shù)據(jù)的掌握權(quán),再?zèng)]有獲得擁有著的授權(quán)的情況下,公司或者其它教育機(jī)構(gòu)無(wú)法訪問(wèn)數(shù)據(jù)。其它教育機(jī)構(gòu)訪問(wèn)MLR共享時(shí),必須由擁有者發(fā)送MLR,同時(shí)公司或者其它教育機(jī)構(gòu)訪問(wèn)聯(lián)盟鏈的用戶(hù)的MLR的哈希值,兩者進(jìn)行比較之后,可判斷該MLR屬于該用戶(hù),充分保證了數(shù)據(jù)擁有者的隱私。
3.1.2 防篡改、可溯源數(shù)據(jù)保護(hù)
該方案采用區(qū)塊鏈技術(shù),每一條數(shù)據(jù)記錄都存儲(chǔ)在區(qū)塊鏈中。在數(shù)據(jù)存儲(chǔ)階段,對(duì)MLR進(jìn)行hash計(jì)算,生成數(shù)據(jù)指紋。由于hash算法是單向的,只要數(shù)據(jù)被篡改,數(shù)據(jù)的hash值也會(huì)發(fā)生改變。在MLR分享階段,對(duì)公司或者其它教育機(jī)構(gòu)訪問(wèn)鏈上信息的記錄進(jìn)行留痕,數(shù)據(jù)擁有著隨時(shí)可以查看數(shù)據(jù)的被訪問(wèn)情況。
3.1.3 保密性
在數(shù)字文憑M的安全處理方面,選用的加密協(xié)議較為關(guān)鍵,所用的環(huán)簽密算法不僅確保了傳輸過(guò)程中文憑內(nèi)容的保密性,還意味著在信息傳遞的完整路徑中,每一環(huán)都不可能成為信息泄露的弱點(diǎn)。此類(lèi)加密技術(shù)基于復(fù)雜的數(shù)學(xué)難題——BDDH假設(shè),其不僅為數(shù)字文憑的加密提供了堅(jiān)固的數(shù)學(xué)基礎(chǔ),而且通過(guò)隨機(jī)預(yù)言機(jī)模型增加了額外的安全層。因此,通過(guò)這種環(huán)簽密方案,可以確保即使是最高級(jí)別的未授權(quán)訪問(wèn)嘗試,也無(wú)法破解加密的數(shù)字文憑,從而為數(shù)字文憑提供了一種高級(jí)的保護(hù)措施。
在此實(shí)驗(yàn)研究中,審視了傳統(tǒng)數(shù)字文憑管理策略與新提出的策略在操作效率和資源消耗方面的性能表現(xiàn)。舊有的處理機(jī)制要求用戶(hù)進(jìn)行大量的數(shù)據(jù)處理工作,包括下載、簽名以及再次上傳整個(gè)數(shù)據(jù)集,這不僅耗費(fèi)時(shí)間,而且對(duì)網(wǎng)絡(luò)和服務(wù)器的計(jì)算能力要求很高。相比之下,本研究提出的策略意在優(yōu)化這些步驟,旨在減少數(shù)據(jù)處理的復(fù)雜性和提高效率。實(shí)驗(yàn)仿真環(huán)節(jié)針對(duì)兩種方案在處理時(shí)間、計(jì)算需求、網(wǎng)絡(luò)流量及存儲(chǔ)效率等方面進(jìn)行了細(xì)致的比較分析,以此來(lái)驗(yàn)證新策略在降低云存儲(chǔ)系統(tǒng)負(fù)載和提升數(shù)據(jù)處理速度方面的有效性。表1為方案中開(kāi)銷(xiāo)所需符號(hào)。
表1 符號(hào)與含義
該文章實(shí)驗(yàn)在Ubuntu18.04系統(tǒng)下利用go語(yǔ)言進(jìn)行編寫(xiě),在Intel(R)Core(TM)i7-7700HQ @2.80 GHz CPU、16 G內(nèi)存電腦上運(yùn)行,使用Hyperledger Fabric1.4.2上實(shí)現(xiàn)并運(yùn)行。進(jìn)行實(shí)驗(yàn)的系統(tǒng)有兩個(gè)組織,每個(gè)組織有3個(gè)peer節(jié)點(diǎn)和一個(gè)ca節(jié)點(diǎn),系統(tǒng)有一個(gè)order排序節(jié)點(diǎn)。
圖3展示了在聯(lián)盟區(qū)塊鏈環(huán)境下,整合環(huán)簽名技術(shù)對(duì)于生成區(qū)塊時(shí)間影響的對(duì)比研究。根據(jù)圖示結(jié)果,我們可以觀察到,在Hyperledger Fabric平臺(tái)中引入環(huán)簽密技術(shù)后,新區(qū)塊的生成時(shí)間與之前未應(yīng)用環(huán)簽名技術(shù)時(shí)基本一致。這表明,盡管環(huán)簽密技術(shù)的加入增強(qiáng)了系統(tǒng)的安全性,但其對(duì)于平臺(tái)的執(zhí)行效率幾乎沒(méi)有顯著影響。因此,這一結(jié)果表明了該方案的實(shí)用性,不僅保障了數(shù)據(jù)的安全性和不可篡改性,也保持了系統(tǒng)的高效性。此外,該方案的應(yīng)用還拓展了數(shù)字文憑共享功能的可能性,允許安全可信的文憑驗(yàn)證過(guò)程在保持高效的同時(shí)進(jìn)行。
圖3 聯(lián)盟鏈生成區(qū)塊時(shí)間
圖4表示的是IPFS節(jié)點(diǎn)的配置信息,數(shù)字文憑上傳之后會(huì)分布在各個(gè)IPFS節(jié)點(diǎn)上。
圖4 IPFS節(jié)點(diǎn)配置信息
圖5表示的是IPFS數(shù)據(jù)塊打包完成后上傳的過(guò)程。
圖5 IPFS數(shù)據(jù)塊打包完成
3.2.1 通信開(kāi)銷(xiāo)
方案中的通信主要集中在密鑰生成中,密鑰分發(fā)集群同用戶(hù)的交互以及弱中心建立密鑰。弱中心交互過(guò)程中,通信量為 n|s||G|, 密鑰分發(fā)集群發(fā)送密鑰給用戶(hù),通信量為n|G|+n|s|。
故本方案通信開(kāi)銷(xiāo)為n|G|+n|s|+n|s||G|。
3.2.2 計(jì)算開(kāi)銷(xiāo)
方案的計(jì)算開(kāi)銷(xiāo)主要集中在密鑰合成的驗(yàn)證密鑰部分,以及數(shù)據(jù)簽密通信密鑰合成計(jì)算量為HG|s||q|, 密鑰合成計(jì)算量為 |e|+(n+1)n/2(|q|), 簽密計(jì)算量為d|q|+|z||q|+HG|s||q|+(n+1)n/2(|q|)。
故本方案計(jì)算開(kāi)銷(xiāo)為 |e|+((n+1)n+d+|z|)|q|+HG|s||q|。
將這篇文章設(shè)計(jì)的方案與文獻(xiàn)[3,4,16,17]構(gòu)造的方案在通信、計(jì)算開(kāi)銷(xiāo)和性能方面進(jìn)行比較。
本實(shí)驗(yàn)是將傳統(tǒng)方案與本文方案在各項(xiàng)開(kāi)銷(xiāo)上進(jìn)行對(duì)比。實(shí)驗(yàn)編程基于Python語(yǔ)言,并使用密碼學(xué)庫(kù)。實(shí)驗(yàn)的配置包括了對(duì)循環(huán)群的具體設(shè)定 |G|=160 bit,Zp*中元素的位長(zhǎng)同樣設(shè)定為|p|=160 bit,至于實(shí)驗(yàn)中所用的函數(shù)F,其設(shè)計(jì)是以產(chǎn)出24比特長(zhǎng)度的輸出,即F輸出的位長(zhǎng) |TagF|=24 bit, 管理屬性,即那些用于控制和管理系統(tǒng)行為的參數(shù),其位長(zhǎng)被設(shè)定為 |A(i)|=16 bit。
隨著數(shù)據(jù)塊數(shù)的增加,由圖6(a)可以看出,數(shù)據(jù)塊數(shù)的增加,本文研究提出的方法在通信成本上的優(yōu)勢(shì)逐漸顯現(xiàn),與傳統(tǒng)方法相比有顯著減少,圖6(b)可以看出,數(shù)據(jù)塊數(shù)量的增加使得新方法在計(jì)算成本上的效率提高更加明顯,其優(yōu)勢(shì)也更加突出。
圖6 通信與計(jì)算開(kāi)銷(xiāo)對(duì)比
表2可得,在保證匿名認(rèn)證性得前提下,本方案設(shè)計(jì)的方案同時(shí)具備了簽密、保密性、分布式密鑰、分布式存儲(chǔ)。因此、相對(duì)現(xiàn)有的同類(lèi)型方案,該方案具有更好的安全性。
表2 方案對(duì)比
本文研究了基于聯(lián)盟體鏈的數(shù)字文憑共享方案的隱私保護(hù)和認(rèn)證問(wèn)題。構(gòu)建了一種安全的數(shù)字文憑共享方案,根據(jù)區(qū)塊鏈的不可篡改性和環(huán)簽密的正確性,實(shí)現(xiàn)了該方案中數(shù)字文憑的分布式防篡改、不可偽造和認(rèn)證特性。針對(duì)數(shù)字文憑的集中存儲(chǔ)方式容易被篡改和破壞的問(wèn)題,提出了一種分布式文件存儲(chǔ)系統(tǒng)——星際文件存儲(chǔ)系統(tǒng)來(lái)存儲(chǔ)加密的數(shù)字文憑。此外,該方案采用了與分布式密鑰生成技術(shù)相的融合,有效規(guī)避了單點(diǎn)故障點(diǎn)的問(wèn)題,并增強(qiáng)了方案抵抗多密鑰管理中心合謀攻擊的能力。