謝淑翠
(西安郵電大學(xué) 理學(xué)院,陜西 西安710121)
代理簽名的概念是1996年Mambo等人[1]首次提出的.在代理簽名方案中,一個叫做原始簽名者的用戶A將其簽名權(quán)委托給一個叫做代理簽名者的用戶B.當(dāng)驗證者收到消息的代理簽名時,它能驗證其有效性,并確信原始簽名人對所簽消息是認(rèn)可的.為了適應(yīng)不同的環(huán)境,人們提出各種類型的代理簽名方案[2-5],這些方案都是基于傳統(tǒng)證書的.但是證書的產(chǎn)生比較復(fù)雜,傳輸、更新和管理等都需要大的代價.為了避免上述問題,文獻[6]提出基于身份的公鑰密碼系統(tǒng)(Identity-based Public Key Cryptography,ID-PKC).在該系統(tǒng)中,用一個能唯一代表其身份的公開信息(如電話號碼或E-mail地址)作為用戶的公鑰,而私鑰由一個可信的密鑰生成權(quán)威機構(gòu)PKG(Private Key Generator)生成,這就產(chǎn)生了密鑰托管問題,即PKG知道所有用戶的私鑰.為了解決ID-PKC的這一缺陷,2003年文獻[7]提出無證書公鑰密碼系統(tǒng)(Certificateless Public Key Cryptography,CL-PKC),此系統(tǒng)解決了傳統(tǒng)公鑰密碼系統(tǒng)中證書的存儲、傳輸和管理等問題,也克服了ID-PKC中的密鑰托管問題.
自無證書公鑰密碼系統(tǒng)提出后,許多無證書簽名方案和無證書代理簽名方案相繼提出[8-10].2005年文獻[11]提出無證書強代理簽名方案(Certificateless Strong Proxy Signature,CL-SPS),但文獻[12]指出該方案是不安全的.隨后文獻[13]提出一種高效的無證書強代理簽名方案,但文獻[14]發(fā)現(xiàn)此方案也不安全,不能抵抗公鑰替換攻擊.本文針對前述方案的不足,提出一個具有隨機因子的無證書強代理簽名方案.方案設(shè)計基于雙線性對,此種結(jié)構(gòu)使得簽名方案簡潔明了,通信量少,運行效率高.方案在密鑰生成時為用戶引入一個秘密隨機因子,在簽名中使用兩個hash函數(shù),能有效抵抗公鑰替換攻擊,同時滿足強不可偽造性、強不可否認(rèn)性、強可識別性及防濫用性.
本文用到的基礎(chǔ)知識,包括雙線性映射、離散對數(shù)問題、CDH問題、無證書代理簽名方案的安全性要求及安全模型.
設(shè)q是一個大素數(shù),G1是q階加法循環(huán)群,G2是q階乘法循環(huán)群,P是G1的生成元.如果映射e:G1×G1→G2滿足
(1)雙線性:對任何P、Q∈G1和a、b∈Z*q,有e(aP,bQ)=e(P,Q)ab;
(2)非退化性:存在P、Q∈G1使得e(P,Q)≠1;
(3)可計算性:對任何P、Q∈G1,存在一個有效的算法計算e(P,Q)的值;則稱它是一個雙線性映射[15].
這樣的雙線性映射可以通過有限域上的超奇異橢圓曲線中修正的Weil對和Tate對來實現(xiàn)[15].
設(shè)G是一個q階循環(huán)群,給定G的一個生成元g和一個h∈G,找到一個數(shù)a∈Z*q,使h=ga.
當(dāng)q是一個大素數(shù)時,此問題是困難問題.
設(shè)G是一個q階循環(huán)群,給定G的一個生成元g以及ga、gb∈G(其中a、b∈Z*q且其值未知),計算gab.
本文方案的安全性建立在G1、G2中離散對數(shù)問題和計算型Diffie-Hellman問題難解的基礎(chǔ)上.
一個強代理簽名方案首先應(yīng)該滿足可驗證性,即代理簽名的正確性可以被接收者或驗證者驗證,能確信消息簽名是原始簽名人所授權(quán)并認(rèn)可的.在安全性方面除了滿足一般代理簽名方案的要求外還應(yīng)該滿足強不可偽造性、強不可否認(rèn)性、強可識別性和防濫用性[13,16].
在無證書代理簽名方案中有4個參與主體:密鑰生成中心、原始簽名人A、代理簽名人B和驗證者V.有10個算法[10,13]:系統(tǒng)建立(Setup)、建立秘密值(Set-Secret-Value)、建立公鑰(Set-Public-Key)、部分私鑰提?。≒artial-Private-Key-Extract)、建立私鑰(Set-Private-Key)、簽名算法(Signature Algorithm)、驗證算法(Verify Algorithm)、代理密鑰生成(Set-Proxy-Key)、代理簽名生成(Proxy-Signature-Generation)、代理簽名驗證(Proxy-Signature-Verification).
根據(jù)無證書公鑰密碼系統(tǒng)的特點,無證書代理簽名方案考慮2種具有不同攻擊能力的敵手[14],分別記作A1、A2.
敵手A1:不能訪問系統(tǒng)主密鑰,但可以替換任何用戶的公鑰;
敵手A2:可以訪問系統(tǒng)主密鑰,獲得任意用戶的部分私鑰,但不能替換目標(biāo)用戶的公鑰.
在本文的具有隨機因子的無證書強代理簽名方案中,原始簽名人A具有身份IDA,代理簽名人B具有身份IDB.方案由下列算法組成:
(1)系統(tǒng)建立 密鑰生成中心KGC(Key Generation Center)完成下列步驟:選擇階均為素數(shù)q>2k(k為一個安全參數(shù))的循環(huán)加法群G1和循環(huán)乘法群G2,一個修正的Weil對或Tate對映射e:G1×G1→G2;任意選擇G1的一個生成元P,并計算g=e(P,P);隨機選擇s∈Z*q作為系統(tǒng)主密鑰,系統(tǒng)公鑰為Ppub=sP;選擇兩個hash函數(shù):H1:{0,1}*→G1和H2:{0,1}*→Z*q,要求H1和H2是密碼學(xué)安全的.
KGC公開系統(tǒng)參數(shù)Tparams= {G1,G2,e,P,Ppub,g,H1,H2},秘密保存主密鑰s.
(2)建立秘密值 輸入系統(tǒng)參數(shù)Tparams和用戶的身份IDi,i∈{A,B},用戶IDi選擇一個隨機數(shù)xi∈Z*q,并輸出xi作為自己的秘密值.
(3)建立公鑰 輸入系統(tǒng)參數(shù)Tparams和用戶IDi的秘密值xi,輸出用戶IDi的公鑰PKi=xiPpub.
(4)部分私鑰提取 用戶給KGC提供他(她)的身份信息IDi,KGC首先驗證其身份的合法性,然后計算Qi=H1(IDi‖PKi),部分私鑰di=sQi,并通過安全信道把部分私鑰di發(fā)送給用戶IDi.用戶通過檢驗e(di,P)=e(Qi,Ppub)是否成立來檢驗di的正確性.
(5)建立私鑰 算法輸入包括系統(tǒng)參數(shù)Tparams、身份信息IDi、用戶部分私鑰di、秘密值xi和公鑰PKi;算法輸出用戶IDi的私鑰為SKi=xidi=xisQi.
(6)簽名算法 身份為IDi的簽名者,其私鑰為SKi=xidi,公鑰為PKi=xiPpub.簽名者要對消息m∈{0,1}*進行簽名.首先選取隨機數(shù)r∈Z*q,計算U=gr.然后計算:h=H2(m‖IDi‖U‖PKi),V=hSKi+rP.最后輸出消息m的簽名:σ= (m,U,V).
(7)簽名驗證算法 當(dāng)驗證者收到身份為IDi,公鑰為PKi的簽名者對消息m的簽名σ,首先計算Qi=H1(IDi‖PKi),h=H2(m‖IDi‖U‖PKi),然后通過檢驗等式e(V,P)=e(hQi,PKi)U是否成立確定簽名的合法性.如果等式成立,則簽名有效;否則拒絕.
(8)代理密鑰生成
1)代理授權(quán) 將系統(tǒng)參數(shù)Tparams、原始簽名人A的身份信息IDA、公鑰PKA和私鑰SKA以及A的授權(quán)證書mw(mw包括A和代理簽名人B的身份信息、代理簽名消息的范圍和代理期限等)作為輸入,A按以下步驟授權(quán)給B:隨機選取rA∈Z*q,計算UA=grA.計算hA=H2(mw‖IDA‖UA‖PKA),VA=hASKA+rAP.輸出授權(quán)PD= (mw,UA,VA)給B.
2)代理授權(quán)驗證 B收到授權(quán)PD=(mw,UA,VA)后,計算QA=H1(IDA‖PKA),hA=H2(mw‖IDA‖UA‖PKA),然后檢驗方程e(VA,P)=e(hAQA,PKA)UA是否成立.如果等式成立,就認(rèn)可授權(quán)PD;否則,就要求重新授權(quán).
3)代理密鑰生成 若授權(quán)有效,則代理簽名人輸入授權(quán)和他自己的私鑰SKB=xBdB,計算代理私鑰SKp=VA+SKB.
(9)代理簽名生成 代理簽名者B對消息m的簽名步驟如下:隨機選取rp∈Z*q,計算Up=grp.計算hp=H2(m‖mw‖IDB‖PKB‖Up),Vp=hpSKp+rpP.輸出代理簽名σp= (m,mw,Up,Vp,UA)給簽名接收者.
(10)代理簽名驗證 輸入代理簽名σp、原始簽名者A和代理簽名者B的身份信息與公鑰,預(yù)計算W1=e(QA,PKA),W2=e(QB,PKB).驗證者完成下列步驟:先查驗消息m是否符合授權(quán)mw中的規(guī)定,如果符合,則繼續(xù),否則停止.再檢驗原始簽名者是否給代理簽名者授權(quán),如果是,則繼續(xù);否則停止.計算
主要對方案的正確性、運行效率、安全性進行分析.
代理簽名方案是正確的.事實上
可見合法的簽名能通過驗證方程.
(1)強不可偽造性 由于用戶的私鑰SK=xsH1(ID‖PK)里含有用戶的公鑰,并且本文的基本簽名方案的結(jié)構(gòu)滿足文獻[9]中所定義的通用無證書簽名方案的基本結(jié)構(gòu),對此結(jié)構(gòu)文獻[9]已利用分叉引理技術(shù)證明了其安全性.故此,無論是敵手A1還是敵手A2都不能偽造原始簽名人的授權(quán),也不能偽造代理簽名人的簽名.
(2)強不可否認(rèn)性 由于授權(quán)和代理簽名都不能偽造,同時代理簽名中包含原始簽名人的授權(quán)證書mw,所以代理簽名人只要有效地代表原始簽名人作了代理簽名,那么原始簽名人和代理簽名人都不能否認(rèn).
(3)強可識別性 代理簽名人和原始簽名人的身份信息包含在mw中,代理簽名驗證時需要代理簽名人和原始簽名人的公鑰及身份信息,因此驗證者能從代理簽名中確定代理簽名人的身份及其與原始簽名人的關(guān)系,故驗證者能區(qū)分代理簽名與原始簽名.
(4)防濫用性 由于在代理簽名中使用了mw,而mw中明確規(guī)定代理簽名人和原始簽名人的身份、代理簽名的消息范圍、代理有效期限等信息,這樣就能防止代理簽名權(quán)被濫用.同時,代理簽名中也包含原始簽名人和代理簽名人私鑰的有關(guān)信息,故代理簽名密鑰也不能用于其他目的.
我們只考慮代價高的運算,將本文方案與文獻[14]以及文獻[10]的方案進行比較.記一個雙線性對運算為BP,G1中的標(biāo)量乘運算為SM,G2中的指數(shù)運算為E,Hash運算為H.結(jié)果如表1所示.
表1 本文方案和文獻[10,14]效率比較Tab.1 The efficiency comparison of Ref.10,Ref.14and our scheme
由表1的比較可見,本文方案在效率方面明顯比文獻[14]高,在代理授權(quán)驗證及代理簽名驗證過程比文獻[10]效率高,在代理授權(quán)及代理簽名過程比文獻[10]效率稍低.
針對文獻[13]提出的一種高效的無證書強代理簽名方案不能抵抗公鑰替換攻擊的缺陷,本文提出一個新的無證書強代理簽名方案,方案設(shè)計基于雙線性對.方案在密鑰生成時為用戶引入了一個秘密隨機數(shù),在簽名中使用兩個hash函數(shù),可有效地抵抗公鑰替換攻擊,同時滿足強不可偽造性、強不可否認(rèn)性、強可識別性及防濫用性.文獻[14]方案是對文獻[13]方案的改進,我們的方案效率比文獻[14]更高.
[1]Mambo M,Usuda K,Okamoto E.Proxy signature for delegating signing operation[C]∥Li G,Stearn J.Proceedings of CCS′96.New York:ACM Press,1996:48-57.
[2]Li Xiangxue,Chen Kefei.ID-based multi-proxy signature,proxy multi-signature and multi-proxy multi-signature schemes from bilinear pairings[J].Applied Mathematics and Computation,2005,169(1):437-450.
[3]Cao Feng,Cao Zhenfu.A secure identity-based proxy multi-signature scheme[J].Information Sciences,2009,179(3):292-302.
[4]Shao Zuhua.Improvement of threshold proxy signature scheme[J].Computer Standards &Interfaces,2004,27(1):53-59.
[5]馬冬蘭,張建中.前向安全的指定接收者恢復(fù)消息的部分盲簽名方案[J].陜西師范大學(xué)學(xué)報:自然科學(xué)版,2012,40(1):6-8.
[6]Shamir A.Identity-based cryptosystem and signature schemes[C]∥Blakley G R,Chaum D.Advances in Cryptology-Crypto′84.Berlin:Springer-Verlag,1984:47-53.
[7]Al-Riyami S S,Paterson K G.Certificateless public key cryptography[C]∥Chi-Sung Laih.Advances in Cryptology-Asiacrypto′2003,Berlin:Springer-Verlag,2003:452-473.
[8]張磊,張福泰.一類無證書簽名方案的構(gòu)造方法[J].計算機學(xué)報,2009,32(5):940-945.
[9]Castro R,Dahab R.Two notes on the security of certificateless signature[C]∥Susilo W,Liu J K,Mu Y.Provable Security 2007,Berlin:Springer-Verlag,2007:85-102.
[10]Chen Hu,Zhang Futai,Song Rushun.Certificateless proxy signature scheme with provable security[J].Journal of Software,2009,20(3):692-701.
[11]Li Xiangxue,Chen Kefei.Certificateless signature and proxy signature schemes from bilinear pairings[J].Lithuanian Mathematical Journal,2005,45(1):76-83.
[12]Lu Rongbo,He Dake,Wang Changji.Cryptanalysis and improvement of a certificateless proxy signature from bilinear pairings[C]∥Feng Wengying,Gao Feng.Eighth ACIS International Conference on SNPD 2007.New York:IEEE Press,2007:285-290.
[13]杜紅珍,溫巧燕,李文敏,等.高效的無證書強代理簽名方案[J].北京郵電大學(xué)學(xué)報,2008,31(6):18-21.
[14]孫士鋒,溫巧燕.對一類無證書強代理簽名方案的攻擊與改進[J].北京郵電大學(xué)學(xué)報,2010,33(1):80-83.
[15]Boneh D,F(xiàn)ranklin M.Identity-based encryption from the Weil pairing[J].SIAM Journal of Computing,2003,32(3):586-615.
[16]丁文君.代理簽名方案及其應(yīng)用研究[D].西安:西安電子科技大學(xué)通信工程學(xué)院,2011.