基于SM2椭圆曲线的签名方法、相关装置、及存储介质制造方法及图纸

技术编号:28682131 阅读:34 留言:0更新日期:2021-06-02 03:00
本公开提供基于SM2椭圆曲线的签名方法、相关装置、及存储介质,所述方法包括:随机选取第一密钥d

【技术实现步骤摘要】
基于SM2椭圆曲线的签名方法、相关装置、及存储介质
本公开属于加解密
,特别涉及基于SM2椭圆曲线的签名方法、相关装置、及存储介质。
技术介绍
随着电子认证(CA)技术的发展与应用,以及数字签名法的实施,数字签名技术在数字世界中占有越来越重要的地位。基于网络业务的行政审批、电子合同、电子发票、网络交易支付等都采用了数字签名技术来保障业务的不可抵赖性。在传统的数字签名技术中,签名者不仅持有CA机构签发的用于标明其身份和公钥的数字证书,还拥有用于计算签名的私钥。私钥一般保存在密码设备中,如:硬件设备USBKEY、集成电路卡IC卡等,以防止密钥被拷贝或窃取。然而,在移动终端中,用户的私钥是直接存放于移动终端磁盘介质上,私钥的安全性不够高,存在被不法分子窃取的高风险,故此如何提高密钥的安全性有待解决。
技术实现思路
本公开的目的在于提供一种基于SM2椭圆曲线的签名方法、相关装置及存储介质,以解决上述私钥的安全性不够高的问题。第一方面,本公开提供一种基于SM2椭圆曲线的签名方法,应用于第一设备,其中G为椭圆曲线E上的基点,所述基点G的阶为n,所述方法包括:随机选取第一密钥dA,其中dA∈[1,n-1];对消息M进行签名预处理得到哈希函数值e;选取随机数kA∈[1,n-1],根据所述随机数kA计算出第一中间值QA;将所述第一中间值QA和所述e发送给第二设备,以使所述第二设备根据其随机数kB生成第三中间值r、第四中间值sB1和第五中间值sB2;接收所述第二设备发送的所述第三中间值r、所述第四中间值sB1和所述第五中间值sB2;根据所述dA、kA、sB1、sB2计算出第六中间值s;输出签名值(r,s)。在一个实施例中,根据以下公式确定出第一中间值:QA=[kA]G。在一个实施例中,根据以下公式确定出第六中间值:s=(dA·kA·sB1-dA·kA·sB2+dA·sB1-r)modn。在一个实施例中,根据所述第一秘钥dA计算出第一公钥分量PA;并将所述第一公钥分量PA发送给所述第二设备,以使第二设备根据第二秘钥dB和所述第一公钥分量PA计算出第二公钥分量PB并将所述第二公钥分量PB发送给所述第一设备;接收所述第二公钥分量PB,根据所述第二公钥分量PB计算出公钥P。在一个实施例中,根据以下公式确定出所述第一公钥分量PA:在一个实施例中,根据以下公式确定出所述公钥P:P=PB-G。第二方面,一种基于SM2椭圆曲线的签名方法,应用于第二设备,G为椭圆曲线E上的基点,所述基点G的阶为n,所述方法包括:随机选取第二密钥dB,其中dB∈[1,n-1];选取第一随机数kB∈[1,n-1],根据kB得到第二随机数接收所述第一设备发送的根据所述第一设备的随机数kA计算出的第一中间值QA和对消息M进行签名预处理得到的哈希函数值e;根据所述kB、QA和计算出第二中间值x1;根据所述x1、e、kB和dB计算出第三中间值r、第四中间值sB1、第五中间值sB2;将所述第三中间值r、第四中间值sB1和第五中间值sB2发送给所述第一设备,以使所述第一设备计算出第六中间值s并输出签名值(r,s)。在一个实施例中,所述第二随机数是根据第一随机数kB进行非线性变换得到的。在一个实施例中,根据以下公式计算出第二中间值x1:在一个实施例中,根据以下公式计算出第三中间值r:r=(e+x1)modn。在一个实施例中,根据以下公式计算出第四中间值sB1:sB1=(dB·(r+kB))modn。根据以下公式计算出第五中间值sB2:在一个实施例中,接收所述第一设备发送的根据所述第一秘钥dA计算出的第一公钥分量PA;根据所述的第一公钥分量PA和所述第二秘钥dB计算出第二公钥分量PB;将所述第二公钥分量PB发送给所述第一设备,以使所述第一设备根据所述第二公钥分量PB计算出公钥P。在一个实施例中,根据以下公式确定出所述第二公钥分量PB:第三方面,本公开提供一种基于SM2椭圆曲线的签名装置,其中G为椭圆曲线E上的基点,所述基点G的阶为n,所述第一设备包括:第一选取模块,用于随机选取第一密钥dA,其中dA∈[1,n-1];预处理模块,用于对消息M进行签名预处理得到哈希函数值e;第一中间值模块,用于选取随机数kA∈[1,n-1],根据所述随机数kA计算出第一中间值QA;第一发送模块,用于将所述第一中间值QA和所述e发送给第二设备,以使所述第二设备根据其随机数kB生成第三中间值r、第四中间值sB1和第五中间值sB2;第一接收模块,用于接收所述第二设备发送的所述第三中间值r、所述第四中间值sB1和所述第五中间值sB2;第六中间值模块,用于根据所述dA、kA、sB1、sB2计算出第六中间值s;输出模块,用于输出签名值(r,s)。在一个实施例中,所述第一中间值模块,还用于:根据以下公式确定出第一中间值:QA=[kA]G。在一个实施例中,所述第六中间值模块,还用于:根据以下公式确定出第六中间值:s=(dA·kA·sB1-dA·kA·sB2+dA·sB1-r)modn。在一个实施例中,所述第一设备还包括:第一公钥分量模块,用于根据所述第一秘钥dA计算出第一公钥分量PA;第二公钥分量模块,用于并将所述第一公钥分量PA发送给所述第二设备,以使第二设备根据第二秘钥dB和所述第一公钥分量PA计算出第二公钥分量PB并将所述第二公钥分量PB发送给所述第一设备;计算公钥模块,用于接收所述第二公钥分量PB,根据所述第二公钥分量PB计算出公钥P。在一个实施例中,所述第一公钥分量模块,用于:根据以下公式确定出所述第一公钥分量PA:在一个实施例中,所述计算公钥模块,用于:根据以下公式确定出所述公钥P:P=PB-G。第四方面,本公开提供一种基于SM2椭圆曲线的签名装置,G为椭圆曲线E上的基点,所述基点G的阶为n,所述第二设备包括:第二选取模块,用于随机选取第二密钥dB,其中dB∈[1,n-1];第三选取模块,用于选取第一随机数kB∈[1,n-1],根据kB得到第二随机数第二接收模块,用于接收所述第一设备发送的根据所述第一设备的随机数kA计算出的第一中间值QA和对消息M进行签名预处理得到的哈希函数值e;第二中间值模块,用于根据所述kB、QA和计算出第二中间值x1;其他中间值模块,用于根据所述x1、e、kB和dB计算出第三中间值r、第四中间值sB1、第五中间值sB2;第二发送模块,用于将所述第三中间值r、第四中间值sB1和第五中间值sB2发送给所述第一设备,以使所述第一设备计算出第六中本文档来自技高网...

【技术保护点】
1.一种基于SM2椭圆曲线的签名方法,其特征在于,应用于第一设备,其中G为椭圆曲线E上的基点,所述基点G的阶为n,所述方法包括:/n随机选取第一密钥d

【技术特征摘要】
1.一种基于SM2椭圆曲线的签名方法,其特征在于,应用于第一设备,其中G为椭圆曲线E上的基点,所述基点G的阶为n,所述方法包括:
随机选取第一密钥dA,其中dA∈[1,n-1];
对消息M进行签名预处理得到哈希函数值e;
选取随机数kA∈[1,n-1],根据所述随机数kA计算出第一中间值QA;
将所述第一中间值QA和所述e发送给第二设备,以使所述第二设备根据其随机数kB生成第三中间值r、第四中间值sB1和第五中间值sB2;
接收所述第二设备发送的所述第三中间值r、所述第四中间值sB1和所述第五中间值sB2;
根据所述dA、kA、sB1、sB2计算出第六中间值s;
输出签名值(r,s)。


2.根据权利要求1所述的方法,其特征在于,所述计算出第一中间值QA,包括:
根据以下公式确定出第一中间值:
QA=[kA]G。


3.根据权利要求1所述的方法,其特征在于,所述计算出第六中间值s,包括:
根据以下公式确定出第六中间值:
s=(dA·kA·sB1-dA·kA·sB2+dA·sB1-r)modn。


4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述第一秘钥dA计算出第一公钥分量PA;
并将所述第一公钥分量PA发送给所述第二设备,以使第二设备根据第二秘钥dB和所述第一公钥分量PA计算出第二公钥分量PB并将所述第二公钥分量PB发送给所述第一设备;
接收所述第二公钥分量PB,根据所述第二公钥分量PB计算出公钥P。


5.根据权利要求4所述的方法,其特征在于,所述计算出第一公钥分量PA,包括:
根据以下公式确定出所述第一公钥分量PA:





6.根据权利要求4所述的方法,其特征在于,所述根据所述第二公钥分量PB计算出公钥P,包括:
根据以下公式确定出所述公钥P:
P=PB-G。


7.一种基于SM2椭圆曲线的签名方法,其特征在于,应用于第二设备,G为椭圆曲线E上的基点,所述基点G的阶为n,所述方法包括:
随机选取第二密钥dB,其中dB∈[1,n-1];
选取第一随机数kB∈[1,n-1],根据kB得到第二随机数
接收所述第一设备发送的根据所述第一设备的随机数kA计算出的第一中间值QA和对消息M进行签名预处理得到的哈希函数值e;
根据所述kB、QA和计算出第二中间值x1;
根据所述x1、e、kB和dB计算出第三中间值r、第四中间值sB1、第五中间值sB2;
将所述第三中间值r、第四中间值sB1和第五中间值sB2发送给所述第一设备,以使所述第一设备计算出第六中间值s并输出签名值(r,s)。


8.根据权利要求7所述的方法,其特征在于,所述第二随机数是根据第一随机数kB进行非线性变换得到的。


9.根据权利要求7所述的方法,其特征在于,所述计算出第二中间值x1,包括:
根据以下公式计算出第二中间值x1:





10.根据权利要求7所述的方法,其特征在于,所述计算出第三中间值r,包括:
根据以下公式计算出第三中间值r:
r=(e+x1)modn。


11.根据权利要求7所述的方法,其特征在于,所述计算出第四中间值sB1和第五中间值sB2,包括:
根据以下公式计算出第四中间值sB1:
sB1=(dB·(r+kB))modn;
根据以下公式计算出第五中间值sB2:





12.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述第一设备发送的根据所述第一秘钥dA计算出的第一公钥分量PA;
根据所述的第一公钥分量PA和所述第二秘钥dB计算出第二公钥分量PB;
将所述第二公钥分量PB发送给所述第一设备,以使所述第一设备根据所述第二公钥分量PB计算出公钥P。


13.根据权利要求12所述的方法,其特征在于,所述计算出第二公钥分量PB,包括:
根据以下公式确定出所述第二公钥分量PB:





14.一种基于SM2椭圆曲线的签名的第一设备,其特征在于,其中G为椭圆曲线E上的基点,所述基点G的阶为n,所述第一设备包括:
第一选取模块,用于随机选取第一密钥dA,其中dA∈[1,n-1];
预处理模块,用于对消息M进行签名预处理得到哈希函数值e;
第一中间值模块,用于选取随机数kA∈[1,n-1],根据所述随机数kA计算出第一中间值QA;
第一发送模块,用于将所述第一中间...

【专利技术属性】
技术研发人员:宁红宙
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:北京;11

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

1