王玉奇,李 浪,鄒 祎
(衡陽師范學(xué)院 計算機科學(xué)系,湖南 衡陽 421008)
1996年Mambo[1]等人提出了代理簽名的概念,代理簽名就是原始簽名者可以授權(quán)給指定的代理簽名者代替其進行有效的簽名。人們提出了各種代理簽名方案,基于離散對數(shù)和素因子分解的代理數(shù)字簽名方案[2-3]不段出現(xiàn)。2008年楊[4]等人給出了基于橢圓曲線離散對數(shù)的代理方案。但該方案存在原始簽名者的偽造問題及需要安全信道問題。本文對楊等人的方案采取構(gòu)造法證明該方案存在的問題。為解決其問題,給出一種改進方案,并對新放方案進行安全分析。
楊方案包括系統(tǒng)參數(shù)初始化、代理委托授權(quán)、代理簽名及驗證過程四個階段。方案的協(xié)議方為原始簽名者A,代理簽名者B及簽名接收者C。
橢圓曲線參數(shù)如下:
q:大素數(shù),q>2160;
E:有限域Fq的上橢圓曲線:y2=x3+ax+b(mod q);a,b是小于q的整數(shù),且滿足4a3+27b2≠0(mod q);
G:橢圓曲線E上的基點。階為n,即nG=O;O為橢圓曲線無窮遠點;
h:單向散列函數(shù)。
用戶A的私鑰及公鑰分別為:xA,YA=xAG;
用戶B的私鑰及公鑰分別為:xB,YB=xBG.;
用戶C選取私鑰xC,公鑰YC=xCG。
原始簽名人A將簽名權(quán)授權(quán)委托給代理簽名人B,選取隨機數(shù)K0,并計算K0G,記δ=K0G=(x0,y0),其中x0,y0∈Fq。然后計算:r0=x0(mod n)和σ=(xA+r0k0)(mod n),A將σ通過安全信道發(fā)送給B,將δ公開發(fā)布,則(σ,δ)為A的委托信息。
代理簽名人B收到委托信息(σ,δ)后,驗證計算:σG=PA+r0δ。從公開的信息G,δ,PA可驗證計算r0=x0(mod n)。如此式成立,則B接受委托信息(σ,δ);若不成立,則B拒絕委托信息(σ,δ)。
代理簽名者B隨機選取整數(shù)K,K∈Z*n;計算R=KPC=(x,y),r=h(x)-1m(mod n),若r=0,則返回重新選取K;計算s=K+rσ(mod n),若s=0,則返回重新選取K;(r,s,σ)為B對消息m的代理簽名。
驗證者計算X=sG-r(YA+δr0)=(x′,y′)和m=h(Kcx′)r(mod q),其中Kcx′是KcX的橫坐標。驗證m與接收到m是否相等。驗證過程的正確性:
上述代理簽名方案存在原始簽名人的偽造攻擊:代理者選取隨機數(shù)K,計算R=KYc=(x,y),r=h(x)-1mmod q和s=K+rσ(mod q),而原始簽名者A知道秘密信息σ,也可以選取隨機數(shù)K′進行同樣的計算出(r′,s′),從而很容易偽造代理簽名,簽名驗證者的驗證過程不需要發(fā)生任何變化。
新方案的系統(tǒng)參數(shù)同原方案,見1.1
(1)原始簽名者A隨機選取一個整數(shù)λA∈[1,n-1],計算P=λAG=(xP,yP),rA=xPmod n,e1=h(m,rA),sA=xAe1+λA(mod n),然后將(m,P,sA)秘密發(fā)送給代理簽名者B,這里(P,sA)實質(zhì)上是A對m的授權(quán)信息。
(2)B收到(m,P,sA)授權(quán)信息后,先計算rA=xPmod n,e1=h(m,rA),然后驗證P+YAe1=sAG是否成立,若成立則說明授權(quán)合法[5]。
對消息m,B利用代理權(quán)生成的代理簽名過程如下[6]:
B首先利用授權(quán)信息sA生成代理簽名之私鑰x=sAxB-1mod n,然后隨機選取一個整數(shù)KB∈[1,n-1],計算Q=KBYB=(xQ,yQ),r=xQmod n,e2=h(m,r),s=xe2+KB(mod n),(m,p,Q,s)為代理簽名結(jié)果,B將其發(fā)送給簽名驗證者。
驗證者收到代理簽名(m,P,Q,s)后,利用原始簽名者A授權(quán)信息公鑰和代理簽名者B的代理簽名公鑰驗證代理簽名,過程如下:
計算rA=xPmod n,r=xQmod n,e1=h(m,rA),e2=h(m,r),然后驗證等式sYB=Q+e2(P+e1YA)是否成立,如果等式成立,則C認為B代理A所做的代理簽名合法,否則拒絕簽名[7]。
等式正確性如下:
以知條件:s=xe2+KB(mod n),x=sAxB-1mod n,Q=KBYB,,sA=xAe1+KA(mod n)
則等式Q+e2(P+e1YA)=Q+e2(kAG+e1xAG)=Q+e2(kA+e1xA)G=Q+e2sAxB-1xBG=kBYB+e2xkBYB=sYB
在代理授權(quán)過程中,因為(m,P,Q,s)是原始簽名者A對信息m的簽名,包含原始簽名者的私鑰信息,其他人沒有原始簽名者的私鑰從而不可偽造出委托授權(quán)信息。由驗證等式sAG=Y(jié)Ae1+P可確定該代理簽名是原始簽名者委托授權(quán)的合法的代理簽名。根據(jù)代理簽名結(jié)果,驗證者只能從原始簽名者和代理簽名者的公鑰計算得到驗證代理簽名所需的公鑰,利用該公鑰計算才可以確定該簽名是否是B代理A形成的合法代理盲簽名。
代理簽名的不可偽造性,在代理簽名方案中,代理簽名者B利用私鑰xB產(chǎn)生代理簽名所需的私鑰x=sAxB-1mod n,xB是保密的,其他任何人不可能偽造xB,從而不能假冒代理簽名者B生成的代理簽名[8];而授權(quán)參數(shù)sA=xAe1+KA(mod n),是由原始簽名者的私鑰xA產(chǎn)生,只有接收到A授權(quán)的代理簽名者B才能生成有效地代理簽名,偽造的代理授權(quán)在驗證時是無法通過的。
方案中代理授權(quán)為(m,P,sA),其中(P,sA)實質(zhì)上原始簽名者A對信息m的簽名值,原始簽名者的私鑰xA決定代理授權(quán)參數(shù)sA。而代理私鑰x=sAxB-1modn,也包含了由A的私鑰產(chǎn)生不可竄改的授權(quán)參數(shù)sA,以及B的私鑰xB。竊聽者D即使截獲了代理授權(quán)值,也無法偽造代理簽名私鑰,這樣假冒代理簽名者B生成代表A的代理簽名也就是無法實現(xiàn)。因而該方案不需要安全傳輸信道的支持。
本文介紹了楊青等人提出的一種的代理簽名方案,并證明該方案依然存在原始簽名人偽造攻擊缺陷,由于偽造缺陷,該方案不能應(yīng)用于電子現(xiàn)金、電子投票等領(lǐng)域。針對該代理簽名的缺陷,本文對原方案進行該進,產(chǎn)生新的代理簽名方案。新方案解決原方案缺陷,簽名信息不需要借助安全傳輸信道,代理簽名所要求的安全特性完全滿足;新方案比楊青等人的方案具有更高的實用性和安全性。
[1]MAMBOM,USUDA K,OKAMOTO E.Proxy signature:delegation of the power to signmessages[J].IE ICE Trans on Fundamentals of E lectronics Comm uni-cations and Computer Sciences,1996,E79A(9):1338-1354.
[2]祁明,HARN L.基于離散對數(shù)的若干新型代理簽名方案[J].電子學(xué)報,2000,28(11):114-115.
[3]SHAO Zu-h(huán)ua.Proxy signature schemes based on factoring[J].Information Processing Letters,2003,85(3):137-143.
[4]楊青,辛小龍,戢偉.基于橢圓曲線的數(shù)字簽名和代理數(shù)字簽名[J].計算機工程,2008,12(23):147-149
[5]胡蘭蘭,鄭康鋒,李劍,等.一種改進的橢圓曲線安全代理簽名方案[J].計算機應(yīng)用研究,2010,2(2):685-688.
[6]黃輝,秦靜,李麗.一個改進的代理盲簽名方案[J].計算機應(yīng)用,2007,27(6):1539-1541.
[7]左為平,李海峰.一種安全的橢圓曲線代理簽名方案[J].佳 木 斯 大 學(xué) 學(xué) 報:自 然 科 學(xué) 版,2007,25(4):495-497.
[8]楊偉強,徐秋亮.典型代理簽名方案的分析與改進[J].計算機工程與應(yīng)用,2004,40(9):152-154.