无可信中心的群签名方法技术

技术编号:19859830 阅读:33 留言:0更新日期:2018-12-22 12:13
本发明专利技术公开了一种无可信中心的群签名方法,用于解决现有群签名方法效率低的技术问题。技术方案是在密钥生成阶段,t个人选取自己的子私钥,计算并公开自己的子公钥以及签名公钥。在签名阶段,t个人分别利用自己的子私钥计算自己的签名,然后将自己的签名发送给签名合成者去合成。签名合成者收到每个人生成的签名后,利用每个人的子公钥验证签名是否有效,如果每个人的签名都有效,则合成签名,如果有人的签名无效,则通知t个人签名失败并退出签名过程。本发明专利技术采用椭圆曲线点乘运算,提高了效率。由于签名由多个人分布式计算生成,签名过程不需要合成私钥,防止私钥泄露;由于与比特币系统的ECDSA签名兼容,也能被比特币签名验证通过。

【技术实现步骤摘要】
无可信中心的群签名方法
本专利技术属于密码
,特别是涉及一种无可信中心的群签名方法。
技术介绍
文献“GoldfederS,GennaroR,KalodnerH,etal.SecuringBitcoinwalletsviaanewDSA/ECDSAthresholdsignaturescheme.2015.”中提出了一种适用于比特币钱包的ECDSA门限签名方法。该方法基于椭圆曲线密码体制,通过利用Paillier提出的基于模幂运算的同态加密方法结合零知识证明技术实现了对比特币钱包的无可信中心群签名功能。在该方法中,t个人传递同态加密密文,之后每个人利用自己的份额对其进行计算,并构建零知识证明,随后生成一个对t个人签名的加密密文,最后t个人进行合作解出签名。该方法实现了对比特币钱包的分布式签名功能,即签名必须由t个人进行,如果少于t个人,则不能生成合法的签名,从而提高了比特币交易的安全性。但是,该方法计算步骤中存在零知识证明,零知识证明需要双方的交互,这是一个比较耗时的操作;并且该方法的主要运算为模幂运算。通过分析可知,该方法共有5t-4个模幂运算,而一个模幂运算的时间约为240Tm,整个方法的运行时间约为(5t-4)*240Tm+TZ=(1200t-960)Tm+TZ,其中Tm表示一个模乘运算所需要的时间,*表示乘法操作,TZ表示零知识证明交互所需要的时间。可以看出,零知识证明和模幂运算的应用导致该方法的计算效率比较低。
技术实现思路
为了克服现有群签名方法效率低的不足,本专利技术提供一种无可信中心的群签名方法。该方法在密钥生成阶段,t个人选取自己的子私钥,计算并公开自己的子公钥以及签名公钥。在签名阶段,t个人分别利用自己的子私钥计算自己的签名,然后将自己的签名发送给签名合成者去合成。签名合成者收到每个人生成的签名后,利用每个人的子公钥验证签名是否有效,如果每个人的签名都有效,则合成签名,如果有人的签名无效,则通知t个人签名失败并退出签名过程。本专利技术没有使用零知识证明这一比较耗时的操作,也没有使用同态加密方法,是基于椭圆曲线点乘进行设计的。一个椭圆曲线点乘运算的时间约为29Tm,和模幂运算相比,椭圆曲线点乘效率是比较高的。因此,与
技术介绍
方法相比,本专利技术采用椭圆曲线点乘运算并且没有零知识证明,效率得到很大的提升。本专利技术实现签名由多个人分布式计算生成,签名过程不需要合成私钥,防止私钥的泄露;本专利技术与比特币系统中的ECDSA签名是兼容的,能被比特币签名验证通过。本专利技术解决其技术问题所采用的技术方案是:一种无可信中心的群签名方法,其特点是包括以下步骤:步骤一、每一个签名参与者IDi选取di∈{1,2,...,n-1}作为自己的子私钥,按照下式,计算自己的子公钥Qi并对子公钥Qi进行公开,i=1,2,...,t;Qi=diG其中,IDi表示第i个签名参与者,di表示第i个签名参与者IDi的子私钥,Qi表示第i个签名参与者IDi的子公钥,t为正整数,表示签名参与者IDi的数目,G表示椭圆曲线上一个阶为n的基点;步骤二、按照下式,每一个签名参与者IDi计算签名公钥Q并对签名公钥Q进行公开:其中,Q表示签名公钥,∑表示求和操作;步骤三、每一个签名参与者IDi选择秘密随机数ki,并把ki安全地广播给除自己之外的其他t-1个签名参与者IDj,j=1,2,...,t,j≠i;其中,ki表示第i个签名参与者IDi选取的随机数;步骤四、每一个签名参与者IDi收到t-1个随机数后,计算签名随机数和验证参数R=(xR,yR)=kG;其中,k表示t个签名参与者IDi共同协商出的签名随机数,R表示验证参数,xR表示验证参数R的横坐标,yR表示验证参数R的纵坐标,n表示椭圆曲线基点G的阶,mod表示求模操作;步骤五、按照下式,每一个签名参与者IDi计算第一部分签名r,如果r=0,则返回步骤三,如果r≠0,则继续执行下面的步骤:r=xRmodn其中,r表示第一部分签名;步骤六、每一个签名参与者IDi计算消息M的哈希值H=hash(M),并按照数据类型转换规则,将H转化为一个整数e,之后计算自己的部分签名si=k-1(t-1e+rdi)modn。如果si=0,则返回步骤三,如果si≠0,则继续执行下面的步骤;其中,M表示消息,H表示消息M的哈希值,hash表示密码哈希算法,e表示哈希值H转换后的整数值,si表示第i个签名参与者IDi所计算的部分签名,k-1表示t个签名参与者IDi共同协商出的签名随机数k在模n下的乘法逆元,t-1表示签名参与者IDi的数目t在模n下的乘法逆元;步骤七、每一个签名参与者IDi通过安全信道将自己的签名(r,si)发送给签名合成者;其中,(r,si)表示第i个签名参与者IDi的签名,由第一部分签名r和第i个签名参与者IDi所计算的部分签名si两部分构成;步骤八、签名合成者收到每个签名(r,si)后,对每个签名(r,si)计算第一个签名验证参数ui1=t-1esi-1modn,计算第二个签名验证参数ui2=rsi-1modn和验证参数Ri′=(xiR′,yiR′)=ui1G+ui2Qi,并判断验证参数Ri′是否为零点。如果Ri′是零点,则签名(r,si)验证失败,通知每一个签名参与者IDi签名失败并退出签名过程,如果Ri′不是零点,则计算签名参数ri=xiR′modn,并验证等式ri=r是否成立。如果等式成立,则签名(r,si)验证成功,如果等式不成立,则签名(r,si)验证失败,通知每一个签名参与者IDi签名失败并退出签名过程。如果每个签名参与者IDi的签名(r,si)均验证成功,则继续执行下面的步骤,如果有的签名参与者IDi的签名验证失败,则通知每一个签名参与者IDi签名失败并退出签名过程,其中i=1,2,...,t;其中,ui1表示第i个签名(r,si)的第一个签名验证参数,ui2表示第i个签名(r,si)的第二个签名验证参数,Ri′表示签名合成者计算的第i个签名(r,si)的验证参数,xiR′表示签名合成者计算的第i个签名验证参数Ri′的横坐标,yiR′表示签名合成者计算的第i个签名验证参数Ri′的纵坐标;ri表示签名合成者计算的第i个签名参与者IDi的签名参数;步骤九、按照下式,签名合成者计算第二部分签名s,合成签名(r,s)并退出签名过程:其中,s表示签名合成者计算的第二部分签名,(r,s)表示签名合成者合成的签名。本专利技术的有益效果是:该方法在密钥生成阶段,t个人选取自己的子私钥,计算并公开自己的子公钥以及签名公钥。在签名阶段,t个人分别利用自己的子私钥计算自己的签名,然后将自己的签名发送给签名合成者去合成。签名合成者收到每个人生成的签名后,利用每个人的子公钥验证签名是否有效,如果每个人的签名都有效,则合成签名,如果有人的签名无效,则通知t个人签名失败并退出签名过程。本专利技术没有使用零知识证明这一比较耗时的操作,也没有使用同态加密方法,是基于椭圆曲线点乘进行设计的。一个椭圆曲线点乘运算的时间约为29Tm,和模幂运算相比,椭圆曲线点乘效率是比较高的。因此,与
技术介绍
方法相比,本专利技术采用椭圆曲线点乘运算并且没有零知识证明,没有采用模幂运算。通过分析可知,本专利技术共有4t个椭圆曲线点乘运算,整个方法的运行本文档来自技高网
...

【技术保护点】
1.一种无可信中心的群签名方法,其特征在于包括以下步骤:步骤一、每一个签名参与者IDi选取di∈{1,2,...,n‑1}作为自己的子私钥,按照下式,计算自己的子公钥Qi并对子公钥Qi进行公开,i=1,2,...,t;Qi=diG其中,IDi表示第i个签名参与者,di表示第i个签名参与者IDi的子私钥,Qi表示第i个签名参与者IDi的子公钥,t为正整数,表示签名参与者IDi的数目,G表示椭圆曲线上一个阶为n的基点;步骤二、按照下式,每一个签名参与者IDi计算签名公钥Q并对签名公钥Q进行公开:

【技术特征摘要】
1.一种无可信中心的群签名方法,其特征在于包括以下步骤:步骤一、每一个签名参与者IDi选取di∈{1,2,...,n-1}作为自己的子私钥,按照下式,计算自己的子公钥Qi并对子公钥Qi进行公开,i=1,2,...,t;Qi=diG其中,IDi表示第i个签名参与者,di表示第i个签名参与者IDi的子私钥,Qi表示第i个签名参与者IDi的子公钥,t为正整数,表示签名参与者IDi的数目,G表示椭圆曲线上一个阶为n的基点;步骤二、按照下式,每一个签名参与者IDi计算签名公钥Q并对签名公钥Q进行公开:其中,Q表示签名公钥,∑表示求和操作;步骤三、每一个签名参与者IDi选择秘密随机数ki,并把ki安全地广播给除自己之外的其他t-1个签名参与者IDj,j=1,2,...,t,j≠i;其中,ki表示第i个签名参与者IDi选取的随机数;步骤四、每一个签名参与者IDi收到t-1个随机数后,计算签名随机数和验证参数R=(xR,yR)=kG;其中,k表示t个签名参与者IDi共同协商出的签名随机数,R表示验证参数,xR表示验证参数R的横坐标,yR表示验证参数R的纵坐标,n表示椭圆曲线基点G的阶,mod表示求模操作;步骤五、按照下式,每一个签名参与者IDi计算第一部分签名r,如果r=0,则返回步骤三,如果r≠0,则继续执行下面的步骤:r=xRmodn其中,r表示第一部分签名;步骤六、每一个签名参与者IDi计算消息M的哈希值H=hash(M),并按照数据类型转换规则,将H转化为一个整数e,之后计算自己的部分签名si=k-1(t-1e+rdi)modn;如果si=0,则返回步骤三,如果si≠0,则继续执行下面的步骤;其中,M表示消息,H表示消息M的哈希值,hash表示密码哈希算法,e表示哈希值H转换后的整数值,si表示第i个签名参与者IDi所计算的部分签名,k-1表示t个签名参与者IDi共同协商出...

【专利技术属性】
技术研发人员:庞辽军魏萌萌叩曼李慧贤
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1