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

        ?

        使用模糊關鍵字可搜索同態(tài)加密的區(qū)塊鏈隱私保護方案

        2022-11-18 05:57:06蔡玉涵王靜宇
        小型微型計算機系統(tǒng) 2022年11期
        關鍵詞:關鍵字解密合約

        蔡玉涵,王靜宇

        (內蒙古科技大學 信息工程學院,內蒙古 包頭 014010)

        1 引 言

        區(qū)塊鏈是一個分布式賬本,本質上是一個去中心化的數(shù)據(jù)庫,具有去中心化、不可篡改、可追溯、集體維護和公開透明等特點[1-3].但區(qū)塊鏈在實現(xiàn)去中心化和去信任化的同時,會將全網(wǎng)的交易信息公開以達到節(jié)點的共識,信息的公開就會降低數(shù)據(jù)的隱私性.為解決這一問題,數(shù)據(jù)加密應運而生,但是常用的數(shù)據(jù)加密方案會限制存儲服務器處理用戶訪問請求的能力[4].如若用戶想要查詢包含某一關鍵字的文檔,用戶需將加密文檔下載,然后進行解密得到想要獲取的內容,這不僅消耗存儲空間,也給用戶帶來了較差的體驗感.因此,可搜索加密的研究逐漸成為近幾年的熱點.

        近年來,許多研究者開始致力于研究區(qū)塊鏈系統(tǒng)中的安全問題,在該領域應用較多的隱私保護技術主要有混幣機制[5]、零知識證明[6]、環(huán)簽名[7]和同態(tài)加密[8]等.祝烈煌等人[9]將區(qū)塊鏈中的隱私定義為身份隱私和交易隱私,在介紹區(qū)塊鏈架構的同時,詳細闡述了區(qū)塊鏈隱私保護面臨的危險以及保護對策,但是該文更多的是理論闡述而沒有落實到具體場景之中.張奧等人[10]將區(qū)塊鏈隱私歸納為賬本隱私和網(wǎng)絡隱私,同時將現(xiàn)存的隱私保護技術總結為地址混淆、信息隱藏和通道隔離,詳細介紹了各類隱私保護機制的原理、特征以及不同的實現(xiàn)方式,但同樣的問題是,該文獻也偏于理論,缺乏實際生活中的應用.陳思吉等人[11]提出一種基于環(huán)簽名的區(qū)塊鏈隱私保護算法,在眾多用戶中混入真實的簽名者,用減小用戶身份信息和區(qū)塊鏈節(jié)點地址的相關性的方式來保護用戶的隱私,但該算法是基于相對穩(wěn)定以及有一定的角色權限管理的區(qū)塊鏈網(wǎng)絡,如私有鏈和聯(lián)盟鏈,但對于公有鏈并不適用.Song等人[12]首次提出了可搜索加密,目前已經(jīng)得到了廣泛的研究.Shmueli等人[13]總結了在為加密數(shù)據(jù)庫設計安全索引時的挑戰(zhàn),同時為了支持在多用戶環(huán)境下的自由訪問,將該索引分為多個子索引,使用同一密鑰加密相關值,安全性較低.Boneh等人[14]在2004年提出一種基于公鑰密碼學的可搜索加密方案.之后,隨著區(qū)塊鏈技術的不斷發(fā)展,可搜索加密技術開始逐步與區(qū)塊鏈結合.聶夢飛等人[15]為了解決傳統(tǒng)的可搜索加密方案的公平性問題,提出了一個結合以太坊區(qū)塊鏈和智能合約的對稱可搜索加密方案,文中分別在服務器和用戶不誠信時設置了懲罰措施,保證了隱私數(shù)據(jù)的安全性.杜瑞忠等人[16]提出一種基于區(qū)塊鏈的公鑰可搜索加密方案,該方案利用區(qū)塊鏈技術解決了傳統(tǒng)方案中第3方的不可信問題,限制了服務器產(chǎn)生的惡意行為.

        但是在實際應用中,精確搜索會給用戶帶來不便,如用戶在搜索時不小心輸錯了關鍵字,精確搜索將不會返回結果,這樣就會給用戶極差的體驗感.就這一問題,Li等人[17]提出了在云計算中的模糊關鍵字搜索方案,首次形式化的實現(xiàn)了在云計算中支持高效隱私保護的模糊搜索,以實現(xiàn)遠程存儲加密數(shù)據(jù)的有效利用的問題.Yan等人[18]提出基于區(qū)塊鏈的可實現(xiàn)公平支付的可搜索加密方案,在該文獻中實現(xiàn)了模糊關鍵字搜索,同時保障了用戶查找到的數(shù)據(jù)文件的安全性和正確性.

        但是上述文獻主要是實現(xiàn)數(shù)據(jù)文件的安全性以及數(shù)據(jù)文件的相關隱私保護,并未考慮到用戶的隱私保護.本文借鑒文獻[19]的思想,基于模糊關鍵字可搜索加密和同態(tài)加密設計出一個區(qū)塊鏈隱私保護方案,通過引入中間節(jié)點將內容加密密鑰分割,采用同態(tài)加密算法實現(xiàn)加密密鑰的安全性,該方案不僅能夠實現(xiàn)數(shù)據(jù)文件的隱私安全保護,同時也增加了用戶的隱私安全保護.

        2 相關工作

        目前大多數(shù)的可搜索加密方案的實現(xiàn)是基于云服務器的,傳統(tǒng)的云服務器存儲大都是依賴于可信任的第3方來存儲數(shù)據(jù)和進行交易,但是數(shù)據(jù)的可用性和數(shù)據(jù)的安全性是這種模型比較容易出現(xiàn)的問題.當使用各種安全等級不同的加密方案將保護的數(shù)據(jù)文件上傳到云服務器后,集中的密鑰管理方案容易造成單點故障[20],分布式存儲方案可以解決傳統(tǒng)云存儲系統(tǒng)中單點故障的問題.本文的方案采用密鑰分割技術,通過中間節(jié)點將密鑰存儲在區(qū)塊鏈上,避免了集中密鑰管理的單點故障問題.此外,半可信的云服務器可能會篡改或泄露數(shù)據(jù)信息,區(qū)塊鏈作為具有去中心化和防篡改功能的分布式架構,可以很好的保持數(shù)據(jù)的隱私性和完整性,正因為如此,區(qū)塊鏈可以很好的與云計算結合.

        智能合約(1)http://zh.m.wiki.sxisa.org/wiki/智能合約是Szabo[21]在1995年首次提出的,其無需第3方就可以自動執(zhí)行,用來實現(xiàn)可信交易.區(qū)塊鏈上的智能合約是一組協(xié)議,可以直接寫入代碼,在部署智能合約的時候,將編譯器編譯產(chǎn)生的字節(jié)碼存儲在區(qū)塊鏈中[22],同時存儲產(chǎn)生的地址.當觸發(fā)合約中預定義的條件時,智能合約自動執(zhí)行,將最終結果存儲到區(qū)塊鏈上.因為智能合約允許在不參與中心化結構機制的情況下執(zhí)行值得信賴的交易和協(xié)議,因此區(qū)塊鏈的智能合約可以適用于本文中設計的系統(tǒng)密鑰的分發(fā)和驗證.

        Do等人[23]設計了一種具有關鍵字搜索功能的安全分布式數(shù)據(jù)存儲結構,通過使用加密技術確保數(shù)據(jù)的可用性,在區(qū)塊鏈的幫助下實現(xiàn)了對檢索結果完整性的驗證.Wang等人[24]為了解決傳統(tǒng)云服務器存儲中單點故障的問題,設計了一個分布式數(shù)據(jù)存儲的系統(tǒng)框架,在該框架中,基于以太坊區(qū)塊鏈的智能合約實現(xiàn)了分布式系統(tǒng)下對加密數(shù)據(jù)的關鍵字搜索功能,解決了云服務器返回錯誤結果的問題.Hu等人[25]使用了以太坊智能合約取代中心化服務器來構建分布式隱私保護下的可搜索加密方案,保證了參與者只有在誠實的執(zhí)行了智能合約的情況下才能獲得相應的結果,增強了系統(tǒng)的可信性.Li等人[26]為了增加系統(tǒng)的可信度,將數(shù)據(jù)存儲在公共鏈上,使用區(qū)塊鏈構造SSE模型,以加密的形式將數(shù)據(jù)擁有者的數(shù)據(jù)存放在區(qū)塊鏈上,但是該方案不適合動態(tài)數(shù)據(jù).Cai等人[27]融合可搜索加密技術和基于分布式哈希表(Distributed Hash Table,DHT)的關鍵字搜索技術為加密和分布式存儲平臺設計了一個安全性和魯棒性都較強大的關鍵字搜索系統(tǒng).但是該系統(tǒng)的搜索功能比較單一,僅能支持私有關鍵字搜索,并且區(qū)塊鏈的開銷較大.

        在數(shù)據(jù)存儲方面,上述方案基本上使用的都是區(qū)塊鏈存儲數(shù)據(jù),但是區(qū)塊鏈具有不可篡改的特性,如果在數(shù)據(jù)量比較大的時候,在發(fā)生修改或者加入文件數(shù)據(jù)時,會對存儲時間和存儲空間造成比較大的消耗.

        Li等人[28]采用比特幣區(qū)塊鏈和云服務器結合實現(xiàn)單個關鍵字的可搜索加密方案,同時通過比特幣的腳本文件來對結果進行驗證.Zhang等人[29]為了保護誠實的云服務器免受數(shù)據(jù)存儲過程中惡意數(shù)據(jù)擁有者的破壞,提出一種沒有第3方即可實現(xiàn)的服務器端驗證框架TKSE,采用區(qū)塊鏈技術和哈希函數(shù),實現(xiàn)公平支付問題.Wang等人[20]利用區(qū)塊鏈的不可篡改性,將在區(qū)塊鏈上的索引存儲內容和云服務器中的搜索索引結果相匹配,設計出一個適用于單個關鍵字搜索的可搜索加密方案.

        上述方案結合了云服務器和區(qū)塊鏈,區(qū)塊鏈上存儲的是加密數(shù)據(jù)的哈希值,并且將相關索引集合存儲在智能合約中,進一步提高了數(shù)據(jù)的完整性.但是這些方案都是要求用戶在輸入關鍵字之后要和數(shù)據(jù)擁有者預先定義好的關鍵字完全匹配才能夠返回結果,即基于精確的關鍵字搜索,這在用戶的使用過程中會帶來較差的體驗感.

        為了解決上述問題,本文提出一種基于區(qū)塊鏈的模糊關鍵字可搜索加密的方案,即用戶輸入關鍵字,系統(tǒng)返回與之匹配度相接近的文檔數(shù)據(jù).使用區(qū)塊鏈存儲分割的密鑰,將加密文檔存放在云服務器中,同時將加密文檔的文檔標識符分別發(fā)送給云服務器和區(qū)塊鏈,因為區(qū)塊鏈不可篡改,即使惡意用戶修改云服務器中的數(shù)據(jù)信息,但在區(qū)塊鏈中有其記錄標識,在獲取數(shù)據(jù)時會停止服務,保證了數(shù)據(jù)的安全性.同時采用加法同態(tài)加密算法,保證了密鑰分發(fā)時的安全性.

        3 預備知識

        3.1 構造模糊關鍵字集合

        在從文檔中提取出關鍵字后,需要為關鍵字構造模糊關鍵字集合,利用文獻[17]研究的編輯距離估計兩個字符串的相似性.對于兩個關鍵字W1和W2,編輯距離ed(W1,W2)就是指將一個關鍵字轉換為另一個關鍵字所需要的最小單字符操作數(shù),其中有3個基本操作[18],如下:

        a)插入:插入一個字符

        b)刪除:刪除一個字符

        c)替換:將一個字母替換成另外一個字母

        為了實現(xiàn)基于區(qū)塊鏈的模糊關鍵字搜索加密,利用編輯距離構造模糊關鍵字集.給定關鍵字w和編輯距離d,假設Sw,d表示滿足Sw,d={w′|ed(w,w′)≤d}的模糊關鍵字集.例如,對于預設編輯距離為1的關鍵字CASTLE,其基于通配符的模糊關鍵字集合表示如下:

        SCASTLE,1={CASTLE,*CASTLE,*ASTLE,…,CASTL*E,CASTL*,CASTLE*}

        3.2 倒排索引

        倒排索引(Inverted Index)是被用來存儲在全文搜索下某個關鍵字在一個文檔或者一組文檔中的存儲位置映射的一種索引方式,以關鍵字為索引關鍵字和鏈表訪問入口的索引結構[30].

        以英文為例,下面是要被檢索的文本:

        T0="what is this place"

        T1="this is Shanghai" T2="I live in Shanghai"

        得到反向索引文件表如表1所示.

        表1 反向索引文件表

        故檢索條件“this”和“is”將對應這個集合:{0,1}∩{0,1}={0,1}.

        3.3 同態(tài)加密

        同態(tài)加密(Homomorphic Encryption,HE)的思路是直接將密文進行加密,然后在密文上進行各種運算操作,這些操作和在明文上的操作相同[8].換言之,同態(tài)加密允許在不知道私鑰的情況下對加密數(shù)據(jù)執(zhí)行特定的計算,使得計算之后得到加密數(shù)據(jù)在解密后的結果與對明文執(zhí)行相同的計算得到的結果相同.實現(xiàn)效果如圖1所示.本文方案中使用的是基于加法的半同態(tài)加密算法[31].

        圖1 同態(tài)加密工作圖

        4 具體方案

        本文方案使用了比較多的符號,為了方便閱讀,在表2中總結了這些符號和對應的描述.該方案主要由5個參與者,分別是數(shù)據(jù)擁有者(Data Owner,DO)、半可信的云服務器(Semi-convertible Cloud Server,SCS)、中間節(jié)點A、中間節(jié)點B和數(shù)據(jù)用戶(Data User,DU).

        表2 符號含義

        此外,本文還假設π表示本方案中的偽隨機置換函數(shù)(Pseudo-Random Permutation Function,PRP)π,用來混淆關鍵字的位置,選擇一個偽隨機函數(shù)(Pseudo-Random Functions,PRF)H來加密索引向量v(wi),上述兩個函數(shù)的參數(shù)如下,其中l(wèi)表示關鍵字的最大長度:

        π:{0,1}λ×{0,1}l→{0,1}l

        H:{0,1}λ×{0,1}l→{0,1}N

        本方案的體系架構如圖2所示,包括內容加密、搜索、用戶獲取加密文檔和用戶解密4個階段.

        圖2 方案體系架構

        4.1 內容加密階段

        在文件內容加密階段,DO使用加密組件生成加密密鑰key,使用對稱加密算法加密文檔內容,并生成安全索引,將結果發(fā)送到SCS上.

        1)DO的加密組件隨機生成長度為L的子密鑰ak和bk,并相加得到key,同時生成搜索密鑰k1.

        key=ak+bk

        {0,1}λ→k1(λ表示安全參數(shù))

        2)DO使用key加密文檔,并將結果發(fā)送到SCS上,即Enc(key,D,k1)→(C,EID,I)

        a)文件加密.FileEnc(D,key)→C,DO使用key加密明文文檔Di(i∈[n]),獲得Ci.DO為加密的文檔集合C中的文件生成加密文檔標識EID={EID1,EID2,…,EIDn},最后將加密文檔集合C和加密文檔標識EID發(fā)送給SCS.

        b)安全索引生成.IndexGen(D,k1)→I,在建立索引表的時候,我們采用倒排索引的方式.DO通過掃描明文文檔集合D提取出所有不同的關鍵字,構造出關鍵字集合,用WD={w1,…,wm}表示.在這之后DO為關鍵字集合WD中的每一個關鍵字wi構造出一個n維向量v(wi),如果第j個文檔包含關鍵字wi,則v(wi)[j]=1,否則v(wi)[j]=0.例如有4個文件D1,D2,D3,D4,其中D1包含關鍵字w1、w2、w3和w4,文件D2包含關鍵字w2和w3,文件D3包含關鍵字w1、w3和w4,文件D4包含關鍵字w2、w3和w4,則我們可以得到結果v(w1)=[1010],v(w2)=[1101],v(w3)=[1111],v(w4)=[1011].具體如表3所示.

        表3 索引向量

        在完成上述工作之后,DO為每一個wi∈WD構造模糊關鍵字集,用Swi,d表示具有編輯距離d的關鍵字wi的模糊關鍵字集合,讓wi,t(1≤i≤m,1≤t≤|Swi,d|)表示模糊關鍵字集Swi,d中的關鍵字.

        DO為每一個在Swi,d中的關鍵字wi,t計算πk1(wi,t),然后將πk1(wi,t)存儲在倒排索引的第1個節(jié)點上.其中πk1(wi,t)的計算方法是使用偽隨機置換函數(shù)PRPπ,此時可以混淆關鍵字的實際位置.在得到πk1(wi,t)和索引向量v(wi)之后,DO使用偽隨機函數(shù)PRFH計算H(πk1(wi,t))⊕v(wi)→E(wi),即通過索引向量v(wi)獲得加密的索引向量E(wi),如表4所示.

        表4 加密的索引向量

        再將加密后的索引向量E(wi)存儲在倒排索引的第2個節(jié)點上.之后構造安全索引I,安全索引的結構如圖3所示.

        圖3 安全索引

        3)DO使用中間節(jié)點A的公鑰PKA加密ak,并將加密結果發(fā)送給中間節(jié)點A,使用中間節(jié)點B的公鑰PKB加密bk,并將加密結果發(fā)送給中間節(jié)點B.

        DO→A:Enc(PKA,ak)

        DO→B:Enc(PKB,bk)

        4)中間節(jié)點A和B使用自己的私鑰SKA和SKB分別解密出ak和bk,并分別建立一張內容標識符EID與ak,bk相互對應的表.

        4.2 搜索階段

        TokenGen(w′,k1)→Tw′,當用戶想要搜索包含關鍵字w′(此時的關鍵字允許拼寫錯誤)的文檔時,會使用共享密鑰k1計算搜索令牌Tw′=πk1(w′),將令牌發(fā)送給SCS.

        搜索操作由SCS執(zhí)行,在接收到搜索令牌Tw′之后,SCS將安全索引中每一個鏈表的第1個節(jié)點的元素與搜索令牌Tw′進行匹配.本方案中加密的精確關鍵字πk1(wi)用于表示鏈表中第1個節(jié)點的第1個元素πk1(wi,1),即wi,1代表一個確切的關鍵字wi.因此,SCS先判斷搜索令牌πk1(w′)是否等于第1個元素πk1(wi,1),然后在模糊關鍵字集Swi,d中匹配其他的加密關鍵字πk1(wi,t).這個過程有以下兩種情況:

        a)πk1(w′)與第1個節(jié)點元素πk1(wi,1)不匹配,但是與鏈表的第1個節(jié)點中的剩余元素πk1(wi,t)匹配.這種情況下,SCS將πk1(wi,1)發(fā)送給用戶,當用戶收到πk1(wi,1)之后,計算H(πk1(wi,1)),將其發(fā)送給SCS,SCS通過在鏈表的第2個節(jié)點上計算H(πk1(wi,1))⊕E(wi)→v(wi)得到索引向量v(wi).如果v(wi)[j]=1,SCS將加密文檔Cj添加到包含搜索關鍵字的加密文檔集合Cw′中.

        b)πk1(w′)與鏈表第1個節(jié)點元素πk1(wi,1)匹配.這種情況下,SCS通過計算H(πk1(w′))⊕E(wi)→v(wi)直接在鏈表的第2個節(jié)點上解密E(wi),得到索引向量v(wi).如果v(wi)[j]=1,SCS將加密文檔Cj添加到包含搜索關鍵字的加密文檔集合Cw′中.

        最后,SCS將加密文檔集合Cw′發(fā)送到區(qū)塊鏈的智能合約上,同時,將加密文檔對應的加密文檔標識符EID發(fā)送給DU.

        4.3 用戶獲取加密文檔

        1)用戶首先隨機生成密鑰對PKU和SKU,之后用戶向智能合約提交搜索請求(Search Ask,SA),該搜索請求包含SCS返回的加密文檔標識EID,并使用PKA加密:

        DO→smart:SA=Enc(PKA,EID‖PKU)

        2)智能合約收到搜索請求SA之后,向中間節(jié)點A提交搜索許可請求(Search Licensing Request,SLR),即SLR=SA‖T.

        3)中間節(jié)點A收到搜索許可請求SLR之后,會驗證時間戳T是否有效,驗證通過之后,中間節(jié)點A先使用SKA解密出EID和PKU.然后,中間節(jié)點A根據(jù)EID隨機生成長度為L的ha和hb,滿足ha+hb∈[0,M-1](其中M表示一個很大的數(shù)),并用ha加密ak,最后將生成的搜索許可(Search Licence,SL)發(fā)送到智能合約上.搜索許可包括使用ha加密的ak,以及搜索許可憑證(Search Licence Certificate,SLC),具體如下:

        SLC=(PKB,EID‖hb‖T)‖Sign(SKA,EID‖hb‖T)

        A→smart:SL=SLC‖Enc(ha,ak)‖Enc(PKU,ha+hb)‖

        Sign(SKA,Enc(ha,ak)‖Enc(PKU,ha+hb))

        4)智能合約將完整的SL發(fā)送給中間節(jié)點B,B在接收到消息之后,用PKA驗證SL是否有效,驗證通過之后,從SL中提取出SLC,再使用PKA驗證SLC的有效性.以上均通過之后,中間節(jié)點B使用SKB解密出EID和hb,然后查找出與該加密文檔標識符EID相對應的bk,之后再使用hb加密bk,并將其發(fā)送給智能合約:

        B→smart:Enc(hb,bk)

        5)智能合約將來自中間節(jié)點A、B的信息打包發(fā)送給數(shù)據(jù)用戶DU,即:

        smart→DU:Enc(ha,ak)‖Enc(PKU,ha+hb)‖Enc(hb,bk)‖Cw′

        該階段的大致工作如圖4所示.

        圖4 用戶獲取加密文檔工作圖

        4.4 用戶解密階段

        1)用戶接收到智能合約的信息之后,使用SKU解密出ha+hb:

        DU:ha+hb=Dec(SKU,Enc(PKU,ha+hb))

        2)根據(jù)加法同態(tài)加密算法解密出:

        Enc(ha,ak)+Enc(hb,bk)=Enc(ha+hb,ak+bk)

        故用戶可以解密出ak+bk

        ak+bk=Dec(ha+hb,Enc(ha,ak)+Enc(hb+bk))

        3)用戶根據(jù)密鑰解密出結果:

        key=ak+bk

        Dw′=Dec(key,Cw′)

        Dw′即為用戶所要搜索包括關鍵字w′或者包含與關鍵字w′最接近的關鍵字的文檔集合.

        5 方案理論分析

        5.1 隱私保護能力分析

        用戶需要在獲取加密文檔的時候提交SA,此時會生成隨機密鑰對向區(qū)塊鏈的智能合約提交SA,之后智能合約將生成SLR轉發(fā)給中間節(jié)點,因為每次發(fā)送的SLR中的時間戳T都不相同,故這些中間節(jié)點是無法獲取用戶的身份信息的,所以本文方案是可以保證用戶的匿名性的.此外,因為區(qū)塊鏈是分布式的存儲架構,所以是很難實現(xiàn)網(wǎng)絡竊聽的.綜合上述要點,該方案可以實現(xiàn)用戶隱私保護.

        5.2 正確性分析

        在搜索階段,因為本方案滿足拼寫錯誤的關鍵字搜索,并且采用具有兩個節(jié)點的鏈表文件來存儲相關信息,如果在用戶拼寫時發(fā)生拼寫錯誤,可以通過與鏈表第一個節(jié)點中存儲的模糊關鍵字集合進行匹配,找到對應的模糊關鍵字的位置,再進行之后的操作.因此,在該階段時可以返回相應的結果的.

        在用戶解密的階段,用戶獲取到Enc(ha,ak)、Enc(PKU,ha+hb)和Enc(hb,bk),首先解密出ha+hb,然后基于加密同態(tài)加密算法可以得出:

        Enc(ha,ak)+Enc(hb,bk)=Enc(ha+hb,ak+bk)

        最終可以得出:

        ak+bk=Dec(ha+hb,Enc(ha,ak)+Enc(hb+bk))

        因此根據(jù)key=ak+bk就可以解密出真正的內容.

        5.3 安全性分析

        1)用戶只有從區(qū)塊鏈上獲取到有效的打包信息才能夠解密加密的文檔,保障了系統(tǒng)的安全性,防止惡意用戶獲取加密文檔信息.

        DO使用key加密明文文檔的內容,用戶只有獲取到key才能夠解密出文檔內容.DO通過將加密密鑰key分成兩部分ak和bk并分別交于中間節(jié)點A和B進行存儲.在獲得打包的信息之后,用戶使用自己的私鑰SKU解密出ha+hb,之后再基于加法同態(tài)加密算法解密出key.因此,只有獲得打包信息的用戶才能夠將加密的文檔進行解密.

        2)在用戶獲取加密文檔以及加密密鑰的過程中,中間節(jié)點、智能合約以及區(qū)塊鏈上的其他節(jié)點均不會獲得完整的密鑰key.

        對于中間節(jié)點A,因為其保存的是部分密鑰ak,所以不能夠獲取完整的密鑰.同理,對于中間節(jié)點B而言,因為其保存的是部分密鑰bk,所以也不能夠獲取完整的密鑰.對于智能合約而言,中間節(jié)點A和B都是發(fā)送的各自加密的部分密鑰,智能合約無法獲取具體信息.在獲取加密文檔階段,中間節(jié)點A向智能合約提交搜索許可SL,其中包含使用ha加密的ak,而智能合約無法解密出結果.在將信息打包的時候,也包含了使用hb加密的bk,因為都是使用了密鑰進行了相應的加密,因此智能合約無法獲取內容加密密鑰.如果其他惡意節(jié)點試圖隨機生成hb′來偽造搜索許可憑證SLC的話,則智能合約將偽造的(PKB,EID‖hb′‖T)‖Sign(SKA′,EID‖hb′‖T)發(fā)送到中間節(jié)點B上,中間節(jié)點B會使用PKA驗證簽名Sign(SKA′,EID‖hb′‖T)不通過,因此不會得到部分密鑰bk.故最終不會獲得加密密鑰key.

        3)攻擊者不能夠偽造出智能合約發(fā)送給用戶的打包信息.

        如果攻擊者偽造中間節(jié)點A發(fā)送SL給智能合約,之后該偽造的SL發(fā)送給中間節(jié)點B,會通不過中間節(jié)點B的驗證,故不會獲得相應的密鑰.如果攻擊者偽造中間節(jié)點B在接收到搜索許可SL后提取出的搜索許可憑證SLC,首先使用PKA驗證簽名Sign(SKA,EID‖hb‖T)通過,但是攻擊者無法使用SKB解密出EID和hb,故也不會得到相應的密鑰.因此,攻擊者不能夠偽造出智能合約發(fā)送給用戶的打包信息.

        5.4 可靠性分析

        假設在概率多項式時間(Probability polynomial time,PPT)內存在一個敵手A可以以不可忽略的概率破壞方案的可靠性,換言之,敵手A可以偽造出(Cw′′,πk1(wi,1)′)使得用戶接收到偽造的加密文檔標識EID′,之后DU會根據(jù)EID′去構造搜索請求SA,最終會獲得其偽造的Cw′′,則敵手A就成功欺騙DU,并使DU相信Cw′′是有效的.

        但是在內容加密階段,中間節(jié)點A和中間節(jié)點B分別建立了一張EID與ak和bk一一相對應的表,故在DU使用EID′去獲取加密文檔時,在中間節(jié)點B進行查找與EID′相對應的bk時就無法獲得結果,從而DU無法獲取到解密密鑰.此外,因為中間節(jié)點建立的與EID相對應的表只有自己保存,故敵手A并不能獲得.因此,敵手A是無法欺騙DU的,故假設不成立.綜上所述,在該方案中,不存在以不可忽略的概率破壞方案的可靠性的敵手A,即該方案滿足可靠性.

        5.5 智能合約

        在內容加密階段,DO將加密密鑰key隨機生成長度為L的密鑰ak和bk,之后分別使用中間節(jié)點A和中間節(jié)點B的公鑰進行加密,之后將加密的結果存放在智能合約上.

        在搜索階段,用戶通過生成搜索令牌Tw獲取到對應加密文檔的文檔標識,此外,SCS將搜索到的加密文檔結果發(fā)送到區(qū)塊鏈的智能合約上.在這一階段,未直接將加密文檔發(fā)送給用戶是為了保護用戶的隱私.我們假設的SCS是誠實但好奇的,如果直接將加密文檔發(fā)送給用戶,有SCS中好奇者想要獲取用戶的相關信息,就會根據(jù)用戶查找的相關信息進行數(shù)據(jù)總結歸納,從而推測出用戶的搜索習慣,獲得用戶的相關信息.但是本文中是將加密的文檔的表示符EID發(fā)送給用戶,因為在內容加密階段,DO使用偽隨機置換函數(shù)混淆了關鍵字的位置,在這之后使用的偽隨機函數(shù)進行的安全加密獲得的結果所對應的關鍵字文檔的實際位置發(fā)生變化,故好奇的用戶無法判斷出文檔位置.此外,在SCS中會包含大量的文件,如果好奇用戶進行查找,在成本上會有巨大的消耗.

        在獲取加密文檔階段,智能合約作為信息的轉發(fā)者.智能合約將SLR發(fā)送給中間節(jié)點A,之后智能合約又將中間節(jié)點A返回的搜索許可SL發(fā)送給中間節(jié)點B.之后智能合約將中間節(jié)點A和B的信息以及加密文檔進行打包發(fā)送給用戶.

        6 實驗及結果分析

        6.1 智能合約的開銷

        為了解智能合約在本方案中的開銷,我們基于在線的Remix進行智能合約的部署與測試,程序設計語言是Java語言和solidity.

        在部署智能合約和進行相關交易時會執(zhí)行相應的代碼,在執(zhí)行的過程中會使得智能合約產(chǎn)生一定的消耗.在以太坊中用gas為單位表示消耗,每次操作都會有相應的gas消耗值,即gas used,單位gas的價格稱之為gas price,二者的乘積即為每筆交易的交易費.在進行實驗的時候,查詢得知以太坊的交易價格為1 ether=1757 USD,令gas價格是1 gasprice=10-9ether.

        首先是智能合約的部署,即deploysmart操作,開銷為2.326717792 USD,DO將加密好的密鑰發(fā)送到智能合約上,即encryptedkey操作,開銷為0.192962525 USD,智能合約接收到DU發(fā)送的搜索請求SA,即accSA操作,開銷為0.077766577 USD,DO設置智能合約的地址,即setsmartaddress操作,開銷為0.075930512 USD,DO設置中間節(jié)點的地址,即setnodeaddress操作,開銷為0.194204724 USD,智能合約發(fā)送搜索許可請求SLR到中間節(jié)點A,即sendSLR操作,開銷為0.078581825 USD,中間節(jié)點A將搜索許可SL發(fā)送給智能合約,即accSL操作,開銷為0.080136770 USD,智能合約發(fā)送搜索許可SL到中間節(jié)點B,即sendSL操作開銷為0.080168396 USD,中間節(jié)點B將加密好的部分密鑰發(fā)送給智能合約,即accEncbk操作,開銷為0.077810502 USD,智能合約將信息打包發(fā)送給DU,即sendInfo操作,開銷為0.124722402 USD.如表5所示,該實驗的數(shù)據(jù)證明了本文方案能以較低的開銷實現(xiàn)用戶的隱私保護.

        表5 智能合約開銷測試表

        6.2 模糊關鍵字集合生成時間

        為了測試本文方案的效率,我們在真實的數(shù)據(jù)集上進行相關的實驗,我們使用從Kaggle下載的全美國各州的健康保險市場的數(shù)據(jù)集Health-Insurance-Marketplace(2)http://www.kaggle.com/hhs/health-insurance-marketplace進行分析,從其中選取了5000個數(shù)據(jù)文件,又從這5000個數(shù)據(jù)文件中獲得大約8000個關鍵字.即文檔數(shù)0≤n≤5000,關鍵字數(shù)0≤m≤8000,該實驗的硬件環(huán)境是Inter(R)Core(TM)i7-8700 CPU(3.2 GHz)的處理器和16 GB的內存.操作系統(tǒng)是64位的Windows系統(tǒng),對稱加密算法使用的是AES算法.

        因為本方案支持模糊關鍵字搜索,故我們要為提取出的關鍵字構造模糊關鍵字集合.如圖5是在編輯距離d=1時生成模糊關鍵字集合所開銷的時間.

        圖5 模糊關鍵字集合生成時間(d=1)

        因為每個關鍵字的長度不同,因此模糊關鍵字的數(shù)量以及生成所有模糊關鍵字的時間都會不同,在編輯距離d一定的情況下,構造模糊關鍵字集合的時間隨著關鍵字的數(shù)量增加而增加.我們從文件中提取出的8000個關鍵字在生成模糊關鍵字集合時,消耗的時間為357.7934ms,結果表明構造模糊關鍵字集合的效率是比較高的.

        6.3 文檔加密解密時間

        DO使用密鑰加密明文文檔的時間和用戶進行解密獲得的文檔時間如圖6所示.從圖中可以看出,內容加密操作和用戶解密操作都與文檔的數(shù)量成線性關系,即加密操作和解密操作的時間隨著文檔數(shù)量增加而增加.此外,從開銷的時間上分析,在相同數(shù)量的文檔下,解密操作所需要的時間是少于加密操作所需要的時間的.在對加密操作的時間進行分析,在本文的實驗環(huán)境下,對5000個文檔進行加密操作的時間都小于1s,因此,該加密操作的時間是比較快的.所以綜合上述分析,該方案在內容加密階段和用戶解密文檔階段,其對應的加密操作和解密操作所需要的時間都有一定的優(yōu)勢.

        圖6 加密解密時間對比圖

        7 結束語

        本文主要研究了區(qū)塊鏈環(huán)境下的隱私安全保護問題,提出了基于模糊關鍵字可搜索加密和同態(tài)加密相結合的區(qū)塊鏈隱私保護方案.該方案通過使用加法同態(tài)加密算法,能夠一并實現(xiàn)獲取加密文檔信息隱私保護和用戶信息隱私保護.同時,我們對本方案的隱私保護性、正確性、安全性和可靠性進行分析,證明了該方案的可行性.此外,實驗數(shù)據(jù)證明了能以較低的開銷實現(xiàn)區(qū)塊鏈隱私保護,具有較好的實用性.

        猜你喜歡
        關鍵字解密合約
        解密“熱脹冷縮”
        履職盡責求實效 真抓實干勇作為——十個關鍵字,盤點江蘇統(tǒng)戰(zhàn)的2021
        華人時刊(2022年1期)2022-04-26 13:39:28
        解密“一包三改”
        少先隊活動(2020年9期)2020-12-17 06:17:31
        炫詞解密
        成功避開“關鍵字”
        解密“大調解”
        基于用戶反饋的關系數(shù)據(jù)庫關鍵字查詢系統(tǒng)
        合約必守,誰能例外!——對“情勢變更”制度不可寄于過高期望
        誘導性虛假下載鏈接不完全評測
        欧美乱妇高清无乱码在线观看| 99亚洲女人私处高清视频| 精品国产一区二区三区av麻| 日产精品久久久一区二区| 欧美丰满大乳高跟鞋| 久久亚洲国产成人精品v| 伊人狼人大香线蕉手机视频| 中文区中文字幕免费看| 日韩人妻无码免费视频一区二区三区| 国产偷2018在线观看午夜| 久久精品国产亚洲av成人网| 精品高朝久久久久9999| 熟妇人妻无乱码中文字幕| 久久久精品电影| 一区二区三区高清视频在线| 国产成人精品久久亚洲高清不卡| 欧美老熟妇欲乱高清视频| 中出高潮了中文字幕| 中文字幕人妻互换激情| 成年女人a级毛片免费观看| 成 人 网 站 免 费 av| 无码成年性午夜免费网站蜜蜂| 午夜亚洲精品视频在线 | 久久aⅴ无码av免费一区| 极品美女销魂一区二区三| 亚洲国产性夜夜综合另类| 国产午夜福利100集发布| 国产精品一区二区av片| 少妇性l交大片免费1一少| 亚洲狠狠婷婷综合久久久久| 国产大学生粉嫩无套流白浆| 久久99亚洲网美利坚合众国| 青青草小视频在线观看| 在线成人一区二区| 国产成人乱色伦区小说| 亚洲男人的天堂色偷偷| 成人内射国产免费观看| 男女扒开双腿猛进入免费看污 | 日本av一级视频在线观看| 日韩日韩日韩日韩日韩| 精品久久综合亚洲伊人|