摘 要: 谷利澤等人提出一個新型代理數字簽名方案,魯榮波等人對其進行了分析與改進,楊麗等人證明了改進方案不滿足公鑰替換攻擊,給出了攻擊方法,并在此基礎上提出一種改進的代理簽名方案。分析楊麗等人提出的新方案,指出該方案增加了計算復雜度,并提出兩種改進的代理數字簽名方案。實驗結果表明改進的方案具有較強的安全性也能夠防止公鑰替換工具,并減少了計算復雜度,提高了效率。
關鍵詞: 數字簽名; 代理簽名; 公鑰替換攻擊; 計算復雜度
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2015)08?0043?04
A new scheme of proxy digital signature
LIAO Xiao?ping, HOU Xiang, WEI Hong?chun
(Department of Computer Science, Sichuan University of Arts and Science, Dazhou 635000, China)
Abstract: Professor Gu Li?ze, et al made a new scheme of proxy digital signature, which was analyzed and improved by Lu Rong?bo, et al. However, Yang Li, et al proved that the improved scheme can not satisfy the public key substitution attack, pointed out the attacking method, and made a new improved proxy signature scheme based on the previous schemes. In this paper, the new scheme proposed by Yang Li, et al is analyzed, the calculation complexity of theirs is pointed out, and two improved proxy signature schemes are proposed based on the analysis of the previous schemes. The new schemes have strong security, can prevent any public key replacement tool, reduce complexity and increase efficiency.
Keywords: digital signature; proxy signature; public key substitution attack; computational complexity
0 引 言
代理簽名是由Mambo等人在1996年提出來的[1],指的是原始簽名人將自己的簽名權委托給代理簽名人行使其簽名權力,在最近幾年,以代理簽名為基礎,相繼提出了許多新的代理簽名方案[2?5]。代理簽名技術的應用非常廣泛,但在一些特殊情況下要求能夠隱藏代理簽名人的身份,驗證者無法從代理簽名中識別出代理簽名人的身份,只有在需要的情況下,驗證者可以通過原始簽名人來揭示代理簽名人的身份,既要求代理簽名方案具有匿名性?;诖耍?002年Shum和Weil提出了一個匿名代理簽名方案[6],但它不具備安全性,無法抵抗原始簽名人的惡意攻擊[7]。此后,谷利澤等人提出了一種新型的代理簽名方案[8],指出此方案滿足可驗證性、不可偽造性、匿名性、可追蹤性、不可否認性和防止代理權濫用六條性質,魯榮波等人證明了它無法抵抗原始簽名人偽造攻擊[9],并給出了一個改進的方案(以下簡稱LHWM方案),楊麗等人證明了魯榮波等人提出的方案無法抵抗原始簽名人替換公鑰攻擊,并對方案進行改進,提出了一個改進的方案(以下簡稱YZ方案)[10]。本文指出楊麗等人方案在保證安全的前提下增加了計算復雜度,并提出了兩個改進的匿名代理數字簽名方案。這兩個改進方案克服了楊麗等人方案的缺陷,具有高安全性的同時在效率方面也具有優(yōu)勢,從而具有更好的實用性。
1 LHWM方案的密碼分析
LHWM方案回顧:方案的參加者包括:原始簽名者、代理簽名者、簽名驗證者。
1.1 系統(tǒng)參數初始化
[p]和[q]是任意的兩個大素數并且滿足條件[qp-1],[g∈Z*q]并且滿足[gq=1modp(g≠1);h(?)]為安全的哈希函數;[A]是授權書,用來定義原始簽名者[A]對代理簽名者[B]代理權限的約定,[A]為原始簽名者,[B]為代理簽名者;[V]為驗證者;[A]的私鑰為[xA],公鑰為[yA=gxAmodp]并將[yA]公開; [B]的私鑰為[xB],公鑰為[yB=gxBmodp]并將[yB]公開;[IDB]為[A]和[B]共同生成的代理私鑰,[yp=gxpmodp]為對應的代理公鑰;代理簽名者[B]的標識為[IDB];簽名者的標識為[IDP];需要簽名的消息為[m],[σ=Sig(m,x)]是簽名者用私鑰x對消息[m]的一個離散對數型數字簽名;[Ver(y,σ,m)]與簽名算法相對應的驗證算法;[y]為簽名者的公鑰;返回值為真或為假。
1.2 代理密鑰對生成算法
(1) 原始簽名者通過安全信道發(fā)送[mw]給[B]。[B]如果認為授權是合法的,則計算生成自己的代理私鑰[sB,r1]和[s1]。過程如下:[?kB∈RZ*q],[rB=gkBmodp],[sB=][xB+kBrBmodq ?k1∈RZ*q,][r1=gk1modp,][s1=] [xBh(rB,IDB,r1)+][k1modq]。然后[B]把生成的密鑰值及身份標識[(rB,IDB,r1,s1)]通過安全信道發(fā)送給[A]。[A]驗證等式[gs1=yh(rB,IDB,r1)Br1modp]是否成立,若成立,則A秘密保存[(rB,yB,IDB)],以備用來揭示代理者的身份,最后[A]計算[YP=yBrrBBmodp],并將其寫入[mw]中。
(2) 原始簽名者[A]計算[rA]和[sA],計算如下:[?kA∈RZ*q,rA=gkAmodp,][sA=xAh(mw,rA)+kArAmodq。] 然后[A]把[(rA,sA,mw)]通過安全信道發(fā)送給[B],[B]驗證等式[gsA=yh(mw,rA)ArArAmodp]是否成立,若成立,[B]秘密保存[(rA,sA,mw,sB)]。
(3) [B]生成代理私鑰[xP],即[xp=sA+sB]。
1.3 代理簽名算法
代理簽名人[B]首先驗證消息[m]是否符合授權證書[mw]的約定,若[m]滿足要求,則[B]利用代理私鑰[xp]產生代理簽名[σP=Sig(m,xp)],得到代理簽名值[(m,σp,mw,rA,yA)]。
1.4 代理簽名驗證算法
(1) 驗證者[V]得到代理簽名值[(m,σp,mw,rA,yA)],首先驗證消息[m]是否符合[mw]的約定,若[m]滿足要求則進入下一步,否則認為代理簽名[σP]無效。
(2) 驗證者[V]利用代理簽名[(m,σp,mw,rA,yA)]計算:
[yp=yh(mw,rA)ArArAYpmodp]
式中:[Yp]是從[mw]中取得,然后檢驗等式[Ver(yp,σp,m)=true]是否成立,若成立,則認為代理簽名有效,否則無效。
1.5 揭示代理者身份算法
(1) 驗證者[V]向原始簽名者[A]提供代理簽名[(m,σp,mw,rA,yA)],[A]使用代理簽名驗證算法驗證代理簽名的有效性,如果有效,則進入下一步。
(2) 原始簽名者[A]從[mw]中取出[Yp],然后依次取出在代理密鑰對生成階段保存的[(rB,yB,IDB)],判斷等式[Yp=yBrrBBmodp]是否成立,如果存在[(rB,yB,IDB)]滿足這個等式,則[IDp]是實現代理簽名[(m,σp,mw,rA,yA)]的代理簽名者。
2 對YZ改進方案分析
YZ對LHWM方案的攻擊方案以及YZ改進方案請見文獻[10],此處只對YZ改進方案的性能進行分析。
表1列出了LHWM方案和YZ方案代理密鑰對生成算法和代理簽名驗證算法所需計算量的對比,其中兩個方案的代理簽名算法與揭示代理者身份算法的計算量相同,在此不再詳述。令[Am]表示群加法運算的計算量、[Mm]表示群乘法運算的計算量、[Em]表示群指數運算的計算量和[Hm]表示哈希函數運算的計算量。
表1 LHWM方案和YZ方案比較從表中可以看出,YZ方案比LHWM方案多了一個群乘法運算。所以改進后的方案增加了計算的復雜度。
3 改進方案
3.1 改進方案1
3.1.1 系統(tǒng)參數初始化
同第1.1節(jié)系統(tǒng)參數初始化。
3.1.2 代理密鑰對生成算法
(1) 原始簽名者[A]隨機選擇數[kA∈Z*q],計算[rA=gkAmodp],[A]把[(mw,rA)]通過安全信道發(fā)送給[B]。[B]如果認為授權是合法的,則生成自己的代理私鑰[sB,r1]和[s1]。過程如下:
[?kB∈RZ*q],[rB=gkBmodp] , [sB=xBmodq] ,
[?k1∈RZ*q],[r1=gk1modp],[s1=xBh(rB,IDB,r1)+k1modq]
然后[B]把生成的密鑰值及身份標識[(rB,IDB,r1,s1)]通過安全信道發(fā)送給[A]。[A]驗證等式[gs1=yh(rB,IDB,r1)Br1modp]是否成立,若成立,則[A]秘密保存[(rB,yB,IDB)],以備用來揭示代理者的身份,最后[A]計算[Yp=yBrrBBmodp],并將其寫入[mw]中。
(2) 原始簽名者[A]利用步驟(1)中得到的[kA]和[rA],計算:[sA=xAyAh(mw,rA)+kArAmodq],然后[A]把[(rA,sA,mw)]通過安全信道發(fā)送給[B],[B]驗證等式[gsA=yyAh(mw,rA)ArArAmodp]是否成立,若成立,[B]秘密保存[(rA,sA,mw,sB)]。
(3) [B]生成代理私鑰[xp],即[xp=sA+sB]。
3.1.3 代理簽名算法
同第1.3節(jié)代理簽名算法。
3.1.4 代理簽名驗證算法
(1) 同第1.4節(jié)(1)。
(2) 驗證者[V]利用代理簽名[(m,σp,mw,rA,yA)]計算:[yp=yyAh(mw,rA)ArArAyBmodp]其中[yp]是從[mw]中取得,然后檢驗等式[Ver(yp,σp,m)=true]是否成立,若成立,則認為代理簽名有效,否則無效。
3.1.5 揭示代理者身份算法
同第1.5節(jié)揭示代理者身份算法。
3.2 改進方案2
方案2只對方案1作如下幾處修改,其他步驟同方案1,具體如下:
方案1的代理密鑰對的生產階段(1)中的等式[sB]改為:[sB=xBrAmodq],代理簽名驗證算法中的驗證等式改為:[yp=yyAh(mw,rA)ArArAyBrAmodp]。
3.3 改進方案分析
方案1和方案2具有相似性,所以以方案1為例分析改進方案的安全性。
3.3.1 可驗證性
定理1 代理簽名者[B]使用代理私鑰[xp],代表原始簽名者[A]對消息[m]簽名,驗證者[V]利用代理簽名[(m,σp,mw,rA,yA)]計算代理公鑰: [yp=yyAh(mw,rA)ArArAyBmodp]然后使用[yp]驗證相應的代理簽名,那么:
[yp=gxpmodp]
[gxp=gsA+sBmodp=gxAyAh(mw,rA)+kArA+xBmodp =gxAyAh(mw,rA)×gkArA×gxBmodp =(gxA)yAh(mw,rA)×(gkA)rA×gxBmodp=yyAh(mw,rA)A×rrAA×gxBmodp =yyAh(mw,rA)A×rrAA×yBmodp=yPmodp]
即:[yp=gxpmodp]成立,證畢。
由于代理簽名[(m,σp,mw,rA,yA)]包含[yA],表明這是原始簽名者[A]承認的代理簽名。
3.3.2 不可偽造性
(1) 代理簽名的不可偽造性
① 由于[yp=yyAh(mw,rA)ArrAAyBmodp],所以根據[yp],偽造者無法偽造[xp]。因為已知[yp]求[xp]是離散對數問題。
② 根據,[xp=sA+sBmodq],如果偽造者想偽造代理簽名者[B]的代理簽名,偽造者必須同時具備以下兩個條件:
第一個條件:偽造[sA],因為[sA=][xAyAh(mw,rA)+][kArAmodq],而[A]的私鑰[xA]和[kA]對偽造者都是無法得到的,所以偽造者不可能偽造[sA]。
第二個條件:偽造[sB],由于[sB=xBrAmodq],而[xB]是[B]的私鑰,所以偽造者不可能偽造[sB]。所以,根據[xp=sA+sBmodq],偽造者不可能得到[xP]。
③ 原始簽名者[A]也不可能偽造代理簽名者[B]的代理簽名,因為[A]是不可能得到[xP]的。
(2) 公鑰的不可偽造性
如果原始簽名人[A]隨機選擇數[rA′,xp′∈Z],構造等式:[yp′=y′yA′h(mw′,rA′)ArA′rA′yB′rA′modp=gxp′modp]若要求得[yA′]要比求解有限域上離散對數問題還要困難。所以該方案能抵抗公鑰替換攻擊??傊?,除了代理簽名者[B],任何人都無法偽造代理簽名。
3.3.3 防止代理權濫用
(1) 代理權無法轉移,[(rA,sA,mw)]是不可更改的,且[Yp]包含在[mw]中,一旦原始簽名者[A]指定代理簽名者[B],[yp]就已經確定,除非[B]把[xp]給他的代理者,否則[B]不能利用[(rA,sA,mw)]再次代理授權。
(2) 代理簽名者無法越權:代理簽名驗證算法的第1步就是驗證消息[m]是否符合代理授權書[mw]的約定,如果不符合,那么簽名無效,所以[A]可以充分利用代理授權書[mw]有效約束[B]代理權限范圍。
3.3.4 匿名性和身份確認
驗證者[V]利用代理簽名[(m,σp,mw,rA,yA)]計算代理公鑰:[yp=yyAh(mw,rA)ArrAAyBmodp]驗證這個代理簽名,[(m,σp,mw,rA,yA)]沒有包含代理簽名者身份,已知[Yp]是無法推出[yB]的,由此可見,驗證者[V]能夠驗證代理簽名的有效性,但并不知代理簽名者的身份。
在必要時,在原始簽名者[A]的幫助下,驗證者[V]利用揭示代理者身份的算法,能夠揭示代理簽名者的身份。
3.3.5 不可否認性
(1) 從代理簽名生成方式看,有效代理密鑰生成包括了代理簽名人[B]的身份信息,因此,他不能否認自己對消息[m]的代理簽名。
(2) 從不可偽造性證明看,原始簽名人及任何第三方不能偽造代理簽名,所以代理簽名者不能否認代理簽名是由自己產生的。
3.3.6 性能分析
表2列出了LHWM方案、YZ方案和改進方案所需計算量的對比,其中兩個方案的代理簽名算法與揭示代理者身份算法的計算量相同,在此不再詳述。
表2 LHWM方案、YZ方案和改進方案的比較
從表2可以看出,改進方案比LHWM方案少了一個群加法運算,比YZ方案少了一個群乘法運算和一個群加法運算,所以改進后的方案減少了計算的復雜度。
4 結 語
本文分析了楊麗等人提出的代理數字簽名方案,并給出了兩個改進的數字簽名方案,經安全分析表明,改進后的兩個方案在具有高安全性的同時還具有高效率,降低了計算復雜度。
參考文獻
[1] MAMBO M, USUDA K, OKAMOTO E. Proxy signatures for delegating signing operation [C]// Proceedings of the 3rd ACM Conference on Computer and Communications Security. New Dehi, India: ACM, 1996: 48?57.
[2] 張建中,馬偉芳.橢圓曲線上的盲代理盲簽名方案[J].計算機工程,2010,36(11):126?130.
[3] 張建中,薛榮紅,彭麗慧.一種基于身份的代理環(huán)簽名方案[J].計算機工程,2011,37(17):126?148.
[4] 洪璇,陳克非,萬中美.簡單的通用可組合代理重簽名方案[J].軟件學報,2010,21(8):2079?2088.
[5] 劉樹棟,梁向前,許金芳.安全有效的代理可驗證加密簽名方案[J].計算機工程與應用,2011,47(28):77?79.
[6] SHUM K, WEIL V K. A strong proxy signature scheme with proxy signer privacy protection [C]// Proceedings of the Eleventh IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises. Pittsburgh, Pennsylvania, USA: [s.n.], 2002: 55?56.
[7] LEE Narn?Yih, LEE Ming?Feng. The security of a strong proxy signature scheme with proxy signer privacy protection [J]. Applied Mathematics and Computation, 2005, 161(3): 807?812.
[8] 谷利澤,張勝,楊義先.一種新型的代理簽名方案[J].電子與信息學報,2005,27(9):1463?1466.
[9] 魯榮波,何大可,王常吉,等.對一種新型代理簽名方案的分析與改進[J].電子與信息學報,2007,29(10):2529?2532.
[10] 楊麗,張建中.對一種新型代理簽名方案的進一步分析和改進[J].計算機工程與應用,2013,49(22):100?103.