一种椭圆曲线消息恢复数字签名方案的分析与改进
2016-09-01周克元
周克元
(宿迁学院二系,江苏宿迁 223800)
一种椭圆曲线消息恢复数字签名方案的分析与改进
周克元
(宿迁学院二系,江苏宿迁223800)
对Zhang等提出的椭圆曲线消息恢复数字签名方案进行了分析,指出其验证方程存在错误,且方案无前向安全性,同时任意第三方可恢复消息.给出了一种改进方案,证明了改进方案具有抗伪造签名攻击、前向安全性、公开验证性和指定接收者消息恢复等性质,并对复杂度进行了分析.
椭圆曲线;数字签名;消息恢复;前向安全;消息替换攻击
Diffie等[1]于1976年提出数字签名后,数字签名得到了很大的发展和广泛的应用,各类数字签名方案相继被提出.椭圆曲线签名算法相对于离散对数签名算法拥有更高的安全性,对于基于身份的椭圆曲线数字签名方案,为进一步提高安全性,有的签名方案在使用双密钥的同时又使用了双参数设计签名方案.Zhang等[2]给出了一种基于椭圆曲线的消息恢复数字签名方案,但该方案存在错误,且可被攻击,文中指出了方案的错误并给出一个改进方案.
1 Zhang方案
1.1参数设置
设椭圆曲线参数D=(q,FR,a,b,G,n,h),其中,q为某个素数幂;FR指出Fq中元素的表示方法;a,b∈Fq为椭圆曲线系数;G为椭圆曲线的基点;n为点G的阶,即nG=0,要求n为素数;h为n关于#E(Fq)(椭圆曲线的阶)的协因子,即h=#E(Fq)/n.用户A选取私钥cA1,cA2∈{1,2,…,n-1},且cA1≠cA2,公钥DA1=cA1P,DA2=cA2P.用户B选取私钥cB∈{1,2,…,n-1},公钥DB=cBP.待签名消息为m(m 1.2签名过程 1)用户A任取k1,k2∈{1,2,…,n-1}; 2)计算R=(x1,y1)=(k1+k2)DB, r=mh-1(x1)modn; 3)计算s1=(k1+rcA1)modn, s2=(k2+rcA2)modn. 消息m的签名为(r,s1,s2). 1.3消息恢复及验证 1)接收者B下载发送者A的公钥DA1,DA2; 2)检查r,s1,s2是否属于{1,2,…,n-1},错误则拒绝签名;……