一种适用于门限计算的SM2数字签名方法技术

技术编号:26797373 阅读:22 留言:0更新日期:2020-12-22 17:14
本发明专利技术涉及密码技术领域,特别涉及一种适用于门限计算的SM2数字签名方法。本方法首先由签名者生成一个SM2数字签名的密钥,并将该密钥的公钥发送给验证者;然后签名者生成一个SM2数字签名(r,s),并将该SM2数字签名(r,s)发送给验证者;最后验证者对接收到的SM2数字签名(r,s)进行验证。本发明专利技术方法在生成数字签名阶段不涉及秘密数值的乘法运算与求逆运算,这两个运算在门限计算中开销较大,因此本方法比标准SM2算法更适用于门限计算;而且,本方法生成的数字签名(r,s)可以与标准SM2算法生成的数字签名结果兼用,并且可以采用与标准SM2算法相同的验证签名算法对数字签名进行验证,与标准SM2算法具有很好的兼容性。

【技术实现步骤摘要】
一种适用于门限计算的SM2数字签名方法
本专利技术涉及密码
,特别涉及一种适用于门限计算的SM2数字签名方法。
技术介绍
SM2算法是国家密码管理局发布的一种椭圆曲线公钥密码算法,可用于加解密和数字签名,在密码领域中应用广泛。算法的具体细节参考《GM/T0003-2012SM2椭圆曲线公钥密码算法》。现将标准SM2算法数字签名方法简要描述如下:1.SM2算法参数a)Fq是包含q个元素的有限域;b)E是定义在有限域Fq上的一条椭圆曲线;c)G是椭圆曲线E上的一个基点,其阶为素数;d)n是G的阶。2.SM2算法密钥产生过程a)随机选取私钥d∈[1,n-2];b)计算P=d[*]G,并将P作为公钥公开。3.SM2算法数字签名生成过程a)签名者选取随机数k∈[1,n-1];b)签名者计算k[*]G=(x1,y1);c)签名者计算r=(Hash(m)+x1)modn,其中m是待签名的消息,Hash()为密码杂凑函数,若r=0或r+k=n,则重新选取随机数k;d)签名者计算s=(1+d)-1(k-rd)modn,若s=0,则重新选取随机数k,否则将(r,s)作为签名结果。4.SM2算法签名验证过程a)验证者收到m和(r,s)后,先检查是否满足r,s∈[1,n-1]且r+s≠n;b)验证者计算(x′1,y′1)=s[*]G[+](r+s)[*]P;c)验证者计算r′=(Hash(m′)+x′1)modn;d)验证者判断r′与r是否相等,若二者相等则签名验证通过,否则验证失败。但是,由于标准SM2算法的数字签名方法在产生数字签名时涉及计算s=(1-d)-1(k-rd)modn,即每计算一个新的数字签名都需要做求逆运算,计算开销大,影响数字签名生成的效率;不仅如此,该计算中包含秘密数值的(1-d)-1与秘密数值(k-rd)的乘法运算,不利于该算法在更多应用场景中的扩展,例如在门限签名方案中,通过门限分享的秘密数值之间的乘法运算开销较大且对正常参与方在所有参与方中所占比例要求更高,因此标准SM2算法不利于在门限签名的场景中应用。
技术实现思路
本专利技术的目的是提出一种适用于门限计算的SM2数字签名方法,使得SM2数字签名在每次产生数字签名时不涉及求逆运算,且避免了秘密数值的乘法运算,在保证安全地产生数字签名的前提下提升产生数字签名的效率和数字签名方案的可扩展性。本专利技术提出的适用于门限计算的SM2数字签名方法,包括:(1)签名者生成密钥(d′,P)和签名参数Q,包括如下步骤:(1-1)签名者生成一个位于[2,n-1]之间的随机数,将该随机数作为私钥因子d′并保密存储,d′∈[2,n-1],其中n是椭圆曲线E的基点G的阶;(1-2)签名者根据步骤(1-1)的私钥因子d′,计算得到公钥P,P=(d′-1-1)[*]G,并将该公钥P发送给验证者;其中[*]表示椭圆曲线E上的点乘运算,d′-1表示私钥因子d′在有限域Fn上的乘法逆元,有限域Fn是指元素个数为n的有限域,G是椭圆曲线E上的n阶基点;(1-3)签名者根据步骤(1-1)的公钥P,计算得到签名参数Q,Q=G[+]P;其中[+]表示椭圆曲线E上的加法运算。(2)签名者生成一个SM2数字签名(r,s),包括以下步骤:(2-1)签名者生成一个随机数k′,k′∈[1,n-1];(2-2)签名者根据随机数k′和签名参数Q,计算得到坐标(x1,y1),(x1,y1)=k′[*]Q;(2-3)签名者根据步骤(2-2)的坐标(x1,y1),使用有限域Fn上的加法计算得到SM2数字签名(r,s)的第一部分r,r=(Hash(m)+x1)modn,使用第一数字签名有效性判断算法,对r进行判断,若未通过判断,则返回步骤(2-1),重新选取随机数k′,若通过判断,则执行步骤(2-4);其中,m为待签名消息,Hash()为密码杂凑函数,mod为取模运算;(2-4)签名者根据步骤(2-3)的SM2数字签名(r,s)第一部分r、步骤(2-1)的随机数k′和签名者的私钥因子d′,使用有限域Fn上的加法和乘法计算得到SM2数字签名(r,s)的第二部分s,s=(d′r+k′-r)modn,使用第二数字签名有效性判断算法,对s进行判断,若未通过判断,则返回步骤(2-1),重新选取随机数k′,若通过判断,则执行步骤(2-5);(2-5)签名者将通过验证的SM2数字签名(r,s)作为待签名消息m的数字签名发送给验证者。(3)验证者对接收到的SM2数字签名(r,s)进行验证,包括以下步骤:(3-1)验证者对来自签名者的SM2数字签名(r,s)进行验证,若r∈[1,n-1]且s∈[1,n-1]且r+s≠n,则执行步骤(3-2),若或或r+s=n,则数字签名(r,s)验证失败;(3-2)验证者根据来自签名者的公钥P和SM2数字签名(r,s),计算得到坐标(x′1,y′1),(x′1,y′1)=s[*]G[+](r+s)[*]P;(3-3)验证者根据步骤(3-2)的坐标(x′1,y′1)和待验证消息m′计算出r′,r′=(Hash(m′)+x′1)modn;(3-4)验证者比较r和r′,若r和r′相等,则SM2数字签名(r,a)验证通过,若r和r′不相等,则SM2数字签名(r,s)验证失败。上述SM2数字签名方法中,在生成数字签名时,第一数字签名有效性判断算法为:若r=0,则不通过判断;若r≠0,则通过判断。上述SM2数字签名方法中,在生成数字签名时,第二数字签名有效性判断算法为:若s=0或s+r=n,则不通过判断;若s≠0且s+r≠n,则通过判断。本专利技术提出的适用于门限计算的SM2数字签名方法,其优点是:本专利技术的适用于门限计算的SM2数字签名方法,可以安全地生成消息m的数字签名(r,s),并且在每次计算新的数字签名时,不涉及求逆运算,可提高产生数字签名的效率;并且,在产生数字签名的计算过程中不涉及秘密数值的乘法运算,增强了数字签名方案的可扩展性;不仅如此,本专利技术所述方法生成的数字签名与标准SM2算法生成的数字签名结果可以兼用,且两者可以采用相同的签名验证方法,与标准SM2算法具有良好的兼容性。附图说明图1为本专利技术提出的适用于门限计算的SM2数字签名方法的总流程框图。图2为本专利技术方法中的密钥生成方法的流程图。图3为本专利技术方法中数字签名生成方法的流程图。图4为本专利技术方法中验证签名方法的流程图。具体实施方式本专利技术提出的适用于门限计算的SM2数字签名方法,其总流程框图如图1所示,包括以下步骤:(1)签名者生成密钥(d′,P)和签名参数Q,包括如下步骤:(1-1)签名者生成一个位于[2,n-1]之间的随机数,将该随机数作为私钥因子d′并保密存储,d′∈[2,n-1本文档来自技高网
...

【技术保护点】
1.一种适用于门限计算的SM2数字签名方法,其特征在于,该方法包括:/n(1)签名者生成密钥(d′,P)和签名参数Q,包括如下步骤:/n(1-1)签名者生成一个位于[2,n-1]之间的随机数,将该随机数作为私钥因子d′并保密存储,d′∈[2,n-1],其中n是椭圆曲线E的基点G的阶;/n(1-2)签名者根据步骤(1-1)的私钥因子d′,计算得到公钥P,P=(d′

【技术特征摘要】
1.一种适用于门限计算的SM2数字签名方法,其特征在于,该方法包括:
(1)签名者生成密钥(d′,P)和签名参数Q,包括如下步骤:
(1-1)签名者生成一个位于[2,n-1]之间的随机数,将该随机数作为私钥因子d′并保密存储,d′∈[2,n-1],其中n是椭圆曲线E的基点G的阶;
(1-2)签名者根据步骤(1-1)的私钥因子d′,计算得到公钥P,P=(d′-1-1)[*]G,并将该公钥P发送给验证者;其中[*]表示椭圆曲线E上的点乘运算,d′-1表示私钥因子d′在有限域Fn上的乘法逆元,有限域Fn是指元素个数为n的有限域,G是椭圆曲线E上的n阶基点;
(1-3)签名者根据步骤(1-1)的公钥P,计算得到签名参数Q,Q=G[+]P;其中[+]表示椭圆曲线E上的加法运算。
(2)签名者生成一个SM2数字签名(r,s),包括以下步骤:
(2-1)签名者生成一个随机数k′,k′∈[1,n-1];
(2-2)签名者根据随机数k′和签名参数Q,计算得到坐标(x1,y1),(x1,y1)=k′[*]Q;
(2-3)签名者根据步骤(2-2)的坐标(x1,y1),使用有限域Fn上的加法计算得到SM2数字签名(r,s)的第一部分r,r=(Hash(m)+x1)modn,使用第一数字签名有效性判断算法,对r进行判断,若未通过判断,则返回步骤(2-1),重新选取随机数k′,若通过判断,则执行步骤(2-4);其中,m为待签名消息,Hash()为密码杂凑函数,mod为取模运算;
(2-4)签名者根据步骤(2-3)的SM2数字签名(r,s)第一部分r、步骤(2-1)的随机数k′和签名者的私钥因...

【专利技术属性】
技术研发人员:荆继武张译尹王平建刘丽敏寇春静
申请(专利权)人:中国科学院大学
类型:发明
国别省市:北京;11

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

1