楊 婷,龐曉瓊 ,陳文俊,2,王云婷,劉天野
1.中北大學(xué) 大數(shù)據(jù)學(xué)院,太原 030051
2.中國人民銀行 太原中心支行,太原 030001
3.中北大學(xué)朔州校區(qū) 電氣與計算機(jī)工程管理部,山西 朔州 036000
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,網(wǎng)上交易和傳播的數(shù)字內(nèi)容越來越多,數(shù)字化內(nèi)容給人們帶來方便的同時也面臨著被非法獲取的風(fēng)險。數(shù)字權(quán)限管理(Digital Rights Management,DRM)通過內(nèi)容提供者對數(shù)字內(nèi)容加密及消費者獲取許可證后才能使用內(nèi)容等技術(shù)手段實現(xiàn)對數(shù)字內(nèi)容的保護(hù),保證數(shù)字內(nèi)容被合法使用[1-5]。
在傳統(tǒng)的DRM中,內(nèi)容提供者創(chuàng)作數(shù)字內(nèi)容,并用內(nèi)容加密秘鑰對數(shù)字內(nèi)容進(jìn)行加密,將加密內(nèi)容由內(nèi)容服務(wù)器存儲,內(nèi)容加密密鑰由許可證服務(wù)器存儲,當(dāng)消費者購買數(shù)字內(nèi)容時,從內(nèi)容服務(wù)器下載加密數(shù)字內(nèi)容,并向許可證服務(wù)器申請許可證,只有消費者獲得許可證后,其客戶端才可以解密內(nèi)容并嚴(yán)格按照許可證中的權(quán)限執(zhí)行。然而以上的傳統(tǒng)DRM 存在以下缺點:交易信息不透明公開,信息易被篡改。區(qū)塊鏈作為一種新興的技術(shù),其特點能夠很好地解決傳統(tǒng)DRM 的不足,具體地說,首先,基于區(qū)塊鏈的DRM 可以實現(xiàn)信息的公開透明。區(qū)塊鏈上的每個節(jié)點都可以在本地存儲完整的區(qū)塊鏈數(shù)據(jù),用戶可以隨時查看區(qū)塊鏈上的數(shù)據(jù)。因此,在傳統(tǒng)的DRM 中,內(nèi)容提供商需要依靠集中式服務(wù)器提供的不透明的銷售信息來獲取利潤,而區(qū)塊鏈中的信息透明則解決了這一問題。其次,基于區(qū)塊鏈的DRM 可以防止信息被篡改。區(qū)塊鏈?zhǔn)且粋€公共賬本,節(jié)點驗證區(qū)塊后將其永久存儲。區(qū)塊包含前一個區(qū)塊的哈希值。如果修改了一個區(qū)塊,則之后的所有區(qū)塊都將重新計算。若系統(tǒng)中有比51%更多的惡意節(jié)點,系統(tǒng)才會失效,否則單個節(jié)點無法實現(xiàn)對數(shù)據(jù)庫的有效修改,因此區(qū)塊鏈可以解決傳統(tǒng)DRM 中的交易信息和權(quán)限信息不透明或可能被集中式服務(wù)器篡改的問題。
因此,很多學(xué)者積極地利用區(qū)塊鏈技術(shù)實現(xiàn)數(shù)字權(quán)限保護(hù)[6-10],內(nèi)容創(chuàng)造者在智能合約上設(shè)置數(shù)字內(nèi)容的價格、不同使用權(quán)限對應(yīng)的不同價格,以供消費者查看,利用智能合約自動發(fā)布許可證,在區(qū)塊鏈上記錄許可證交易信息,消費者和內(nèi)容提供者都可以在區(qū)塊鏈上實時查找信息,同時可以防止權(quán)限信息和交易信息被篡改。 然而這些工作均未考慮用戶的隱私保護(hù)問題,如今,用戶的數(shù)據(jù)信息和隱私權(quán)與許多經(jīng)濟(jì)利益息息相關(guān)。在DRM 系統(tǒng)中,內(nèi)容提供商的利益往往與保護(hù)用戶隱私密切相關(guān),如果用戶的隱私在購買數(shù)字產(chǎn)品的過程中被泄露,將影響到使用該系統(tǒng)的用戶數(shù)量,甚至直接影響到內(nèi)容服務(wù)提供商的利益?,F(xiàn)實環(huán)境中,購買數(shù)字內(nèi)容使用權(quán)限的消費者也不希望其身份信息和使用記錄的信息被內(nèi)容提供者或區(qū)塊鏈上的惡意節(jié)點獲取,因此有必要考慮區(qū)塊鏈環(huán)境下支持用戶隱私保護(hù)的數(shù)字權(quán)限管理問題。
因此,本文設(shè)計并實現(xiàn)了區(qū)塊鏈環(huán)境下支持隱私保護(hù)的數(shù)字權(quán)限保護(hù)方案。具體貢獻(xiàn)如下:(1)提出了一種支持區(qū)塊鏈環(huán)境下隱私保護(hù)的數(shù)字權(quán)限保護(hù)方案,主要包括三個協(xié)議,內(nèi)容加密、許可授權(quán)和內(nèi)容解密。(2)為實現(xiàn)內(nèi)容加密密鑰的安全分發(fā)采用了Diffie-Hellman密鑰交換和加法同態(tài)加密算法。(3)為防止惡意節(jié)點收集用戶的使用習(xí)慣等敏感信息,允許用戶匿名購買內(nèi)容并申請授權(quán),起到了有效保護(hù)用戶隱私的作用。
通過保護(hù)數(shù)字內(nèi)容的整個生命周期,數(shù)字權(quán)限管理可以保護(hù)內(nèi)容的安全性和合理使用,防止無償數(shù)字內(nèi)容的非法使用和傳播。隨著數(shù)字權(quán)限保護(hù)研究的不斷深入,國內(nèi)外學(xué)者取得了豐碩的成果。
加密數(shù)字內(nèi)容是保證數(shù)字內(nèi)容安全的重要手段。張等人[11]提出云計算環(huán)境下支持屬性撤銷的外包解密DRM 方案,針對DRM 中用戶隱私保護(hù)的問題,提出用戶通過匿名標(biāo)簽購買許可證,并提出一種支持屬性撤銷的外包解密機(jī)制。清華大學(xué)的Wang等人[12]提出了基于SIM 卡的移動DRM 方案CS-DRM,該方案用對稱加密技術(shù)加密內(nèi)容加密秘鑰,使用SIM卡提前協(xié)商對稱秘鑰以保證其安全性。Petrlic[13]提出利用同態(tài)加密和秘鑰共享技術(shù),并與代理重加密機(jī)制結(jié)合,加密內(nèi)容的授權(quán)管理由云服務(wù)提供商服務(wù)器完成,保護(hù)了用戶的隱私和敏感數(shù)據(jù)。黃等人[14]提出云環(huán)境中支持隱私保護(hù)的數(shù)字權(quán)限保護(hù)方案,利用屬性基加密與加法同態(tài)加密算法相結(jié)合,實現(xiàn)數(shù)字內(nèi)容保護(hù)的同時保護(hù)了用戶的隱私。蔣等人[15]提出云計算下具有隱私保護(hù)的數(shù)字版權(quán)保護(hù)方案,支持用戶在超級分發(fā)模式和在線模式下匿名購買和使用數(shù)字內(nèi)容,并防止用戶敏感信息被收集,保護(hù)了用戶的隱私。
盡管DRM 技術(shù)得到了一定范圍的研究,但以上研究都存在以下缺點,權(quán)限信息和交易信息不透明,傳統(tǒng)的DRM 需要進(jìn)行私鑰簽名以防止消息被篡改,增加了很多額外開銷,而區(qū)塊鏈具有公開透明、防篡改的特點,很好地解決了以上傳統(tǒng)DRM 的缺點,自區(qū)塊鏈問世以來,得到了學(xué)術(shù)界和工業(yè)界的強(qiáng)烈歡迎,人們積極地用區(qū)塊鏈技術(shù)解決傳統(tǒng)DRM中的問題[6-10],以下是基于區(qū)塊鏈的DRM研究。
Xu 等人[6]提出基于區(qū)塊鏈的網(wǎng)絡(luò)媒體的數(shù)字權(quán)限管理方案,他們提出的框架使用區(qū)塊鏈的特點來實現(xiàn)有效的產(chǎn)品管理、權(quán)限管理、交易管理和用戶行為管理。但是他們并沒有設(shè)計出完整的詳細(xì)的DRM 保護(hù)方案,方案的設(shè)計不完整,并且他們的方案在私有鏈上實施,不具有完全去中心化的特點。Zhang等人[7]提出了一種基于區(qū)塊鏈技術(shù)的DRM 機(jī)制,該方案在區(qū)塊鏈上記錄權(quán)限交易信息和許可證信息,使信息透明、安全。并利用智能合約自動頒發(fā)許可證以確保權(quán)限交易的可靠性。Fujimura等人[8]提出了一個新的基于區(qū)塊鏈的數(shù)字權(quán)限保護(hù)系統(tǒng),并且設(shè)計了一個詳細(xì)的授權(quán)使用數(shù)字產(chǎn)品時的交易方案,內(nèi)容提供商用消費者的公鑰對內(nèi)容加密秘鑰加密,加密結(jié)果放入交易內(nèi),交易被礦工挖礦成功后上鏈,消費者再從鏈上將加密結(jié)果取下,用自己的私鑰解密,以此來使用數(shù)字內(nèi)容。Xie[9]提出了一種基于區(qū)塊鏈的DRM 方案,該方案在智能合約中設(shè)計了一個權(quán)限狀態(tài)機(jī)制和一個授權(quán)樹,以確保內(nèi)容提供商能夠靈活地控制其內(nèi)容。同時,權(quán)限信息和交易信息都被記錄在區(qū)塊鏈上。李等人[16]提出基于區(qū)塊鏈的數(shù)字版權(quán)交易系統(tǒng),借助區(qū)塊鏈技術(shù),設(shè)計了一個基于聯(lián)盟鏈的數(shù)字版權(quán)交易系統(tǒng)模型,實現(xiàn)了版權(quán)交易和版權(quán)注冊。
然而,以上工作均未考慮消費者隱私信息的保護(hù)問題。而一旦用戶的使用記錄等敏感信息被不法分子獲取,對用戶是極其不友好的。因此有必要在用戶購買數(shù)字內(nèi)容的過程中,對用戶所購買的具體數(shù)字內(nèi)容信息進(jìn)行隱藏,以實現(xiàn)對用戶隱私的保護(hù)。因此,設(shè)計并實現(xiàn)了基于區(qū)塊鏈的支持用戶隱私保護(hù)的DRM方案。
基于區(qū)塊鏈的DRM方案框架如圖1所示。
(1)IPFS:星際文件系統(tǒng)(Interplanetary File System,IPFS)是一個對等的分布式文件系統(tǒng),在實際應(yīng)用中,由于區(qū)塊膨脹和交易費用,區(qū)塊鏈不適合存儲大文件(視頻、音頻等)。因此,本文將加密文件存儲在IPFS 中。內(nèi)容創(chuàng)作者將經(jīng)過加密的內(nèi)容傳給IPFS,IPFS 對其進(jìn)行哈希處理生成數(shù)字指紋返回給內(nèi)容創(chuàng)作者,消費者通過給IPFS發(fā)送數(shù)字指紋,獲得加密的內(nèi)容。
圖1 基于區(qū)塊鏈的DRM方案框架
(2)代理加密節(jié)點A:代理加密節(jié)點A 存儲內(nèi)容創(chuàng)作者發(fā)來的CID對應(yīng)的部分秘鑰,并建立一張CID與部分秘鑰一一對應(yīng)的表。根據(jù)D-H 算法將自己的公開鑰發(fā)送給智能合約,并利用消費者的公開鑰計算出他們的會話秘鑰,在收到內(nèi)容解密申請時,利用會話秘鑰解密出消費者想要購買內(nèi)容的CID,根據(jù)CID 查找與CID一一對應(yīng)的表中存儲的部分秘鑰ok,利用CID 隨機(jī)生成長度為l的 hk 和 hs,并用 hk 加密 ok,加密結(jié)果再用會話秘鑰進(jìn)行再次加密,結(jié)果發(fā)送給智能合約。此外,A還需要將hs與CID用代理加密節(jié)點B的公鑰加密,發(fā)送給B。
(3)代理加密節(jié)點B:代理加密節(jié)點B 存儲內(nèi)容創(chuàng)作者發(fā)來的CID對應(yīng)的部分秘鑰,并建立一張CID與部分秘鑰一一對應(yīng)的表。根據(jù)D-H 算法將自己的公開鑰發(fā)送給智能合約,并利用消費者的公開鑰計算出他們的會話秘鑰,再用自己的私鑰解密出hs 與CID 后,代理加密節(jié)點B查找表中存儲的與CID一一對應(yīng)的sk,并用hs 加密sk,加密結(jié)果再用會話秘鑰加密,并發(fā)送至智能合約。
(4)智能合約:智能合約在收到代理加密節(jié)點A、B的消息后打包許可證,并返回給消費者。
(5)消費者:消費者通過智能合約上傳自己的公開鑰并根據(jù)代理加密節(jié)點A 和B 的公開鑰計算出會話秘鑰,利用會話秘鑰加密自己感興趣的CID,并向智能合約申請許可證。在獲取許可證后,客戶端的DRM 組件將該許可證放在許可證庫中,接著客戶端Windows媒體權(quán)限管理器對數(shù)字內(nèi)容進(jìn)行解密,并根據(jù)許可證中的使用權(quán)限播放流媒體文件。
(6)內(nèi)容創(chuàng)造者:內(nèi)容創(chuàng)造者將橢圓曲線上的點構(gòu)成的Abel 群E(pa,b)和E(pa,b)上的生成元G 作為公開參數(shù)發(fā)送給智能合約。內(nèi)容創(chuàng)造者將自己的公開鑰發(fā)送到智能合約以和代理加密節(jié)點計算會話秘鑰。
方案中涉及到的符號含義由表1給出。
表1 符號定義
在數(shù)字內(nèi)容加密階段,內(nèi)容創(chuàng)造者使用加密組件生成內(nèi)容加密秘鑰key,并用key 使用對稱加密算法加密數(shù)字內(nèi)容,加密結(jié)果放在星際文獻(xiàn)系統(tǒng)(IPFS)上。
步驟1內(nèi)容創(chuàng)造者的加密組件隨機(jī)生成長度為l的sk和ok,并相加得到key。
Key=sk+ok
步驟2內(nèi)容創(chuàng)造者使用key加密PCD,并將加密結(jié)果ECD放到IPFS上。
ECD=Enc(key,PCD)
步驟3內(nèi)容創(chuàng)造者將IPFS返回的hash值與內(nèi)容標(biāo)識CID及部分簡介以交易的形式放入?yún)^(qū)塊鏈。
步驟4內(nèi)容創(chuàng)造者使用代理加密節(jié)點A 的公鑰加密ok,并將加密結(jié)果發(fā)給代理加密節(jié)點A,并使用代理加密節(jié)點B的公鑰加密sk,并將加密結(jié)果發(fā)給代理加密節(jié)點B。
owner→A:Enc(PKA,ok)
owner→B:Enc(PKB,sk)
步驟5代理加密節(jié)點A 和B 用自己的私鑰解密出ok、sk,并分別建立一張CID與ok、sk一一對應(yīng)的表。
步驟6內(nèi)容創(chuàng)造者將橢圓曲線上的點構(gòu)成的Abel群E(pa,b)和E(pa,b)上的生成元G 作為公開參數(shù)發(fā)送給智能合約。
步驟1消費者通過智能合約分別與代理加密節(jié)點A、B根據(jù)D-H算法協(xié)商會話秘鑰,具體如下。
代理加密節(jié)點A選一小于n的整數(shù)nA,作為秘密鑰,并計算出PA=nAG,將其作為自己的公開鑰。代理加密節(jié)點B亦之,選取自己的秘密鑰nB并計算出公開鑰PB。同理,消費者選取自己的秘密鑰nu并計算出公開鑰Pu。
步驟2代理加密節(jié)點A、代理加密節(jié)點B、消費者將PA、PB、Pu發(fā)送給智能合約,以供消費者和代理加密節(jié)點A、B計算他們的會話秘鑰。
A→smart:PA
B→smart:PB
U→smart:Pu
步驟3代理加密節(jié)點A、B分別和消費者計算他們之間的會話秘鑰KA、KB。
KA=PAnu=PunA
KB=PBnu=PunB
步驟4消費者向智能合約提交申請許可證,包括所購買內(nèi)容的金額、用戶使用規(guī)則REX、及用會話秘鑰KA、KB加密的CID。
U→smart:LAQ=money||Enc(KA,CID)||Enc(KB,CID)||REX
步驟5代理加密節(jié)點A和B在收到Enc(KA,CID)、Enc(KB,CID)以后用會話秘鑰KA、KB 解密出CID,并查找表找出與CID一一對應(yīng)的ok和sk,代理加密節(jié)點A根據(jù)CID 隨機(jī)生成長度為l的hk 和hs,滿足CID=hk+hs,并用hk加密ok,即Enc(hk,ok)。
A:CID=hk+hs
A:Enc(hk,ok)
步驟6代理加密節(jié)點A 將hs 用代理加密節(jié)點B 的公鑰加密,并發(fā)送給B,B用自己的私鑰解密出CID對應(yīng)的hs,查找出與CID 一一對應(yīng)的sk,并用hs 加密自己存儲的sk,即Enc(hs,sk)。
A→B:Enc(PKB,hs)|| Enc(PKB,CID)
B:Enc(hs,sk)
步驟7代理加密節(jié)點A 用協(xié)商秘鑰KA 將hs+hk加密,將Enc(hk,ok)也用KA 加密,代理加密節(jié)點B 用協(xié)商秘鑰KB 將Enc(hs,sk)加密,加密結(jié)果發(fā)送到智能合約。
A→smart:Enc(KA,hs+hk)||Enc(KA,Enc(hk,ok))
B→smart:Enc(KB,Enc(hs,sk))
步驟8智能合約打包許可證發(fā)給消費者。
smart→U:LIC=Enc(KA,hs+hk)||Enc(KA,Enc(hk,ok))||Enc(KB,Enc(hs,sk))
步驟1消費者用協(xié)商秘鑰KA解密出hs+hk和Enc(hk,ok),用協(xié)商秘鑰KB解密出Enc(hs,sk)。
U:hs+hk=Dec(KA,Enc(KA,hs+hk))
Enc(hk,ok)=Dec(KA,Enc(KA,Enc(hk,ok)))
Enc(hs,sk)=Dec(KB,Enc(KB,Enc(hs,sk)))
步驟2消費者根據(jù)同態(tài)加密算法解密出ok+sk。
ok+sk=Dec(hk+hs,Enc(hk,ok)+Enc(hs,sk))
步驟3消費者根據(jù)key解密出密文。
Key=ok+sk,PCD=Dec(key,ECD)
本方案中DRM智能合約主要包括以下9個函數(shù)。
(1)內(nèi)容創(chuàng)造者設(shè)置內(nèi)容加密秘鑰。此功能只能被內(nèi)容創(chuàng)作者執(zhí)行,內(nèi)容創(chuàng)造者將秘鑰分為兩份,分別用代理加密節(jié)點的公鑰加密,加密結(jié)果放在智能合約上。(2)代理加密節(jié)點獲取已加密的秘鑰。代理加密節(jié)點讀取用自己公鑰加密的秘鑰,并用自己的私鑰解密并存儲。(3)內(nèi)容創(chuàng)造者設(shè)置代理加密節(jié)點地址。此功能只能被內(nèi)容創(chuàng)作者執(zhí)行,內(nèi)容創(chuàng)造者在智能合約上設(shè)置代理加密節(jié)點的地址,以供消費者查詢并與其通信。(4)消費者獲取代理加密節(jié)點地址。消費者在智能合約上查詢代理加密節(jié)點的地址,以獲取許可證。(5)代理加密節(jié)點A 設(shè)置會話秘鑰的公開鑰。此功能只能被代理加密節(jié)點A 執(zhí)行,代理加密節(jié)點A 在智能合約上設(shè)置會話秘鑰的公開鑰,以供消費者查詢并計算消費者和代理加密節(jié)點之間的會話秘鑰。(6)消費者獲取代理加密節(jié)點的公開鑰。消費者將根據(jù)自己的公開鑰和代理加密節(jié)點A 的公開鑰計算出會話秘鑰。代理加密節(jié)點B與消費者設(shè)置、獲取會話秘鑰的公開鑰與代理加密節(jié)點A 相同。(7)消費者申請許可證。消費者向智能合約申請許可證,消費者利用與兩個代理加密節(jié)點的會話秘鑰分別加密欲購買的內(nèi)容標(biāo)識,并將其發(fā)送至智能合約以申請許可證。(8)代理加密節(jié)點A 設(shè)置加密好的部分秘鑰。此功能只能被代理加密節(jié)點A 執(zhí)行,代理加密節(jié)點A 在智能合約上設(shè)置加密好的部分秘鑰,以供智能合約打包許可證發(fā)送給消費者。同理代理加密節(jié)點B 進(jìn)行同樣操作。(9)消費者獲取許可證。智能合約將代理加密節(jié)點加密好的秘鑰打包成許可證發(fā)送給消費者。
在這一部分中,將通過實驗分析方案的性能和實用性。PC機(jī)硬件配置為Intel-Core-i5處理器,4 GB RAM,操作系統(tǒng)為64位。程序設(shè)計語言是C語言和solidity。
以太坊區(qū)塊鏈在太坊虛擬機(jī)中運行交易所觸發(fā)的代碼,在全節(jié)點進(jìn)行相同的計算并存儲相同的值時會使智能合約有所消耗,以太坊中用gas 為單位表示消耗、發(fā)送、存儲和執(zhí)行計算等,每項操作在EVM 中都被設(shè)置了固定的gas 消耗值,為gas used,單位gas 的價格(用以太幣計算)稱之為gas price,二者的乘積為每筆交易的交易費,在 2020 年 4 月 1 日進(jìn)行的實驗,ETH 的價格是 1 ether=131 USD,gas 價格是 1 Gwei,1 Gwei=109wei=10?9ether。
在本文的方案中,智能合約被部署在Ropsten 測試網(wǎng)絡(luò)中,賬戶地址為0x5e8558cf584c92979b723f793e-0bb0b307ce3299,智能合約地址為0x8ad4fa887d830fa8a-8ac67fded3a9c161346a911,利用智能合約分析了以下操作的花費,內(nèi)容創(chuàng)造者部署DRM 智能合約花費為$0.179 908 326,內(nèi)容創(chuàng)造者設(shè)置合約地址的花費為$0.005 521 126,內(nèi)容創(chuàng)造者將加密好的秘鑰發(fā)送至智能合約即setkey花費為$0.014 814 135,內(nèi)容創(chuàng)造者設(shè)置代理加密節(jié)點的地址即setnode花費為$0.014 368 735,代理加密節(jié)點A 設(shè)置會話秘鑰的公開鑰即setnode1-information 花費為$0.005 817 579,代理加密節(jié)點 A 將加密好的部分秘鑰發(fā)送至智能合約即setkey1 花費為$0.005 811 291,代理加密節(jié)點B 設(shè)置會話秘鑰的公開鑰即 setnode2information 花費為$0.005 826 225,代理加密節(jié)點B將加密好的部分秘鑰發(fā)送至智能合約即setkey2花費為$0.005 834 347,消費者設(shè)置會話秘鑰的公鑰即setuserinformation 花費為$0.005 824 653,消費者獲取許可證即getlicense花費為$0.009 589 462。如表2所示評估表明本方文案能夠以較低的開銷保證用戶隱私保護(hù)。
表2 智能合約花費測試
根據(jù)D-H秘鑰協(xié)商的原理,消費者利用協(xié)商會話秘鑰解密出hs+hk、Enc(hk,ok)和Enc(hs,sk),基于Castelluccia等人提出的加法同態(tài)加密算法[17]可以得出Enc(hk,ok)+Enc(hs,sk)=Enc(hk+hs,ok+sk),則由上述等式,可得(ok+sk)=Dec(hk+hs,Enc(hk,ok)+Enc(hs,sk)),由Key=sk+ok,用戶可以正確解密內(nèi)容。
秘鑰的存儲安全:如何保證加密數(shù)字內(nèi)容的秘鑰存儲安全,本文采用秘鑰分割技術(shù),一部分秘鑰交給代理加密節(jié)點A 掌管,另一部分秘鑰交給代理加密節(jié)點B 掌管,因此只有同時得到A 和B 提供的秘鑰,才能恢復(fù)出key,即使一個節(jié)點被攻克,也得不到完整的秘鑰key,提高了秘鑰保存的安全性。同時借助代理加密節(jié)點還解決了一個關(guān)鍵問題,將內(nèi)容創(chuàng)造者從加密內(nèi)容秘鑰key 的任務(wù)中解放出來,減輕了內(nèi)容創(chuàng)造者的負(fù)擔(dān)。
(1)用戶只有獲取有效的許可證后才能解密內(nèi)容。
內(nèi)容提供者使用內(nèi)容加密秘鑰key 將數(shù)字內(nèi)容明文進(jìn)行加密,并將key分為兩部分SK和OK交給代理加密節(jié)點A和B保存,消費者只有獲取key才能解密內(nèi)容,消費者通過智能合約獲取許可證,許可證中包含KA加密的 hs+hk 和 Enc(hk,ok),以及協(xié)商秘鑰 KB 加密的Enc(hs,sk),在使用內(nèi)容時,消費者用協(xié)商秘鑰KA解密出hs+hk和Enc(hk,ok),用協(xié)商秘鑰KB解密出Enc(hs,sk),再基于同態(tài)加密算法解密出ok+sk即key,因此消費者只有獲取有效的許可證后才能解密內(nèi)容。
(2)代理加密節(jié)點、智能合約、區(qū)塊鏈上其他節(jié)點均無法獲得內(nèi)容加密秘鑰Key。
對于代理加密節(jié)點A而言,因為其是被內(nèi)容創(chuàng)作者選舉出來信任節(jié)點且其只保存部分秘鑰OK,因此無法獲得內(nèi)容加密秘鑰。對于代理加密節(jié)點B而言,因為其是被內(nèi)容創(chuàng)作者選舉出來信任節(jié)點且其只保存部分秘鑰SK,也無法獲得內(nèi)容加密秘鑰。對于智能合約在打包許可證時,因為OK、SK 采用了D-H 會話秘鑰和加法同態(tài)加密算法進(jìn)行加密,智能合約也無法獲取內(nèi)容加密秘鑰。對于區(qū)塊鏈的其他節(jié)點,即使交易公開透明,因為hs+hk,Enc(hk,ok),Enc(hs,sk)都用會話秘鑰進(jìn)行加密,因此只有消費者本人才能解密。
(3)消費者在獲取許可證的過程中,代理加密節(jié)點A、B無法獲得內(nèi)容加密秘鑰。
在消費者申請獲取許可證的過程中,代理加密節(jié)點A、B向智能合約發(fā)送各自加密的部分秘鑰,A向智能合約發(fā)送Enc(KA,hs+hk)||Enc(KA,Enc(hk,ok)),B向智能合約發(fā)送Enc(KB,Enc(hs,sk)),而由于代理加密節(jié)點B 向智能合約發(fā)送的部分秘鑰sk 是經(jīng)過代理加密節(jié)點A 發(fā)送的秘鑰hs 加密后再采用D-H 會話秘鑰進(jìn)行加密,因此,只有消費者和代理加密節(jié)點B 可以獲得Enc(hs,sk),而代理加密節(jié)點A無法獲得Enc(hs,sk),因此代理加密加點A 無法根據(jù)加法同態(tài)加密算法ok+sk=Dec(hk+hs,Enc(hk,ok)+Enc(hs,sk))解密出內(nèi)容加密秘鑰。同理代理加密節(jié)點B無法獲得Enc(hk,ok),因此不能獲得內(nèi)容加密秘鑰。
4.3.1 匿名性
首先,由于區(qū)塊鏈?zhǔn)欠植际降拇鎯軜?gòu),因此很難實現(xiàn)網(wǎng)絡(luò)竊聽,其次,用戶由公鑰經(jīng)過一定算法生成以太坊地址,且可以生成多個地址,因此很難通過交易推斷出用戶信息,有較好的匿名性[18]。
4.3.2 敏感記錄保護(hù)
消費者消費者在申請許可證的過程中,不會有隱私泄露。消費者在向智能合約申請許可證時,消費者向智能合約發(fā)送請求LAQ,由于LAQ=money||Enc(KA,CID)||Enc(KB,CID)||REX 即購買內(nèi)容的標(biāo)識CID 經(jīng)過與代理加密節(jié)點A、B協(xié)商的會話秘鑰的加密,所以購買內(nèi)容標(biāo)識不會被泄露,區(qū)塊鏈上其他節(jié)點無法得到消費者購買的內(nèi)容標(biāo)識CID。且由于消費者每次購買數(shù)字內(nèi)容時的KA、KB都不相同,因此代理加密節(jié)點A、B無法根據(jù)該內(nèi)容的訂購請求推斷出特定的匿名用戶,匿名用戶的訂購記錄也不能被收集和分析。
通過以上分析,本文方案能夠有效防止用戶敏感記錄的泄露和分析。
設(shè):Tr,進(jìn)行一次非對稱加密運算的計算時間開銷;Ts,進(jìn)行一次對稱加密運算的計算時間開銷;Th,進(jìn)行一次模加運算的計算時間開銷。符號含義如表3所示。
表3 符號定義
本文提出的方案主要包括內(nèi)容加密、許可授權(quán)和內(nèi)容解密3 個協(xié)議,在內(nèi)容加密協(xié)議中的時間開銷為Ts+4Tr,在許可授權(quán)協(xié)議中的時間開銷為7Ts+2Th+3Tr,在內(nèi)容解密協(xié)議中的時間開銷為4Ts+2Th,總計12Ts+7Tr+4Th。
所以本文的計算開銷如表4所示。
表4 計算開銷
本文主要研究了在區(qū)塊鏈環(huán)境下數(shù)字權(quán)限保護(hù)中的用戶隱私保護(hù)問題,提出了將加法同態(tài)加密算法與Diffie-Hellman秘鑰交換相結(jié)合的內(nèi)容加密密鑰保護(hù)和分發(fā)機(jī)制,以保證內(nèi)容加密密鑰的安全性,同時有效保護(hù)了用戶的隱私。對方案的正確性和安全性進(jìn)行了證明,并對該方案進(jìn)行了仿真實驗,實驗結(jié)果表明本文方案具有可行性,且所提方案能夠以較低的開銷保護(hù)用戶隱私。