亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于區(qū)塊鏈與函數(shù)加密的隱私數(shù)據(jù)安全共享模型研究

        2022-09-18 03:53:28李懿王勁松張洪瑋
        大數(shù)據(jù) 2022年5期
        關(guān)鍵詞:密文解密合約

        李懿,王勁松,張洪瑋

        1. 天津理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院,天津 300384;

        2. 智能計算機(jī)及軟件新技術(shù)天津市重點實驗室,天津 300384;

        3. 計算機(jī)病毒防治技術(shù)國家工程實驗室,天津 300457

        0 引言

        現(xiàn)代生活中,大部分領(lǐng)域?qū)崿F(xiàn)了數(shù)字化,如商品、商業(yè)、服務(wù)等。通信技術(shù)、硬件技術(shù)的發(fā)展加速了大數(shù)據(jù)時代的到來,數(shù)據(jù)成為新的生產(chǎn)資料和價值高地。大量的個人數(shù)據(jù)被移動設(shè)備采集并存入云端。依賴于大量數(shù)據(jù)的個性化服務(wù)(如商品推薦、健康監(jiān)測)隨之出現(xiàn)。與此同時,公眾對隱私數(shù)據(jù)的關(guān)注度日益增長,加上相繼出臺的隱私數(shù)據(jù)保護(hù)法規(guī),各大公司和服務(wù)提供商正積極探尋既能維持用戶信任又能合法合理收集數(shù)據(jù)的方法。雖然用戶可以使用簡單的端到端加密算法來直接提升數(shù)據(jù)安全性,但數(shù)據(jù)加密也將導(dǎo)致現(xiàn)在被廣泛接受的便利服務(wù)消失,這是因為服務(wù)提供商無法獲得并分析原始數(shù)據(jù)。因此,隱私計算的概念應(yīng)運而生,其主要目標(biāo)是實現(xiàn)“數(shù)據(jù)可用不可見,數(shù)據(jù)不動模型動”,讓用戶將數(shù)據(jù)保存本地或者加密后上傳至云端,服務(wù)提供商只獲取數(shù)據(jù)處理結(jié)果,從而保護(hù)原始數(shù)據(jù)。常見的隱私計算方法有安全多方計算、零知識證明、可信執(zhí)行環(huán)境等。此外,還有一些是能夠在保護(hù)隱私的同時不降低數(shù)據(jù)可用性的加密算法,函數(shù)加密就是其中的一種。與同態(tài)加密技術(shù)類似,函數(shù)加密允許數(shù)據(jù)使用者直接從密文中獲取信息,并且數(shù)據(jù)擁有者可以精確控制數(shù)據(jù)使用者從密文中獲取的信息量,這給數(shù)據(jù)安全共享帶來了新的可能性。因此,本文提出了基于區(qū)塊鏈與函數(shù)加密的隱私數(shù)據(jù)安全共享模型,旨在實現(xiàn)面向隱私保護(hù)的數(shù)據(jù)安全共享平臺。

        1 研究現(xiàn)狀

        傳統(tǒng)中心化數(shù)據(jù)共享具有單點故障、數(shù)據(jù)易丟失、易被篡改、隱私數(shù)據(jù)難保護(hù)等問題。近年來隨著區(qū)塊鏈技術(shù)的興起,研究熱點已經(jīng)轉(zhuǎn)移到去中心化數(shù)據(jù)共享。Chen J C等人[1]利用區(qū)塊鏈難以篡改的特性,將系統(tǒng)中的每次數(shù)據(jù)共享記錄及相關(guān)信息記錄在區(qū)塊鏈中,并利用智能合約充當(dāng)數(shù)據(jù)交換的媒介。但是由于區(qū)塊鏈具有數(shù)據(jù)透明的特點,直接將原始數(shù)據(jù)暴露在鏈上會導(dǎo)致數(shù)據(jù)隱私難以通過該方案共享。Liang X P等人[2]利用聯(lián)盟鏈創(chuàng)建了一個以用戶為中心的健康數(shù)據(jù)共享模型,用戶的可穿戴設(shè)備和醫(yī)療設(shè)備收集到的數(shù)據(jù)會同步存儲到云端,并且為了保證數(shù)據(jù)的完整性,云端會把數(shù)據(jù)的檢索記錄和驗證結(jié)果傳至區(qū)塊鏈進(jìn)行保存,還利用基于樹的方法提高平臺的可擴(kuò)展性和性能。但是其假設(shè)云是可信的,這大大減弱了該模型的安全性。Theodouli A等人[3]提出基于區(qū)塊鏈的電子健康信息共享平臺,其假設(shè)云服務(wù)器是惡意的,并通過對比鏈上數(shù)據(jù)的哈希值,確保惡意云服務(wù)器沒有篡改數(shù)據(jù),還給用戶提供了完善的頁面,幫助用戶快速獲知自己數(shù)據(jù)的訪問情況,起到審計和監(jiān)督的作用。但是其并未考慮惡意服務(wù)器泄露數(shù)據(jù)的風(fēng)險,并且其假設(shè)網(wǎng)絡(luò)由可信實體維護(hù),這使得該方案難以落地。Gordon W J等人[4]分析了基于區(qū)塊鏈構(gòu)建醫(yī)療數(shù)據(jù)共享架構(gòu)時需考慮的安全風(fēng)險,但是其并未給出具體的解決措施和架構(gòu)。Azaria A等人[5]提出去中心化的電子病歷管理系統(tǒng),用戶可以通過智能合約自定義訪問控制策略,并與不同的機(jī)構(gòu)共享自己的電子病歷。此外,作者還設(shè)計了激勵系統(tǒng)來鼓勵權(quán)威機(jī)構(gòu)積極參與,維護(hù)網(wǎng)絡(luò)穩(wěn)定。Yang H等人[6]借助區(qū)塊鏈和屬性基加密(attribute-based encryption,ABE)實現(xiàn)安全電子健康數(shù)據(jù)共享,用戶將能夠訪問數(shù)據(jù)的屬性條件記錄在鏈上,只有擁有相關(guān)屬性的人才能向云服務(wù)器發(fā)起數(shù)據(jù)訪問請求。Cao S等人[7]提出了云鏈結(jié)合的安全電子醫(yī)療數(shù)據(jù)共享系統(tǒng),其核心思想是將每個數(shù)據(jù)操作寫為公有鏈中的一筆交易,并在數(shù)據(jù)上傳時將數(shù)據(jù)的哈希值與簽名存在鏈上,從而保證數(shù)據(jù)的正確性和完整性。劉彥松等人[8]利用屬性加密和同態(tài)加密構(gòu)建了保護(hù)隱私的鏈上數(shù)據(jù)交易平臺,利用同態(tài)加密對密文進(jìn)行計算,從而避免泄露原始數(shù)據(jù),但是其并未給出該系統(tǒng)的性能指標(biāo),并且同態(tài)加密的計算開銷大,復(fù)雜計算難以在鏈上實現(xiàn)。Yu K P等人[9]利用智能合約和屬性基加密,實現(xiàn)了工業(yè)互聯(lián)網(wǎng)的數(shù)據(jù)共享平臺,域管理員負(fù)責(zé)制訂域安全和訪問策略。其中擁有與訪問策略相匹配的屬性的用戶,可以從邊緣/云服務(wù)器獲取中間解密參數(shù),并且支持用戶屬性的更新和撤銷。Zhang Y等人[10]和W?rner D等人[11]都通過在比特幣中寫入自建協(xié)議,配合鏈下數(shù)據(jù)解析腳本,構(gòu)建IoT設(shè)備數(shù)據(jù)共享平臺。這種方法利用比特幣的穩(wěn)定性來保證共享服務(wù)的穩(wěn)定性,并利用假名技術(shù)保護(hù)用戶隱私。但是比特幣的性能不高,難以滿足IoT的低時延需求。?zyilmaz K R等人[12]利用智能合約構(gòu)建了IoT傳感器與數(shù)據(jù)使用者的數(shù)據(jù)共享平臺,但是IoT設(shè)備通常不具有運行區(qū)塊鏈的能力,并且該研究同樣沒有考慮隱私數(shù)據(jù)。Shafagh H等人[13]利用區(qū)塊鏈實現(xiàn)了去中心化的訪問控制和數(shù)據(jù)管理,并通過傳統(tǒng)訪問控制方法來保護(hù)隱私數(shù)據(jù),但是其不支持訪問策略的更新。Pan J L等人[14]利用智能合約控制IoT設(shè)備從邊緣服務(wù)器獲取數(shù)據(jù),邊緣服務(wù)器通過讀取鏈上數(shù)據(jù)來判斷IoT設(shè)備訪問是否合法。張召等人[15]對現(xiàn)有基于區(qū)塊鏈的數(shù)據(jù)共享模型進(jìn)行了分析,指出了該架構(gòu)中存在的問題,并提出了鏈上數(shù)據(jù)完整性存證、鏈下實際數(shù)據(jù)傳輸?shù)臄?shù)據(jù)共享模型,但是并未解決隱私數(shù)據(jù)問題,且未給出實驗證明。

        通過對比現(xiàn)有數(shù)據(jù)共享研究不難發(fā)現(xiàn),盡管在該領(lǐng)域已有一些研究成果,但是還存在諸多可以改進(jìn)的地方,例如未考慮隱私數(shù)據(jù)、將云服務(wù)器假設(shè)為完全可信等。有些問題難以單獨使用區(qū)塊鏈或云來解決。為此,本文提出了基于區(qū)塊鏈與函數(shù)加密的隱私數(shù)據(jù)安全共享模型,實現(xiàn)了更加高效、安全的數(shù)據(jù)共享。

        2 相關(guān)技術(shù)

        2.1 區(qū)塊鏈及智能合約技術(shù)

        區(qū)塊鏈?zhǔn)且粋€公開、分布式、難以篡改的賬簿,其最早在中本聰于2008年發(fā)布的比特幣白皮書中被提出,其被作為支撐比特幣系統(tǒng)的底層技術(shù)。區(qū)塊鏈通常由運行相同或相近版本的客戶端軟件的節(jié)點通過對等網(wǎng)絡(luò)組成,網(wǎng)絡(luò)中傳遞的能夠引起系統(tǒng)狀態(tài)變化的消息被稱為交易。整個對等網(wǎng)絡(luò)中不存在中心化節(jié)點,所有節(jié)點間的地位及權(quán)利都是相等的,只有運行提前商定的共識算法,網(wǎng)絡(luò)中的所有節(jié)點才能夠?qū)φ麄€網(wǎng)絡(luò)的狀態(tài)變更達(dá)成統(tǒng)一。常見的共識算法包括工作量證明(proof of work,PoW)、權(quán)益證明(proof of stake,PoS)、權(quán)威證明(proof of authority,PoA)等[16]。總體來說,區(qū)塊鏈具有多種性質(zhì),這里僅列出與本文關(guān)系密切的特性。

        ● 透明性。區(qū)塊鏈中的任何節(jié)點都可以隨時獲取區(qū)塊鏈的所有狀態(tài),包括歷史狀態(tài)與當(dāng)前狀態(tài),并且所有的歷史交易與當(dāng)前正在網(wǎng)絡(luò)中傳播的交易都是透明的。

        ● 永久存儲。區(qū)塊鏈會永久記錄所有造成狀態(tài)變更的交易,一旦區(qū)塊被添加并確認(rèn),其內(nèi)容就是不可更改的,這也是區(qū)塊鏈技術(shù)非常突出的特性。

        ● 去中心化。區(qū)塊鏈網(wǎng)絡(luò)中不存在中心節(jié)點,這意味著只要交易自身是正確的,其一定會被忠實地執(zhí)行。并且由于不存在中心節(jié)點,沒有任何單獨實體能夠控制整個網(wǎng)絡(luò),除非所有節(jié)點同時宕機(jī),否則區(qū)塊鏈網(wǎng)絡(luò)將永遠(yuǎn)存在。

        智能合約是區(qū)塊鏈發(fā)展過程中極其重要的里程碑,簡而言之,智能合約可以被看作預(yù)先定義好的一段程序代碼,代碼通過交易的形式被存儲在區(qū)塊鏈中,并得到網(wǎng)絡(luò)中各參與節(jié)點的共識。智能合約通常由Solidity語言編寫,只能被區(qū)塊中的交易觸發(fā)執(zhí)行。智能合約是否被正確執(zhí)行,由所有區(qū)塊鏈節(jié)點共同驗證。結(jié)合區(qū)塊鏈自身的加密貨幣屬性與共識協(xié)議中的執(zhí)行激勵,智能合約可以實現(xiàn)復(fù)雜的交易和業(yè)務(wù)邏輯。以太坊是第一個支持圖靈完備智能合約的區(qū)塊鏈,其設(shè)想最早由Vitalik Buterin于2014年提出。以太坊存在兩種賬戶:外部賬戶和合約賬戶。外部賬戶由唯一對應(yīng)的公鑰和私鑰控制,能夠通過私鑰進(jìn)行簽名并發(fā)起交易,其地址由公鑰計算得到。合約賬戶與外部賬戶最大的不同在于沒有私鑰能夠控制合約賬戶,并且合約賬戶能夠存儲代碼,其賬戶地址由固定算法直接算出。與比特幣一樣,每個交易都由輸入方和接收方構(gòu)成,外部賬戶可以通過使用私鑰簽名的交易進(jìn)行轉(zhuǎn)賬、合約創(chuàng)建、合約調(diào)用等一系列操作。智能合約的行為完全取決于預(yù)設(shè)代碼及外部賬戶調(diào)用傳入的參數(shù)。

        2.2 函數(shù)加密技術(shù)

        函數(shù)加密是在Shamir A[17]提出的身份基加密(identity-based encryption,IBE)和Goyal V等人[18]提出的屬性基加密的基礎(chǔ)上發(fā)展而來的一種新型公鑰加密算法,最早由Boneh B等人[19]于2011年正式提出。它從兩個方面拓展了傳統(tǒng)公鑰加密算法體系:一是其支持訪問控制,只有滿足特定條件的人才能解密;二是其允許通過對密文進(jìn)行選擇性的計算直接得到計算結(jié)果。

        具體來說,傳統(tǒng)公鑰解密中往往只有解密成功或者解密失敗兩種結(jié)果,也就是說,解密者要么獲取所有明文信息,要么不能獲得任何信息。但函數(shù)加密允許加密者精確控制透露給解密者的信息量。例如,使用計算平均值的函數(shù)密鑰對加密數(shù)據(jù)進(jìn)行解密時,只能獲取該加密數(shù)據(jù)的平均值,而不會獲得額外信息。函數(shù)加密中每個函數(shù)F的密鑰都與密鑰空間K中的某個k值相關(guān)聯(lián),該密鑰由可信權(quán)威機(jī)構(gòu)利用全局主密鑰生成。當(dāng)消息空間X中的數(shù)據(jù)x被可信權(quán)威機(jī)構(gòu)生成的主公鑰加密后,使用與k相關(guān)聯(lián)的密鑰skk解密后的結(jié)果為F(k,x)。一個函數(shù)加密方案包含5個算法:Setup輸入安全參數(shù)生成后續(xù)需要的素數(shù)群;Master Key Generation創(chuàng)建主公鑰和主私鑰;Fu nction Key Derivation以主私鑰和具體函數(shù)F為輸入,生成skk用于獲取函數(shù)結(jié)果;Encryption用于加密數(shù)據(jù),生成密文;Decryption以s kk和密文為輸入,獲取F(x)的解密結(jié)果。

        2.3 零知識證明技術(shù)

        零知識證明技術(shù)是一種加密技術(shù),用于證明某個斷言,而不具體透露其他任何信息。雖然其出現(xiàn)早于區(qū)塊鏈,但卻因為區(qū)塊鏈被廣為關(guān)注。由于區(qū)塊鏈的透明性讓網(wǎng)絡(luò)中的用戶可以隨意訪問所有數(shù)據(jù),容易造成隱私數(shù)據(jù)泄露等問題。零知識證明的特性使其成為實現(xiàn)區(qū)塊鏈隱私保護(hù)的重要方法。零知識證明包含以下3個特性。

        ● 完整性:誠實的證明方產(chǎn)生的合法證明一定會通過驗證。

        ● 可靠性:證據(jù)在計算上是不可偽造的。

        ● 零知識性:驗證者除證據(jù)本身外不能獲取任何額外知識。

        零知識證明主要分為兩類:交互式零知識證明和非交互式零知識證明。交互式零知識證明是指驗證方多次向證明方的聲明提出挑戰(zhàn),雙方需要多次通信,直至驗證方認(rèn)為正確概率大于某個閾值時表示認(rèn)可。同時,值得注意的是,在交互式零知識證明中,證明方只能同時向一方證明。非交互式零知識證明是指證明方單方計算證據(jù),隨后任何驗證方都可以隨時快速驗證證據(jù)的正確性,因此現(xiàn)在廣泛使用的都是非交互式零知識證明。非交互式零知識證明的主要參與方包含3個:Generator以安全參數(shù)k為輸入,輸出另一個安全參數(shù)pp;Prover生成證據(jù)π,用于證明某個聲明的真實性;Verifier能夠快速驗證證據(jù)的真實性。

        3 系統(tǒng)架構(gòu)

        3.1 設(shè)計目標(biāo)

        本文模型旨在達(dá)到如下設(shè)計目標(biāo)。

        ● 數(shù)據(jù)擁有者可控的數(shù)據(jù)共享。針對數(shù)據(jù)易復(fù)制、難管控、難確權(quán)等問題,本文模型旨在讓數(shù)據(jù)擁有者對數(shù)據(jù)擁有完全的控制權(quán)。本文模型具有原始數(shù)據(jù)不外露、云存儲數(shù)據(jù)防篡改、訪問控制、安全共享等特點。

        ● 隱私保護(hù)。為了在保護(hù)原始數(shù)據(jù)的前提下實現(xiàn)數(shù)據(jù)共享,本文模型旨在結(jié)合密碼學(xué)和區(qū)塊鏈技術(shù),實現(xiàn)“數(shù)據(jù)可用不可見”、結(jié)果可驗證,從而保證隱私數(shù)據(jù)的安全性。

        ● 可靠性驗證。使用零知識證明技術(shù),保證數(shù)據(jù)處理結(jié)果的可靠性,消除由原始數(shù)據(jù)不可見帶來的數(shù)據(jù)處理不可信風(fēng)險,保護(hù)數(shù)據(jù)使用者的權(quán)益。

        3.2 整體架構(gòu)

        本文結(jié)合區(qū)塊鏈與云服務(wù)器,實現(xiàn)數(shù)據(jù)鏈上存證、鏈下存儲的混合存儲架構(gòu),并使用函數(shù)加密、零知識證明等技術(shù)實現(xiàn)隱私保護(hù)以及可驗證結(jié)果的安全數(shù)據(jù)共享,具體架構(gòu)如圖1所示。本文模型包含以下主要角色:可信機(jī)構(gòu)(trusted authority,TA)、區(qū)塊鏈(blockchain,BC)、云服務(wù)提供商(cloud service provider,CSP)、數(shù)據(jù)擁有者(data owner,DO)、數(shù)據(jù)使用者(data user,DU)。

        圖1 整體架構(gòu)及各角色間交互

        各個角色具體介紹如下。

        ● 可信機(jī)構(gòu):負(fù)責(zé)全局初始化設(shè)置,本文模型中使用的函數(shù)加密及零知識證明的初始化參數(shù)設(shè)置都由TA生成,并且TA負(fù)責(zé)函數(shù)加密中私鑰的生成。本文假設(shè)TA完全可信。

        ● 區(qū)塊鏈:負(fù)責(zé)存儲加密數(shù)據(jù)摘要、驗證零知識證明的正確性、發(fā)布DO的定價及函數(shù)、接收DU的數(shù)據(jù)請求以及最終的自動支付流程,上述功能通過智能合約實現(xiàn),合約中包含相關(guān)事件,用于傳遞消息。

        ● 云服務(wù)提供商:負(fù)責(zé)存儲數(shù)據(jù)擁有者上傳的密文,并向購買后的數(shù)據(jù)使用者提供密文。

        ● 數(shù)據(jù)擁有者:負(fù)責(zé)存儲數(shù)據(jù)、加密數(shù)據(jù)、指定使用函數(shù)并定價。

        ● 數(shù)據(jù)使用者:金融機(jī)構(gòu)、科技公司、政府機(jī)構(gòu)等具有私人數(shù)據(jù)使用需求的用戶。

        本文模型共涉及3種密碼學(xué)算法,分別為函數(shù)加密、零知識證明和非對稱加密。其中函數(shù)加密的相關(guān)符號均以FE開頭,將在第4.1節(jié)詳細(xì)論述。零知識證明的生成方法將在第4.2節(jié)詳細(xì)論述。這里介紹非對稱加密部分,即圖1中的Hash(Ex)、Enc(sk,Upk)、Sig_D(Hash(Ex))、Decrypt(Usk,Enc(sk,Upk))。Hash(Ex)表示對函數(shù)加密后的密文Ex進(jìn)行哈希計算。Si g_D(Hash(Ex))表示對密文哈希值進(jìn)行數(shù)字簽名,用于防止數(shù)據(jù)被篡改。Enc(sk,Upk)表示使用用戶公鑰Upk對派生出的密鑰sk進(jìn)行加密。Decrypt(Usk,Enc(sk,Upk))表示使用用戶私鑰Usk對加密后的sk進(jìn)行解密,獲取原始sk。

        3.3 運行流程

        本文模型的詳細(xì)運行過程如下。

        步驟1:全局初始化。首先由TA設(shè)置全局安全參數(shù),生成系統(tǒng)主公鑰和主私鑰,并將系統(tǒng)主公鑰公開在區(qū)塊鏈中。

        步驟2:數(shù)據(jù)加密及上傳。DO從鏈上獲取主公鑰,并運行函數(shù)加密算法后,得到密文Ct。為了避免數(shù)據(jù)過大造成區(qū)塊鏈節(jié)點負(fù)擔(dān)過重,本文模型采用鏈上鏈下混合存儲的方法。DO對密文Ct進(jìn)行哈希摘要和數(shù)字簽名,然后連同密文Ct一起上傳到CSP,并將哈希摘要及簽名通過交易發(fā)送至區(qū)塊鏈進(jìn)行存儲,從而提高模型的性能及可擴(kuò)展性,降低鏈上空間開銷。同時,因為本文模型中假設(shè)CSP是誠實的,即CSP會誠實地執(zhí)行用戶的指令,但是可能會對用戶的數(shù)據(jù)產(chǎn)生好奇和惡意,這種存儲方案也能避免CSP篡改數(shù)據(jù)。CSP會對鏈上事件進(jìn)行監(jiān)聽,保證只有合法的DU能夠拿到加密數(shù)據(jù)。然后,DO需指定能夠作用在加密數(shù)據(jù)上的函數(shù)及對應(yīng)的價格。由于本文模型采用了內(nèi)積函數(shù)加密(inner product functional encryption,IP-FE),除DO預(yù)設(shè)函數(shù)外,DU可以自行上傳加密數(shù)據(jù)處理函數(shù),函數(shù)種類包括加權(quán)和、平均值,甚至簡單的機(jī)器學(xué)習(xí)模型等。

        步驟3:數(shù)據(jù)訪問。當(dāng)DU想要獲取數(shù)據(jù)時,其并不直接獲取原始數(shù)據(jù),而是獲取加密數(shù)據(jù)的函數(shù)處理結(jié)果,即F(x)。將傳統(tǒng)數(shù)據(jù)共享中的共享原始數(shù)據(jù)改為共享數(shù)據(jù)的計算結(jié)果,實現(xiàn)數(shù)據(jù)的隱私保護(hù)共享。DU可以選擇鏈上的預(yù)設(shè)函數(shù)或自行提供函數(shù)F,同時提供個人公鑰Upk,該公鑰用于對最終結(jié)果進(jìn)行加密,最后通過交易調(diào)用智能合約。

        步驟4:密鑰生成。TA監(jiān)聽到鏈上事件后,從事件中獲取DU購買的函數(shù)F及個人公鑰Upk,運行密鑰生成算法,對F及加密數(shù)據(jù)進(jìn)行處理并生成sk。并通過零知識證明算法生成sk的有效性證明Proof,將Proof上傳至鏈上進(jìn)行驗證。智能合約驗證Pro of的有效性后,會將步驟3中DU預(yù)存的資金發(fā)送給D O。如果驗證未通過或在規(guī)定時間內(nèi)TA未生成Proof,交易將會被取消并對TA進(jìn)行懲罰。最后使用Upk加密的sk會被記錄在合約中,相關(guān)事件被觸發(fā)以通知DU獲取sk。

        步驟5:解密。DU首先利用Usk對鏈上獲取的被Upk加密的sk進(jìn)行解密。然后從CSP獲取密文,并與鏈上的哈希值進(jìn)行對比,驗證文件是否被篡改,最后運行解密算法獲取F(x)。

        4 算法構(gòu)造

        下面詳細(xì)闡述本文模型中使用的函數(shù)加密和零知識證明的具體算法設(shè)計及構(gòu)造過程。

        4.1 函數(shù)加密

        本函數(shù)加密模型基于DDH(decisional Diffie-Hellman)假設(shè)構(gòu)建。下面對DDH假設(shè)進(jìn)行簡單介紹。

        其中,Group G en為任意概率多項式時間算法,輸入安全參數(shù)l λ,產(chǎn)生一個三元組,其中G為p階素數(shù)群,其生成元為g。那么(g,ga,gb,gab)與(g,ga,gb,gc)是不可分辨的,其中的a、b、c均隨機(jī)獨立選取。與第2.2節(jié)中介紹的相同,IPFE=(Setup,KeyDer,Encrypt,Decrypt)。

        ● Setup(lλ,ll)初始化整個系統(tǒng),生成主公鑰和主私鑰,將全局安全參數(shù)λ和l作為輸入?yún)?shù),其中整數(shù)s1,…,sζ∈Zp,最后返回密鑰對(mpk,msk)。

        ● KeyDer(msk,y)為數(shù)據(jù)使用者提供的向量y=(y1,…,yl)生成對應(yīng)的sk,將sk作為獲取F(x)的密鑰。以主私鑰以及y為輸入,返回密鑰sky=〈y,s〉。

        ● Encrypt(mpk,x)使用主公鑰對數(shù)據(jù)進(jìn)行加密,保護(hù)原始數(shù)據(jù)的隱私安全。將主公鑰及數(shù)據(jù)x作為輸入,返回密文Ct。

        其中,Ct0=gr,g是G的生成元,h、r是隨機(jī)變量。

        ● Decrypt(mpk,Ct,sky)以主公鑰mpk、密文Ct、密鑰sky為輸入,返回以g為基的離散對數(shù)。因此,由上述3個算法可以得出。

        4.2 零知識證明

        本文模型采用與Zcash、Filecoin等相同的零知識證明技術(shù)zk-SNARK,基于Groth16算法[20]構(gòu)造。證明者需要證明自己知道一個秘密witness(al+1,…,am)與statement(a1…,al),a0=1能夠滿足如下計算式。

        其中,ui(X)、vi(X)、wi(X)、h(X)、t(X)均與待證明的問題本身相關(guān)。

        本文模型需要證明sk的有效性,即sk是通過正確的msk計算得到的,然后將該問題轉(zhuǎn)化為相應(yīng)的電路。由于zk-SNARK不能直接解決任何實際問題,需要將問題轉(zhuǎn)化為多項式,并對多項式施加一系列約束才能進(jìn)行后續(xù)的證明。隨后,將電路轉(zhuǎn)化為R1CS(rank-1 constraint system),并通過拉格朗日插值法轉(zhuǎn)化為QAP(quadratic arithmetic program)。使用Groth16算法生成證明。具體來說,本文模型使用zk-SNARK生成證明的過程主要分為以下3步。

        ● Tr ust S et up生 成CR S作 為 公共安全參數(shù)。首先選取α,β,γ,δ,x←Zp*,τ=(α,β,γ,δ,x), 然后計算σ=([σ1]1,[σ2]2),其中[σ1]1為橢圓曲線G1上的元素,[σ2]2為橢圓曲線G2上的元素。具體的計算式如下。

        值得注意的是,計算完σ后,原始的σ1、σ2通常被稱為“有毒廢料”,應(yīng)該被銷毀,否則整個零知識證明將不再安全。

        ● 選取r,s←Zp,選取與msk和y長度相等的隨機(jī)變量g、h。通過向量乘法將msk和y隱藏,具體計算式如下。

        將c1、c2、v作為計算證明的公開部分,r、s、y作為生成證明的秘密部分。

        ● 計算證明π=([A]1,[C]1,[B]2),其中A、B、C的生成方式如下。

        最后將證明π傳入智能合約進(jìn)行驗證。

        5 安全性分析與實驗

        5.1 安全性分析

        本文模型基于Abdalla M等人[21]提出的函數(shù)加密方案,引入?yún)^(qū)塊鏈及零知識證明技術(shù),實現(xiàn)隱私保護(hù)和數(shù)據(jù)安全共享。下面對本文模型進(jìn)行安全性證明。

        CSP被假定為誠實的,即CSP會執(zhí)行用戶的命令,但同時對用戶的數(shù)據(jù)好奇。在本文模型中,原始數(shù)據(jù)首先經(jīng)過用戶加密后再上傳存儲,且密鑰僅在TA處存放。因此數(shù)據(jù)的隱私安全得以保證。此外,為了防止CSP提供錯誤的加密數(shù)據(jù)給DU,在上傳數(shù)據(jù)時,對數(shù)據(jù)進(jìn)行哈希計算并對結(jié)果進(jìn)行數(shù)字簽名,隨后將哈希值與數(shù)字簽名一并存儲在區(qū)塊鏈上。因此,DU通過運行哈希算法,就可以輕易辨別數(shù)據(jù)是否被篡改,數(shù)據(jù)完整性也能得到保證。對于數(shù)據(jù)的可用性,用戶可以選擇將數(shù)據(jù)存儲在多個CSP上,通過冗余的方式保證數(shù)據(jù)的可用性,但冗余產(chǎn)生的費用需要用戶自行承擔(dān)。

        DO通過限制數(shù)據(jù)使用者對加密數(shù)據(jù)的處理方式,實現(xiàn)對數(shù)據(jù)使用擁有完全的控制權(quán)。DU支付費用后,由TA負(fù)責(zé)生成密鑰和密鑰的有效性零知識證明,保證DU除函數(shù)處理結(jié)果外不能獲取任何信息。零知識證明在鏈上被驗證后,智能合約自動完成支付。從整個網(wǎng)絡(luò)來看,此次數(shù)據(jù)交易已經(jīng)完成,DU可以隨時取回密鑰,解密獲取結(jié)果,因此,本文模型是安全有效的。

        5.2 實驗結(jié)果及分析

        本文實驗利用以太坊搭建了本地5節(jié)點私有網(wǎng)絡(luò),節(jié)點宿主機(jī)均為VMware虛擬機(jī),版本為Ubuntu 18.04,其配置為Intel Core i7 CPU,內(nèi)存為32 GB。為了方便實驗,選用PoA單節(jié)點打包區(qū)塊(即出塊),其余參數(shù),如區(qū)塊大小、gasLimit與Rinkeby Ethereum testnet保持一致。利用Solidity語言編寫智能合約Market,實現(xiàn)DO鏈上數(shù)據(jù)發(fā)布、DU鏈上數(shù)據(jù)購買、零知識證明鏈上驗證等。使用Rust語言實現(xiàn)鏈下計算復(fù)雜度高、計算密集的、不適合在區(qū)塊鏈上進(jìn)行的算法部分,如函數(shù)加密、零知識證明證據(jù)的生成。鏈下數(shù)據(jù)通過交易的形式傳遞至鏈上,鏈上交易通過智能合約中定義的交易事件,即對應(yīng)的動作會觸發(fā)預(yù)先設(shè)計的事件,通知鏈下CSP和其他相關(guān)方。本實驗采用本地節(jié)點模擬CSP,節(jié)點配置同上述節(jié)點宿主機(jī),網(wǎng)絡(luò)帶寬為1 000 MB。

        在實驗初始化階段,等網(wǎng)絡(luò)出塊穩(wěn)定后,通過Remix將Market部署在本地私有網(wǎng)絡(luò)中,零知識證明采用ZoKrates組件,并對部署合約和各個函數(shù)消耗的Gas和時間進(jìn)行測量,結(jié)果見表1。對比ChooseCt與UploadFn函數(shù)可以看出,如果DU使用DO預(yù)先設(shè)定的函數(shù),其Gas消耗量僅為上傳自定義函數(shù)的5%,上傳自定義函數(shù)消耗的Gas隨所求變量大小的變化如圖2所示。使用自定義函數(shù)的Gas較高的主要原因在于,隨著所求變量大小的增大,調(diào)用UploadFn函數(shù)時傳入?yún)?shù)的大小也會增加。該函數(shù)會將參數(shù)寫到鏈上并通過交易事件通知云服務(wù)商,而在以太坊中,存儲成本遠(yuǎn)高于計算成本,因此DU可以盡可能選擇預(yù)先定義的函數(shù),以降低使用數(shù)據(jù)的成本。

        圖2 上傳自定義計算函數(shù)消耗的Gas隨所求變量大小的變化

        表1 部署合約和各個函數(shù)消耗的Gas與時間

        內(nèi)積函數(shù)加密算法性能會受到所求向量長度的影響,從而影響整個數(shù)據(jù)交易的性能,因此本文對不同長度的向量進(jìn)行了性能測試,實驗環(huán)境與上述以太坊節(jié)點宿主機(jī)相同,得到的實驗結(jié)果如圖3所示。由圖3可以看出,隨著向量長度的增加,加密和解密所需時間增長較塊,但是派生密鑰所需時間依然維持在較低水平,這也側(cè)面證明了本文模型將加密和解密放到鏈下執(zhí)行的正確性。

        圖3 函數(shù)加密操作消耗的時間隨向量長度的變化

        6 結(jié)束語

        本文提出的基于區(qū)塊鏈與函數(shù)加密的隱私數(shù)據(jù)安全共享模型,利用區(qū)塊鏈及函數(shù)加密實現(xiàn)了數(shù)據(jù)的安全共享,借助函數(shù)加密的特性,用戶可以自主控制數(shù)據(jù)使用者從密文中獲取的信息量,避免使用傳統(tǒng)公鑰加密時的共享數(shù)據(jù)量不可控問題。并且,通過零知識證明生成相關(guān)計算的可信證明,實現(xiàn)了鏈上自動支付。本文模型在保證隱私數(shù)據(jù)的前提下,實現(xiàn)了“數(shù)據(jù)可用不可見”。

        猜你喜歡
        密文解密合約
        解密“熱脹冷縮”
        一種針對格基后量子密碼的能量側(cè)信道分析框架
        一種支持動態(tài)更新的可排名密文搜索方案
        基于模糊數(shù)學(xué)的通信網(wǎng)絡(luò)密文信息差錯恢復(fù)
        解密“一包三改”
        少先隊活動(2020年9期)2020-12-17 06:17:31
        炫詞解密
        云存儲中支持詞頻和用戶喜好的密文模糊檢索
        解密“大調(diào)解”
        合約必守,誰能例外!——對“情勢變更”制度不可寄于過高期望
        中文字幕人妻少妇美臀| 亚洲av永久精品爱情岛论坛 | 国产看黄网站又黄又爽又色| 亚洲精品国产老熟女久久| 国产视频免费一区二区| 国产av无码专区亚洲av男同| 一个人看的视频www免费| 国产爆乳无码一区二区在线 | 四月婷婷丁香七月色综合高清国产裸聊在线| 91青青草久久| 日韩精品国产精品亚洲毛片| 午夜精品久久久久久久99老熟妇| 欧美日韩一区二区三区自拍| 国产大片中文字幕| 日本中文字幕有码在线播放| 少妇被爽到高潮喷水久久欧美精品| 天天综合亚洲色在线精品| 久久亚洲av无码西西人体| 精品性影院一区二区三区内射| 日日噜噜夜夜狠狠久久av| 激情久久黄色免费网站| 色天使综合婷婷国产日韩av| 欧美日韩另类视频| 亚洲精品一区二区三区蜜臀| 一区二区三区国产免费视频| 精品国产一区二区三区免费| 欧美日本道免费二区三区| 青青草视频在线播放观看| 在线观看的网站| 亚洲av成人精品日韩一区| 欧美日韩区1区2区3区| 亚洲自偷自拍另类第一页| 狠狠色噜噜狠狠狠8888米奇| 亚洲av无码专区国产乱码不卡| 级毛片无码av| 白白色发布会在线观看免费| 无码国产伦一区二区三区视频| 麻豆国产乱人伦精品一区二区| 国产精品国产三级国产an不卡| 男人扒开添女人下部免费视频| 中文字幕+乱码+中文字幕无忧|