重加密可控的高效屬性基代理重加密方法
【專利摘要】本發明公開了一種重加密可控的高效屬性基代理重加密方法,主要解決現有技術存在的安全性差及效率低的問題。其實現步驟是:1、密鑰生成中心分別生成系統參數和用戶密鑰SK;2、加密者E通過密文策略屬性基加密方法對明文消息m加密得到原始密文CT;3、重加密授權者A生成重加密密鑰RK并發送給重加密代理;4、重加密代理利用系統公鑰PK及合法的重加密密鑰RK對原始密文CT進行重加密生成重加密密文CT′;5、原始密文解密者D和重加密解密者B分別恢復明文消息m。本發明能抵御更強類型的攻擊者、提高了運算效率、實現加密者對密文的重加密控制,可廣泛應用于分布式網絡或云存儲環境中以實現加密數據的細粒度共享。
【專利說明】重加密可控的高效屬性基代理重加密方法
【技術領域】
[0001] 本發明屬于網絡安全【技術領域】,涉及一種重加密可控的高效屬性基代理重加密方 法,可用于分布式網絡或云存儲環境中實現加密數據細粒度的共享。
【背景技術】
[0002] 云計算作為一種新興的服務模式,通過分布式計算、網絡存儲、虛擬化等技術,將 網絡中大量不同類型的資源整合起來協同工作,為用戶提供計算和存儲等功能,極大地提 高了資源利用率,降低了用戶成本,因此得到了廣泛的應用和支持。然而云存儲的服務模式 也帶來了新的安全隱患,其中一個重要問題是在云存儲介質位于用戶控制范圍之外的條件 下如何在保護用戶數據機密性的同時實現合法用戶對已加密數據細粒度的訪問控制及高 效的數據共享。在這種情況下,屬性基代理重加密被提出。在屬性基代理重加密系統中,由 于使用了密文策略屬性基加密體制,故只有當用戶的屬性集合滿足密文中的訪問結構時, 該用戶才能解密。若用戶A擁有解密權限,用戶A可以給一個被稱作是重加密代理的半可 信代理服務器發送針對共享用戶B的重加密密鑰,重加密代理就利用接收到的重加密密鑰 將原始密文重加密成用戶B利用自己的私鑰就可以解密的重加密密文,從而實現了用戶之 間高效的數據共享。在代理重加密系統中,用戶A被稱為重加密授權者,而用戶B被稱為重 加密解密者。且在這一過程中,重加密代理無法獲取重加密授權者和重加密解密者的私鑰 以及密文中對應明文的任何信息。
[0003] 文獻"A Ciphertext-Policy Attribute-Based Proxy Re-Encryption with Chosen Ciphertext Security, Cryptology ePrint Archive:Report2013/236."提出了隨 機預言模型下選擇密文安全的屬性基代理重加密方法,該方法適合云存儲環境下各種需要 細粒度共享加密數據的應用場景。該方法的主要步驟是:第一,密鑰生成中心初始化系統, 生成并公開系統公鑰的同時保存系統主密鑰;第二,密鑰生成中心生成用戶,包括加密者, 重加密授權者,原始密文解密者以及重加密解密者的私鑰;第三,加密者利用密文策略屬性 基加密算法對明文消息加密;第四,重加密授權者生成針對重加密解密者的重加密密鑰,并 發送給重加密代理;第五,重加密代理使用重加密密鑰進行重加密生成重加密密文;第六, 重加密解密者解密重加密密文。該方法存在以下缺陷:
[0004] 第一,無法抵御更強類型的攻擊者。該方法的安全性是建立在一種弱化的安全模 型,即選擇模型上的,該模型要求攻擊者必須提前選擇并聲明自己的攻擊目標,這種對攻擊 者的限制導致無法客觀自然地刻畫攻擊者,從而導致該方法不能抵御更強類型的攻擊者;
[0005] 第二,加密者本身不能控制哪些密文能被重加密。該方法中,重加密代理在獲得重 加密密鑰后,能夠將加密者加密給重加密授權者的所有密文轉換為針對重加密解密者的密 文;
[0006] 第三,運算效率低。該方法的重加密及解密過程需要的雙線性對運算個數與用戶 屬性集合中屬性的個數成正比的,由于雙線性對運算在實現效率方面要遠遠低于其它運 算,如指數運算,故該方法的計算代價會隨著用戶屬性數量的增多而加大,直接影響了該方 法的計算性能,導致算法效率不高,在通信帶寬受限的環境下很難實現。
【發明內容】
[0007] 本發明目的在于針對上述現有技術存在的缺陷,提出一種重加密可控的高效屬性 基代理重加密方法,以抵御更強類型的攻擊者、提高運算效率、實現加密者對密文的重加密 控制。
[0008] 實現本方法的主要思想是:利用雙系統加密的構造思路,基于合數階雙線性群構 造代理重加密方法,實現了本方法的適應性安全,消除了較弱安全模型中對攻擊者的限制 問題。同時,修改加密過程,通過使加密者能夠控制重加密解密者是否可以從重加密密文中 正確解得明文消息,來實現加密者的重加密控制功能。最后,通過增加重加密及解密過程中 的乘法運算和指數運算個數,使這兩個過程中所需的雙線性對運算個數下降為常數,提高 了運算效率,使計算代價不會隨著用戶屬性數量的增多而加大。
[0009] 根據以上思路,本發明的實現步驟包括如下:
[0010](1)重加密授權者A根據重加密解密者B的屬性集合SB構造新的訪問結構W', 然后利用訪問結構W'和重加密授權者A的私鑰SKA,生成重加密密鑰RK并發送給重加密 代理Proxy ;
[0011] (2)重加密代理Proxy收到重加密密鑰RK后,驗證重加密密鑰RK的合法性:若合 法,則重加密代理Proxy利用系統公鑰PK、重加密密鑰RK及原始密文CT進行重加密,生成 重加密密文CT',否則,重加密代理Proxy不進行重加密,操作終止;
[0012] (3)原始密文解密者D從原始密文CT中恢復明文消息m,重加密解密者B從重加 密密文CT'中恢復明文消息m:
[0013] 3a)原始密文解密者D使用原始密文解密者D的私鑰SKD通過密文策略屬性基加 密的解密方法從原始密文CT中恢復明文消息m ;
[0014] 3b)重加密解密者B使用重加密解密者B的私鑰SKB通過密文策略屬性基加密的 解密方法恢復出一個解密分量,然后利用該分量從重加密密文CT'中恢復明文消息m。
[0015] 本發明與現有方案相比具有如下優點:
[0016] 第一,本發明可以抵御更強類型的攻擊者。本發明利用雙系統加密的構造思路,基 于合數階雙線性群及三個三素數子群判定假設,修改系統參數生成過程,實現適應性安全 的屬性基代理重加密方法。該方法解決了現有屬性基代理重加密方法中較弱安全模型對攻 擊者的限制問題,使其可以抵御更強類型的攻擊者。且本發明實現適應性安全的同時,并沒 有影響重加密等性質的實現。
[0017] 第二,本發明實現了加密者重加密控制功能。在加密過程中,加密者產生的原始密 文包含分量= 該分量對原始密文解密者的解密過程沒有任何作用,但是卻是重加密 解密者解密過程中必不可少的,從而使加密者可以直接控制重加密解密者能否從重加密密 文中正確解出明文消息,實現加密者的重加密控制。
[0018] 第三,本發明通過增加重加密及解密過程中的乘法運算和指數運算個數,使所需 的雙線性對運算個數下降為常數。由于雙線性對運算在實現效率方面要遠遠低于其它運 算,如指數運算和乘法運算,故與現有屬性基代理重加密方法相比,本方法的計算代價不會 隨著用戶屬性數量的增多而加大。
【專利附圖】
【附圖說明】
[0019] 圖1為本發明的實現流程圖。
【具體實施方式】
[0020] 下面結合附圖對本發明做進一步的描述。
[0021] 參照圖1,本發明的實現步驟如下:
[0022] 步驟1,密鑰生成中心KGC生成系統參數。
[0023] (la)根據實際要求設定本屬性基代理重加密系統安全參數入彡160 ;
[0024] (lb)密鑰生成中心KGC根據設置的系統安全參數入,選取三個互不相等的素數 Pi,P 2和IV計算合數階數N =;再構造一個N階加法循環群G和一個N階乘法循環群 GT,使其滿足雙線性映射e:GXG - GT,即從加法循環群G中任意取兩個元素作為雙線性映 射e的輸入,則其輸出一定是乘法循環群GT中的一個元素;分別構造N階加法循環群G中 階為素數PpP2和P3的子群GPl、,生成系統屬性集合U ;
[0025] (lc)密鑰生成中心KGC選取Pl階子群\的生成元8和 1)3階子群心的生 成元Y3,隨機選取整數私eGPl、n GZN&aGZN,對于系統屬性集合U中的每一個 屬性x隨機選取整數h x e ZN,其中ZN為不超過合數階數N的整數集合,計算分量 //a = ^.,令A =丨",,A e A、,密鑰生成中心KGC生成系統公鑰 PK = b,w,(W)",g*a,彥)和系統主私鑰 MSK= (n,Y3);
[0026] (Id)密鑰生成中心KGC秘密保存系統主私鑰MSK,同時公開系統公鑰PK和其它系 統參數。
[0027] 步驟2,密鑰生成中心KGC生成重加密授權者A的私鑰SKA、原始密文解密者D的 私鑰SKd以及重加密解密者B的私鑰SKb。
[0028] (2a)密鑰生成中心KGC隨機選取整數t G ZN、& e 以及圮e ,對于屬性集合 SA*的每一個屬性x,隨機選取整數計算重加密授權者A的私鑰分量 La =gTA及欠 =":.尺,、.,令彳丨=!人\ |人= ":/?丨,,義,e(7,,、,",已授權者A的私鑰SKa為:SK , = p A ,);
[0029] (2b)密鑰生成中心KGC隨機選取整數t G ZN、〃0 以及私,對于屬性集 合SD中的每一個屬性x,隨機選取整數e ,計算原始密文解密者D的私鑰分量Kd = gqgatRD、LD = gTd及人、="X,.,令t \ ^ 成原始密文解密者D的私鑰SKD為:SKD
[0030] (2c)密鑰生成中心KGC隨機選取整數t G ZN、A 6 以及圮e G,Vi,對于屬性集合 SB中的每一個屬性x,隨機選取整數,計算重加密解密者B的私鑰分量kb=gngatRB、 LB =gtR'B及令克S=^r= 生成重加密 解密者B的私鑰SKB為:SKs
[0031] 步驟3,加密者E通過密文策略屬性基加密方法對明文消息m加密。
[0032] 加密者E通過使用系統公鑰PK和訪問結構W = (M,P )對明文消息m進行加密, 其中M是1行n列的矩陣,P是一個從矩陣M行標集{1,2,…,1}到授權集合P的映射,該 映射將矩陣M的第i行映射到一個屬性,記為P (i),令I = U | P (i) G P,P G W},本步驟 的具體實現如下:
[0033] (3a)加密者EWn維向量空間Z;;中隨機選取一個列向量= Cy2,j'.,,...,>>"),分別計 算得到三個原密文分量C = me (g,g)ns、C' = gs和C" = S ;
[0034] (3b)加密者E對于矩陣M的第i行隨機選取整數ri e ZN,計算得到原密 文分量對= g' if%和D, = ,其中來表不矩陣M的第i行所代表的向量,令 中={(C,.,A)|C,. =fV; e ZV,W e {1,2,...,/}},得到加密者E生成的原始密文CT 為:CT=(C,C,,C",叫)。
[0035] 步驟4,重加密授權者A生成重加密密鑰RK。
[0036] (4a)重加密授權者A隨機選擇一個整數0 G ZN,對階為Pl的子群的生成元g 和隨機數g(1計算得到元分量g e和隨機分量W ;
[0037] (4b)重加密授權者A通過密文策略屬性基加密方法用訪問結構W'對元分量 g 0加密得到部分密文亡,對隨機分量gf計算得到重密鑰分量,并根據私鑰 SK4 =(^4,4尤),生成重加密密鑰RK為:。
[0038] 步驟5,重加密代理Proxy生成重加密密文CT'。
[0039] (5a)重加密代理Proxy收到由重加密授權者A發送的重加密密鑰RK后,檢驗重加 密密鑰RK中的屬性集合S A是否滿足密文CT中的訪問結構W:若滿足,則重加密密鑰RK是 合法的,重加密代理Proxy執行步驟5b)生成重加密密文CT',否則,重加密代理Proxy終 止操作;
[0040] (5b)重加密代理Proxy根據接收到的重加密密鑰RK 和原始密 文CT=(C,C',C",屯),計算重密文分量
【權利要求】
1. 一種重加密可控的高效屬性基代理重加密方法,主要包括如下步驟: (1) 重加密授權者A根據重加密解密者B的屬性集合Sb構造新的訪問結構W',然后 利用訪問結構f和重加密授權者A的私鑰SKa,生成重加密密鑰RK并發送給重加密代理 Proxy; (2) 重加密代理Proxy收到重加密密鑰RK后,驗證重加密密鑰RK的合法性:若合法, 則重加密代理Proxy利用系統公鑰PK、重加密密鑰RK及原始密文CT進行重加密,生成重加 密密文CT',否則,重加密代理Proxy不進行重加密,操作終止; (3) 原始密文解密者D從原始密文CT中恢復明文消息m,重加密解密者B從重加密密 文CT中恢復明文消息m: 3a)原始密文解密者D使用原始密文解密者D的私鑰SKd通過密文策略屬性基加密的 解密方法從原始密文CT中恢復明文消息m; 3b)重加密解密者B使用重加密解密者B的私鑰SKb通過密文策略屬性基加密的解密 方法解密得到一個解密分量,然后利用該解密分量從重加密密文CT'中恢復明文消息m。
2. 根據權利要求1所述的方法,其中所述步驟(1)中重加密授權者A生成重加密密鑰RK,按如下步驟進行: la) 重加密授權者A隨機選擇一個整數βeZn,對子群的生成元g和隨機數g。eGa 計算得到元分量ge和隨機分量gf,其中Zn為不超過合數N的整數集合,合數N=P1P2P3, Pl、P2和P3為密鑰生成中心KGC選取的三個互不相等的素數,&,為N階加法循環群G中階 為P1的子群; lb) 重加密授權者A通過密文策略屬性基加密方法用訪問結構W'對元分量ge加 密得到部分密文再對隨機分量gf計算得到重密鑰分量I; =Kjgf,并根據由密鑰生 成中心KGC生成的重加密授權者A的私鑰SK4 =(?,生成重加密密鑰RK為:RK= (W"("C)。
3. 根據權利要求1所述的方法,其中所述步驟(2)中重加密代理Proxy利用系統公鑰 PK、重加密密鑰RK及原始密文CT生成重加密密文CT',按如下步驟進行: 2a)重加密代理Proxy收到重加密密鑰RK= (5',p /TpL,pf6)之后,檢查重加密密 鑰RK中的屬性集合Sa是否滿足原始密文CT中的訪問結構W= (M,P),其中,原始密文CT=(C,C',C",Ψ)是由加密者E通過密文策略屬性基加密方法對明文消息m加密得 到的,訪問結構W= (M,P),M是1行η列的矩陣,P是一個從矩陣M行標集{1,2,…,1} 到授權集合P的映射,該映射將矩陣M的第i行映射到一個屬性,記為P(i),令I= {i|p(i)ep,peff}; 若滿足,則重加密密鑰RK是合法的,重加密代理Proxy執行步驟2b),否則,重加密代理Proxy不進行重加密,操作終止; 2b)重加密代理Proxy根據接收到的重加密密鑰RK= (5,./T, 乂和原始密文CT =(C,(T,C",ψ),計算重密文分量生成重加密 密文CT,為:CT=(cw'c\C.); 其中,密文分量Ψ= {(?,A)|c, = A= #ZamV/e{1,2,·..,/}},向量4表 示矩陣M的第i行,列向量P= (·s,.v2,.v3,…,.v")是由加密者E從n維向量空間Z;;中隨機選取 的,整數AeZn是由加密者E對于矩陣M的第i行隨機選取,ωieZn是恢復系數。
4. 根據權利要求1所述的方法,其中所述步驟3a)中原始密文解密者D使用私鑰 SKp=(?,&,心,^)恢復明文消息m,是通過密文策略屬性基加密的解密方法,利用公式 歷=〇/4_0.6.,:,々少(^,人。)^/^.;)從原始密文(^=((:,(:',(:",屯)中恢復出明文消 /iel iel 息m,其中,GJieZn是恢復系數,SKd是由密鑰生成中心KGC生成的原始密文解密者D的私 鑰。
5. 根據權利要求1所述的方法,其中所述步驟3b)中重加密解密者B使用私鑰SKb恢 復明文消息m,是先通過密文策略屬性基加密的解密方法從部分密文^中恢復出元分量ge, 然后,通過公式m=Ce(C",ge)/Ct從重加密密文CT' = (C_\C'C",之C,)中恢復出明文消息m,其中SKb是由密鑰生成中心KGC生成的重加密解密者B的私鑰。
【文檔編號】H04L29/06GK104320393SQ201410578147
【公開日】2015年1月28日 申請日期:2014年10月24日 優先權日:2014年10月24日
【發明者】龐遼軍, 楊潔 申請人:西安電子科技大學