一種具有高效用戶撤銷的密文策略屬性基加密方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種屬性基加密方法,具體涉及一種具有高效用戶撤銷的密文策略屬 性基加密方法,可用于云存儲環(huán)境中實(shí)現(xiàn)細(xì)粒度訪問控制和數(shù)據(jù)保護(hù),屬于信息安全技術(shù) 領(lǐng)域。
【背景技術(shù)】
[0002] 作為新的密碼學(xué)原語,屬性基加密方法具有一對多加密的特性,可以用于細(xì)粒度 訪問控制。屬性基加密方法主要包括兩種類型,分別是密文策略屬性基加密方法和密鑰策 略屬性基加密方法。在密文策略屬性基加密方法中,密文關(guān)聯(lián)一個訪問結(jié)構(gòu),而用戶的私鑰 關(guān)聯(lián)一個屬性集合,只有私鑰關(guān)聯(lián)的屬性集合滿足密文的訪問結(jié)構(gòu)的時候,用戶才能夠正 確得解密密文。密鑰策略屬性基加密方法正好和密文策略屬性基加密方法相反。密文策略 屬性基加密方法較密鑰策略屬性基加密方法更具有一般性,因?yàn)樵L問結(jié)構(gòu)是由加密者自己 定義的。
[0003] 隨著云計(jì)算技術(shù)的發(fā)展,越來越多的敏感數(shù)據(jù)被存儲在云服務(wù)器中,云計(jì)算的發(fā) 展面臨著云數(shù)據(jù)安全和數(shù)據(jù)訪問控制等一系列安全問題。在現(xiàn)實(shí)中,第三方提供的云存儲 服務(wù)往往不是完全可信任的,把訪問控制交給這樣的服務(wù)器很可能會存在安全隱患。屬性 基加密方法應(yīng)用于云存儲環(huán)境中,不但可以保護(hù)云數(shù)據(jù)的安全,還可以實(shí)現(xiàn)細(xì)粒度的訪問 控制。盡管屬性基加密方法具有很多優(yōu)點(diǎn),在實(shí)際應(yīng)用中仍需要解決一個棘手的問題一一 撤銷。
[0004] 在屬性基加密方法中,每個用戶享有多個屬性,每個屬性也可以被多個用戶共享。 因此,撤銷問題對于屬性基加密方法尤為困難,系統(tǒng)中單個用戶或者單個屬性的撤銷都有 可能影響到其他用戶甚至整個系統(tǒng)。如今,具有撤銷能力的屬性基加密方法已經(jīng)廣受密碼 學(xué)家的關(guān)注。按照撤銷的粒度,屬性基加密方法的撤銷可分為用戶撤銷、用戶屬性撤銷和系 統(tǒng)屬性撤銷三種;而按照撤銷的形式,屬性基加密方法的撤銷又可分為直接撤銷和間接撤 銷兩種。目前,最理想的撤銷方法應(yīng)該具有粒度較細(xì)的屬性撤銷能力,具有直接撤銷的撤銷 過程影響范圍小、撤銷操作簡單等特性。然而,細(xì)粒度的屬性撤銷必然會帶來昂貴的計(jì)算代 價,而操作簡單的直接撤銷方法又有可能帶來安全問題。為了安全性,如今大部分基于屬性 的加密方法的撤銷機(jī)制都采用間接撤銷方法,同時,為了提高撤銷的效率,代理重加密等技 術(shù)被采用。
[0005] 抗合謀攻擊是屬性基加密方法應(yīng)該具備的基本條件。對于具有撤銷能力的屬性基 加密方法而言,不但要能夠抵抗有效用戶間的合謀攻擊,還要能夠抵抗有效用戶和撤銷用 戶間的合謀攻擊。因此,具有撤銷能力的屬性基加密方法要考慮更多的合謀攻擊類型。
【發(fā)明內(nèi)容】
[0006] 針對現(xiàn)有技術(shù)存在的不足,本發(fā)明目的是提供一種操作簡單、安全性高的具有高 效用戶撤銷的密文策略屬性基加密方法,既能高效得執(zhí)行用戶撤銷操作,又能抵抗各種用 戶間合謀攻擊。
[0007] 為了實(shí)現(xiàn)上述目的,本發(fā)明是通過如下的技術(shù)方案來實(shí)現(xiàn):
[0008] 本發(fā)明的一種具有高效用戶撤銷的密文策略屬性基加密方法,包括以下幾個步 驟:
[0009] (A)系統(tǒng)建立步驟:屬性權(quán)威機(jī)構(gòu)AA從公鑰函數(shù)數(shù)據(jù)庫中隨機(jī)選取一套參數(shù),包 括兩個階為素數(shù)P的乘法循環(huán)群6和心、群G的生成元g以及雙線性對映射e:GXG -心;根 據(jù)選取的參數(shù),AA生成系統(tǒng)公開參數(shù)PK和主私鑰MK,并把系統(tǒng)公開參數(shù)PK公開而把主私 鑰MK私密保存;(B)用戶群建立步驟:用戶群管理者GM以系統(tǒng)公開參數(shù)PK為輸入,生成用 戶群的群公鑰GPK、群私鑰GMK和用戶字典DIC,群管理者把群公鑰GPK公開而把群私鑰GMK 和用戶字典DIC私密保存;(C)用戶私鑰生成步驟:用戶向AA提交自己的身份信息UID、屬 性集合S和所屬群信息GID ;AA收到用戶的申請后,首先通過與該用戶所屬群的交互來驗(yàn)證 該用戶身份(其交互過程是一個簽名和驗(yàn)證簽名的過程,為現(xiàn)有技術(shù)此處不再贅述),當(dāng)驗(yàn) 證通過后,AA利用主私鑰為該用戶生成與屬性集合S和所屬群信息GID相關(guān)聯(lián)的私鑰DSK, 并把私鑰DSK通過安全信道發(fā)送給用戶;同時,AA生成一個元組UP,UP通過一個安全信道 發(fā)送給用戶所屬群的管理員,群管理者保存UP到用戶字典DIC中;(D)加密步驟:數(shù)據(jù)擁有 者DO利用自定義的訪問結(jié)構(gòu)A和選擇的群公鑰GPK對消息M進(jìn)行加密,加密產(chǎn)生密文CT并 上傳至云存儲服務(wù)器CSS ; (E)解密步驟:數(shù)據(jù)使用者DU從云存儲服務(wù)器CSS下載密文CT, 并利用滿足CT關(guān)聯(lián)的訪問結(jié)構(gòu)A和用戶群信息GID的私鑰DSK進(jìn)行解密,還原消息M ; (F) 用戶群升級步驟:用戶群管理者GM以系統(tǒng)公開參數(shù)PK為輸入,生成新的群公鑰GPK'、群私 鑰GMK',并生成重加密密鑰Re-Key、更新用戶字典DIC中的元組為UP',重加密密鑰Re-Key 發(fā)送給云存儲服務(wù)器CSS,字典中的每一個元組UP'發(fā)送給相對應(yīng)的用戶;(G)用戶升級步 驟:用戶利用收到的元組UP'升級自己的私鑰為DSK' ; (H)重加密步驟:云存儲服務(wù)器利用 收到的重加密密鑰Re-Key對屬于該群的密文CT進(jìn)行重加密操作,得到新的密文CT'。
[0010] 步驟㈧中,所述的系統(tǒng)公開參數(shù)PK和系統(tǒng)主私鑰MK,按照如下方式生成:
[0011] Al:屬性授權(quán)機(jī)構(gòu)隨機(jī)選取α,β e zp,其中,Zp表示集合{0, 1,2, 一4-24-1};
[0012] A2:屬性授權(quán)機(jī)構(gòu)計(jì)算得到系統(tǒng)主私鑰為MK = {i3,g°},計(jì)算得到系統(tǒng)公開參數(shù) PK= {6,841!,6(8,8)°},并且計(jì)算區(qū)1/|!;
[0013] A3:g1/e只向用戶群管理者公開,用于執(zhí)行用戶撤銷操作。
[0014] 步驟(B)中,所述群公鑰GPK、群私鑰GMK和用戶字典DIC,按照如下方式生成:
[0015] BI:用戶群管理者隨機(jī)選取γ e Zp作為用戶群的群私鑰GMK ;
[0016] B2:用戶群管理者計(jì)算gY作為用戶群的群公鑰GPK ;
[0017] B3:用戶群管理者初始化用戶字典DIC,該字典初始化為空。
[0018] 步驟(C)中,所述私鑰DSK及元組UP,按照如下方式生成:
[0019] Cl:用戶群管理者為用戶生成一個證書δ = ghXHOiID)'其中,HO選用哈希 函數(shù)MD-5,該函數(shù)把一個字符串映射到群G中的一個元素,該證書發(fā)送給屬性權(quán)威機(jī)構(gòu);
[0020] C2:屬性權(quán)威機(jī)構(gòu)驗(yàn)證證書的有效性,若e(g,δ ) = e(ge XH(UID),gY)則執(zhí)行步 驟C3,否則退出并返回用戶錯誤符號丄;
[0021] C3:對于所有屬性j e S,屬性權(quán)威機(jī)構(gòu)隨機(jī)選取一個指數(shù)Z p,其中,2|5表 示集合{0,1,2,…,p-2,p-l},同時,屬性權(quán)威機(jī)構(gòu)隨機(jī)選取指數(shù)r g,r e Zp;屬性權(quán)威 機(jī)構(gòu)計(jì)算以1]10)1/=5八8 1{!并最終計(jì)算得到用戶私鑰051(={051(5,051((;1:)},其中, _二供=滬+氣歡eS;g =碼勵以訊逆,輯==#}:,其中,j表示屬性集合中的任意屬性,而 化與D ,表示該屬性對應(yīng)的屬性密鑰,。級Wli = U^fex訊以/?)弋/)廣§^//設(shè)//))^=§",其 中,%與D g'表示該用戶所對應(yīng)的用戶群密鑰;
[0022] C4:屬性權(quán)威機(jī)構(gòu)把DSK = {DSKs,DSKgieJ通過安全信道發(fā)送給用戶,計(jì)算UP = IUn^d1=HOJIDhd2= (gXH(UID)) 1/e}并發(fā)送給用戶所屬群的管理者。
[0023] 步驟D中,所述數(shù)據(jù)擁有者計(jì)算消息M的密文CT,按照如下方式生成:
[0024] Dl:數(shù)據(jù)擁有者定義一個樹形訪問結(jié)構(gòu)A,獲取相關(guān)用戶群的群公鑰GPK ;
[0025] D2:數(shù)據(jù)擁有者隨機(jī)選擇Sl,s2e Zp,為訪問結(jié)構(gòu)A中的根節(jié)點(diǎn)R隨機(jī)選擇一個dR 次多項(xiàng)式qR,其中dR= kR_l,其中,kR表示根節(jié)點(diǎn)R的秘密分享門限值,并且qR(0) = s2;
[0026] D3:為訪問結(jié)構(gòu)A中的除根節(jié)點(diǎn)R的任意節(jié)點(diǎn)X選擇一個dx次多項(xiàng)式q x,其中 dx= k x_l,其中,1表示節(jié)點(diǎn)X的秘密分享門限值,并且q x(0) = qparantW (index(x)),函數(shù) parent (X)返回節(jié)點(diǎn)x的父節(jié)點(diǎn),函數(shù)index(x)返回節(jié)點(diǎn)x在其父節(jié)點(diǎn)中的次序;
[0027] D4:依此類推,最終為訪問結(jié)構(gòu)A中的每一個葉子結(jié)點(diǎn)y選擇一個火次多項(xiàng)式qy, 其中dy= ky_l,其中,1^表示節(jié)點(diǎn)y的秘密分享門限值,并且qy(0) = qparantW (index(y)), qy(〇)作為秘密值參與加密運(yùn)算;
[0028] D5:數(shù)據(jù)擁有者計(jì)筧得到密f
[0029]
[0030] 其中,集合Y中的元素為訪問結(jié)構(gòu)A中的葉子節(jié)點(diǎn),att(y)函數(shù)表示葉子節(jié)點(diǎn)y所 對應(yīng)的屬性。
[0031 ] 步驟E中,消息M按照如下方式生成:
[0032] El:解密者調(diào)用一個遞歸解密函數(shù)DeCryptN〇de(CT,DSKs, X),其中,CT是一個關(guān)聯(lián) 了訪問結(jié)構(gòu)A的密文,05心是一個關(guān)聯(lián)了屬性集合S的私鑰,X是訪問結(jié)構(gòu)A中的節(jié)點(diǎn);
[0033] E2:x為葉子結(jié)點(diǎn),令i = att (X),其中,函數(shù)att (X)返回節(jié)點(diǎn)X所對應(yīng)的屬性,如 果i e S,則計(jì)算
否則,令Fx=丄;
[0034] E3: X為非葉子結(jié)點(diǎn),為X的所有子節(jié)點(diǎn)z調(diào)用函數(shù)DecryptNode (CT, DSKs, z),并 保存其輸出Fz,令Sx表示一個k x長度的集合,該集合保存滿足條件F z辛丄的節(jié)點(diǎn)z,如果這 樣的集合存在,則計(jì)芻
,其中,氣表 示拉格朗日插值公式的系數(shù)表達(dá)式,其中輸入為0 ;否則,令Fx=丄;
[0035] E4:依此類推,如果屬性集合S滿足訪問結(jié)構(gòu)A,則遞歸函數(shù)會正確執(zhí)行
5則,令Fr=丄;
[0036] E5:解密者調(diào)用一個遞歸解密函數(shù)DecryptNode (CT,DSKgid, GID),其中,CT是一個 關(guān)聯(lián)了訪問結(jié)構(gòu)A的密文,051^1:)是一個關(guān)聯(lián)了用戶群的私鑰,GID是私鑰所關(guān)聯(lián)的用戶群 信息;
[0037] E6:如果GID與密文CT中關(guān)聯(lián)的用戶群信息一致,則計(jì)算^ =
§則,令Fg=丄;
[0038] E7: Sfr乒丄且Fg乒丄,解密者計(jì)算
*.最后恢復(fù)消息BRg S] = M _〇
[0039] 步驟F中,所述新的群私鑰GMK'、新的群公鑰GPK'、重加密密鑰Re-Key和新的用 戶元組UP'按照如下方式生成:
[0040] Fl:隨機(jī)選取γ' e Zp作為用戶群的群私鑰GMK' ;
[0041] F2:計(jì)算gY'作為用戶群的群公鑰GPK' ;
[0042] F3:計(jì)算重加密密鑰Re-Key = g(Y' γ)/?!,并發(fā)送給云存儲服務(wù)器執(zhí)行重加密操 作;
[0043] F4:為用戶群中的每一個用戶升級其對應(yīng)的元組UP,升級后為UP' = IUIDJ1 = H(UID)Y' Y,d2= (gXH(UID)) (γ' Y)/e},把 UP' 發(fā)送給相應(yīng)的用戶。
[0044] 步驟G中,所述私鑰DSK'按照如下方式生成:
[0045] Gl:用戶收到升級后的UP'后,在其私鑰DSKs上執(zhí)行計(jì)算AU:/),=D,W 1 = ,其中,Cl1= H(UID) γ' γ;
[0046] G2:在其私鑰 DSKgid上執(zhí)行計(jì)算 D2= D2Xd2= (gXH(UID)) Y'/e,其中,d2 = (gXH(UID))(Y' γ)/?!。
[0047] 步驟H中,所述密文CT'按照如下方式生成:
[0048] Hl:云存儲服務(wù)器收到重加密密鑰后,對該群的密文執(zhí)行重加密計(jì)算^ = 0· e(Re-Key,C2) = M;
[0049] H2:云存儲服務(wù)器更新密文CT為CT'。本加密方法具有撤銷過程涉及用戶少、撤 銷代價小、撤銷效率高的優(yōu)點(diǎn),并且本加密方法安全性高,可以抵抗多類型用戶之間的合謀 攻擊。鑒于屬性基加密方案具有一次加密多人解密、細(xì)粒度訪問控制特性,本加密方法可應(yīng) 用于云存儲環(huán)境中。
【附圖說明】
[0050] 圖1為本發(fā)明的系統(tǒng)圖;
[0051] 圖2為本發(fā)明的工作流程圖。
【具體實(shí)施方式】
[0052] 為使本發(fā)明實(shí)現(xiàn)的技術(shù)手段、創(chuàng)作特征、達(dá)成目的與功效易于明白了解,下面結(jié)合
【具體實(shí)施方式】,進(jìn)一步闡述本發(fā)明。
[0053] -、本發(fā)明所應(yīng)用的數(shù)學(xué)理論說明:
[0054] 1.雙線性對
[0055] 本發(fā)明中,雙線性對e:GXG - Gt是一個滿足雙線性性、非退化性和可計(jì)算性的映 射,它把素數(shù)階群G中的兩個元素映射到素數(shù)階群G t*的一個元素。
[0056] 2.拉格朗日系數(shù)
[0057] 對于d-1次多項(xiàng)式f (X)和集合S = U1, x2, . . .,xd},元素 Xi和集合S相對應(yīng)的拉格 朗日系數(shù))
丨據(jù)拉格朗日系數(shù),可以按照如下方式計(jì)算出多項(xiàng)式f(x):
[0058] f (χ) = Σ j es Δ i Sf (Xi)
[0059] 其中,拉格朗日系數(shù)Ais是一個關(guān)于自變量χ的多項(xiàng)式。
[0060] 二、本發(fā)明的實(shí)現(xiàn)過程
[0061] 參照圖1和圖2,引入用戶群的概念,用戶撤銷操作由用戶群管理者執(zhí)行,單個用 戶的撤銷只影響該用戶所在群中的用戶,并非系統(tǒng)中所有用戶,縮小了撤銷工作涉及的范 圍;為用戶私鑰關(guān)聯(lián)了用戶信息和群私鑰,有效防止各種類型的合謀攻擊,提高安全性;同 時,代理重加密技術(shù)極大得減