具有随机因子的无证书强代理签名方案
2013-10-29谢淑翠
谢淑翠
(西安邮电大学 理学院,陕西 西安710121)
代理签名的概念是1996年Mambo等人[1]首次提出的.在代理签名方案中,一个叫做原始签名者的用户A将其签名权委托给一个叫做代理签名者的用户B.当验证者收到消息的代理签名时,它能验证其有效性,并确信原始签名人对所签消息是认可的.为了适应不同的环境,人们提出各种类型的代理签名方案[2-5],这些方案都是基于传统证书的.但是证书的产生比较复杂,传输、更新和管理等都需要大的代价.为了避免上述问题,文献[6]提出基于身份的公钥密码系统(Identity-based Public Key Cryptography,ID-PKC).在该系统中,用一个能唯一代表其身份的公开信息(如电话号码或E-mail地址)作为用户的公钥,而私钥由一个可信的密钥生成权威机构PKG(Private Key Generator)生成,这就产生了密钥托管问题,即PKG知道所有用户的私钥.为了解决ID-PKC的这一缺陷,2003年文献[7]提出无证书公钥密码系统(Certificateless Public Key Cryptography,CL-PKC),此系统解决了传统公钥密码系统中证书的存储、传输和管理等问题,也克服了ID-PKC中的密钥托管问题.
自无证书公钥密码系统提出后,许多无证书签名方案和无证书代理签名方案相继提出[8-10].2005年文献[11]提出无证书强代理签名方案(Certificateless Strong Proxy Signature,CL-SPS),但文献[12]指出该方案是不安全的.随后文献[13]提出一种高效的无证书强代理签名方案,但文献[14]发现此方案也不安全,不能抵抗公钥替换攻击.本文针对前述方案的不足,提出一个具有随机因子的无证书强代理签名方案.方案设计基于双线性对,此种结构使得签名方案简洁明了,通信量少,运行效率高.方案在密钥生成时为用户引入一个秘密随机因子,在签名中使用两个hash函数,能有效抵抗公钥替换攻击,同时满足强不可伪造性、强不可否认性、强可识别性及防滥用性.
1 预备知识
本文用到的基础知识,包括双线性映射、离散对数问题、CDH问题、无证书代理签名方案的安全性要求及安全模型.
1.1 双线性映射
设q是一个大素数,G1是q阶加法循环群,G2是q阶乘法循环群,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对来实现[15].
1.2 离散对数问题
设G是一个q阶循环群,给定G的一个生成元g和一个h∈G,找到一个数a∈Z*q,使h=ga.
当q是一个大素数时,此问题是困难问题.
1.3 计算型Diffie-Hellman问题
设G是一个q阶循环群,给定G的一个生成元g以及ga、gb∈G(其中a、b∈Z*q且其值未知),计算gab.
本文方案的安全性建立在G1、G2中离散对数问题和计算型Diffie-Hellman问题难解的基础上.
1.4 强代理签名方案的安全性要求
一个强代理签名方案首先应该满足可验证性,即代理签名的正确性可以被接收者或验证者验证,能确信消息签名是原始签名人所授权并认可的.在安全性方面除了满足一般代理签名方案的要求外还应该满足强不可伪造性、强不可否认性、强可识别性和防滥用性[13,16].
1.5 安全模型
在无证书代理签名方案中有4个参与主体:密钥生成中心、原始签名人A、代理签名人B和验证者V.有10个算法[10,13]:系统建立(Setup)、建立秘密值(Set-Secret-Value)、建立公钥(Set-Public-Key)、部分私钥提取(Partial-Private-Key-Extract)、建立私钥(Set-Private-Key)、签名算法(Signature Algorithm)、验证算法(Verify Algorithm)、代理密钥生成(Set-Proxy-Key)、代理签名生成(Proxy-Signature-Generation)、代理签名验证(Proxy-Signature-Verification).
根据无证书公钥密码系统的特点,无证书代理签名方案考虑2种具有不同攻击能力的敌手[14],分别记作A1、A2.
敌手A1:不能访问系统主密钥,但可以替换任何用户的公钥;
敌手A2:可以访问系统主密钥,获得任意用户的部分私钥,但不能替换目标用户的公钥.
2 本文方案
在本文的具有随机因子的无证书强代理签名方案中,原始签名人A具有身份IDA,代理签名人B具有身份IDB.方案由下列算法组成:
(1)系统建立 密钥生成中心KGC(Key Generation Center)完成下列步骤:选择阶均为素数q>2k(k为一个安全参数)的循环加法群G1和循环乘法群G2,一个修正的Weil对或Tate对映射e:G1×G1→G2;任意选择G1的一个生成元P,并计算g=e(P,P);随机选择s∈Z*q作为系统主密钥,系统公钥为Ppub=sP;选择两个hash函数:H1:{0,1}*→G1和H2:{0,1}*→Z*q,要求H1和H2是密码学安全的.
KGC公开系统参数Tparams= {G1,G2,e,P,Ppub,g,H1,H2},秘密保存主密钥s.
(2)建立秘密值 输入系统参数Tparams和用户的身份IDi,i∈{A,B},用户IDi选择一个随机数xi∈Z*q,并输出xi作为自己的秘密值.
(3)建立公钥 输入系统参数Tparams和用户IDi的秘密值xi,输出用户IDi的公钥PKi=xiPpub.
(4)部分私钥提取 用户给KGC提供他(她)的身份信息IDi,KGC首先验证其身份的合法性,然后计算Qi=H1(IDi‖PKi),部分私钥di=sQi,并通过安全信道把部分私钥di发送给用户IDi.用户通过检验e(di,P)=e(Qi,Ppub)是否成立来检验di的正确性.
(5)建立私钥 算法输入包括系统参数Tparams、身份信息IDi、用户部分私钥di、秘密值xi和公钥PKi;算法输出用户IDi的私钥为SKi=xidi=xisQi.
(6)签名算法 身份为IDi的签名者,其私钥为SKi=xidi,公钥为PKi=xiPpub.签名者要对消息m∈{0,1}*进行签名.首先选取随机数r∈Z*q,计算U=gr.然后计算:h=H2(m‖IDi‖U‖PKi),V=hSKi+rP.最后输出消息m的签名:σ= (m,U,V).
(7)签名验证算法 当验证者收到身份为IDi,公钥为PKi的签名者对消息m的签名σ,首先计算Qi=H1(IDi‖PKi),h=H2(m‖IDi‖U‖PKi),然后通过检验等式e(V,P)=e(hQi,PKi)U是否成立确定签名的合法性.如果等式成立,则签名有效;否则拒绝.
(8)代理密钥生成
1)代理授权 将系统参数Tparams、原始签名人A的身份信息IDA、公钥PKA和私钥SKA以及A的授权证书mw(mw包括A和代理签名人B的身份信息、代理签名消息的范围和代理期限等)作为输入,A按以下步骤授权给B:随机选取rA∈Z*q,计算UA=grA.计算hA=H2(mw‖IDA‖UA‖PKA),VA=hASKA+rAP.输出授权PD= (mw,UA,VA)给B.
2)代理授权验证 B收到授权PD=(mw,UA,VA)后,计算QA=H1(IDA‖PKA),hA=H2(mw‖IDA‖UA‖PKA),然后检验方程e(VA,P)=e(hAQA,PKA)UA是否成立.如果等式成立,就认可授权PD;否则,就要求重新授权.
3)代理密钥生成 若授权有效,则代理签名人输入授权和他自己的私钥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的身份信息与公钥,预计算W1=e(QA,PKA),W2=e(QB,PKB).验证者完成下列步骤:先查验消息m是否符合授权mw中的规定,如果符合,则继续,否则停止.再检验原始签名者是否给代理签名者授权,如果是,则继续;否则停止.计算
3 安全性和有效性分析
主要对方案的正确性、运行效率、安全性进行分析.
3.1 正确性
代理签名方案是正确的.事实上
可见合法的签名能通过验证方程.
3.2 安全性
(1)强不可伪造性 由于用户的私钥SK=xsH1(ID‖PK)里含有用户的公钥,并且本文的基本签名方案的结构满足文献[9]中所定义的通用无证书签名方案的基本结构,对此结构文献[9]已利用分叉引理技术证明了其安全性.故此,无论是敌手A1还是敌手A2都不能伪造原始签名人的授权,也不能伪造代理签名人的签名.
(2)强不可否认性 由于授权和代理签名都不能伪造,同时代理签名中包含原始签名人的授权证书mw,所以代理签名人只要有效地代表原始签名人作了代理签名,那么原始签名人和代理签名人都不能否认.
(3)强可识别性 代理签名人和原始签名人的身份信息包含在mw中,代理签名验证时需要代理签名人和原始签名人的公钥及身份信息,因此验证者能从代理签名中确定代理签名人的身份及其与原始签名人的关系,故验证者能区分代理签名与原始签名.
(4)防滥用性 由于在代理签名中使用了mw,而mw中明确规定代理签名人和原始签名人的身份、代理签名的消息范围、代理有效期限等信息,这样就能防止代理签名权被滥用.同时,代理签名中也包含原始签名人和代理签名人私钥的有关信息,故代理签名密钥也不能用于其他目的.
3.3 有效性
我们只考虑代价高的运算,将本文方案与文献[14]以及文献[10]的方案进行比较.记一个双线性对运算为BP,G1中的标量乘运算为SM,G2中的指数运算为E,Hash运算为H.结果如表1所示.
表1 本文方案和文献[10,14]效率比较Tab.1 The efficiency comparison of Ref.10,Ref.14and our scheme
由表1的比较可见,本文方案在效率方面明显比文献[14]高,在代理授权验证及代理签名验证过程比文献[10]效率高,在代理授权及代理签名过程比文献[10]效率稍低.
4 结 语
针对文献[13]提出的一种高效的无证书强代理签名方案不能抵抗公钥替换攻击的缺陷,本文提出一个新的无证书强代理签名方案,方案设计基于双线性对.方案在密钥生成时为用户引入了一个秘密随机数,在签名中使用两个hash函数,可有效地抵抗公钥替换攻击,同时满足强不可伪造性、强不可否认性、强可识别性及防滥用性.文献[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]马冬兰,张建中.前向安全的指定接收者恢复消息的部分盲签名方案[J].陕西师范大学学报:自然科学版,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]张磊,张福泰.一类无证书签名方案的构造方法[J].计算机学报,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].北京邮电大学学报,2008,31(6):18-21.
[14]孙士锋,温巧燕.对一类无证书强代理签名方案的攻击与改进[J].北京邮电大学学报,2010,33(1):80-83.
[15]Boneh D,Franklin M.Identity-based encryption from the Weil pairing[J].SIAM Journal of Computing,2003,32(3):586-615.
[16]丁文君.代理签名方案及其应用研究[D].西安:西安电子科技大学通信工程学院,2011.