国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

李懿,王勁松,張洪瑋

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

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

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

0 引言

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

1 研究現(xiàn)狀

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

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

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

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

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

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

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

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

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

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

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

具體來(lái)說(shuō),傳統(tǒng)公鑰解密中往往只有解密成功或者解密失敗兩種結(jié)果,也就是說(shuō),解密者要么獲取所有明文信息,要么不能獲得任何信息。但函數(shù)加密允許加密者精確控制透露給解密者的信息量。例如,使用計(jì)算平均值的函數(shù)密鑰對(duì)加密數(shù)據(jù)進(jìn)行解密時(shí),只能獲取該加密數(shù)據(jù)的平均值,而不會(huì)獲得額外信息。函數(shù)加密中每個(gè)函數(shù)F的密鑰都與密鑰空間K中的某個(gè)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)。一個(gè)函數(shù)加密方案包含5個(gè)算法:Setup輸入安全參數(shù)生成后續(xù)需要的素?cái)?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í)證明技術(shù)是一種加密技術(shù),用于證明某個(gè)斷言,而不具體透露其他任何信息。雖然其出現(xiàn)早于區(qū)塊鏈,但卻因?yàn)閰^(qū)塊鏈被廣為關(guān)注。由于區(qū)塊鏈的透明性讓網(wǎng)絡(luò)中的用戶(hù)可以隨意訪問(wèn)所有數(shù)據(jù),容易造成隱私數(shù)據(jù)泄露等問(wèn)題。零知識(shí)證明的特性使其成為實(shí)現(xiàn)區(qū)塊鏈隱私保護(hù)的重要方法。零知識(shí)證明包含以下3個(gè)特性。

● 完整性:誠(chéng)實(shí)的證明方產(chǎn)生的合法證明一定會(huì)通過(guò)驗(yàn)證。

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

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

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

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

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

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

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

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

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

3.2 整體架構(gòu)

本文結(jié)合區(qū)塊鏈與云服務(wù)器,實(shí)現(xiàn)數(shù)據(jù)鏈上存證、鏈下存儲(chǔ)的混合存儲(chǔ)架構(gòu),并使用函數(shù)加密、零知識(shí)證明等技術(shù)實(shí)現(xiàn)隱私保護(hù)以及可驗(yàn)證結(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)及各角色間交互

各個(gè)角色具體介紹如下。

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

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

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

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

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

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

3.3 運(yùn)行流程

本文模型的詳細(xì)運(yùn)行過(guò)程如下。

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

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

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

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

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

4 算法構(gòu)造

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

4.1 函數(shù)加密

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

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

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

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

● Encrypt(mpk,x)使用主公鑰對(duì)數(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為基的離散對(duì)數(shù)。因此,由上述3個(gè)算法可以得出。

4.2 零知識(shí)證明

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

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

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

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

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

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

將c1、c2、v作為計(jì)算證明的公開(kāi)部分,r、s、y作為生成證明的秘密部分。

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

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

5 安全性分析與實(shí)驗(yàn)

5.1 安全性分析

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

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

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

5.2 實(shí)驗(yàn)結(jié)果及分析

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

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

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

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

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

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

6 結(jié)束語(yǔ)

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

猜你喜歡
密文解密密鑰
一種支持動(dòng)態(tài)更新的可排名密文搜索方案
幻中邂逅之金色密鑰
幻中邂逅之金色密鑰
基于模糊數(shù)學(xué)的通信網(wǎng)絡(luò)密文信息差錯(cuò)恢復(fù)
炫詞解密
解密“一包三改”
密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
基于網(wǎng)絡(luò)報(bào)文流量的協(xié)議密文分析方法
密鑰共享下跨用戶(hù)密文數(shù)據(jù)去重挖掘方法*
炫詞解密