史 妍, 潘 偉, 陳偉昌
(東北師范大學 理想信息技術研究院,吉林 長春 130117)
第一個代理簽密方案是在1999年由Gamage等人提出的[1],代理簽密是將代理簽名和簽密兩項功能結合起來, 簽密者將簽密的權力授予另一人,稱為代理簽密人,然后代理簽密人代替原簽密人對文件進行簽密工作。
基于屬性的加密方案于2006年由Goyal等人提出[2],被加密的數(shù)據(jù)可以在具有特定屬性的一個群組中達到共享。隨后,在文獻[3]中,作者提出了基于屬性的簽名方案,使得具有特定屬性的群組中的任意一人可以對具有某種屬性的文件進行簽名。
在此基礎上,定義了一個基于屬性的代理簽密方案,使得某個群組中的任意一員可以授權給代理簽密人去簽密一個具有特定屬性的文件,簽密后的文件可在具有特定屬性的群組中進行共享[6]。
令 G1和 G2為兩個素階群,階為p,令 G1的生成元為g。定義滿足如下特性的雙線性映射 e :G1× G1→ G2:①雙線性性:對任意 a ,b ∈及生成元 g ∈,e(ga,gb)→ e (g,g)ab;②非退化性:對任意的生成元 g ∈G1,e(g,g)≠ 1 ;③可計算性:對所有的生成元 g ∈G1,可以在多項式時間內(nèi)計算e(g,g)。
代理簽密方案基于如下BDH假設:
設 G1為素階群,生成元為g,雙線性映射 e :G1×G1→G2,< G1,G1,e>上的 BDH假設則為:對于任意的a,b,c ∈Zp,不存在算法B,在多項式時間內(nèi)以不可忽略的優(yōu)勢來區(qū)分元組(A = ga,B = gb,C = gc,e(g,g )abc)和元組(A = ga,B = gb,C = gc,e(g,g )z)。
現(xiàn)代理簽密算法中用到了拉格朗日插值法,用來為訪問控制樹中的每個結點構造多項式。
定理:對于次數(shù)為n多項式 f,給定 f上的 n + 1 個點(xi, f(xi))(i = 1,2,… ,n +1),能夠唯一的確定一個多項式
Goyal等人在文章中提出了“訪問控制樹”的概念[2],現(xiàn)所述代理簽密算法也是基于這種訪問控制樹結構。將被簽密的文件用一個特定屬性集來標識,簽密者與解簽密者的私鑰由訪問控制樹來定義。訪問控制樹的葉結點代表某個特定屬性,每個非葉結點都為閾門。對簽密者來說,當且僅當他的訪問控制樹被文件屬性集滿足時,可簽密文件;對解簽密者而言,當且僅當他的訪問控制樹被文件屬性集滿足時,可解簽密文件。
①將非葉結點x定義為閾門,由它的子結點和閾值來描述。定義 n umx為x的子結點數(shù)量; kx為x的閾值,則有0 ? kx≤ n umx。對于每個葉結點x, kx= 1 ,它代表屬性集中的某個特定屬性;
②定義3個函數(shù):parent(x)代表結點x的父結點;a tt (x)表示x代表的屬性,當且僅當x為葉結點;index(x)代表結點x的值,可以任意賦予,對每個密鑰來說值唯一;
③訪問控制樹被滿足。記以r為根結點的樹為 Tr,其根結點為x的子樹為 Tx;γ為屬性集。
定義遞歸布爾函數(shù) Tx(γ),當且僅當 Tx被γ滿足時,有Tx(γ) = 1 。對于非葉結點x,對其所有子結點y計算 Ty(γ),當且僅當至少有 kx個孩子返回1時,有 Tx(γ) = 1 ,即x結點被滿足;對于葉結點x,當且僅當 a tt(x)∈γ,即該結點所代表的屬性在文件屬性集中時,有 Tx(γ) = 1 ,x結點被滿足。
基于屬性的代理簽名方案包含如下5個算法:
①由 PKG完成,系統(tǒng)初始化算法。輸入安全參數(shù),輸出主密鑰MK和公鑰PK;
②密鑰生成算法。輸入主密鑰MK和公鑰PK,及訪問控制樹結構T,輸出群組的私鑰,當且僅當 T (γ) = 1 時,可簽密或解簽密屬性集為γ的文件。算法運算過程如下:
a. 對T中的每個結點x,從根結點開始自頂向下的為每一個結點定義多項式 qx,其次數(shù)為 dx= kx- 1 。對根結點r有 qr(0)= y,為定義 qr,隨機設置其余 dr個子結點的點值;對非根結點x,設置 qx(0) = qparent(x)(index(x )),隨機設置其余 dx個子結點的點值。
③代理簽密密鑰生成算法。A向 PKG請求一個許可證mw來說明A和代理人P之間的授權關系、所授權限及使用期限等內(nèi)容。其中,A將所授權限從其訪問控制樹中提取出來,以子樹的形式存儲在 mw中。A將 mw簽名后發(fā)送給P,P驗證簽名,若成立則向 PKG請求自己私鑰并生成代理簽密密鑰。因此,此算法以許可證 mw,原始簽密者私鑰 DA,代理簽密者私鑰 DP為輸入,輸出代理簽密密鑰D或⊥(簽名驗證失敗);
④簽密算法。輸入文件的屬性集γ,明文M和公鑰PK,由代理簽密密鑰D進行簽密,輸出密文 C =(E,σ,S,mw);
⑤解簽密算法。輸入公鑰PK,解簽密密鑰D和密文C,接收者進行解密并進行簽名驗證,解簽密成功輸出明文M,解簽密失敗輸出⊥。
(1)定義相關變量
定義 G1, G2為雙線性素階群,階為p,g為 G1的生成元,雙線性映射 e :G1× G1→ G2;定義兩個哈希函數(shù):{0,1}n→ ,其中n為明文消息M的長度;定義拉格朗日系數(shù)i∈Zp,S?Zp,其中S為Zp的子集。
令A為群組1的一個成員,有簽密文件的權限;P為代理簽密者;B為群組2的一個成員,將解簽密文件。
(2)方案如下:
①系統(tǒng)初始化算法:
定義全局屬性集 U = { 1,2,… ,n },在集合 Zp上為每個屬性i∈U均勻隨機地選擇一個元素ti;在集合Zp上均勻隨機地選擇一個元素y。MK為:
②密鑰生成算法: (M K,P K,T)?D。
令T為一成員的訪問控制樹,其私鑰為: D = { DX=|i = att(x)};
③代理簽密密鑰生成算法:(M K,P K,TP)?DP, (mw,DA, DP)?D。
A對 mw進行簽名:發(fā)送給P。
④簽密算法: (γ,M ,P K,DP,D ) ? C 。
令γ為預簽密文件的所具有屬性的集合,P隨機均勻的從pZ中選擇數(shù)x作為自己的私有數(shù)值。簽密過程如下:
④ k ← e (g,g )xy⑤ E ← H2(k ) ⊕M
⑥ C ←(E,σ,S,mw);
⑤解簽密算法: (P K,DB,C) ? M/⊥ ,
解密: e (DB,σ) = e(g,g )xy? M ,r ,
驗證: h = H1(mw),當且僅當 e (S,Ti) = (e(g,g )xy)r(e(g,g )y)h(e(g,g )y)h時,簽名正確,輸出M;否則輸出⊥。
(1)正確性
在文獻[2]中定義了遞歸算法 V erNode(E,D,x),可將該算法針對該方案稍做修改即有 e (DB,σ) = e (g,g )xy,從而可得 M ,r。同理可證明簽名驗證的正確性。具體計算過程請參見文獻[2]和文獻[5]。
(2)保密性
在文獻[4]中,提出如下假設并給出基于該假設的證明方法:已知 P ,Q ∈ G ,R = sP,計算sQ是困難的。在該方案中,。該保密性證明問題可等價為已知,顯然,基于上述假設,求 Qx= e (g,g)xy是困難的,因此,該方案滿足保密性。
(3)強不可偽造性
(4)公開驗證性
將(S,r,k =e(g,g )xy,提交給第三方,驗證等式成立與否。整個驗證過程中,無需訪問明文M,也無需接收者B的密鑰,在保密的基礎上可進行公開驗證。
(5)強可識別性
簽密文件中有原始簽密人A的授權許可證wm , 則任何人都可以從wm 中來確定代理簽密人的身份。
(6)強不可否認性
驗證簽名的等式中包含授權許可證wm ,因此代理簽密人一旦簽密了文件,便不可否認。
主要提出了一個基于屬性的代理簽密方案,并對其安全性進行了分析。該方案可滿足公開驗證性、強可識別性和強不可否認性,但不滿足前向安全性。這將作為下一步的工作。
[1] MAMBO M, USUDA K, OKAMOTO E. Proxy Signature: Delegation of the Power to Sign Messages[J]. IEICE Trans. Fundamentals,1996(E79-A):1338-1353.
[2] GOYAL V, PANDEYY O, SAHAIZ A. Attribute-based Encryption for Fine-grained Access Control of Encrypted Data[C]. USA: ACM Press, 2006:89-98
[3] GUO S Q, ZENG Y P. Attribute-based Signature Scheme[C]. USA:IEEE Computer Society, 2008:509-511.
[4] FLORIAN Hess. Efficient Identity Based Signature Schemes Based on Pairings [C]. Berlin/Heidelberg: Springer, 2003:310-324.
[5] 史妍,潘偉,鐘紹春.基于屬性的簽密方案[J].信息安全與通信保密,2009(09):129-131.
[6] 張慧.一種代理簽名方案的分析與改進[J].信息安全與通信保密,2009(11):74-76.