一種云存儲(chǔ)密文檢索方法及其系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種云存儲(chǔ)密文檢索方法及其系統(tǒng),該方法包括以下步驟:(1)檢索端的公鑰與私鑰生成步驟;(2)加密步驟;(3)檢索陷門生成步驟;(4)檢索實(shí)施步驟;(5)解密步驟。實(shí)施本發(fā)明,使得云存儲(chǔ)密文檢索支持AND、OR、NOT等邏輯詞嵌套的檢索策略,幫助用戶精確的獲得所需數(shù)據(jù),降低傳輸代價(jià),具有過程簡(jiǎn)單、計(jì)算效率高的優(yōu)點(diǎn)。同時(shí),本發(fā)明采用合數(shù)階群和雙線性配對(duì)進(jìn)行構(gòu)造,有效的避免了已知明文分布規(guī)律攻擊和針對(duì)訪問模式的攻擊,安全性較高。
【專利說明】一種云存儲(chǔ)密文檢索方法及其系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云存儲(chǔ)【技術(shù)領(lǐng)域】,尤其涉及一種云存儲(chǔ)密文檢索方法及其系統(tǒng)。
【背景技術(shù)】
[0002]當(dāng)前,用戶對(duì)數(shù)據(jù)的安全性擔(dān)憂成為了阻礙云存儲(chǔ)發(fā)展的至關(guān)重要因素。因?yàn)橛脩魧?shù)據(jù)外包給云存儲(chǔ)服務(wù)提供商后,失去了對(duì)數(shù)據(jù)的直接物理控制,數(shù)據(jù)將面臨著外部網(wǎng)絡(luò)攻擊和內(nèi)部云存儲(chǔ)管理員的雙重安全威脅。
[0003]采用加密技術(shù)是解決上述安全問題的一種有方法,即用戶在本地將數(shù)據(jù)加密后再上傳至云存儲(chǔ)服務(wù)器,訪問數(shù)據(jù)時(shí)將數(shù)據(jù)下載到本地后再解密。然而,密文數(shù)據(jù)的無序性,為用戶檢索這些數(shù)據(jù)帶來了極大的困擾。因?yàn)樵拼鎯?chǔ)服務(wù)器在沒有解密密鑰的情況下,無法獲得描述文檔的關(guān)鍵字信息(如發(fā)送者、重要性、時(shí)間等),從而無法快速的實(shí)現(xiàn)類似于SQL的查詢。為了獲得期望的數(shù)據(jù),用戶需要下載所有的加密數(shù)據(jù),在本地進(jìn)行解密和檢索。這一過程不僅需要較大的帶寬支持,而且需要客戶端具有較大的存儲(chǔ)和計(jì)算能力,不滿足云環(huán)境下瘦客戶端的特點(diǎn)。此外,為了滿足用戶的個(gè)性化檢索需求,云存儲(chǔ)系統(tǒng)往往需要支持復(fù)雜的檢索策略。這樣既可幫助用戶精確的獲得所需數(shù)據(jù),又可降低傳輸?shù)拇鷥r(jià)。因此,研究云存儲(chǔ)中安全、高效并可支持復(fù)雜檢索策略的密文檢索方法具有重要的現(xiàn)實(shí)意義。
[0004]按照應(yīng)用場(chǎng)景的不同,密文檢索方法可以分為兩類:對(duì)稱密文檢索和非對(duì)稱密文檢索。前者在數(shù)據(jù)加密與數(shù)據(jù)檢索時(shí)使用的是同一密鑰;后者在數(shù)據(jù)加密時(shí)使用的是公鑰,數(shù)據(jù)檢索時(shí)使用的是私鑰。
[0005]現(xiàn)有云環(huán)境下的密文檢索方法大多是對(duì)稱密文檢索,僅適用貢獻(xiàn)者與檢索者為同一人的應(yīng)用場(chǎng)景(單一用戶模型)。如果要支持檢索者不是貢獻(xiàn)者的應(yīng)用場(chǎng)景(多用戶模型),就必須要為兩者建立某種安全信道,貢獻(xiàn)者通過該安全信道將密鑰發(fā)送給數(shù)據(jù)接收者。
[0006]在云存儲(chǔ)中用戶量巨大的情況下,這樣建立一對(duì)一的安全信道的代價(jià)是非常昂貴的。此外,現(xiàn)有的密文檢索方法的策略表達(dá)集中在單關(guān)鍵字等值檢索、單關(guān)鍵字模糊檢索、多個(gè)關(guān)鍵字的AND連接檢索等,而不能夠支持AND、0R、N0T等邏輯詞嵌套的檢索策略(例如:檢索“(‘發(fā)送者:Alice,OR ‘重要性:緊急’ )AND (NOT ‘時(shí)間:9月,)。
【發(fā)明內(nèi)容】
[0007]針對(duì)現(xiàn)有技術(shù)中,云存儲(chǔ)服務(wù)提供商對(duì)用戶數(shù)據(jù)進(jìn)行加密后,無法快速的實(shí)現(xiàn)查詢操作,而將所有用戶數(shù)據(jù)下載到本地后再進(jìn)行解密和解鎖,則往往需要消耗較大的帶寬資源以及處理資源,同時(shí),現(xiàn)有的云環(huán)境下的密文檢索方法大多是對(duì)稱密文檢索,不支持多用戶模型,以及現(xiàn)有的檢索技術(shù)存在的效率低且表達(dá)能力有限的缺陷,本發(fā)明提出了一種存儲(chǔ)密文檢索方法及其系統(tǒng)。
[0008]本發(fā)明解決現(xiàn)有技術(shù)問題所采用的技術(shù)手段是構(gòu)造一種存儲(chǔ)密文檢索方法,該方法包括以下步驟:[0009]SI,通過一密鑰生成中心PKG生成公鑰PK和私鑰SK,并將所述公鑰PK公開發(fā)布于云存儲(chǔ)服務(wù)器,將所述私鑰SK發(fā)送至檢索端;
[0010]S2,使用所述公鑰PK對(duì)文件進(jìn)行加密,生成數(shù)據(jù)密文Cd和索引密文C1,并將所述數(shù)據(jù)密文Cd和所述索引密文C1上傳至所述云存儲(chǔ)服務(wù)器;
[0011]S3,檢索端根據(jù)所述私鑰SK和檢索策略P生成檢索陷門TP,并將所述檢索陷門Tp發(fā)送至所述云存儲(chǔ)服務(wù)器;
[0012]S4,所述云存儲(chǔ)服務(wù)器使用所述檢索陷門Tp對(duì)所述索引密文C1進(jìn)行匹配運(yùn)算,若所述檢索陷門Tp與所述索引密文C1滿足匹配關(guān)系,則返回所述數(shù)據(jù)密文Cd至檢索端,若所述檢索陷門Tp與所述索引密文C1不滿足匹配關(guān)系,則返回空值;
[0013]S5,檢索端根據(jù)所述私鑰SK解密所述數(shù)據(jù)密文Cd,恢復(fù)所述文件的內(nèi)容Μ。
[0014]在本方法中,所述公鑰PK和所述私鑰SK按如下方法生成:
[0015]從公鑰函數(shù)數(shù)據(jù)庫中選取一套參數(shù),包括兩個(gè)階為合數(shù)N的循環(huán)群G和GT,雙線性對(duì)e:GXG — GT。設(shè)$ Glh、 Gft和G依次為群G中階為Pl、p2、p3和P4的子群,且滿足N=P1P2P3P4 ;
[0016]從群Gp'中隨機(jī)選取g,Ul,...,un,在群Ga中隨機(jī)選取X3,在群G中隨機(jī)選取X4, h1;..., hn。其中,η為文件的關(guān)鍵字域的個(gè)數(shù);
[0017]計(jì)算公鑰PK= {N、g、g°、私鑰 SK=HuJ1O^ α、Χ3}。其中,α 為群Zn中隨機(jī)選取的一個(gè)整數(shù),參數(shù)Hi=UiIip
[0018]在本方法中,數(shù)據(jù)密文Cd的計(jì)算方法為:
[0019]Cd=ICiu, CD,2},其中Ciu為采用隨機(jī)密鑰RK和標(biāo)準(zhǔn)對(duì)稱加密算法加密文件內(nèi)容M的結(jié)果,Cd,2為采用檢索者的公鑰PK和標(biāo)準(zhǔn)公鑰加密算法加密隨機(jī)密鑰RK的結(jié)果。
[0020]在本方法中,索引密文C1的計(jì)算方法為:
[0021]C1=ICcuiC0i2,,其中,Cfefe g) as、C。,= (gh)s.Z。、^ =(W.Zu , S為群Zn中隨機(jī)選取一個(gè)整數(shù),h, Z0, Zljl,..., Zhn為從群Gp中隨機(jī)選取的元素,Wi為文件各關(guān)鍵字域中的關(guān)鍵字。
[0022]在本方法中,檢索陷門Tp按如下方式生成:
[0023]利用德摩根定律對(duì)檢索策略P中的NOT運(yùn)算符下推,讓NOT運(yùn)算符僅與關(guān)鍵字相連,將與NOT運(yùn)算符項(xiàng)連的關(guān)鍵字標(biāo)記為否定關(guān)鍵字,否則標(biāo)記為肯定關(guān)鍵字;
[0024]將檢索策略P映射為一個(gè)線性秘密共享(LSSS)表達(dá)A=(A,P,T),其中A表示I Xm
的矩陣,P表示一個(gè)將矩陣A的每一行映射到一個(gè)關(guān)鍵字域的函數(shù),T ={一且kl表示關(guān)鍵字域P (i)中的關(guān)鍵字;
[0025]計(jì)算檢索陷門TP=((A,P,T),{DuDwDyhqq)。其中,Du=gM\upJ^r'-Vu, D2t=Sr--Vu, D-V3j,其中,Ai 為矩陣 A 的第 i 行組成的向量,u為群Zn中m個(gè)隨機(jī)元素組成的向量(必須滿足I.? = a ),ItJkk1為群4隨機(jī)選擇的元素,” \ 為群Gfb中隨機(jī)選擇的元素。
[0026]在本方法中,檢 索陷門Tp與索引密文C1的匹配方法為:[0027]當(dāng)存在某個(gè)集合Ie{1,...,1},使得c
【權(quán)利要求】
1.一種云存儲(chǔ)密文檢索方法,其特征在于,所述方法包括以下步驟: S1,通過一密鑰生成中心PKG生成公鑰PK和私鑰SK,并將所述公鑰PK公開發(fā)布于云存儲(chǔ)服務(wù)器,將所述私鑰SK發(fā)送至檢索端; S2,使用所述公鑰PK對(duì)文件進(jìn)行加密,生成數(shù)據(jù)密文Cd和索引密文C1,并將所述數(shù)據(jù)密文Cd和所述索引密文C1上傳至所述云存儲(chǔ)服務(wù)器; S3,檢索端根據(jù)所述私鑰SK和檢索策略P生成檢索陷門TP,并將所述檢索陷門Tp發(fā)送至所述云存儲(chǔ)服務(wù)器; S4,所述云存儲(chǔ)服務(wù)器使用所述檢索陷門Tp對(duì)所述索引密文C1進(jìn)行匹配運(yùn)算,若所述檢索陷門Tp與所述索引密文C1滿足匹配關(guān)系,則返回所述數(shù)據(jù)密文Cd至檢索端,若所述檢索陷門Tp與所述索引密文C1不滿足匹配關(guān)系,則返回空值; S5,檢索端根據(jù)所述私鑰SK解密所述數(shù)據(jù)密文CD,恢復(fù)所述文件的內(nèi)容Μ。
2.根據(jù)權(quán)利要求1所述的云存儲(chǔ)密文檢索方法,其特征在于,在所述步驟SI中,所述公鑰PK和所述私鑰SK按如下方法生成: 從公鑰函數(shù)數(shù)據(jù)庫 中選取一套參數(shù),包括兩個(gè)階為合數(shù)N的循環(huán)群G和GT,雙線性對(duì)e:GXG —GT。設(shè)乂、G \和&依次為群G中階為Pl、P2、PdPP4的子群,且滿足N=P1P2P3P4; 從群義中隨機(jī)選取g,U1,...,un,在群G中隨機(jī)選取X3,在群Ga中隨機(jī)選取X4, h1;..., hn。其中,η為文件的關(guān)鍵字域的個(gè)數(shù); 計(jì)算公鑰卩1(={隊(duì)8^、{故}1<^1^4},私鑰51(={{11丄0^、(1、乂3}。其中,α為群Zn中隨機(jī)選取的一個(gè)整數(shù),參數(shù)Hi=UiIv
3.根據(jù)權(quán)利要求1所述的云存儲(chǔ)密文檢索方法,其特征在于,在所述步驟S2中,數(shù)據(jù)密文Cd的計(jì)算方法為: Cd=ICiu, Cd;2},其中Ciu為采用隨機(jī)密鑰RK和標(biāo)準(zhǔn)對(duì)稱加密算法加密文件內(nèi)容M的結(jié)果,Cd,2為采用檢索者的公鑰PK和標(biāo)準(zhǔn)公鑰加密算法加密隨機(jī)密鑰RK的結(jié)果。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述步驟S2中,索引密文C1的計(jì)算方法為: C1=IC0jllC0j2,其中,Z1 λ'為群Zn中隨機(jī)選取一個(gè)整數(shù),h, Z0, Zljl,..., Z1;n為從群G中隨機(jī)選取的元素,Wi為文件各關(guān)鍵字域中的關(guān)鍵字。
5.根據(jù)權(quán)利要求1所述的云存儲(chǔ)密文檢索方法,其特征在于,在所述步驟S3中,檢索陷門Tp按如下方式生成: 利用德摩根定律對(duì)檢索策略P中的NOT運(yùn)算符下推,讓NOT運(yùn)算符僅與關(guān)鍵字相連,將與NOT運(yùn)算符項(xiàng)連的關(guān)鍵字標(biāo)記為否定關(guān)鍵字,否則標(biāo)記為肯定關(guān)鍵字; 將檢索策略P映射為一個(gè)線性秘密共享(LSSS)表達(dá)A=(A,P,T),其中A表示I Xm的矩陣,P表不一個(gè)將矩陣A的每一行映射到一個(gè)關(guān)鍵字域的函數(shù),T ~?^(O表示關(guān)鍵字域P (i)中的關(guān)鍵字; 計(jì)算檢索陷門 Tp= ((A,P,T), {D1;i,D2JD3Jmd 其中,
6.根據(jù)權(quán)利要求1所述的云存儲(chǔ)密文檢索方法,其特征在于,在所述步驟S4中,檢索陷門Tp與索引密文C1的匹配方法為: 當(dāng)存在某個(gè)集合Ie {1,...,1},使得
7.根據(jù)權(quán)利要求1所述的云存儲(chǔ)密文檢索方法,其特征在于,在所述步驟S5中,利用私鑰SK和數(shù)據(jù)密文Cd=ICi^CiuI恢復(fù)文件內(nèi)容,按如下方式進(jìn)行: 利用私鑰SK和步驟2)中所述公鑰算法解密密文CD,2,恢復(fù)出對(duì)稱密鑰RK ; 利用對(duì)稱密鑰RK和所述對(duì)稱加密算法解密密文Ciu,恢復(fù)出文件的內(nèi)容M。
8.—種云存儲(chǔ)密文檢索系統(tǒng),其特征在于,所述系統(tǒng)包括在密鑰生成中心PKG運(yùn)行的密鑰生成子系統(tǒng);在貢獻(xiàn)端運(yùn)行的加密子系統(tǒng);在檢索端運(yùn)行的檢索準(zhǔn)備與解密子系統(tǒng);在云存儲(chǔ)服務(wù)器中運(yùn)行的云存儲(chǔ)子系統(tǒng)。 所述密鑰生成子系統(tǒng)為檢索者生成公鑰和私鑰。 所述加密子系統(tǒng)包括:數(shù)據(jù)加密模塊、索引加密模塊,其中,數(shù)據(jù)加密模塊為文件生成數(shù)據(jù)密文,索引加密模塊為文件生成索引密文。 所述檢索準(zhǔn)備與解密子系統(tǒng)包括:陷門生成模塊、解密模塊,其中,陷門生成模塊生成檢索陷門,解密模塊解密數(shù)據(jù)密文。 所述云存儲(chǔ)子系統(tǒng)包括公鑰公布模塊、存儲(chǔ)模塊、檢索實(shí)施模塊,其中公鑰公布模塊將密鑰生成中心PKG產(chǎn)生的各檢索者的公鑰公開發(fā)布;存儲(chǔ)模塊存儲(chǔ)貢獻(xiàn)者加密后的數(shù)據(jù)密文和索引密文;檢索實(shí)施模塊將檢索陷門和索引密文進(jìn)行匹配運(yùn)算,返回滿足檢索條件的數(shù)據(jù)密文。
【文檔編號(hào)】G06F17/30GK103944711SQ201410053370
【公開日】2014年7月23日 申請(qǐng)日期:2014年2月17日 優(yōu)先權(quán)日:2014年2月17日
【發(fā)明者】陳開渠, 呂志泉, 張敏, 李 昊, 洪澄, 馮登國, 惠臻, 龐妍 申請(qǐng)人:國家超級(jí)計(jì)算深圳中心, 中國科學(xué)院軟件研究所