本發(fā)明涉及云計算安全技術(shù),具體涉及一種云環(huán)境下支持高效撤銷的屬性基關(guān)鍵字搜索方法。
背景技術(shù):
:目前,云計算已經(jīng)成為一個新的企業(yè)IT結(jié)構(gòu)。許多公司已經(jīng)將他們的應(yīng)用程序和數(shù)據(jù)庫放到云服務(wù)器上,并開始享受云計算帶來的許多無可比擬的優(yōu)勢,例如靈活性的計算資源配置,普遍靈活的訪問,節(jié)約大量的資源成本等等。但是,隱私問題仍然是阻礙云計算被更加廣泛應(yīng)用的一個主要障礙。當敏感數(shù)據(jù)被外包到云服務(wù)器時,數(shù)據(jù)擁有者自然會擔心他們的數(shù)據(jù)隱私。外包之前加密一直是一個被視為在云服務(wù)器上保護數(shù)據(jù)隱私的基本方法。但是,如何讓這些加密過的數(shù)據(jù)被高效的使用又成為了另外一個挑戰(zhàn)。這個問題得到了很大的重視和很多的關(guān)注,從安全可搜索數(shù)據(jù)加密、安全功能評估,到完全同態(tài)加密系統(tǒng),都在理論上提供了一般解決這個問題的方法,但是由于實際情況的復(fù)雜性,仍然很難較好的解決這個問題??伤阉骷用苁墙鼇戆l(fā)展的一個用來有效搜索存儲在云服務(wù)器上的數(shù)據(jù)的基本方法。在可搜索加密中,數(shù)據(jù)擁有者加密所有文件以及與其相關(guān)聯(lián)的關(guān)鍵字并外包到云服務(wù)器上。搜索用戶會生成一些加密陷門,其中包含了用戶感興趣的并且已經(jīng)存儲在云上的關(guān)鍵字。最后,經(jīng)過云服務(wù)器的搜索操作,返回給用戶匹配到的結(jié)果。為了提高搜索的準確度,提出的可搜索加密方案應(yīng)該支持多關(guān)鍵字搜索,而不是只支持單關(guān)鍵字搜索。而且,為了使可搜索加密方案支持更多的實際應(yīng)用場景,例如多數(shù)據(jù)擁有者和多用戶,我們的方案應(yīng)該支持搜索授權(quán),這意味著云服務(wù)器僅僅會返回搜索結(jié)果給已獲得權(quán)限的用戶。與單個數(shù)據(jù)擁有者方案相比,建立一個完全成熟的多數(shù)據(jù)擁有者方案將會面臨許多的挑戰(zhàn)。第一,在單數(shù)據(jù)擁有者方案中,數(shù)據(jù)擁有者不得不一直保持在線狀態(tài)去為用戶生成加密索引。但是,當有大量的數(shù)據(jù)擁有者參與進來的時候,讓他們同時在線生成索引將會大大影響整個系統(tǒng)的靈活性和可用性。第二,沒有人會愿意與他人分享自己的密鑰,不同的數(shù)據(jù)擁有者會使用它們自身的密鑰去加密他們需要加密的數(shù)據(jù)。因此,在使用不同的密鑰加密數(shù)據(jù)的情況下,實現(xiàn)安全、靈活、高效的密文搜索是非常具有挑戰(zhàn)性的。第三,當系統(tǒng)中存在多數(shù)據(jù)使用者時,應(yīng)該確保系統(tǒng)擁有高效的用戶注冊和撤銷機制,使系統(tǒng)具有良好的安全性和可擴展性。基于屬性加密(ABE)的提出解決了上述的問題。一個ABE方案中,每一個用戶都用一個屬性集合來標識自己的身份,同時一些有關(guān)這個屬性集的函數(shù)、策略都被用來決定用戶的解密能力。根據(jù)訪問策略的不同,ABE分為兩種類型——密鑰策略的屬性加密方案(Key-policyattribute-basedencryption,KP-ABE)和密文策略的屬性加密方案(ciphertext-policyattribute-basedencryption,CP-ABE)。在KP-ABE中,訪問控制策略與用戶私鑰綁定,而數(shù)據(jù)擁有者提供屬性集合來加密消息;相反在CP-ABE中,屬性集合與用戶私鑰綁定,而數(shù)據(jù)擁有者以訪問控制策略來加密消息。技術(shù)實現(xiàn)要素:發(fā)明目的:本發(fā)明的目的在于解決現(xiàn)有技術(shù)中存在的不足,提供一種云環(huán)境下支持高效撤銷的屬性基關(guān)鍵字搜索方法。技術(shù)方案:本發(fā)明所述的一種云環(huán)境下支持高效撤銷的屬性基關(guān)鍵字搜索方法,包括以下步驟:(1)系統(tǒng)初始化和建立多個屬性授權(quán)機構(gòu),管理服務(wù)器生成公鑰及主密鑰,屬性授權(quán)機構(gòu)生成屬性公鑰和屬性私鑰;(2)新用戶完成在可信第三方和屬性授權(quán)機構(gòu)的注冊,獲得注冊密鑰及屬性主密鑰;(3)數(shù)據(jù)擁有者使用屬性加密機制生成加密文件和索引,分別發(fā)送給云服務(wù)器和管理服務(wù)器,管理服務(wù)器用其私鑰重加密該索引并發(fā)送給云服務(wù)器;(4)為了在查詢階段驗證用戶身份,防止用戶合謀,云服務(wù)器生成查詢標記;(5)用戶使用屬性加密機制生成加密陷門并發(fā)送給管理服務(wù)器,管理服務(wù)器重加密接收到的陷門并生成Sf,同時發(fā)送給云服務(wù)器;(6)云服務(wù)器接收到加密索引及陷門,進行關(guān)鍵字搜索;(7)待用戶完成搜索任務(wù)后,進行用戶撤銷。進一步的,所述步驟(1)的具體過程為:(11)可信第三方執(zhí)行初始化算法,得到系統(tǒng)公鑰和主密鑰,即管理服務(wù)器得到系統(tǒng)公鑰和主密鑰:由TA執(zhí)行系統(tǒng)初始化算法,輸入安全參數(shù)λ,生成兩個生成元為g的p階循環(huán)群G1、G2,一個雙線性配對e:G1×G1→G2,和一個抗碰撞哈希函數(shù)H:{0,1}*→Zp,TA隨機選擇一個參數(shù)γ∈Zp,g1∈G1,g2∈G1,計算g3=g2γ,公鑰PK:={e,g1,g2,g3,H},并且生成主秘鑰MSK:=γ;(12)屬性授權(quán)機構(gòu)獲得公鑰和屬性集,得到屬性私鑰和屬性公鑰:向CAs輸入公鑰PK和屬性集合,生成相對TA保密的屬性私鑰AMKj=tj和屬性公鑰CAs將屬性公鑰APKj提交給TA并自己擁有屬性私鑰AMKj。進一步的,所述步驟(2)的具體過程為:(21)可信第三方生成相對用戶保密的私鑰SKi,并為需要注冊的用戶頒發(fā)注冊密鑰RKi;(22)用戶獲得注冊密鑰后,在屬性授權(quán)機構(gòu)進行屬性注冊,屬性授權(quán)機構(gòu)進行認證并為該用戶頒發(fā)屬性主密鑰ASKi,j。進一步的,所述步驟(3)的具體過程為:(31)數(shù)據(jù)擁有者為要加密的文件定義一個樹形訪問控制結(jié)構(gòu)Ψ,并構(gòu)造訪問樹T;(32)數(shù)據(jù)擁有者使用屬性加密機制加密索引;(33)數(shù)據(jù)擁有者得到初步加密的索引后,將該索引發(fā)送給管理服務(wù)器,管理服務(wù)器用自身的私鑰重加密索引。進一步的,所述步驟(4)的具體過程為:(41)云服務(wù)器構(gòu)造一個訪問策略同樣為Ψ的訪問樹Ti,并計算得到查詢標記QTi,Ψ。進一步的,所述步驟(5)的具體過程為:(51)用戶利用屬性私鑰,分別針對訪問樹T、Ti計算得到拉格朗日系數(shù),再遞歸地計算得到訪問樹T、Ti的拉格朗日插值FR、LR;(52)用戶利用屬性加密機制加密陷門;(53)用戶將初步加密后的陷門發(fā)送給管理服務(wù)器,管理服務(wù)器對接收到的陷門進行重加密,同時生成Sf。進一步的,所述步驟(6)的具體過程為:(61)管理服務(wù)器將發(fā)送給云服務(wù)器;(62)判斷用戶陷門與數(shù)據(jù)擁有者的索引屬性是否相符;用戶通過步驟(51)計算得到LR=e(RKi,g2)β;云服務(wù)器重計算L′R=e(RKi,g2)β;云服務(wù)器通過判斷LR與L′R、與Y2是否相等來判定陷門與索引的屬性是否相符,其中FR=e(g1,g2)α,Y1=g2α,Y2=e(E1,g2s)α;(63)匹配用戶陷門中的關(guān)鍵字與索引中的關(guān)鍵字:云服務(wù)器通過計算等式e(E1,T3)=e(E2,T1)·e(Sf,T2)是否成立來匹配關(guān)鍵字,其中,E2=g1α·β,若等式成立,則匹配成功;反之,則匹配失敗。進一步的,所述步驟(7)的具體過程為:(71)用戶撤銷:管理服務(wù)器更新存儲在云服務(wù)器上的Sf,即更新管理服務(wù)器自身的私鑰;(72)用戶屬性撤銷:管理服務(wù)器更新Sf,屬性授權(quán)機構(gòu)更新系統(tǒng)屬性私鑰,生成新的用戶屬性私鑰。本發(fā)明還公開了一種云環(huán)境下支持高效撤銷的屬性基關(guān)鍵字搜索方法的云計算應(yīng)用系統(tǒng),包括數(shù)據(jù)擁有者、管理服務(wù)器、用戶、多屬性授權(quán)機構(gòu)以及云服務(wù)器加,其中,數(shù)據(jù)擁有者分別發(fā)送加密文件集和密索引給云服務(wù)器和管理服務(wù)器;新用戶在管理服務(wù)器進行注冊,并從屬性授權(quán)機構(gòu)獲得屬性私鑰,然后發(fā)送加密陷門給管理服務(wù)器;管理服務(wù)器重加密獲得的索引及陷門并發(fā)給云服務(wù)器;在云服務(wù)器上進行關(guān)鍵字搜索操作。有益效果:與現(xiàn)有技術(shù)相比,本發(fā)明具有以下的優(yōu)點:1.本發(fā)明考慮了在實際場景中使用可搜索加密技術(shù)時經(jīng)常會出現(xiàn)的系統(tǒng)可擴展性問題,由于單個用戶、單個數(shù)據(jù)擁有者的系統(tǒng)結(jié)構(gòu)的適用性不強,而在實際場景中,經(jīng)常會有用戶、數(shù)據(jù)擁有者加入、退出系統(tǒng),本發(fā)明在利用屬性加密的基礎(chǔ)上,構(gòu)造了可擴展的多關(guān)鍵字可搜索加密方法,能夠支持多數(shù)據(jù)擁有者和多用戶的系統(tǒng)結(jié)構(gòu)。2.本發(fā)明考慮了在可搜索加密技術(shù)下,用戶的搜索權(quán)限問題,數(shù)據(jù)擁有者上傳數(shù)據(jù)后,只有符合數(shù)據(jù)擁有者設(shè)定的權(quán)限的用戶才能搜索數(shù)據(jù)。本發(fā)明設(shè)置了分布式的多屬性授權(quán)機構(gòu),對系統(tǒng)中的用戶進行屬性授權(quán),每個用戶都有由屬性授權(quán)機構(gòu)頒發(fā)的屬性主密鑰ASKi,j,用來證明該用戶擁有某個屬性,從而可以判斷用戶是否擁有搜索數(shù)據(jù)的權(quán)限,以防非法用戶攻擊,防止了惡意用戶可能對系統(tǒng)造成的威脅。3.本發(fā)明考慮了用戶在完成搜索任務(wù)后的撤銷問題。管理服務(wù)器更新存儲在云服務(wù)器上的Sf,用戶無法生成正確的陷門,使得用戶在搜索階段始終無法獲得搜索結(jié)果,起到撤銷整個用戶的作用。若只是針對用戶某個屬性進行撤銷,在本發(fā)明中,使管理服務(wù)器更新Sf,屬性授權(quán)機構(gòu)針對剩余屬性重新頒發(fā)用戶屬性私鑰即可。綜上所述,本發(fā)明基于屬性加密機制實現(xiàn)了可搜索加密,保護了用戶隱私的同時,降低了用戶開銷。附圖說明圖1為本發(fā)明的整體流程圖;圖2為本發(fā)明所應(yīng)用的系統(tǒng)功能模塊示意圖;圖3為本發(fā)明中步驟(3)的具體流程圖;圖4為本發(fā)明的步驟(5)的具體流程圖;圖5為本發(fā)明中步驟(7)的具體流程圖。具體實施方式下面對本發(fā)明技術(shù)方案進行詳細說明,但是本發(fā)明的保護范圍不局限于所述實施例。此處,對發(fā)明的技術(shù)術(shù)語進行解釋和說明:數(shù)據(jù)擁有者:數(shù)據(jù)集的擁有者,需要將數(shù)據(jù)集和查詢索引加密后外包到云服務(wù)器;用戶:需要從數(shù)據(jù)擁有者上傳的數(shù)據(jù)中搜索到自己想要的數(shù)據(jù);管理服務(wù)器:在發(fā)明中起到了可信第三方的作用,同時重加密數(shù)據(jù)擁有者和用戶上傳的加密索引和陷門,并用于用戶撤銷;云服務(wù)器:存儲數(shù)據(jù)擁有者的數(shù)據(jù)集,會忠實地執(zhí)行用戶發(fā)出的搜索請求,但有可能窺探數(shù)據(jù)擁有者的數(shù)據(jù)隱私和用戶的查詢隱私;屬性授權(quán)機構(gòu):對用戶進行屬性認證,使用戶獲得搜索權(quán)限,同時為數(shù)據(jù)擁有者頒發(fā)密鑰加密數(shù)據(jù);數(shù)據(jù)集:數(shù)據(jù)擁有者需要上傳至云端的數(shù)據(jù);屬性加密機制:基于屬性加密(ABE),又稱模糊的基于身份的加密(FuzzyIdentity-BasedEncryption)。它把身份標識被看作是一系列的屬性。IBE中解密者,只有當自己的身份信息和信息加密者描述的信息是一致的時候,才可以解密加密者加密的信息。和IBE不同的是,采用基于屬性加密后,當用戶擁有的屬性超過加密者所描述的預(yù)設(shè)門檻時,用戶是可以解密的。但這種基于預(yù)設(shè)門檻的方案不具有通用性。公鑰:由可信第三方生成并公開;主密鑰:由可信第三方生成且僅由可信第三方持有;注冊密鑰:由可信第三方生成,用于生成用戶標識;屬性主密鑰:由屬性授權(quán)機構(gòu)生成,用于證明用戶擁有某個屬性;屬性私鑰:屬性授權(quán)機構(gòu)本發(fā)給用戶、數(shù)據(jù)擁有者的密鑰,不同的對象獲得的屬性私鑰不同,用于執(zhí)行加密操作;以下結(jié)合實施例和附圖對本發(fā)明做進一步說明。如圖1所示,本發(fā)明的云環(huán)境下支持高效撤銷的屬性基關(guān)鍵字搜索方法,包含以下步驟:(1)系統(tǒng)初始化和建立多個屬性授權(quán)機構(gòu),管理服務(wù)器生成公鑰及主密鑰,授權(quán)機構(gòu)生成屬性公、私鑰;(2)新用戶完成在可信第三方和屬性授權(quán)機構(gòu)的注冊,獲得注冊密鑰及屬性主密鑰;(3)數(shù)據(jù)擁有者使用屬性加密機制生成加密文件和索引,分別發(fā)送給云服務(wù)器和管理服務(wù)器,管理服務(wù)器用其私鑰重加密該索引并發(fā)送給云服務(wù)器;(4)為了在查詢階段驗證用戶身份,防止用戶合謀,云服務(wù)器生成查詢標記;(5)用戶使用屬性加密機制生成加密陷門并發(fā)送給管理服務(wù)器,管理服務(wù)器重加密接收到的陷門并生成Sf,同時發(fā)送給云服務(wù)器;(6)云服務(wù)器接收到加密索引及陷門,進行關(guān)鍵字搜索;(7)待用戶完成搜索任務(wù)后,進行用戶撤銷。如圖2所示,將上述云環(huán)境下支持高效撤銷的屬性基關(guān)鍵字搜索方法應(yīng)用于云計算系統(tǒng),該系統(tǒng)包括數(shù)據(jù)擁有者、管理服務(wù)器、用戶、多屬性授權(quán)機構(gòu)以及云服務(wù)器。本發(fā)明的詳細步驟為:步驟(1)具體實施過程如下:由TA執(zhí)行系統(tǒng)初始化算法,輸入安全參數(shù)λ,生成兩個生成元為g的p階循環(huán)群G1、G2,一個雙線性配對e:G1×G1→G2,和一個抗碰撞哈希函數(shù)H:{0,1}*→Zp,TA隨機選擇一個參數(shù)γ∈Zp,g1∈G1,g2∈G1,計算g3=g2γ,公鑰PK:={e,g1,g2,g3,H},并且生成主秘鑰MSK:=γ。向CAs輸入公鑰PK和屬性集合,生成相對TA保密的屬性私鑰AMKj=tj和屬性公鑰CAs將屬性公鑰APKj提交給TA并自己擁有屬性私鑰AMKj。步驟(2)具體實施過程如下:1.如果一個搜索用戶Ui在系統(tǒng)中是合法的,TA首先會為該用戶分配一個注冊秘鑰RKi,用于生成用戶標識,并生成秘鑰SKi且相對該用戶保密,此時,TA選擇一個隨機參數(shù)xi∈Zp,令SKi=xi,然后,TA計算并將RKi提交給該用戶。2.用戶獲得注冊秘鑰RKi后,根據(jù)自己的需求向?qū)傩哉J證機構(gòu)(CAs)提出屬性認證申請,CAs在接到申請后會生成一個用戶屬性主密鑰ASKi,j用于證明用戶i擁有屬性j,當接收到該用戶的RKi后,CAs計算ASKi,j=RKi1/AMKj并傳遞給該用戶。如圖3所示,步驟(3)具體實施過程如下:1.給定文件Fi,k的第h個關(guān)鍵字,i.e,wk,h,數(shù)據(jù)擁有者選擇兩個隨機數(shù)α,β∈Zp并計算E2=g1α·β。數(shù)據(jù)擁有者定義文件Fi,k的訪問控制策略Ψ為一個訪問樹T,然后首先為樹T中的每個節(jié)點x(包括葉子節(jié)點)選擇一個多項式qx。這些多項式根據(jù)以下方式從根節(jié)點R開始自上而下的選取。對于樹中的每個節(jié)點x,設(shè)置多項式qx的階dx比該節(jié)點的門限值少1,也就是說,dx=kx-1。2.從根節(jié)點R開始,數(shù)據(jù)擁有者首先令qR(0)=α。然后,多項式qR在其他dR個點的值完全進行隨機選取實現(xiàn)訪問樹T完整的定義。對于任一其他的節(jié)點x,令qx(0)=qparent(x)(index(x))并且隨機選擇dx其他點來完整定義qx。對于每個葉子節(jié)點Lj,計算為了便于描述和理解,令加密索引表示如下:w^,k,h=(α,E1,,E2,STΨ)]]>3.數(shù)據(jù)擁有者計算出后,將其傳遞給管理服務(wù)器,管理服務(wù)器獲得后,用其私鑰k1和k2進一步對進行重加密,并且計算Y1=g2α,Y2=e(E1,g2s)α。因此,更新后的加密索引管理服務(wù)器進一步將傳遞給云服務(wù)器。步驟(4)具體實施過程如下:為了在查詢階段驗證用戶身份,防止用戶合謀,云服務(wù)器會生成一個查詢標記QTi,Ψ。首先,云服務(wù)器隨機選擇β∈Zp,與步驟(3)中相同,服務(wù)器構(gòu)造一個訪問策略同樣為Ψ的訪問樹Ti。對于任意一個節(jié)點N∈T,選擇多項式QN(X),令QR(0)=β。對于Ti中的每個葉子節(jié)點Lj,服務(wù)器計算計算出如圖4所示,步驟(5)具體實施過程如下:1.當用戶Ui在CAs上進行注冊時,生成一個用戶屬性私鑰ASKi,j,表示用戶i擁有屬性j,計算對于集合ASi中的屬性j,計算用戶針對訪問樹T、Ti,計算其拉格朗日系數(shù)其中|IND|:=Threshold(Parent(N)),然后遞歸地計算當用戶Ui擁有足夠的屬性時,最終得到訪問樹T、Ti的拉格朗日插值FR=e(g1,g2)α、LR=e(RKi,g2)β。2.如果想要搜索關(guān)鍵字wh′,用戶選擇一個隨機參數(shù)ri,加密陷門表示如下:TΨ,w=(g1H(wh′)·ri,g1ri,H(FR),H(LR))]]>3.用戶計算出TΨ,w后,將其傳遞給管理服務(wù)器,管理服務(wù)器獲得TΨ,w后,隨機生成一個參數(shù)rf,利用私鑰k1,k2進一步重加密TΨ,w,計算為方便表示,令H(LR))。同時管理服務(wù)器生成管理服務(wù)器進一步將Sf傳遞給云服務(wù)器。步驟(6)具體實施過程如下:1.云服務(wù)器存儲所有經(jīng)過屬性加密的文件和不同數(shù)據(jù)所有者的關(guān)鍵詞,管理服務(wù)器同時也會將Sf存儲至云服務(wù)器。在接收到一個查詢請求時,云將在所有這些數(shù)據(jù)主的數(shù)據(jù)中進行搜索,同時重新計算L′R=e(RKi,g2)β。2.計算是否等于Y2且判定e(E1H(FR),Y1)=e(E1s,g2α)=e(E1,g2)s·α=e(E1,g2s)α=Y2]]>3.當云服務(wù)器獲得陷門T(wh′)和加密索引后,首先計算e(Sf,T2)=e(g1k1·k2·rf,g1ri·k1)=e(g1,g1)k1·k2·rf·ri·k1]]>然后,根據(jù)計算下列等式是否成立,即判斷wh′=wk,h是否成立,判斷搜索是否成功。e(E1,T3)=e((g1α·β·H(wk,h)·g1k1)k2,gri·k1·rf)=e(g1,g1)(α·β·H(wk,h)+k1)·k2·ri·k1·rf]]>=e(g1,g1)α·β·H(wk,h)·k2·ri·k1·rf·e(g1,g1)k1·k2·ri·k1·rf=e(g1,g1)α·β·H(wk,h)·k2·ri·k1·rf·e(Sf,T2)=e(E2,T1)·e(Sf,T2)]]>如圖5所示,步驟(7)具體實施過程如下:1.用戶撤銷:在撤銷一個用戶時,只需管理服務(wù)器更新存儲在云服務(wù)器上的Sf。如TrapdoorGeneration所示,(k1,k2為管理服務(wù)器的私鑰),當管理服務(wù)器更新Sf時,即更新私鑰k1,k2,用戶就無法生成正確的的陷門因此,用戶在Search階段始終無法成功搜索,相當于該用戶已被撤銷。2.用戶屬性撤銷:管理服務(wù)器更新Sf,CAs更新tj,產(chǎn)生新的用戶屬性私鑰ASKi,j,重新注冊即可。驗證分析(1)安全性分析1.關(guān)鍵字語義安全給出一個概率多項式時間敵手А,在多項式時間內(nèi),А向挑戰(zhàn)者B詢問他提交的關(guān)鍵字密文。然后,А發(fā)送兩個先前未被改變的關(guān)鍵字ω0,ω1給B。B隨機選擇μ∈{0,1},并返回一個加密的關(guān)鍵字給А。А繼續(xù)向B詢問關(guān)鍵字ω的密文,唯一的限制是ω既不是ω0也不是ω1。最后,А輸出他有關(guān)μ的猜想μ′。此處,定義А攻破ABESK的有利條件為如果AdvA是可忽略的,則本發(fā)明可抵抗選擇關(guān)鍵字攻擊。2.關(guān)鍵字保密給出一個概率多項式時間敵手А,在t時間內(nèi),А向挑戰(zhàn)者B詢問他查詢的關(guān)鍵字密文。然后,B隨機選擇一個關(guān)鍵字ω*并將其加密為傳遞給А。А給出關(guān)于ω*的猜測ω′,如果ω′=ω*,則敵手獲勝。此處,定義А攻破關(guān)鍵字保密的概率為AdvA=Pr[ω′=ω*],如果(其中ε是可忽略的參數(shù),t代表А知道的關(guān)鍵字數(shù)量,u代表關(guān)鍵字字典的大小),那么本發(fā)明能夠?qū)崿F(xiàn)關(guān)鍵字保密。3.陷門不可鏈接性由于查詢用戶想要掩藏真正查詢的內(nèi)容,所以陷門在被傳至云服務(wù)器之前應(yīng)該先做加密處理。但是,如果陷門產(chǎn)生函數(shù)是固定的,那么其生成的包含同樣關(guān)鍵字的陷門也會相同,這些陷門揭示了用戶在云服務(wù)器上的搜索信息。在一般的模型中,云服務(wù)器會知道陷門的統(tǒng)計值并且進一步確認他們中所包含的關(guān)鍵字。因此,陷門產(chǎn)生函數(shù)應(yīng)該是隨機的。在本發(fā)明方案中,陷門的產(chǎn)生分為兩個階段。在第一階段,用戶會選擇一個隨機參數(shù)ri生成初始化陷門TΨ,w;第二階段,TΨ,w被傳至管理服務(wù)器后,管理服務(wù)器會隨機生成一個參數(shù)rf對TΨ,w進行重加密,生成陷門在完整的陷門生成過程中,用戶和管理服務(wù)器分別使用了兩個隨機參數(shù),所以即使陷門中包含相同的關(guān)鍵字,每次加密也都會產(chǎn)生不同的結(jié)果。也就是說,云服務(wù)器不能推斷出陷門之間的任何聯(lián)系。4.抵抗合謀在系統(tǒng)初始化階段,CAs會根據(jù)公鑰PK和屬性集生成相對用戶保密的屬性密鑰AMKj;等到新用戶注冊時,TA會計算出注冊密鑰RKi并提交給CAs,CAs根據(jù)AMKj和RKi計算出用戶的主屬性私鑰ASKi,j。這里面,當每次有新用戶注冊時,TA都會選擇一個隨機參數(shù)xi來生成注冊密鑰RKi。因此,即使兩個不同的用戶擁有相同的屬性集,也會得到不同的用戶屬性私鑰。然而僅僅是使屬性集相同的用戶擁有不同的屬性密鑰是不能夠完全抵抗合謀攻擊的,這時云服務(wù)器會使用注冊密鑰RKi生成一個查詢標記QTi,Ψ表示用戶i可以搜索以訪問控制策略Ψ加密的關(guān)鍵字。服務(wù)器通過檢查QTi,Ψ再一次檢查發(fā)出搜索請求的用戶的注冊密鑰RKi,從而驗證搜索用戶提供的陷門是由同一人創(chuàng)建的,實現(xiàn)了抵抗合謀攻擊。(2)效率分析本發(fā)明中,定義Tg表示G1中一次求冪操作的時間;Tgt表示G2中一次求冪操作的時間;Th表示G1中一次哈希映射的時間;Tp表示一個雙線性對操作時間。我們忽略乘法和其他哈希操作。定義n代表數(shù)據(jù)擁有者定義在文件的訪問策略中的屬性個數(shù);N表示整個系統(tǒng)中的屬性個數(shù);s表示搜索用戶擁有的屬性個數(shù)。表1分別從索引生成、陷門生成、關(guān)鍵字搜索和用戶撤銷四個方面的計算復(fù)雜度進行對比:表1計算復(fù)雜度比較Sun,sARMS本發(fā)明索引(N+1)Tg+Tgt(2n+5)Tg+Tgt+nTh(2n+6)Tg+Tgt+Th+Tp陷門(2N+1)Tg(2s+4)Tg(2s+2)Tp+2sTgt+3Tg+2Th搜索(N+1)Tp+Tgt(2n+3)Tp+nTgt+2nTg4Tp+Th+Tg撤銷(αNcTg)+βNsTg(3s+2)Tg+sThsTg從表1可以看出Sun等人的方案在上面四個方面的計算復(fù)雜度要高于ARMS和本發(fā)明。本發(fā)明雖然在陷門生成時計算復(fù)雜度比ARMS稍高,但在其他三個方面要優(yōu)于或近似于ARMS,總體而言,本發(fā)明在計算復(fù)雜度上要優(yōu)于其他兩個方案。實施例:本發(fā)明可以應(yīng)用在類似于下面的例子中:某醫(yī)院將醫(yī)療數(shù)據(jù)上傳至云平臺用于研究,設(shè)定三甲醫(yī)院的醫(yī)生或者研究所的研究員可以訪問這些數(shù)據(jù),該醫(yī)院在上傳數(shù)據(jù)之前使用不同的關(guān)鍵字標識不同類別的數(shù)據(jù),如皮膚病類、肝病類等等。假使某皮膚病研究所的研究員想要獲取這家醫(yī)院的皮膚病類的數(shù)據(jù),現(xiàn)有的基于屬性的訪問控制技術(shù)要想解決該問題通常做法是去云端訪問到這家醫(yī)院的全部數(shù)據(jù),然后下載到本地解密后才能挑出所需的皮膚病類數(shù)據(jù)。而應(yīng)用本發(fā)明中的技術(shù)方案不僅可以在云端訪問到這些數(shù)據(jù),還可以直接在云端執(zhí)行關(guān)鍵字搜索功能,最后僅僅下載自己所需的文件,有效的降低通信成本。上述實施例可擴展到多家醫(yī)院同時上傳他們的數(shù)據(jù),并使用不同的訪問控制結(jié)構(gòu),在數(shù)據(jù)上傳前對數(shù)據(jù)進行加密處理。此時,醫(yī)院會公開他們的訪問結(jié)構(gòu),查詢者可根據(jù)訪問結(jié)構(gòu)快速定位其想要搜索密文的位置。當前第1頁1 2 3