三个前向安全代理签名方案的安全性分析
2015-04-11魏仕民卓泽朋
曹 欣,魏仕民,卓泽朋
淮北师范大学 数学科学学院,安徽 淮北 235000
1 引言
代理签名自1996年由Mambo等人[1]提出以来便受到广泛关注。当原始签名人由于某些原因不能行使签名权时可将签名权委托给代理签名人,代理签名人可以代替原始签名人对消息进行签名。代理签名的有效性是可验证的。一个代理签名方案应该满足可区分性、可验证性、不可伪造性、不可否认性等安全性质[2-4]。但是所有这些当代理签名人的签名密钥泄漏后,他所代理的签名将不再安全。1997年Anderson[5]首次提出了前向安全的概念。将前向安全的概念引入代理签名体制可以有效地解决密钥泄漏所带来的安全问题。
然而对前向安全的签名方案进行研究却发现,大部分的方案[6-12]都是不安全的。很多方案在代理签名人的密钥进化算法或代理签名密钥的的设计上具有前向安全性,但是当密钥泄漏以后,攻击者不去计算以前密钥,也能生成有效的代理签名,即方案不具有真正的前向安全性。不能抵抗来自原始签名人的伪造攻击,而有的即使不知道代理签名人的任何私有信息也能进行伪造攻击,前向安全的代理签名也不再具有前向安全性。而有的代理签名人则会借此声称那些对其不利的代理签名是别人伪造的签名,以此来推卸责任。因此,对前向安全的代理签名方案的研究任重而道远,设计出一种具有真正意义上的前向安全代理签名方案具有很大的研究价值。本文主要对三个前向安全的代理签名方案进行分析,发现其不具有前向安全性,当密钥泄漏后它不能够抵抗原始签名人的伪造攻击。
2 对夏祥胜等人方案的安全性进行分析
2.1 方案回顾
(1)初始化[9]认证中心选择n=p1p2=(2qp1'+1)×(2qp2'+1),p1=p2=3mod4,QRn是模n的平方剩余集合,g∈QRn且g的阶为q,并且p1,p2,p1',p2',q都是安全的大素数。选择一个单向安全的Hash函数和整数(e,d),gcd(e,φ(n))=1,ed=1modφ(n),φ(n)=(p1-1)(p2-1)。公布 (n,q,g,h,e)。A是原始签名人,身份标识为IDA,私钥为xA,公钥为yA=modn。B是代理签名人,B的身份标识为IDB,私钥为xB,公钥为yB=modn。
(2)授权过程[9]授权书mw,签名时间周期是1,2,…,T。代理终止时间是t。A选择一个随机数kA,1≤kA≤n。计算η=modnσ′=(kAη+xAh(mw,η))modq。将 (mw,σ′,η)发送给B。B验证等式modn是否成立。若成立则计算初始代理签名密钥σ0=(xB+σ′)modn。验证公钥。
(3)密钥进化及代理签名生成[9]在第i时段(1≤i≤T)代理签名人B计算σi=σi-12modn,然后删除σi-1。B随机选取αi,βi∈[1,n],计算:,w=gβimodn,u=h(i||m||r||w||mw) ,,s=(αi-βiu)modq,则前向安全代理签名为 (i,mw,(m,s,z,u,w))。
(4)签名验证[9]验证者V首先判断签名是否在有效期,如果在有效期内则计算modn,然后再验证u=h(i||m||r′||w||mw)是否成立。若成立则签名有效,否则无效。
2.2 对该方案的安全性进行分析
当签名密钥σi泄漏后方案不具有前向安全性,不能抵抗原始签名人的伪造攻击。攻击者不去计算σi-1而是利用公钥进行伪造攻击。因为是一个固定值,,所以,记。这个时候原始签名人可以发起攻击,有两种攻击方法。
攻击方法一:原始签名人在时间段j(j<i),选取随机数αj,令
则伪造的代理签名为 (j,mw,(m,sj,zj,uj,wj)),可以验证它是有效的代理签名。验证:
所以u′j=h(j||m||rj'||wj||mw)=uj,即攻击成功。
攻击方法二:原始签名人,令
那么伪造的代理签名为 (j,mw,(m,sj,zj,uj,wj)),它是能通过验证人验证的。验证如下:
所以u′j=h(j||m||rj'||wj||mw)=uj成立,即原始签名人的伪造攻击成功。
3 对张晓敏等人方案安全性进行分析
3.1 对方案回顾
(1)系统初始化[10]n=p1p2=(2qp1'+1)(2qp2'+1),其中p1=p2=3mod4,QRn是模n的平方剩余集合,g∈QRn且g的阶为q。p1,p2,p1',p2',q都是安全的大素数,h(·)是安全单向的HASH函数。xA,xB∈分别是原始签名人A和代理签名者B的私钥,公钥yA=xA-vmodn,yB=xB-vmodn。系统有效期分为T个周期。
(2)授权过程[10]A选择代理终止时间,计算a=modn,公开(,a,IDB)。B如果接受此代理则计算b=gxBmodn并且公布b。A再计算σ=modn,,将Y公布。B计算σ=modn并验证modn是否成立,若成立则接受此授权。
(3)代理签名生成[10]在周期i进行密钥进化,。然后删除。B选取随机数,r=modn,,z=modn,u=h(i||m||r||z||w||t),s=(αi-βiv-kiu)modq。则前向安全代理签名为(i,m,r,s,z,u,t),t是签名时间。
(4)签名验证[10]首先验证t是否超过止时间,超过则签名无效;否则可计算,然后验证u=h(i||m||w′||r||z||t)是否成立,成立则签名有效。
3.2 对此方案的安全性进行分析
攻击者在不知道代理人私钥的情况下也可对此方案进行攻击,伪造代理签名。在签名周期j,攻击者选取随机数αj,令
则 (j,m,rj,sj,zj,uj,t)为伪造的代理签名,该签名能通过验证。验证过程如下:
即攻击成功,此方案不能抵抗原始签名人和外部攻击者的攻击,不具有前向安全性。
4 对王天银等人方案的安全性进行分析
4.1 原方案回顾
(5)代理签名的验证[11]首先计算。如果e′=e则签名有效。
4.2 对此方案的安全性进行分析
从而有ej'=ej,即原始签名人伪造攻击成功。
5 其他方案也存在安全隐患
6 结语
本文对前向安全签名方案进行分析,发现现在大多前向安全的签名方案不具有真正意义上的前向安全性。因此,真正具有前向安全性的代理签名方案具有很大的研究价值。
[1]Mambo M,Usuda K,Okamoto E.Proxy signatures for delegating signing operation[C]//Proc of the 3rd ACM Conference on Computer and Communications Security.[S.l.]:ACM Press,1996:48-57.
[2]Mambo M,Usuda K,Okamoto E.Proxy signatures:delegation of the power to sign messages[J].IEICE Trans on Fundam,1996,E79-A(9):1338-1354.
[3]李继国,曹珍富,李建中,等.代理签名的现状与进展[J].通信学报,2003,24(10):114-124.
[4]白国强,黄谆,陈弘毅,等.基于椭圆曲线的代理数字签名[J].电子学报,2003,31(11):1659-1663.
[5]Anderson R.Two remarks on public key cryptology[C]//Procofthe4th ACM ComputerandCommunication Security,1997.
[6]王晓明,陈火炎,符方伟.前向安全的代理签名方案[J].通信学报,2005,26(11):38-42.
[7]谭作文,刘卓军.一个前向安全的强代理签名方案[J].信息与电子工程,2003(4):257-259.
[8]王亮,贾小珠.基于离散对数的前向安全代理签名方案[J].青岛大学学报,2007,20(2):46-49.
[9]夏祥胜,洪帆,崔国华.一个前向安全的代理签名方案的分析与改进[J].微电子学与计算机,2008,25(10):172-174.
[10]张晓敏,张建中.一个改进的前向安全的代理签名方案[J].计算机工程,2007,33(21):140-141.
[11]王天银,张建中.一个新的前向安全的代理数字签名方案[J].计算机工程与应用,2005,41(25):133-135.
[12]王勇兵,张建中.一种前向安全的匿名代理签名方案[J].计算机工程与应用,2006,42(25):108-109.