基于ECC的(m,N)门限群签名方法
技术领域
本发明属于数字签名领域,具体涉及基于ECC的(m,N)门限群签名方法。
背景技术
数字签名是现代密码学的一项重要发明。数字签名也是保证数据完整性、实现网络认证和开展现代电子商务的重要工具,近年来,众多研究者提出了许多特殊的数字签名。群签名,门限群签名,非否认群签名和多方签名就是其中的四种。群签名方案首次由Chaum和Heyst提出[1]。在群签名方案中,每个成员都可以代表整个群体签名。在群签名方案中引入秘密分存[2],就形成门限群签名方案[3-8],使得群体中的某些给定子集可以代表整个群体签名。在非否认群签名中,签名的验证需要签名者的合作。而在多方签名方案中,各签名成员的身份是公开的,且验证签名时一般需要各成员的公钥。在门限群签名方案中,门限群签名是由参加签名的各个成员所签署的部分数字签名按某种方式结合后产生的。根据分存秘密的分发方式的不同,现有的门限群签名方案可分为两种类型:带有秘密分发中心的门限群签名方案[4,7,8]和分布式分发分存秘密的门限群签名方案[5-7]。良好的门限群签名应该具备以下性质:
(1)群签名特性:只有群体中的成员才可以生成有效的部分签名,非群成员无法伪造有效的部分签名;
(2)门限特性:只有当签名人数不少于门限时,才可以产生出有效的门限群签名;
(3)防冒充性:任何小组不能假冒其他小组生成群签名;
(4)验证简单性:签名的验证者可以方便而简单地验证签名是否有效;
(5)匿名性:签名的验证者不知道该签名是群体中哪些成员签署的;
(6)可追查性:事后发生纠纷时,可以追查出签名者的身份;
(7)强壮性:恶意成员大于等于门限时仍然无法获取***秘密参数;
(8)***稳定性:剔除违规成员或加入新成员时,勿需或只需少量改变***参数和老成员参数。
然而,现有的门限群签名方案几乎都有缺点。Desmedt和Frankel首次提出基于RSA的门限群签名方案[4],但是[9]发现[4]中的恶意成员大于或等于门限时,他们合谋可以高概率获取***秘密(群秘密密钥),进而可不负责任地伪造其他成员的群签名。Langford在[10]中指出:[5],[6]和[7]中的密钥生成协议有问题。对[11]所提出的门限群签名方案,[12]指出了对该方案的两个攻击:攻击者根据已有的群签名可伪造出关于其它消息的群签名。
参考文献
1、D.Chaum and E.van Heyst.Group Signatures.In:Davies D W ed.Advancesin Cryptology–Eurocrypt’91proceedings.Berlin:Springer-Verlag,1992.257-265.
2、A.Shamir.How to Share a Secret.Communication of ACM,1979,22(11):612-613.
3、Y.Desmedt.Society and Group Oriented Cryptography.In:Pomerance Ced.Advances in Cryptology–Crypto’87proceedings.Berlin:Springer-Verlag,1988.120-127.
4、Y.Desmedt and Y.Frankel.Shared Generation of Authenticators andSignatures.In:Feigenbaum J ed.Advancesin Cryptology–Crypto’91proceedings.Berlin:Springer-Verlag,1992.457-469.
5、L.Harn and S.Yang.Group-Oriented Undeniable Signature Schemeswithout the Assistance of a MutuallyTrusted Party.In:Seberry J and Zheng Yeds.Advances in Cryptology–Auscrypt’92 proceedings.Berlin:Springer-Verlag,1992.133-142.
6、L.Harn.Group-Oriented(t,n)Threshold Digital Signature Scheme andMultisignature.IEE proceedings,Computers and digital techniques,1994,141(5):307-313.
7、C.Li,T.Hwang and N.Lee.Threshold-Multisignature Schemes WhereSuspected Forgery Implies Traceabilityof Adversarial Shareholders.In:Santis AD ed.Advances in Cryptology–Eurocrypt’94proceedings.Berlin:Springer-Verlag,1995.194-204.
8、Lu Langru and Zhao Renjie.A(t,n)Threshold Group SignatureScheme.In:Pei Ding-yi,Zhao Ren-jie andZhou Jin-jun eds.Advances inCryptology—Chinacrypt’96.Beijing:Science Press,1996.177-184.(Lu Langru andZhao Renjie.A(t,n)Threshold Group Signature Scheme.裴定一,赵仁杰,周锦君编.密码学进展——Chinacrypt’96.北京:科学出版,1996.177-184.).
9、C.Li,T.Hwang and N.Lee.Remark on the Threshold RSA SignatureScheme.In:Stinson D R ed.Advances inCryptology–Crypto’93proceedings.Berlin:Springer-Verlag,1993.413-419.
10、Susan K.Langford.Weakness in Some Threshold Cryptosystems.In:Koblitz N ed.Advances in Cryptology–Crypto’96proceedings.Berlin:Springer-Verlag,1996.74-82.
11、C.T.Wang,C.H.Lin and C.C.Chang.Threshold Signature Schemes withTraceable Signers in GroupCommunications.Computer Communications,1998,21(8):771-776.
12、Y.M.Tseng,J.K.Jan.Attacks on Threshold Signature Schemes withTraceable Signers.Information ProcessingLetters,1999,71(1):1-4.13Xu Qiu-Liang.
发明内容
为了解决现有技术存在的上述问题,本发明目的在于提供基于ECC的(m,N)门限群签名方法。
本发明所采用的技术方案为:
基于ECC的(m,N)门限群签名方法,包括如下步骤;
S1、根据椭圆曲线,安全地随机产生一个秘密信息ks并计算其与基点G的标量乘KS=ksG,(ks,KS)组成一个密钥对,其中,ks为私钥,Ks为公钥,椭圆曲线参数为p、a、b、n、G,其中p为大素数或2l,l为整数,a、b为系数,n为阶,G为基点;
S2、将秘密信息ks分割成m个部分,随机生成xi,并根据xi计算yi,xi作为群验证公钥的一部分,yi为用户的签名私钥,i∈{1,…,N};
S3、在拥有私钥yi,i∈{1,…,N}的含有N个成员组织中发起投票,当N个成员中的任何m个成员同意,即可通过执行,实现(m,N)门限群签名。
ECC算法是基于离散对数的数学难题,即给定一个整数z和椭圆曲线上的一个点Q,计算Qz=zQ容易,但反过来给定Qz和Q,求z是不可行的。
具体地,所述步骤S1中,椭圆曲线的第一类曲线方程为:
y2=x3+ax+b
其中,a、b为系数,且该椭圆曲线适用GF(p)域,由于p为大素数,下文群验证公钥和签名私钥的生成过程中对p的取模值为0,1,2,3,4,5,6。
或者,所述步骤S1中,椭圆曲线的第二类曲线方程为:
y2+xy=x3+ax+b
其中,a、b为系数,且该椭圆曲线适用GF(2l)域,下文群验证公钥和签名私钥的生成过程中与采用方程式为y2=x3+ax+b的椭圆曲线的计算方法相同,只是在计算中对2m进行取模,并且取模值为0,1,…,31。
任意m(m<N)个以上(含m)部分可以产生有效的群签名,通过群公钥的验证,此处的群公钥是一个椭圆曲线上的点,记为Ks。
采用第一类曲线方程时,所述步骤S2中,xi和yi具体的计算方法为:
S21、安全地随机生成一个秘密信息ks,计算KS=ksG,作为群公钥的一部分;
S22、将ks分成m个部分a0,a1,…,am-1,即满足ks=a0+a1+…+am-1mod(p),其中,p为大素数,mod(p)为对p进行模运算,在环Zp上构成多项式Pm-1(x):
Pm-1(x)=a0+a1x+a2x2+…+am-1xm-1;
S23、选取x1,x2,…,xN,使得满足xi=xj,当且仅当i=j;i,j∈{1,…,N},计算yi=Pm-1(xi)mod(p),i=1,…,N;
S24、公开x1,x2,…,xN,即xi,i∈{1,…,N}作为***参数,用于验证群签名;
保密y1,y2,…,yN,将yi,i∈{1,…,N}分别通过秘密信道分发给N个成员,作为签名私钥,每个成员都有一个签名私钥yi。
采用第二类曲线方程时,所述步骤S2中,xi和yi具体的计算方法为:
S21、安全地随机生成一个秘密信息ks,计算KS=ksG,作为群公钥的一部分;
S22、将ks分成m个部分a0,a1,…,am-1,即满足ks=a0+a1+…+am-1mod(2l),其中,l为整数,mod(2l)为对2l进行模运算,在环Zp上构成多项式Pm-1(x):
Pm-1(x)=a0+a1x+a2x2+…+am-1xm-1;
S23、选取x1,x2,…,xN,使得满足xi=xj,当且仅当i=j;i,j∈{1,…,N},计算yi=Pm-1(xi)mod(2l),i=1,…,N;
S24、公开x1,x2,…,xN,即xi,i∈{1,…,N}作为***参数,用于验证群签名;
保密y1,y2,…,yN,将yi,i∈{1,…,N}分别通过秘密信道分发给N个成员,作为签名私钥,每个成员都有一个签名私钥yi。
进一步地,所述步骤S3中,具体的签名方法为:
对于一个信息text,每个对内容认可的组织,假定为第i个,对应的签名私钥为yi,做如下操作:
S31、计算信息text的散列值h=Hash(text);
S32、产生一个随机数ki,计算Ri=kiG=(xR,i,yR,i),xR,i,yR,i分别为X轴和Y轴坐标,令ci=xR,i;
S33、计算其中,为逆元计算,ciyi为大整数,si为大整数;
S34、得到(text,si,Ri)即成员的签名值并公布出去。
再进一步地,门限群签名方法还包括验证步骤。
所述验证步骤包括:
S41、成员的签名值(text,si,Ri)组少于的m个,返回失败;若超过m个,选取m个进行验证计算。
再进一步地,所述验证步骤还包括:
S42、假设选取的成员对应着x1,x2,…,xm,其对应的秘密为y1,y2,…,ym,则:
矩阵的伴随矩阵
满足XX*=det(X)I,I是单位矩阵,det(*)是求行列式的值;
S43、对每一组(text,cj,sj,Rj),cj=xR,j,是Rj的X坐标点,计算椭圆曲线上的点Tj:
S44、计算
S45、计算
S46、若则验证通过。
本发明的有益效果为:
本发明克服了传统群签名的缺陷,N个秘密中的任意m个可以产生有效的群签名,而m-1个则不可以。本发明的基于ECC的(m,N)门限群签名方法是安全的,签名私钥不会暴露出来,并且不需要一个可信的第三方(TC)就可以验证。
具体实施方式
下面结合具体实施例对本发明作进一步阐述。
实施例:
本发明的数学基础如下:
伴随矩阵:
称为n阶范德蒙德行列式,其行列式的值为:
显然,若xi互不相同,则Dn≠0。其对应的矩阵:
存在伴随矩阵X*:
使得XX*=det(X)I,这里I为单位矩阵。
本实施例的基于ECC的(m,N)门限群签名方法,包括如下步骤:
第一步、根据式(1)第一类曲线方程的椭圆曲线,安全地随机产生一个秘密信息ks并计算其与基点G的标量乘KS=ksG,(ks,KS)组成一个密钥对,其中,ks为私钥,Ks为公钥,椭圆曲线参数为p、a、b、n、G,其中p为大素数或2l,l为整数,a、b为系数,n为阶,G为基点:
y2=x3+ax+b (1)
其中,a、b为系数,且该椭圆曲线适用GF(p)域,由于p为大素数,下文群验证公钥和签名私钥的生成过程中对P的取模值为0,1,2,3,4,5,6。
椭圆曲线还可为第二类曲线方程:
y2+xy=x3+ax+b
其中,a、b为系数,且该椭圆曲线适用GF(2l)域,下文群验证公钥和签名私钥的生成过程中与采用方程式为y2x3+ax+b的椭圆曲线的计算方法相同,只是在计算中对2m进行取模,并且取模值为0,1,…,31。
密钥对的含义是:用私钥签名,可以用公钥验证成功。
ECC算法是基于离散对数的数学难题,即给定一个整数z和椭圆曲线上的一个点Q,计算Qz=zQ容易,但反过来给定Qz和Q,求z是不可行的。
第二步、ECC体制下,将秘密信息ks分成m个部分,随机生成xi,并根据xi计算yi,xi作为群验证公钥的一部分,yi为用户的签名私钥,i∈{1,…,N},其中任意m(m<N)个以上(含m)部分可以产生有效的群签名,通过群公钥的验证,此处的群公钥是一个椭圆曲线上的点,记为Ks,群公钥和签名私钥具体的计算方法为:
选取一个秘密信息ks,计算KS=ksG,作为群公钥的一部分;
采用第一类曲线方程时,将ks分成m个部分a0,a1,…,am-1,即满足ks=a0+a1+…+am- 1mod(p),其中,p为大素数,mod(p)为对p进行模运算,在环Zp上构成多项式Pm-1(x):
Pm-1(x)=a0+a1x+a2x2+…+am-1xm-1 (2)
选取x1,x2,…,xN,使得满足xi=xj,当且仅当i=j;i,j∈{1,…,N},计算yi=Pm-1(xi)mod(p),i=1,…,N;
采用第二类曲线方程时,将ks分成m个部分a0,a1,…,am-1,即满足ks=a0+a1+…+am- 1mod(2l),其中,l为整数,mod(2l)为对2l进行模运算,在环Zp上构成多项式Pm-1(x):
Pm-1(x)=a0+a1x+a2x2+…+am-1xm-1;
选取x1,x2,…,xN,使得满足xi=xj,当且仅当i=j;i,j∈{1,…,N},计算yi=Pm-1(xi)mod(2l),i=1,…,N;
公开x1,x2,…,xN,即xi,i∈{1,…N}作为***参数,用于验证群签名,保密y1,y2,…,yN,将yi,i∈{1,…,N}分别通过秘密信道分发给N个成员,作为签名私钥,每个成员都有一个签名私钥yi。
第三步、在拥有私钥yi,i∈{1,…,N}的含有N个成员组织中发起投票,当N个成员中的任何m个成员同意,即可通过执行,实现(m,N)门限群签名。
具体的签名方法为:
对于一个文本信息text,每个对内容认可的组织,假定为第i个,对应的签名私钥为yi,做如下操作:
首先,计算h=Hash(text),是text的散列值;
然后,产生一个随机数ki,计算Ri=kiG=(xR,i,yR,i),xR,i,yR,i分别为X轴和Y轴坐标,令ci=xR,i;
然后,计算其中,为逆元计算,ciyi为大整数,si为大整数;
最后,(text,si,Ri)即成员的签名值,公布出去。
基于ECC的(m,N)门限群签名方法,还包括验证步骤。
若(text,si,Ri)组少于的m个,返回失败;若超过m个,选取m个进行验证计算。不失一般性,假设选取的成员对应着x1,x2,…,xm,其对应的秘密为y1,y2,…,ym。
矩阵的伴随矩阵满足XX*=det(X)I,I是单位矩阵,det(*)是求行列式的值。
验证过程如下:
首先,对每一组(text,cj,sj,Rj),cj=xR,j,是Rj的X坐标点,计算椭圆曲线上的点Tj,如式(3);
然后,计算
然后,计算
若则验证通过。
对本发明进行如下证明:
符号字母含义同上,因yi=Pm-1(xi)mod(p),i=1,…,m。记Y=(y1,y2,…,ym),得到式(4):
AX=Ymod(p) (4)
令X*为在整数域上的伴随矩阵,则X*满足XX*=det(X)I,令:
这里则有式(6):
det(X)A=YX*over Z (6)
其中,over Z是该等式在整数域上存在,故:
同样上式在GF(p)数域成立,即式(7):
由得:siki=(h+ciyi),两边同时对G做点乘,得:sikiG=(hG+yi.ciG)即:
siRi=hG+yi.ciG
可得两边同时乘以且由式(3)得式(8):
式(8)两边对i求和,右边为T,左边为:
故而,若则验证通过。
对本发明进行安全性分析如下:
i.从上面的证明过程可知,N中的任何k-1个部分不能产生有效的签名T。
ii.由于从Tj,j=1,…,k和中计算yj的难度等同于计算离散对数的复杂性,理论上攻击者不能从Sj中得到yj。因此,Tj不会暴露yj的任何信息。
iii.本发明的基于ECC的门限群签名方法是安全的。
因而,本发明的(k,N)门限ECC群签名方法是安全的。
本发明不局限于上述可选实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是落入本发明权利要求界定范围内的技术方案,均落在本发明的保护范围之内。