?

基于區塊鏈的數字文憑認證及共享方案

2024-02-22 07:44馬海峰高永福薛慶水李玉霞王俊華
計算機工程與設計 2024年2期
關鍵詞:文憑哈希密鑰

馬海峰,高永福,薛慶水,李玉霞,王俊華

(1.上海應用技術大學 計算機科學與信息工程學院,上海 201418;2.清華大學 網絡科學與網絡空間研究院,北京 100084)

0 引 言

目前隨著互聯網的發展,逐漸呈現著教育信息化的趨勢,而且教育始終是所有人最關注的領域之一。由于新冠肺炎[1]的影響,越來越多的人選擇在線學習,這進一步加快了在線教育的發展。網絡教育帶來便利的同時產生一些問題。例如,數字文憑的不安全性[2]、不同機構之間對文憑的接受程度不同。

在教育領域,已經逐漸有一些高校開始將區塊鏈應用于數字文憑上,以記錄用戶的學習成果。Mike等[19]提供了一種基于以太坊基礎設施的區塊鏈平臺,并且嘗試著將其應用于流行的MOOC(massive open online courses)平臺;OpenLearn平臺允許學生進行課程注冊,完成課程之后獲得學習文憑,并對產生的交易進行加密和簽名,但是該方案太過于理想,并未設計安全審計;Guo等[6]提出了一種基于區塊鏈的數字版權管理方案,用于數字文憑的共享和管理,該方案使用智能合約來實現數字文憑的存儲、驗證。但是由于區塊鏈的透明性,任何人均可以查看鏈上內容,數字文憑的內容具有隱私性,因此數字文憑的隱私無法完全被保護,這些方案在設計之初并未充分考慮隱私保護,因此數字文憑無法在不同的利益相關者之間進行廣泛傳播。

綜合上述不足,該篇文章提出了一種改進的數字文憑共享驗證方案。這篇文章的工作主要有如下幾點:

(1)針對聯盟鏈密鑰分發中心的單點失效問題,為患者和機構引入組機制,組內成員進行環簽密使用已有的環簽密方案[18],使該文章內的聯盟鏈的密鑰分發中心至多可以對n-1個惡意節點的作惡進行抵抗。

(2)相較文獻[16]中使用的云存儲,該方案采用了鏈下和鏈上的混合的數據存儲模式,以減少區塊鏈的存儲負責,使用星際文件存儲系統存儲加密后的數字文憑,解決了數字文憑集中存儲存在容易被非法篡改、刪除的情況。

(3)用戶的數字文憑數據通過發起交易,記錄在智能合約中,可通過智能合約自動執行記錄用戶的所有行為,允許用戶根據其數字文憑的訪問記錄。

(4)分析了聯盟鏈生成區塊的時間,以及結合改進后的環簽密[18]后聯盟鏈生成區塊的時間和效率,并其它方案進行比較。最后根據安全分析顯示,該方案比類似場景下的區塊鏈方案的魯捧性更強,安全性更高,且對聯盟鏈區塊的生成效率并無太多影響。

1 預備知識

1.1 雙線性映射

(1)雙線性性:對于任意a,b∈Zp和R,S∈G1, 有e(Ra,Rb)=e(R,S)ab;

(2)非退化性:存在R,S∈G1, 使得e(R,S)≠1G2。 這里1G2代表G2群的單位元;

1.2 區塊鏈

區塊鏈技術[7]作為一種前沿的分布式基礎架構及計算范疇,正在重新定義數據的存儲、驗證、傳輸和管理方式。它以其獨特的區塊鏈數據結構為基礎,不僅對數據進行加密驗證,確保其真實性和完整性,還依托于分布式網絡的節點通過共識算法共同作出數據更新的決策,從而對整個系統中數據一致性進行維護。區塊鏈通過先進的密碼學技術,為數據的傳輸和訪問提供了強有力的安全保障,使得信息在各個節點間的傳遞既安全又可靠。此外,智能合約作為區塊鏈技術的一個重要組成部分,由自動化的腳本代碼構成,能夠在預設條件觸發時自動執行合約內容,這使得區塊鏈的操作不僅高效,也減少了人為的干預和錯誤。區塊鏈技術以其數據一致性、抗篡改能力和透明度等特點,在眾多領域得到應用,例如車聯網[8]、數字化醫療[9]、供應鏈管理[10]等各種學術領域當中,本文對其在數字化文憑驗證和共享領域的應用進行了深入分析,指出利用區塊鏈的特性能較好實現數字文憑的去中心化認證。

目前較為成熟的公共區塊鏈有以太坊[11]和比特幣等,但這兩種網絡都存在一個較為相似的問題,網絡上寫入數據的成本較高,這會加大教育機構的寫入成本,因此該方案使用Hyperledger Fabric[12]聯盟鏈存儲數字文憑的哈希值。

1.3 IPFS系統

該方案使用分布式數據存儲系統而不是中心化的云存儲[13]。在分布式數據存儲中,不存在單點故障,因為數據分散并存儲在不同的節點中。此外,由于對等體可以直接分享內容,因此可以實現更快的數據訪問,因為對等可以直接分享內容,而不像集中式存儲有高帶寬要求。使用行星際文件系統[14](IPFS)作為其分布式數據存儲系統。作為其分布式數據存儲系統[15]。IPFS定義了一個點對點協議,允許數據可以通過分布式節點進行訪問。IPFS被與云存儲服務相比,被認為是更快、更安全、更可靠的存儲服務。它還旨在網絡的數據冗余問題。這主要是因為IPFS使用內容尋址而不是位置尋址來識別存儲在網絡上的數據。IPFS使用數據文件的哈希值作為其標識符。文件的哈希值作為其標識符,這對數據來說始終是唯一的。在數據被更新或改變的情況下,將上傳一個較新的數據版本。如果一個特定的數據文件被請求,數據標識符被用來在不同的對等體中定位該文件。IPFS上的一個節點,如果其存儲的哈希值與內容標識符相匹配,標識符的節點將把數據文件返回給請求者。

2 方案詳述

2.1 系統模型

該方案涉及5個角色,教育機構、用戶、IPFS系統、聯盟鏈系統、其它機構:

教育機構(educational institution,EI):教育機構用來生成用戶的數字文憑,教育機構負責將數字文憑加密后上傳到IPFS系統,同時需將數字文憑的哈希值上傳至區塊鏈。

用戶(User,U):用戶可在教育機構中學習,可以在IPFS獲取到加密后的數字文憑。

IPFS系統:教育機構生成用戶的數字文憑后,對數字文憑進行加密,加密后以IPFS對象形式上傳至IPFS系統。

聯盟鏈系統:教育機構生成用戶的數字文憑之后,通過SHA-1算法求出數字文憑的哈希值,并且使用用戶的id, 和哈希值構成鍵值對,存儲值聯盟鏈;公司或其它機構訪問記錄也一并上鏈。

其它機構:想要核實用戶的數字文憑真實性的公司或者教育機構。

主要包括以下步驟:①系統初始化;②教育機構生成用戶的數字文憑,將其加密后上傳至IPFS系統;③教育機構將數字文憑的索引值與用戶的ID存儲至區塊鏈系統;④用戶通過CID從IPFS系統中將加密后的文憑取出;⑤用戶使用自己的密鑰解密文憑;⑥用戶將文憑發送給想要驗證的機構或公司;⑦機構或公司從區塊鏈中根據用戶的ID取出數字文憑的索引值,判斷數字文憑是否屬于用戶。

2.2 安全模型

該方案設定為教育機構上傳用戶的數字文憑,原因是教育機構會生成用戶的數字文憑,使用環簽密簽密后可直接上傳。圖1表示方案整個流程。

圖1 方案流程

2.2.1 系統建立

該算法包括兩個過程,分別為初始化參數設置以及建立輔助中心密鑰。

2.2.2 密鑰生成

密鑰的生成算法主要有兩個階段構成:用戶認證和密鑰融合。

2.2.3 文憑簽密

在該系統中,已經獲得授權密鑰的教育機構或個人用戶可以進行文憑的簽密操作。假設數字文憑的發送方的身份標識為ids, 即教育機構,接收方的身份標識為idr即文憑的驗證者,待加密的數字文憑的內容為M∈G2。 發送方遵循如下的簽密步驟來操作這些數據。

首先確定一個由發送方的標識構成的身份集合U=(id1,…,idt),其中ids∈U包含了發送方的身份標簽,發送方ids將在整個身份集的名義下生成一個經過認證的加密文本。

隨后,發送方選擇隨機一個數k∈Zp, 并計算出加密文本R=k·P,C=M·e(k·A,H0(idr)), 均為先前確定的參數。

對于i∈{1,…,t}(〗s} 而言,選擇隨機元素Ui=G1, 并且計算hi=H1(M‖U‖R‖C‖Us)。

2.2.4 信息上傳

教育機構在通過IPFS網絡上傳數據之前,對數據進行簽密,圖2說明了數字文憑在上傳到IPFS之前所經歷的一系列步驟。

圖2 文件上傳

教育機構以IPFS對象的形式通過IPFS上傳數據,該對象由數據字段和鏈接字段組成。數據字段由數據文件組成,鏈接字段由數據標識符組成。IPFS數據字段只能容納256 kb的數據,因此,如果數據文件大于256 kb,則將其分解為多個IPFS對象,并存儲在不同的節點上。

主對象由指向每個IPFS對象的鏈接字段組成,可用于定位其它對象并恢復數字文憑。

存儲結束后,IPFS系統根據上傳的IPFS對象,使用SHA2-256哈希算法對數字文憑進行哈希操作,生成一段哈希值,并返回給教育機構,教育機構到該哈希值之后,將其通過安全信道發送給用戶。

教育機構在本地使用SHA-1哈希算法,求出用戶的數字文憑的哈希值,得到索引值后,與用戶id生成鍵值對,調用鏈碼,上傳至聯盟鏈。

2.2.5 文憑獲取

用戶想要獲得自己的數字文憑,將自己的數字文憑發送給其它機構時,需要根據自己所擁有的哈希值向IPFS系統發送一個獲取數據請求。

IPFS根據用戶發送過來的哈希值,根據哈希值在系統中尋找文件片,將文件片合并之后返回給查找的用戶,用戶拿到密文后解密。

2.2.6 文憑分享和身份驗證

用戶將文憑解密后,將本人的文憑通過安全信道發送給有需求的公司或者其它機構,當公司或者其它機構收到用戶發來的數字文憑,并且想要驗證該文憑是否屬于用戶,需要向聯盟鏈發送獲取用戶id對應的數字文憑的哈希值的請求。

區塊鏈根據公司或者其它機構發送過來的請求的用戶id值,調用鏈碼,返回給公司或者其它機構該用戶的數字文憑的哈希值,該訪問記錄會存儲至鏈上。

公司或者其它機構拿到該用戶id的數字文憑的哈希值時,求出用戶發送的數字文憑的哈希值,兩者進行比較,若相同,則驗證通過,否則,拉黑該用戶。

2.3 智能合約設計

智能合約在聯盟鏈啟動時部署,可以通過智能合約上傳文憑摘要、獲取文憑摘要、記錄用戶行為,該章節中,主要介紹文中使用的智能合約和算法邏輯。智能合約使用編程語言Solidity編碼。該文章設計的智能合約包括DiplomaRecord合約和BehaviorRecord合約。

2.3.1 上傳文憑合約

算法1是Solidity語言的智能合約代碼。定義了一個哈希表dipRec,用于存儲每個用戶上傳的文憑記錄。DipRec是一個結構體,包含了文憑的相關信息,如哈希值、索引、位置和元數據。

算法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函數是一個公開的函數,用于將文憑記錄上傳到智能合約。它接受3個參數:索引(index)、哈希值(hash)和元數據(metadata)。在函數內部,首先創建一個新的DipRec對象,并將傳入的參數賦值給對應的字段。然后,將新的記錄添加到dipRec哈希表中,使用當前用戶的地址作為鍵。

2.3.2 獲取文憑合約

算法2為getRecod函數,getRecord函數是一個公開的只讀函數,用于獲取指定用戶的文憑記錄。它接受一個地址類型的參數userId,并返回該用戶的文憑記錄數組。在函數內部,根據傳入的userId作為鍵從dipRec哈希表中獲取記錄,并將其賦值給records數組。最后,通過return關鍵字返回該數組作為函數的結果。

算法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 用戶行為記錄合約

算法3定義了一個名為“BehaviorRecord”的智能合約,其中包含了訪問控制的功能。

算法3:

Contract BehaviorRecord

Mapping(address=>AccessStruct[]access);%定義訪問控制

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是一個哈希表,用于存儲每個地址對應的訪問記錄。AccessStruct結構體包含了訪問記錄的相關信息,如交易ID(txid)、訪問時間(time)和請求者地址(requester)。

在setContract函數中,通過傳入的 ofDiplomaRecord地址初始化了diplomaRecord 變量,該變量表示一個名為“DiplomaRecord”的智能合約實例。

requestRecord函數用于請求記錄。它接受請求者地址(requester)、交易ID(txid)和位置(location)作為參數。首先,它將訪問記錄寫入到access哈希表中,記錄了訪問者的相關信息和訪問時間。接下來,它通過調用diploma-Record實例的record函數來記錄訪問行為,傳遞了交易ID和位置作為參數。

3 方案分析

3.1 安全性分析

3.1.1 隱私保護

對MLR(multimedia learning resources)所有者的數據采用環簽密方案,充分保證了用戶對本人數據的掌握權,再沒有獲得擁有著的授權的情況下,公司或者其它教育機構無法訪問數據。其它教育機構訪問MLR共享時,必須由擁有者發送MLR,同時公司或者其它教育機構訪問聯盟鏈的用戶的MLR的哈希值,兩者進行比較之后,可判斷該MLR屬于該用戶,充分保證了數據擁有者的隱私。

3.1.2 防篡改、可溯源數據保護

該方案采用區塊鏈技術,每一條數據記錄都存儲在區塊鏈中。在數據存儲階段,對MLR進行hash計算,生成數據指紋。由于hash算法是單向的,只要數據被篡改,數據的hash值也會發生改變。在MLR分享階段,對公司或者其它教育機構訪問鏈上信息的記錄進行留痕,數據擁有著隨時可以查看數據的被訪問情況。

3.1.3 保密性

在數字文憑M的安全處理方面,選用的加密協議較為關鍵,所用的環簽密算法不僅確保了傳輸過程中文憑內容的保密性,還意味著在信息傳遞的完整路徑中,每一環都不可能成為信息泄露的弱點。此類加密技術基于復雜的數學難題——BDDH假設,其不僅為數字文憑的加密提供了堅固的數學基礎,而且通過隨機預言機模型增加了額外的安全層。因此,通過這種環簽密方案,可以確保即使是最高級別的未授權訪問嘗試,也無法破解加密的數字文憑,從而為數字文憑提供了一種高級的保護措施。

3.2 實驗分析

在此實驗研究中,審視了傳統數字文憑管理策略與新提出的策略在操作效率和資源消耗方面的性能表現。舊有的處理機制要求用戶進行大量的數據處理工作,包括下載、簽名以及再次上傳整個數據集,這不僅耗費時間,而且對網絡和服務器的計算能力要求很高。相比之下,本研究提出的策略意在優化這些步驟,旨在減少數據處理的復雜性和提高效率。實驗仿真環節針對兩種方案在處理時間、計算需求、網絡流量及存儲效率等方面進行了細致的比較分析,以此來驗證新策略在降低云存儲系統負載和提升數據處理速度方面的有效性。表1為方案中開銷所需符號。

表1 符號與含義

該文章實驗在Ubuntu18.04系統下利用go語言進行編寫,在Intel(R)Core(TM)i7-7700HQ @2.80 GHz CPU、16 G內存電腦上運行,使用Hyperledger Fabric1.4.2上實現并運行。進行實驗的系統有兩個組織,每個組織有3個peer節點和一個ca節點,系統有一個order排序節點。

圖3展示了在聯盟區塊鏈環境下,整合環簽名技術對于生成區塊時間影響的對比研究。根據圖示結果,我們可以觀察到,在Hyperledger Fabric平臺中引入環簽密技術后,新區塊的生成時間與之前未應用環簽名技術時基本一致。這表明,盡管環簽密技術的加入增強了系統的安全性,但其對于平臺的執行效率幾乎沒有顯著影響。因此,這一結果表明了該方案的實用性,不僅保障了數據的安全性和不可篡改性,也保持了系統的高效性。此外,該方案的應用還拓展了數字文憑共享功能的可能性,允許安全可信的文憑驗證過程在保持高效的同時進行。

圖3 聯盟鏈生成區塊時間

圖4表示的是IPFS節點的配置信息,數字文憑上傳之后會分布在各個IPFS節點上。

圖4 IPFS節點配置信息

圖5表示的是IPFS數據塊打包完成后上傳的過程。

圖5 IPFS數據塊打包完成

3.2.1 通信開銷

方案中的通信主要集中在密鑰生成中,密鑰分發集群同用戶的交互以及弱中心建立密鑰。弱中心交互過程中,通信量為 n|s||G|, 密鑰分發集群發送密鑰給用戶,通信量為n|G|+n|s|。

故本方案通信開銷為n|G|+n|s|+n|s||G|。

3.2.2 計算開銷

方案的計算開銷主要集中在密鑰合成的驗證密鑰部分,以及數據簽密通信密鑰合成計算量為HG|s||q|, 密鑰合成計算量為 |e|+(n+1)n/2(|q|), 簽密計算量為d|q|+|z||q|+HG|s||q|+(n+1)n/2(|q|)。

故本方案計算開銷為 |e|+((n+1)n+d+|z|)|q|+HG|s||q|。

3.3 方案對比

將這篇文章設計的方案與文獻[3,4,16,17]構造的方案在通信、計算開銷和性能方面進行比較。

本實驗是將傳統方案與本文方案在各項開銷上進行對比。實驗編程基于Python語言,并使用密碼學庫。實驗的配置包括了對循環群的具體設定 |G|=160 bit,Zp*中元素的位長同樣設定為|p|=160 bit,至于實驗中所用的函數F,其設計是以產出24比特長度的輸出,即F輸出的位長 |TagF|=24 bit, 管理屬性,即那些用于控制和管理系統行為的參數,其位長被設定為 |A(i)|=16 bit。

隨著數據塊數的增加,由圖6(a)可以看出,數據塊數的增加,本文研究提出的方法在通信成本上的優勢逐漸顯現,與傳統方法相比有顯著減少,圖6(b)可以看出,數據塊數量的增加使得新方法在計算成本上的效率提高更加明顯,其優勢也更加突出。

圖6 通信與計算開銷對比

表2可得,在保證匿名認證性得前提下,本方案設計的方案同時具備了簽密、保密性、分布式密鑰、分布式存儲。因此、相對現有的同類型方案,該方案具有更好的安全性。

表2 方案對比

4 結束語

本文研究了基于聯盟體鏈的數字文憑共享方案的隱私保護和認證問題。構建了一種安全的數字文憑共享方案,根據區塊鏈的不可篡改性和環簽密的正確性,實現了該方案中數字文憑的分布式防篡改、不可偽造和認證特性。針對數字文憑的集中存儲方式容易被篡改和破壞的問題,提出了一種分布式文件存儲系統——星際文件存儲系統來存儲加密的數字文憑。此外,該方案采用了與分布式密鑰生成技術相的融合,有效規避了單點故障點的問題,并增強了方案抵抗多密鑰管理中心合謀攻擊的能力。

猜你喜歡
文憑哈希密鑰
探索企業創新密鑰
不單純以“文憑證書”識才——營造“高可成低可就”的人才聚集磁場
密碼系統中密鑰的狀態與保護*
巴西要發電子文憑
一種對稱密鑰的密鑰管理方法及系統
基于ECC的智能家居密鑰管理機制的實現
建陽 建陽區在書坊鄉開辦中專班老區群眾自家門口拿文憑
基于OpenCV與均值哈希算法的人臉相似識別系統
基于維度分解的哈希多維快速流分類算法
基于同態哈希函數的云數據完整性驗證算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合