当前位置: 首页 > 专利查询>武汉大学专利>正文

一种高效的SM9两方协同生成数字签名的方法及系统技术方案

技术编号:21612042 阅读:536 留言:0更新日期:2019-07-13 20:35
本发明专利技术公开了一种高效的SM9两方协同生成数字签名的方法及系统,该方法包括:1)2)3)。本发明专利技术方法给出了一种高效的两方分布式SM9数字签名方案,签名过程两个参与方必须同时在线进行消息的交互,实现了签名的公平性。同时,完整私钥由参与双方拆分保存,且在整个签名过程中未有私钥恢复过程,保证了签名私钥的安全性。

An Efficient Method and System for SM9 Two-party Cooperative Generation of Digital Signature

【技术实现步骤摘要】
一种高效的SM9两方协同生成数字签名的方法及系统
本专利技术涉及信息安全
,尤其涉及一种高效的SM9两方协同生成数字签名的方法及系统。
技术介绍
数字签名是非对称加密技术和消息摘要技术的应用,主要用于验证签名者的身份以及消息的合法性。数字签名可以防范主动攻击,确保传输数据的完整性、真实性和不可抵赖性,是目前网络通信、电子商务、电子政务中使用最普遍、技术最成熟、可操作性最强的一种密码技术。数字签名的安全性与签名私钥的安全性密不可分。签名私钥一旦泄露,攻击者便能利用签名私钥进行签名的伪造,对系统的安全性造成巨大威胁。为了防止秘密过于集中,比较常见的是使用秘密共享来分割密钥,从而达到分散风险和容忍入侵的目的。如(t,n)门限秘密共享中,完整私钥被分割为n个部分私钥并安全地分给n个参与方掌管。当需要签名消息时,n个参与者中的t个及以上可以重构私钥,少于t个参与者无法获得关于完整私钥的任何信息。但是,一旦私钥被恢复,持有完整私钥的一方就可以在其他参与方不知晓的情况下独立地签名消息。SM9是国家密码管理局于2016年3月发布的一种基于双线性对的标识密码算法,相关标准为“GM/T0044-2016SM9标识密码算法”。SM9基于用户的身份标识生成用户的公、私钥对,其应用与管理不需要数字证书、证书库或密钥库,主要用于数字签名、数据加密、密钥交换以及身份认证等。
技术实现思路
本专利技术要解决的技术问题在于针对现有技术中的缺陷,提供一种高效的两方分布式SM9数字签名生成方法及系统。本专利技术解决其技术问题所采用的技术方案是:一种高效的SM9两方协同生成数字签名的方法,包括以下步骤:1)生成签名所需的参数和签名主私钥;1.1)输入安全参数λ,KGC选择两个q阶加法循环群G1,G2,一个q阶乘法循环群GT,一个双线性映射e:G1×G2→GT,令P1为G1的一个生成元,P2为G2的一个生成元;其中,q阶为大素数,且q>2191;1.2)KGC选择随机数作为主私钥,计算签名主公钥Ppub-s=[ks]P2,并计算g=e(p1,ppub-s);1.3)KGC选择两个安全的密码杂凑函数以及用一个字节表示的签名密钥生成函数识别符hid;其中,H1和H2是由{0,1}*到的密码杂凑函数;1.4)KGC秘密保存系统主私钥ks,公开系统参数{λ,q,G1,G2,GT,e,P1,P2,Ppub-s,g,H1,H2,hid};2)生成分布式签名私钥;给定用户的身份ID,KGC为用户生成签名私钥,具体如下:2.1)KGC计算第一个临时变量t1=H1(ID||hid,q)+ks和第二个临时变量其中表示t1模q的逆元,即2.2)KGC选择一个随机数计算其中表示d1模q的逆元,即2.3)KGC计算第一部分签名密钥并设置第二部分签名密钥为2.4)用户A把存储到设备A,用户B把存储到设备B中;3)给定待签名的消息m,通信双方A,B联合生成数字签名(h,S)的过程,具体阐述如下:3.1)通信双方A和B事先协商确认要签名的消息m;3.2)A选择一个随机数计算第三个临时变量并将w1发送给B;3.3)B收到w1后,选择一个随机数计算第四个临时变量并通过w2计算签名的第一部分h=H2(m||w2,q);然后,B计算第五个临时变量若s'=0则重新选择r2,否则B将s',h发送给A;3.4)A收到s'后,计算签名的第二部分A利用SM9的数字签名验证算法验证签名的正确性,若验证通过,则输出SM9数字签名(h,S)。一种高效的SM9两方协同生成数字签名系统,包括:系统初始化模块,用于生成系统参数和系统主公私钥;生成系统参数和系统主公私钥的具体过程如下:1)输入安全参数λ,KGC选择两个q阶加法循环群G1,G2,一个q阶乘法循环群GT,一个双线性映射e:G1×G2→GT,令P1为G1的一个生成元,P2为G2的一个生成元;其中,q阶为大素数,且q>2191;2)KGC选择随机数作为主私钥,计算签名主公钥Ppub-s=[ks]P2,并令g=e(p1,ppub-s);3)KGC选择两个安全的密码杂凑函数以及用一个字节表示的签名密钥生成函数识别符hid;其中,H1和H2是由{0,1}*到的密码杂凑函数;4)将生成的系统主私钥ks交由KGC秘密保存,公开系统参数;分布式密钥生成模块,用于根据系统参数和系统主私钥为用户生成分布式签名私钥;具体如下:1)KGC计算第一个临时变量t1=H1(ID||hid,q)+ks和第二个临时变量其中表示t1模q的逆元,即2)KGC选择一个随机数计算其中表示d1模q的逆元,即3)KGC计算第一部分签名密钥并设置第二部分签名密钥为4)用户A把存储到设备A,把存储到设备B中;分布式数字签名模块,用于对给定待签名的消息m,由通信双方A,B联合生成数字签名(h,S),具体如下:1)通信双方A和B事先协商确认要签名的消息m;2)A选择一个随机数计算第三个临时变量并将w1发送给B;3)B收到w1后,选择一个随机数计算第四个临时变量并通过w2计算签名的第一部分h=H2(m||w2,q);然后,B计算第五个临时变量若s'=0则重新选择r2,否则B将s',h发送给A;4)A收到s'后,计算签名的第二部分A利用SM9数字签名验证算法验证签名的正确性,若验证通过,则输出SM9数字签名(h,S)。本专利技术产生的有益效果是:本专利技术给出了一种高效的两方分布式SM9数字签名方案,签名过程两个参与方必须同时在线进行消息的交互,实现了签名的公平性。同时,完整私钥由参与双方拆分保存,且在整个签名过程中未有私钥恢复过程,保证了签名私钥的安全性。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术实施例的方法流程示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,本专利技术提出了一种高效的两方分布式SM9数字签名生成方法,下面给出具体描述。符号及定义A,B:通信双方;q:大素数,且q>2191;G1,G2:阶为素数q的加法循环群;GT:阶为素数q的乘法循环群;P1,P2:群G1,G2的生成元;[k]P:加法群G1,G2中元素P的k倍;e:从G1×G2到GT的双线性映射;gl:乘法群GT中g的l次幂,即其中l是正整数;H1,H2:由{0,1}*到的密码杂凑函数;IDA:通信方A的标识,可以唯一确定通信方A的公钥;通信方A的签名密钥;;IDB:通信方B的标识,可以唯一确定通信方B的公钥;通信方B的签名密钥;modq:模q运算。例如,27mod5=2;x||y:x与y的拼接,其中x和y是比特串或字节串;一种高效的两方分布式SM9数字签名生成方法,主要步骤包括:系统初始化、分布式密钥生成、分布式数字签名生成三部分,具体如下:(1)系统初始化输入安全参数λ,KGC生成系统参数和系统主公私钥的过程,具体阐述如下:1)输入安全参数λ,KGC选择两个q阶加法循环群G1,G2,一个q阶乘法循环群GT,一个双线性映射e:G1×G2→GT,令P1为G1的一个生成元,P2为G2的一个生成元;2)KGC选择随机数作为主私钥,计算签名主公钥Ppub-s=[ks]P本文档来自技高网...

【技术保护点】
1.一种高效的SM9两方协同生成数字签名的方法,其特征在于,包括以下步骤:1)生成签名所需的参数和签名主私钥;1.1)输入安全参数λ,KGC选择两个q阶加法循环群G1,G2,一个q阶乘法循环群GT,一个双线性映射e:G1×G2→GT,令P1为G1的一个生成元,P2为G2的一个生成元;其中,q阶为大素数,且q>2

【技术特征摘要】
1.一种高效的SM9两方协同生成数字签名的方法,其特征在于,包括以下步骤:1)生成签名所需的参数和签名主私钥;1.1)输入安全参数λ,KGC选择两个q阶加法循环群G1,G2,一个q阶乘法循环群GT,一个双线性映射e:G1×G2→GT,令P1为G1的一个生成元,P2为G2的一个生成元;其中,q阶为大素数,且q>2191;1.2)KGC选择随机数作为主私钥,计算签名主公钥Ppub-s=[ks]P2,并计算g=e(p1,ppub-s);1.3)KGC选择两个安全的密码杂凑函数H1,H2:以及用一个字节表示的签名密钥生成函数识别符hid;其中,H1和H2是由{0,1}*到的密码杂凑函数;1.4)KGC秘密保存系统主私钥ks,公开系统参数{λ,q,G1,G2,GT,e,P1,P2,Ppub-s,g,H1,H2,hid};2)生成分布式签名私钥;给定用户的身份ID,KGC为用户生成签名私钥,具体如下:2.1)KGC计算第一个临时变量t1=H1(ID||hid,q)+ks和第二个临时变量其中表示t1模q的逆元,即2.2)KGC选择一个随机数计算其中表示d1模q的逆元,即2.3)KGC计算第一部分签名密钥并设置第二部分签名密钥为2.4)用户A把存储到设备A,用户B把存储到设备B中;3)给定待签名的消息m,通信双方A,B联合生成数字签名(h,S)的过程,具体阐述如下:3.1)通信双方A和B事先协商确认要签名的消息m;3.2)A选择一个随机数计算第三个临时变量并将w1发送给B;3.3)B收到w1后,选择一个随机数计算第四个临时变量并通过w2计算签名的第一部分h=H2(m||w2,q);然后,B计算第五个临时变量若s'=0则重新选择r2,否则B将s',h发送给A;3.4)A收到s'后,计算签名的第二部分A利用SM9的数字签名验证算法验证签名的正确性,若验证通...

【专利技术属性】
技术研发人员:何德彪张佳妮冯琦王婧陈泌文
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北,42

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

1