梁林
(安徽農(nóng)業(yè)大學 經(jīng)濟技術(shù)學院,安徽 合肥 230011)
一種新的基于身份的代理盲簽名方案
梁林
(安徽農(nóng)業(yè)大學 經(jīng)濟技術(shù)學院,安徽 合肥 230011)
研究一個簽名方案,指出該方案的代理密鑰生成階段存在安全隱患,不法者可以偽造原始簽名者的簽名或授權(quán).本文為克服這一困難,先根據(jù)橢圓曲線上的雙線性對的特性,再通過增加盲因子的方法,設(shè)計了一個更安全可靠的基于身份的代理盲簽名方案.
代理盲簽名;雙線性對;基于身份;安全性
盲簽名[1]的概念是Chaum在1983年時第一次提出,M. Mambo在1996年提出了代理簽名[2]的概念.將代理簽名與盲簽名相結(jié)合形成了代理盲簽名[3].因為傳統(tǒng)的公鑰密碼體制是在公鑰結(jié)構(gòu)證書PKI的基礎(chǔ)上來形成的,而在證書的管理過程中,尤其是在密鑰的管理上,是需要花費很高的計算成本和存儲消費的.為了簡化傳統(tǒng)公鑰密碼體制,減少開支,1984年Shamir提出了一種新思想,基于身份的密碼系統(tǒng)[4].基于身份的密碼體制的優(yōu)越性在于,它不需要保存用戶的公鑰證書,用戶的公鑰是可以根據(jù)自己的身份信息直接計算出來的,而私鑰則是由可信中心來統(tǒng)一生成得到.在基于身份的密碼體制的基礎(chǔ)上,人們又利用橢圓曲線的雙線性對,構(gòu)造出基于身份的代理盲簽名方案,基于身份的密碼體制已經(jīng)成為密碼學的一個新研究熱點.
文獻[5]就是通過利用橢圓曲線上的雙線性對,構(gòu)建了一個基于身份的代理盲簽名方案.但分析后發(fā)現(xiàn),在方案的代理密鑰生成階段卻存在著安全隱患,不法者可以偽造原始簽名者的簽名或授權(quán).為克服這一困難,本文利用計算離散對數(shù)的困難性,根據(jù)橢圓曲線上的雙線性對所具有的特殊性質(zhì),設(shè)計了一個安全可靠的基于身份的代理盲簽名方案.
設(shè)G1、G2是循環(huán)群,q為它們的階(q是一個大素數(shù)).G1是加法循環(huán)群,G2是乘法循環(huán)群,設(shè)e:G1×G1→G2是一個雙線性映射,它滿足下面三個性質(zhì):
(1)雙線性:?P,Q∈G1,a,b∈Zq,e(aP,bQ)=e(P,Q)ab;
(2)非退化性:存在P,Q∈G1,使得e(P,Q)不等于G2的單位元;
(3)可計算性:對任意P,Q∈G1存在有效的算法計算e (P,Q).
在雙線性對中存在以下幾個數(shù)學難題:
(1)DLP(Discrete Logarithm Problem):設(shè)P,Q∈G1求解n∈Zq*,使得Q=nP.
(2)CDHP(Computational Diffie-Hellman Problem):設(shè)P∈G1,a,b∈Zq*,給定P,aPO,bP,計算abP.
(3)DDHP(Decision Diffie-Hellman Problem):設(shè) P∈G1,a,b,c∈Zq*,給定P,aP,bP,cP,判定c≡abmodq.是否成立.
(4)GDHP(Gap Diffie-Hellman Problem):在循環(huán)群G1中,DDHP是易解的,即在多項式內(nèi)DDHP是容易求解的;而CDHP卻是比較復雜的,目前還沒有可行的算法來求解CDHP.此時稱循環(huán)群G1為GDH群.
3.1 系統(tǒng)參數(shù)設(shè)置
設(shè)G1、G2是循環(huán)群,q為它們的階(q是一個大素數(shù)).G1是加法循環(huán)群,G2是乘法循環(huán)群.
HGC首先選擇P∈G1,設(shè)e:G1×G1→G2為一個雙線性映射.定義密碼學上3個Hash函數(shù):H1(·):{0,1}*→G1,H2(·): {0,1}*×G2→Zq*,H3(·):G1→Zq*,然后KGC再選擇t∈RZq*,計算Ppub=tP,其中t保密存儲,稱為系統(tǒng)主密鑰.
公開系統(tǒng)參數(shù):params={G1,G2,w,q,P.Ppub,H1(·),H2(·),H3(·)}.
方案參與者分別為:原始簽名者A,代理簽名者B和盲簽名的持有者C.
3.2 密鑰提取
A與B先將自己的身份信息IDA,IDB提交給KGC,然后由KGC計算他們的公鑰/密鑰對,分別為PKA=H1(IDA),SKA=tPKA,PKB=H1(IDB),SKB=tPKB.最后,再將這些信息安全地發(fā)送給A與B.
3.3 代理密鑰生成
先由原始簽名者A創(chuàng)建一個許可證W,主要包括參與者的身份信息,代理期限,簽名文件的范圍等.
3.3.1 原始簽名者A計算:
然后將(W,SW)發(fā)送給代理簽名者B.
3.3.2 代理簽名者B計算并驗證:
是否成立.如果是成立的,可以計算得到代理簽名密鑰:
3.4 代理簽名生成
3.4.1 代理簽名者B選擇P1∈G1,計算K=e(P1,P),然后將(K, W)發(fā)送給盲簽名的持有者C.
3.4.2 盲簽名的持有者C選擇P2=∈G1,b∈RZq*,計算
然后將c發(fā)送給代理簽名者B.
3.4.3 代理簽名者B計算S=cSp+P1,然后將S發(fā)送給盲簽名的持有者C.
3.4.4 盲簽名的持有者C計算S'=S+P2,c'=c-b,
則σ(m)=(S',c',m,W)為消息m的基于身份的代理盲簽名.
3.4.5 簽名驗證驗證下式
是否成立.若成立,說明簽名σ(m)=(S',c,m,W)是有效性的.若不成立,則什么簽名是無效的.
4.1 文獻[5]方案安全性分析
在文獻[5]描述的代理密鑰生成過程中,由A先計算一個短簽名SW=H3(H1(W))SKA,然后再將(W,SW)發(fā)送給B.在這個過程中,由于W,H1,H3是公開已知的,因此B是可以計算出H3(H1(W))∈Zq*,并且B又已知SW∈G1,所以可以容易計算出SKA∈G1.也就是說,B是能夠計算出H3(H1(W))∈Zq*的逆運算H3(H1(W))-1∈Zq*,進而可以計算出H3(H1(W))-1SW=H3(H1(W))-1H3(H1(W))SKA=SKA,也就是說A的授權(quán)或簽名是可以偽造的.因此,在文獻[]描述的簽名方案中存在著安全問題.
4.2 方案設(shè)計描述
為了克服文獻[5]中的安全問題,設(shè)計了下面的新方案:
4.2.1 系統(tǒng)參數(shù)設(shè)置
本文系統(tǒng)參數(shù)設(shè)置與文獻[5]系統(tǒng)參數(shù)設(shè)置基本相同,但需要將第三個哈希函數(shù)進行更改,由原來的H3(·)G1→Zq*改成H3(·):{0,1}*→Zq*.
4.2.2 密鑰提取
A與B先將自己的身份信息IDA,IDB提交給KGC,然后由KGC計算他們的公鑰/密鑰對,分別為PKA=H1(IDA),SKA=tpKA,PKB=H1(IDB),SKB=tpKB.最后,再將這些信息安全地發(fā)送給A與B.
4.3 代理密鑰生成
A首先需要創(chuàng)建一個授權(quán)證書W,其中應(yīng)該包括A和B的身份信息、授權(quán)關(guān)系以及授權(quán)使用權(quán)限等內(nèi)容.
4.3.1 A隨機選擇rA∈RZq*,再計算
然后將(W,SW,RA)發(fā)送給B.
4.3.2 B收到(W,SW,RA)后驗證
若上式成立,計算得到代理簽名者B的代理盲簽名密鑰:
4.4 代理簽名生成
4.4.1 B隨機選擇P1∈G1,計算
然后將(K,W,RA)發(fā)送給C.
4.4.2 C隨機選擇P2∈G1,b∈RZq*,計算
然后將c發(fā)送給B.
4.4.3 B收到c后,計算
再將S發(fā)送給C.
4.4.4 C接收到S后,計算
則σ(m)=(S',c',m,W,RA)為消息m的基于身份的代理盲簽名.
4.4.5 簽名驗證
在獲得消息m的簽名σ(m)=(S',c',m,W,RA)后,驗證者就可以通過下式
對簽名進行驗證,驗證其是否有效.
4.3 安全性分析
4.3.1 可驗證性
從代理簽名σ(m)=(S',c',m,W,RA)的生成過程來分析,我們可以計算
所以,代理簽名是可驗證的.
4.3.2 不可偽造性
因為由KGC保存著主密鑰t,要通過Ppub=tp得到t,也就是破解DLP,而DLP是在目前是無法破解的.所以,沒有B的密鑰(P1,SKB)和代理密鑰Sp,他的簽名是無法偽造的.
4.3.3 盲性
C將信息m盲化c成是通過以下兩個步驟來實現(xiàn)的:
(1)C隨機選擇P2∈G1,b∈RZq*,計算
(2)C再利用b對消息m進行盲化:
顯然,在不知道P2,b的情況下,B是無法通過上面式子獲得c與m之間的聯(lián)系的.所以方案符合盲性要求.
4.3.4 不可否認性
因為B在建立代理盲簽名時已經(jīng)將他自己的身份信息嵌在代理密鑰中,所以代理盲簽名一旦生成,他就不能向A否認.
4.3.5 可區(qū)分性
簽名驗證時,由于授權(quán)證書W,PKA,PKB都是需要使用的,所以代理盲簽名與一般的簽名是可以區(qū)分的.
4.4 性能分析
本文主要從方案的計算復雜性方面來分析,并與參考文獻[5]進行比較:
表4.1 本文方案與文獻[5]方案的計算復雜性比較
表中Pa表示雙線性對操作,Pm表示G1上的標量乘法,Ad表示G1上的點加操作,ExG2表示G2上的指數(shù)運算,MuG2表示G2上的標量乘法,Hs表示哈希函數(shù).計算過程中,Pa的計算是最耗時的,其次是Pm.另外考慮到雙線性對e((PKA+ PKB),Ppub)可進行預計算,因此計算復雜性暫時不考慮.
所以,從表4.1可以得到,文獻[5]方案的計算復雜度大約是4Pa+3Pm數(shù)量級,本文方案的計算復雜度大約是6Pa+ 3Pm數(shù)量級,在代理密鑰生成階段和簽名驗證階段各增加了1Pa,代理簽名階段的計算復雜度沒變.所以本文方案比文獻[5]方案的計算復雜度略高些.
再將本文方案與其他方案從計算復雜性方面進行分析,結(jié)果如下:
表4.2 本文方案與其他方案的計算復雜性比較
從表4.2可以得到,文獻[6]方案和文獻[7]方案的計算復雜度分別大約是7Pa+7Pm數(shù)量級和3Pa+8Pm數(shù)量級,而本文方案的計算復雜度大約是6Pa+3Pm數(shù)量級.很明顯,本文方案的計算復雜度比這兩個方案的計算復雜度都低.
綜上所述,為克服文獻[5]方案中代理密鑰生成階段存在的安全隱患,本文通過增加盲因子的方法,構(gòu)建了一個新的基于身份的代理盲簽名方案.增加盲因子可以有效地提高代理密鑰的安全性,以此來保證方案的安全性.因為在代理密鑰生成過程中增加盲因子了,所以計算復雜度就要比文獻[5]方案要略高些,但與其他一些方案相比,計算復雜度依然還是較低的.
〔1〕Chaum D.Blind signatures for untraceable payments[C] //Proc of Advances in Cryptology Crypto.New York: Springer-Verlag,1982:199-203.
〔2〕Mambo M,Usdua K,Okamoto E.Proxy signatures: Delegation of the power to sign message[J].IEICE Trans on Functional,1996,E79-A(9):1338-1354.
〔3〕Lin W D,Jan J K.A security personal learning tools using a proxy blind signature scheme[C].Proceedings of International Conference on Chinese Language Computing.USA:Chinese Language Computer Society Knowledge Systems Insitute,2000,273-277.
〔4〕Shamir A.Identity-based cryptosystems and signature schemes[A].Blakley G R,Chaum D.Advancesin Cryptologu:CRYPTO1982[C].Berlin:Springer,1984,47-53.
〔5〕陳玲玲,亢保元,張磊.一種高效的基于身份的代理盲簽名方案,華東交通大學學報,2008,25(1):113-116.
〔6〕Dong Z,Zheng H,Chen K F,et al ID-based proxy blind signature[A].Proceedings of the 18tn International Conferences on Advanced Information Networking and Applications (AINA 2004)[C].Los Alamippos:IEEE Computer Society,2004.380-383.
〔7〕Lang W M,Tan Y M,Yang Z K,et al.A new efficient ID-based proxy blind signature scheme[A].Proceedings of the Ninth Internations(ISCC 2004)[C].Los Alamippos:IEEE Computer Society,2004.407-411.
TP309
A
1673-260X(2017)02-0022-03
2016-09-07
安徽省質(zhì)量工程(2014jyxm666)