可撤銷兩個屬性的密鑰策略的屬性加密方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于信息安全技術(shù)領(lǐng)域,具體涉及一種可撤銷兩個屬性的密鑰策略的屬性 加密方法。
【背景技術(shù)】
[0002] 隨著早期的模糊的基于身份加密方法的出現(xiàn),基于屬性密碼學(xué)進入人類視線。在 現(xiàn)實中,用戶不僅僅擁有唯一的公鑰或者是身份,取而代之的是用戶對應(yīng)的屬性,比如說姓 名、年齡、部門等,從而擴寬基于屬性密碼系統(tǒng)的應(yīng)用領(lǐng)域,引起了研究人員的關(guān)注。
[0003] 針對多用戶下的屬性撤銷機制,已存在的文章大多是直接撤銷該屬性下的用戶, 使得用戶不再具備任何性質(zhì),但是實際中用戶可能僅僅需要撤銷某個屬性,而不影響該用 戶其他屬性,保證用戶仍具有一定的加解密性質(zhì)。因此建立多用戶下的單個屬性的撤銷技 術(shù),令撤銷列表內(nèi)包含的是撤銷單個屬性的用戶集合,它不影響用戶的其他屬性,當(dāng)用戶撤 銷后屬性集仍滿足訪問結(jié)構(gòu)時,用戶仍然就有解密能力。這樣的有著細(xì)粒度可撤銷的屬性 加密方法是非常必要的。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的是提供一種可撤銷兩個屬性的密鑰策略的屬性加密方法,解決了現(xiàn) 有技術(shù)中存在的加密方法不能撤銷用戶單個屬性的問題。
[0005] 本發(fā)明所采用的技術(shù)方案是,可撤銷兩個屬性的密鑰策略的屬性加密方法,具體 按照以下步驟實施:
[0006]步驟1、系統(tǒng)參數(shù)初始化;
[0007] 步驟2、密鑰生成;
[0008] 步驟3、加密;
[0009] 步驟4、解密;
[0010] 步驟5、追足示。
[0011] 本發(fā)明的特點還在于,
[0012] 步驟1的過程為設(shè)針對兩個屬性i和屬性j構(gòu)建撤銷列表民和Rj,撤銷列表民 表示撤銷屬性i的所有用戶,記為A=彳〃/Di,/:_h撤銷列表&表示撤銷了屬性j的用 戶,記為iV=PDp,.…丨,其中允許q乒q'即每個撤銷列表中的撤銷用戶數(shù)目不等, 用戶在任意一個撤銷列表中,或者同時存在于兩個撤銷列表中,即允許用戶同時撤銷了屬 性i和屬性j,令U表示系統(tǒng)中所有用戶集,設(shè)系統(tǒng)中屬性個數(shù)是m,用戶在加密時的屬性集 …,叫,撤銷列表中用戶的最大個數(shù)是n,消息為>1,訪問策略通過線性秘密共享技 術(shù)LSSS轉(zhuǎn)換為訪問策略(M,P),具體按照以下步驟實施:
[0013] 步驟(1. 1)、令匕和G2是階為素數(shù)p的群,其中g(shù)是G:的生成元,定義雙線性映射 eiGiXG^G2;
[0014] 步驟(1. 2)、隨機選擇 a G Zp,這里 Zp= {0, 1,…,p_l},
,然后隨機選取 It。, i G Gi,i G Gi,t2, i G Gi,t3,i e Gi | i,并定義四個函數(shù)!;(x):Zp- Gi,其中 k = {0, 1,2, 3},有
[0015] 步驟(1. 3)、構(gòu)造主私鑰以及相應(yīng)的公共參數(shù)只P :
[0016]
[0017]
[0018] 步驟2的過程為將訪問策略通過線性秘密共享技術(shù)LSSS轉(zhuǎn)換為訪問結(jié)構(gòu)(M,P ), 生成用戶ID在訪問結(jié)構(gòu)(M,P)下的私鑰,具體按照以下步驟實施:
[0019] 步驟(2. 1)、將訪問策略通過LSSS轉(zhuǎn)換為訪問結(jié)構(gòu)(M,P ),矩陣M是一個lXk的 矩陣,Mi是矩陣M相應(yīng)的第i行,映射P將M i映射到屬性P⑴G [1,m];
[0020] 步驟(2. 2)、首先根據(jù)輸入的身份ID G Zp定義向量X = (x i,…,xn)T滿 足 ID 1 iod p,i = {1,…,n},隨機選取{Zi,。}; E {2,..、k},{zuh E {v.、k},{zii2} i E a...,k},{zyh E {2,...,k}G Z p和 r G Z p,定義向量 v〇 - + w、zA-〇) r,向量 Vi =(Q- + /-Q1,Z24,---,Z/fl)1,以及向量V2+ ,…,Zfr,2)r和向量V3 =(?,Z2,3,…,Zy)1, 這里k是矩陣M的列數(shù),對于任意i G {1,…,1}和j = {〇,l,2,3},計算相應(yīng)的內(nèi)積
[0021] 步驟(2. 3)、隨機選擇{ri,。}; E ⑴,{ruh E ⑴,{rji E ⑴,{d E [:1]G Z p,從而輸 出ID在(M,P )下的私鑰:
[0030]將廣^#)借助矩陣Mx記為i^1) = (Af,…,坨1)) = gr.wI-.5 ,[卜(Af 其中矩陣Mxe (Zp)nX(nl)的具體結(jié)構(gòu)是:
[0031]
[0032] 步驟3的過程為針對屬性i的用戶撤銷列表民(|民| <n)和屬性j的用戶撤銷列表 &(|&|〈]1),其中;[,_]_£?,在屬性集《下對消息_ /4<1進行加密,具體按照以下步驟實施:
[0033] 步驟(3. 1)、根據(jù)撤銷列表民內(nèi)的撤銷用戶集定義Y1= (yiil,…,yi,n)T作為dl 式的系數(shù)向量;
[0034] 步驟(3.2)、根據(jù)撤銷列表R,內(nèi)的撤銷用戶定義Y,=(yu,…,y],n)T,并將Y,= (yu,…,y]n)T作為盡[Z]式的系數(shù)向量;
[0035]步驟(3. 3)、選取隨機值s G Zp,在屬性集《下,針對包含i屬性的用戶撤銷列表 民和包含j屬性的用戶撤銷列表Ri構(gòu)造密文:
[0046] 步驟4的過程為設(shè)用戶ID在訪問結(jié)構(gòu)(M,P)下形成的私鑰sk,以及在屬性集《 下加密的密文ct和用戶的撤銷列表民和Rj,需要判定ID是否在撤銷列表民和R^中,具體 按照以下步驟實施:
[0047]步驟(4. 1)、如果/D茫六5, a/DgA',則令《'= ?;
[0048]如果/D g/?,a/£)e心,則《,= ?-{j};
[0049] 如果想《4八沿(馬則=?-{i};
[0050] 如果IDG民八IDGR〗,則《,= ?-{i}-{j};
[0051] 步驟(4. 2)、當(dāng)且僅當(dāng)屬性集滿足用戶的私鑰中的訪問結(jié)構(gòu)(M,P)時,用戶 才能成功解密,結(jié)合祅 過程如下:
[0052] 如果仍運斤,a/Z)g,首先根據(jù)ID定義X= (1,ID,…,IDn丨廣二(x丨,…,xn)T,根 據(jù)撤銷列表民定義Y1=(y^,…,ylin)T作為& [Z]式的系數(shù)向量,以及撤銷列表&定義Yj =(yu,…,yjin)T作為式的系數(shù)向量,計算: * \
.卜1j
[0055] 當(dāng)〈X,Y,乒 0和〈X,Y,乒 0時,即//)飪/?,A/Dg':,有:
[0056]
[0057] 令I(lǐng)={i: P (i)G? ' },則根據(jù)已知的矩陣M,在概率多項式時間內(nèi)找出常數(shù)集 {y#Z丄~,滿足 *M:= (1.0,…,0),計筧:
[0058]
[0059]結(jié)合t。的值,計算1=£^,§廣,已知c=_M*e(g,gr,利用除法運算,能夠成功 解密出消息乂 g)''':
[0062]令I(lǐng)= {i:P⑴G? ' },存在常數(shù)集{yiGZp}lEI,滿足 2iEliii,= (1,〇,…,0),從而計算:
[0060]
[0061]
[0063]
[0064] 得到4 = <g,g)M,結(jié)合C,可以成功解密出対 Tj
[0065] 如果 /0e孕a/Dg,有:
[0066]
[0067]令I(lǐng)= {i:P(i)G? ' },存在常數(shù)集{yiGZp}lEI,滿足 2iEliii,= (1,〇,…,0),從而計算:
[0068]
[0069] 得到廣,結(jié)合C,可以成功解密出義, t2
[0070] 如果IDG民八IDGR』,令I(lǐng)= {i:p⑴G?,},存在常數(shù)集{>#Zp}lEI, 滿足5:^11^^=(1,0,~,0),從而計算 :
[0071]
C
[0072] 結(jié)合C,通過一=-成功解密出財。 少3
[0073] 步驟5具體為:
[0074] 令s/c=(Arq:,A;,D:H,D:.」,D,D],D;.,A、1,Af)是一個有效的解密密鑰, 則追蹤計算:
[0079] 該追蹤是用于判定是否存在一個用戶IDGU= {取,…,IDk},使得=為,其 中i= {1,2},若存在這樣的用戶,則說明該用戶與私鑰是相關(guān)的,反之,則該用戶與私鑰無 關(guān),從而獲取了方案中的用戶責(zé)任。
[0080] 本發(fā)明的有益效果是,可撤銷兩個屬性的密鑰策略的屬性加密方法,撤銷用戶的 某一屬性并不會影響該用戶的其他屬性以及擁有該屬性的其他用戶;同時針對兩個屬性的 撤銷過程更符合實際需求;采用追蹤算法判定了解密過程中用戶與用戶私鑰的關(guān)聯(lián)性;最 后將攻擊方案的安全性規(guī)約到DBDHE問題上,保證了方法的安全性。
【具體實施方式】
[0081] 下面結(jié)合【具體實施方式】對本發(fā)明進行詳細(xì)說明。
[0082] 本發(fā)明可撤銷兩個屬性的密鑰策略的屬性加密方法,具體按照以下步驟實施:
[0083] 步驟1、系統(tǒng)參數(shù)初始化:
[0084] 過程為設(shè)針對兩個屬性i和屬性j構(gòu)建撤銷列表民和Ri,撤銷列表民表示撤 銷屬性i的所有用戶,記為A= ,撤銷列表&表示撤銷了屬性j的用戶, 記為…?,其中允許'即每個撤銷列表中的撤銷用戶數(shù)目不等,用 戶在任意一個撤銷列表中,或者同時存在于兩個撤銷列表中,即允許用戶同時撤銷了屬性i和屬性j,令U表示系統(tǒng)中所有用戶集,設(shè)系統(tǒng)中屬性個數(shù)是m,用戶在加密時的屬性集 ?,叫,撤銷列表中用戶的最大個數(shù)是n,消息為對,訪問策略通過線性秘密共享技 術(shù)LSSS轉(zhuǎn)換為訪問策略(M,P),具體按照以下步驟實施:
[0085] 步驟(1. 1)、令匕和G2是階為素數(shù)p的群,其中g(shù)是G屈生成元,定義雙線性映射 eiGiXG^G2;
[0086] 步驟(1.2)、隨機擇aG心這里&= {〇, 1,…,p-1},S= (〇!,a2,…,乂恥叫4,...,式)TeZ;;,令 M= ,然后隨機選取{tvGGi ,1:1,#61,1:2,#61,1:3,#6丄=。,1,...,|11},并定義四個函數(shù)?1-(1):2/)4〇1,:其中1^={〇,1,2,3},
[0087] 步驟(1. 3)、構(gòu)造主私鑰人1S/C以及相應(yīng)的公共參數(shù)7少:[0088]
[0089]
[0090] 步驟2、密鑰生成:
[0091] 將訪問策略通過LSSS轉(zhuǎn)換為訪問結(jié)構(gòu)(M,P),生成用戶ID在訪問結(jié)構(gòu)(M,P)下 的私鑰,具體按照以下步驟實施:
[0092] 步驟(2. 1)、將訪問策略通過LSSS轉(zhuǎn)換為訪問結(jié)構(gòu)(M,P),矩陣M是一個lXk的 矩陣,Mi是矩陣M相應(yīng)的第i行,映射P將Mi映射到屬性P⑴G[1,m],
[0093] 步驟(2. 2)、首先根據(jù)輸入的身份IDGZp定義向量X=(x:,…,xn)T滿 足ID1iodp,i= {1,…,n},隨機選取{Zi,。};E{2,..、k},{zuhE{v.、k},{zii2} Kfv'k},{zuhquGZ>rGZp,定義向量物+ + ,…,zA-,0)T, 向量衍=_ + ?%..,zw'Zu)1,以及向量 為=(?:+嘴.,22>2,..、氣2);1和向量 V3 =_(:a,zto,.…,,:這里k是矩陣M的列數(shù),對于任意iG{1,…,1}和j= {〇, 1,2, 3}, 計算相應(yīng)的內(nèi)積人』
[0094]步驟(2. 3)、隨機選擇{ri,。};E⑴,{ruhE⑴,{rjiE⑴,{dE[:1]GZp,從而輸 出ID在(M,P)下的私鑰:
[0103] 將人1),<2)借助矩