本發(fā)明涉及云計(jì)算、信息安全技術(shù)領(lǐng)域,具體地講是一種在云環(huán)境下進(jìn)行高效的密文關(guān)鍵詞搜索的方案,同時(shí)該方案還能抵御離線關(guān)鍵詞猜測(cè)攻擊。
背景技術(shù):
近年來(lái),隨著云計(jì)算的快速發(fā)展,云存儲(chǔ)服務(wù)越來(lái)越成熟,同時(shí)也受到了學(xué)術(shù)界和工業(yè)界的關(guān)注,越來(lái)越多的企業(yè)和個(gè)人用戶傾向于把他們的數(shù)據(jù)存儲(chǔ)到公共的云服務(wù)器上。但云存儲(chǔ)技術(shù)在為用戶提供了便捷和低成本的海量存儲(chǔ)服務(wù)的同時(shí),還有很多待解決的問(wèn)題,其中安全性問(wèn)題就是急需解決的一個(gè)問(wèn)題。
傳統(tǒng)的數(shù)據(jù)加密技術(shù)雖然可以保護(hù)數(shù)據(jù)的安全性和完整性問(wèn)題,但是這樣一來(lái),已有的基于明文的關(guān)鍵詞搜索技術(shù)就失效了。使用傳統(tǒng)的數(shù)據(jù)加密技術(shù),用戶需要下載所有上傳在云服務(wù)器上的數(shù)據(jù),然后再對(duì)其進(jìn)行解密,最后才能通過(guò)關(guān)鍵詞搜索查到想要的文件。為了解決該問(wèn)題,可搜索加密的概念被提了出來(lái),該方案不但能保護(hù)數(shù)據(jù)的隱私性,還能支持在加密數(shù)據(jù)上進(jìn)行檢索的功能。
可搜索加密技術(shù)分為對(duì)稱可搜索加密和非對(duì)稱可搜索加密,對(duì)稱可搜索加密方案是基于對(duì)稱加密體制構(gòu)造的,因此對(duì)稱可搜索加密方案中的數(shù)據(jù)文件和要搜索的關(guān)鍵詞陷門都必須使用同一個(gè)的密鑰進(jìn)行加密,該方案多應(yīng)用于個(gè)人的數(shù)據(jù)存儲(chǔ)等服務(wù)中。與對(duì)稱可搜索加密方案不同,非對(duì)稱可搜索加密方案是基于公鑰加密體制構(gòu)造的,該方案使用了數(shù)據(jù)共享者的公鑰對(duì)數(shù)據(jù)進(jìn)行加密,因此在整個(gè)加密過(guò)程中,數(shù)據(jù)加密者不需要與數(shù)據(jù)共享者進(jìn)行交互,這使得該方案更適合于多用戶的數(shù)據(jù)共享等領(lǐng)域。
目前,研究人員已經(jīng)提出多種可搜索公鑰加密方案,但是現(xiàn)有的可搜索公鑰加密方案大多數(shù)是基于雙線性對(duì)實(shí)現(xiàn)的,因此存在運(yùn)算效率低下的問(wèn)題。并且由于關(guān)鍵詞集空間遠(yuǎn)小于密鑰空間,所以現(xiàn)有的可搜索公鑰加密方案不能抵御離線關(guān)鍵詞猜測(cè)攻擊。
技術(shù)實(shí)現(xiàn)要素:
為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種基于ElGamal的高效的可搜索公鑰加密方案。
本發(fā)明所采用的技術(shù)方案是:使用了ElGamal的加密技術(shù)來(lái)構(gòu)造關(guān)鍵詞加密算法和陷門生成算法,并且在對(duì)關(guān)鍵詞加密之前,要先對(duì)該關(guān)鍵詞進(jìn)行注冊(cè),獲得到注冊(cè)關(guān)鍵詞標(biāo)簽之后才能正確執(zhí)行關(guān)鍵詞加密算法。同時(shí)該方案還使用了指定測(cè)試者的技術(shù),即在服務(wù)器端執(zhí)行測(cè)試算法進(jìn)行搜索的時(shí)候,必須要擁有服務(wù)器的私鑰才能正確執(zhí)行。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是由于使用了類似ElGamal的加密技術(shù),避免了使用雙線性對(duì),這使得該方案更高效。同時(shí)該方案使用了指定測(cè)試者的技術(shù)和注冊(cè)關(guān)鍵詞技術(shù),因此能抵御來(lái)自外部和內(nèi)部攻擊者的離線關(guān)鍵詞猜測(cè)攻擊。
附圖說(shuō)明
圖1為本發(fā)明的系統(tǒng)模型圖;
圖2為是本發(fā)明的流程示意圖。
具體實(shí)施方式
本發(fā)明的實(shí)施方案一共包括以下幾個(gè)概率多項(xiàng)式時(shí)間算法。
(1)公共參數(shù)生成算法:該算法以安全參數(shù)作為輸入,生成群階為q≥2k,生成一個(gè)哈希函數(shù)輸出公共參數(shù)其中dW是明文關(guān)鍵詞集空間。
(2)服務(wù)器密鑰生成算法:該算法以公共參數(shù)cp作為輸入,隨機(jī)選取計(jì)算X=gx,輸出服務(wù)器的公鑰pks=X和私鑰sks=x。
(3)接收者密鑰生成算法:該算法以公共參數(shù)cp作為輸入,隨機(jī)選取計(jì)算Y=gy,輸出接收者的公鑰pkr=Y(jié)和私鑰skr=(y,β)。
(4)關(guān)鍵詞注冊(cè)算法:該算法以公共參數(shù)cp,接收者私鑰skr和關(guān)鍵詞w作為輸入,輸出注冊(cè)關(guān)鍵詞標(biāo)簽Sw=H(w||β)。
(5)關(guān)鍵詞加密算法:該算法以公共參數(shù)cp,接收者公鑰pkr,關(guān)鍵詞w以及注冊(cè)關(guān)鍵詞標(biāo)簽Sw作為輸入,隨機(jī)選取計(jì)算A=gr,B=Y(jié)rH(w||β),輸出關(guān)鍵詞密文Cw=[A,B]。
(6)陷門生成算法:該算法以公共參數(shù)cp,服務(wù)器公鑰pks,接收者私鑰skr,關(guān)鍵詞w′以及注冊(cè)關(guān)鍵詞標(biāo)簽Sw′作為輸入,隨機(jī)選取計(jì)算U=gr′,V=y(tǒng)H(w′||β)Xr′,輸出陷門Tw′=[U,V]。
(7)關(guān)鍵詞測(cè)試匹配算法:該算法以公共參數(shù)cp,服務(wù)器私鑰sks,關(guān)鍵詞密文Cw=[A,B]和陷門Tw′=[U,V]作為輸入,在服務(wù)器端計(jì)算V/Ux=y(tǒng)H(w′||β),并判斷等式AyH(w′||β)=B是否成立,若成立則輸出1,否則輸出0。