一种生成数字签名的方法及装置

一种生成数字签名的方法及装置


2024年4月27日发(作者:红米6pro参数和配置)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN2.7

(22)申请日 2013.08.16

(71)申请人 西安西电捷通无线网络通信股份有限公司

地址 710075 陕西省西安市高新区科技二路68号西安软件园秦风阁A201

(72)发明人 李志勇 万红涛 颜湘

(74)专利代理机构 北京同达信恒知识产权代理有限公司

代理人 黄志华

(51)

H04L9/32

G06F19/00

(10)申请公布号 CN 103427997 A

(43)申请公布日 2013.12.04

权利要求说明书 说明书 幅图

(54)发明名称

一种生成数字签名的方法及装置

(57)摘要

本发明公开了一种生成数字签名的

方法及装置。其方法包括:装置生成满足

有效性判定条件的数字签名参数r;利用私

钥d

法律状态

法律状态公告日

法律状态信息

法律状态

权 利 要 求 说 明 书

1.一种生成数字签名的方法,其特征在于,包括:

装置生成满足有效性判定条件的数字签名参数r;

所述装置利用私钥dA、取值范围为(1,n-1)的随机数k、所述数字

签名

s=((1+dA)-1·(r+k)-r)modn;

所述装置判断生成的数字签名参数s是否为0,如果为0,重新生成满足

参数r、和椭圆曲线参数n,基于如下公式生成数字签名参数s:

有效性判定条件的数字签名参数r,并利用所述私钥dA、重新

为(1,n-1)的随机数k、所述重新生成的数字

数n,重新生成数字签名参数s,

生成的取值范围

签名参数r、和所述椭圆曲线参

直至所述数字签名参数s不为0;

所述装置将最终得到的数字签名参数r和不为0的数字签名参数s的数据

2.根据权利要求1所述的方法,其特征在于,所述装置基于

类型转换为字节串,得到数字签名(r,s)。

s=((1+dA)-1·(r+k)-r)modn,生成数字签名参数s,

包括:

所述装置将数字签名参数r与随机数k进行大整数加法运算后,使用大整

数加法运算结果对椭圆曲线参数n进行求模运算;

所述装置将私钥dA加1后对椭圆曲线参数n进行求模逆运算;

所述装置将求模运算与求模逆运算的运算结果进行大整数乘法运算;

所述装置将该大整数乘法运算结果减去数字签名参数r后对椭圆曲线参数

3.根据权利要求1或2所述的方法,其特征在于,生成数字签名参数s

所述装置获取r的有效性判定条件运算结果r+k,以便利用私钥dA、r

的 有效性判定条件运算结果r+k、所述数字签名参数r、和椭圆

数字签名参数s。

之前,该方法还包括:

n进行求模运算,得到数字签名参数s。

曲线参数n生成

4.根据权利要求1或2所述的方法,其特征在于,生成数字签名参数s

所述装置获取r的有效性判定条件运算结果(r+k)modn,以便利用私钥

dA

之前,该方法还包括:

r的有效性判定条件运算结果(r+k)modn、所述数

数n生成数字签名参数s。 字签名参数r、和椭圆曲线参

5.一种生成数字签名的装置,包括:

参数输入接口单元,用于获取杂凑值ZA和待签名的消息M;

级联运算单元,用于将所述参数输入接口单元获取的杂凑值ZA和待签

名的

密码杂凑算法运算单元,用于将所述级联运算单元生成的进行密码杂凑

随机数发生器,用于生成取值范围为(1,n-1)的随机数k;

ECC算法运算单元,用于根据所述随机数发生器生成的随机数k进行椭圆

曲线算法点乘运算(x1,y1)=kG,得到椭圆曲线点横

数;

运算,生成消息摘要信息e;

消息M进行级联运算,生成

坐标x1,其中G为椭圆曲线参

数据类型转换单元,用于将所述密码杂凑算法运算单元生成的消息摘要信

息e的数据类型转换为整数类型,还用于将所述ECC算法运算单元生成的

曲线点横坐标x1的数据类型转换为整数类型; 椭圆

大整数运算单元,用于利用所述数据类型转换单元进行数据类型转换的消

有效性判定单元,用于对所述大整数运算单元生成的数字签名参数r进行

息摘要信息e和椭圆曲线点横坐标x1,生成数字签名参数r;

有效性判定;

如果所述数字签名参数r不满足有效性判定条件,所述随机数发生器重新

生成取值范围为(1,n-1)的随机数k;所述ECC算法运算单元根据所述随

数发生器重新生成的随机数k重新得到椭圆曲线点横坐标

换单元对重新得到的椭圆曲线点横

x1;所述数据类型转

坐标x1进行数据类型转换;所述大整数运算

单元根据所述消息摘要信息e和重新生成的椭圆曲线点横坐标

字签名参数r,并利用重新生成的

有效性判定单元对重

x1,重新生成数

数字签名参数r和重新生成的随机数k,所述

新生成的数字签名参数r进行有效性判定;

其特征在于,所述大整数运算单元还用于,利用私钥dA、所述随机数

发生 器生成的所述随机数k、所述数字签名参数r、和椭圆曲线参

式生成数字签名参数s:

数n,基于如下公

s=((1+dA)-1·(r+k)-r)modn;

所述有效性判定单元还用于,判断所述大整数运算单元生成的数字签名参

如果为0,所述随机数发生器重新生成取值范围为(1,n-1)的随机数k,

所述大整数运算单元重新生成数字签名参数r,并在所述重新生成的数字签

参数r满足有效性判定条件时,利用所述私钥dA

n-1)的随机数k、所述重新生成

重新生成数字签名参

数s是否为0;

重新生成的取值范围为(1,

的数字签名参数r、和所述椭圆曲线参数n,

数s;

所述数据类型转换单元还用于,将所述大整数运算单元最终生成的数字签

名参数r和不为0的数字签名参数s的数据类型转换为字节串,得到数字签

(r,s);

参数输出接口单元,用于输出数字签名(r,s)。

6.根据权利要求5所述的装置,其特征在于,生成数字签名参数s时,

将所述数字签名参数r与所述随机数发生器生成的所述随机数k进行大整

将私钥dA加1后对椭圆曲线参数n进行求模逆运算;

将所述求模运算结果与所述求模逆运算结果进行大整数乘法运算;

将所述大整数乘法运算结果减去所述数字签名参数r后对椭圆曲线参数n

7.根据权利要求5所述的装置,其特征在于,如果所述有效性判定单元

进行求模运算,得到数字签名参数s。

所述大整数运算单元具体用于:

数加法运算后,使用大整数加法运算结果对椭圆曲线参数n进行求模运算;

使用数字签名参数r的有效性判定条件运算结果

性进行判定,所述大整数运算单元

生成的数字签名参数

名参数

r+k对数字签名参数r的有效

在生成所述数字签名参数r后,还用于利用

r和所述随机数发生器生成的所述随机数k,生成数字签

r的有效性判定条件运算结果r+k;

生成数字签名参数s时,所述大整数运算单元用于:

使用所述r的有效性判定条件运算结果r+k对椭圆曲线参数n进行求模运

将私钥dA加1后对椭圆曲线参数n进行求模逆运算;

将所述求模运算结果与所述求模逆运算结果进行大整数乘法运算;

将所述大整数乘法运算结果减去所述数字签名参数r后对椭圆曲线参数n

8.根据权利要求5所述的装置,其特征在于,如果所述有效性判定单元

进行求模运算,得到数字签名参数s。

算;

使用数字签名参数r的有效性判定条件运算结果(r+k)modn对数字签名参数r

的有效性进行判定,所述大整数运算单元在生成所述数字签名参数r

于利用生成的数字签名参数r、所述随机数发生器生成

曲线参数n,生成数字签名参数r的有效

后,还用

的所述随机数k和椭圆

性判定条件运算结果(r+k)modn;

生成数字签名参数s时,所述大整数运算单元用于:

将私钥dA加1后对椭圆曲线参数n进行求模逆运算;

将所述r的有效性判定条件运算结果(r+k)modn与所述求模逆运算结果进

行大整数乘法运算;

将所述大整数乘法运算结果减去所述数字签名参数r后对椭圆曲线参数n

9.根据权利要求5~8任一项所述的装置,其特征在于,还包括:

密钥生成单元,用于生成所述私钥dA

进行求模运算,得到数字签名参数s。

密钥存储单元,用于保存所述密钥生成单元生成的所述私钥dA;所述

大整 数运算单元从所述密钥存储单元中获取所述私钥

dA以生成数字签名参数s。

10.根据权利要求5~8任一项所述的装置,其特征在于:

所述参数输入接口单元还用于获取所述私钥dA;所述大整数运算单元

从所 述参数输入接口单元获取所述私钥dA以生成数字

签名参数s;或者,

还包括密钥存储单元;所述参数输入接口单元还用于获取所述私钥dA

所 述密钥存储单元用于保存所述参数输入接口单元获取的所述私

数运算单元从所述密钥存储单元获

钥dA;所述大整

取所述私钥dA以生成数字签名参数s。

说 明 书

技术领域

本发明涉及信息技术领域,尤其涉及一种生成数字签名的方法及装置。

背景技术

SM2数字签名算法作为SM2密码算法的一个组成部分,其在用户身份认

证和信息完整性校验功能领域得到很好的应用。在SM2数字签名算法应用

程中,算法运算效率一直是算法应用者们所关注的重点。SM2数字

SM2数字签名生成算法和SM2数字签名验证算法构成。

签名算法由

设待签名的消息为M,为了获取消息M的数字签名(r,s),当用户A需要使

A1:置

M=

ZA||M

>.

其中,‖表示级联运算,ZA为通过密码杂凑函数求得的上述生成数字签

A2:计算并将e的数据类型由比特串转换为整数。

其中,Hv()为消息摘要长度为v比特的密码杂凑函数,如SM3密码杂

凑算

法。

的用户A的杂凑值。

用数字签名时,可通过如下SM2数字签名生成算法实现:

A3:用随机数发生器产生随机数k∈[1,n-1]。

其中,n为椭圆曲线参数。

A4:计算椭圆曲线点(x1,y1)=[k]G,结果x1

域元素,将x1的数据类型转换

其中,G为椭圆曲线的基点,[k]G表示k与G点乘。

使用的椭圆曲线方程,其类型可选择素数域方程

y2=x3+ax+b或二元扩域方 程

为整数。

y2+xy=x3+ax2+b。

A5:计算r=(e+x1)modn 公式一

即使用(e+x1)对n求模。

若r=0或r+k=n则返回A3。

A6:计算s=((1+dA)-1·(k-r·dA))modn 公式二

若s=0则返回A3。

其中,dA为上述用户A的私钥。

A7:将r、s的数据类型由整数转换为字节串,消息M的数字签名为(r,s)。

用户A可以是系统或设备,执行上述SM2数字签名生成算法的可以是设

置于用户A内部的子系统、硬件模块、在用户A内可执行的软件模块等等,

也可以是与用户A有通信连接、被用户A调用的系统或设备。

用户A具有长度为entlenA比特的可辨别标识IDA,记

ENTLA是由整数entlenA转 换而成的两个字节。

在上述SM2数字签名生成算法中,将G的坐标xG、yG

PA的坐标xA、yA的数据类型转换为比特串,

则上述

ZA=H256(ENTLA‖IDA‖a‖b‖

xG‖yG‖xA‖yA)。其中,

PA为用户A的公钥,H256()为

比特的密码杂凑函数,如SM3密码杂凑算法。

另外,在具体工程实现过程中,本领域技术人员通常会对公式二采用公式

三和公式四两种变形,将公式二中(1+dA)-1求负整

(1+dA)-1modn求模逆运

消息摘要长度为256

数指数幂运算转换为

算,便于工程实现。

s=(((1+dA)-1modn)·((k-r·dA)modn))modn 公式

s=(((1+dA)-1modn)·((k-

(r·dA)modn)modn))modn 公式四

SM2数字签名生成算法是基于ECC算法理论实现的,实现过程中大整数乘

法、大整数模乘运算等大整数运算是影响算法运算效率最为主要的因素,现

的SM2数字签名生成算法虽然能够满足一定的运算效率的需求,但

如果希望进

发明内容

一步提高运算效率,现有技术中还没有相应的解决方案。

本发明的目的是提供一种生成数字签名的方法及装置,以进一步提高基于

本发明的目的是通过以下技术方案实现的:

一种生成数字签名的方法,包括:

装置生成满足有效性判定条件的数字签名参数r;

所述装置利用私钥dA、取值范围为(1,n-1)的随机数k、所述数字

签名

s=((1+dA)-1·(r+k)-r)modn;

所述装置判断生成的数字签名参数s是否为0,如果为0,重新生成满足

有效性判定条件的数字签名参数r,并利用所述私钥dA、重新

为(1,n-1)的随机数k、所述重新生成的数字签名参

数n,重新生成数字签名参数s,直至所述数字

参数r和椭圆曲线参数n,基于如下公式生成数字签名参数s:

SM2数字签名生成算法生成数字签名的运算效率。

生成的取值范围

数r、和所述椭圆曲线参

签名参数s不为0;

所述装置将最终得到的数字签名参数r和不为0的数字签名参数s的数据

类型转换为字节串,得到数字签名(r,s)。

本发明实施例提供的方法,获取数字签名参数s时可以减少大整数运算的

较佳地,所述装置基于s=((1+dA)-1·(r+k)-r)modn,生成数

字签名参数s,

所述装置将数字签名参数r与随机数k进行大整数加法运算后,使用大整

所述装置将私钥dA加1后对椭圆曲线参数n进行求模逆运算;

所述装置将求模运算与求模逆运算的运算结果进行大整数乘法运算;

所述装置将该大整数乘法运算结果减去数字签名参数r后对椭圆曲线参数

通过上述处理过程生成数字签名参数s,可减少1次大整数乘法或1次大

在上述任意实施例基础上,较佳地,生成数字签名参数s之前,该方法还

所述装置获取r的有效性判定条件运算结果r+k,以便利用私钥dA、r

的 有效性判定条件运算结果r+k、所述数字签名参数r、和椭圆曲线参

数字签名参数s。

可以包括:

整数模乘运算。

n进行求模运算,得到数字签名参数s。

数加法运算结果对椭圆曲线参数n进行求模运算;

包括:

次数,从而提高基于SM2数字签名生成算法生成数字签名的运算效率。

数n生成

生成数字签名参数s时,可以直接使用r的有效性判定条件运算结果

(r+k),进一步提高运算效率。

在上述任意实施例基础上,较佳地,生成数字签名参数s之前,该方法还

所述装置获取r的有效性判定条件运算结果(r+k)modn,以便利用私钥

dA、 r的有效性判定条件运算结果(r+k)modn、所述数字签名

数n生成数字签名参数s。

可以包括:

参数r、和椭圆曲线参

由于避免了(r·dA)modn的运算,因此,可以减少1次大整数模乘运算。

一种生成数字签名的装置,包括:

参数输入接口单元,用于获取杂凑值ZA和待签名的消息M;

级联运算单元,用于将所述参数输入接口单元获取的杂凑值ZA和待签

名的

密码杂凑算法运算单元,用于将所述级联运算单元生成的进行密码杂凑

随机数发生器,用于生成取值范围为(1,n-1)的随机数k;

ECC算法运算单元,用于根据所述随机数发生器生成的随机数k进行椭圆

曲线算法点乘运算(x1,y1)=kG,得到椭圆曲线点横

数;

运算,生成消息摘要信息e;

消息M进行级联运算,生成

坐标x1,其中G为椭圆曲线参

数据类型转换单元,用于将所述密码杂凑算法运算单元生成的消息摘要信

息e的数据类型转换为整数类型,还用于将所述ECC

算法运算单元生成的椭圆

整数类型;

曲线点横坐标x1的数据类型转换为

大整数运算单元,用于利用所述数据类型转换单元进行数据类型转换的消

有效性判定单元,用于对所述大整数运算单元生成的数字签名参数r进行

如果所述数字签名参数r不满足有效性判定条件,所述随机数发生器重新

生成取值范围为(1,n-1)的随机数k;所述ECC算法运算单元根据所述随

数发生器重新生成的随机数k重新得到椭圆曲线点横坐标

换单元对重新得到的椭圆曲线点横坐标

单元根据所述消息摘

有效性判定;

息摘要信息e和椭圆曲线点横坐标x1,生成数字签名参数r;

x1;所述数据类型转

x1进行数据类型转换;所述大整数运算

要信息e和重新生成的椭圆曲线点横坐标x1,重新生成数

字签名参数r,并利用重新生成的数字签名参数r和重新生成的随机数k,

有效性判定单元对重新生成的数字签名参数r进行有效性判定; 所述

所述大整数运算单元还用于,利用私钥dA、所述随机数发生器生成的

所述 随机数k、所述数字签名参数r、和椭圆曲线参数n,基于如下公式

名参数s:s=((1+dA)-1·(r+k)-r)modn;生成数字签

所述有效性判定单元还用于,判断所述大整数运算单元生成的数字签名参

如果为0,所述随机数发生器重新生成取值范围为(1,n-1)的随机数k,

数s是否为0;

所述大整数运算单元重新生成数字签名参数r,并在所述重新生成的数字签

参数r满足有效性判定条件时,利用所述私钥dA、重新

n-1)的随机数k、所述重新生成的数字签名参

重新生成数字签名参数s;

生成的取值范围为(1,

数r、和所述椭圆曲线参数n,

所述数据类型转换单元还用于,将所述大整数运算单元最终生成的数字签

参数输出接口单元,用于输出数字签名(r,s)。

本发明实施例提供的装置,获取数字签名参数s时可以减少大整数运算的

较佳地,生成数字签名参数s时,所述大整数运算单元具体用于:

将所述数字签名参数r与所述随机数发生器生成的所述随机数k进行大整

将私钥dA加1后对椭圆曲线参数n进行求模逆运算;

将所述求模运算结果与所述求模逆运算结果进行大整数乘法运算;

将所述大整数乘法运算结果减去所述数字签名参数r后对椭圆曲线参数n

通过上述处理过程生成数字签名参数s,可减少1次大整数乘法或1次大

进行求模运算,得到数字签名参数s。

数加法运算后,使用大整数加法运算结果对椭圆曲线参数n进行求模运算;

次数,从而提高基于SM2数字签名生成算法生成数字签名的运算效率。

名参数r和不为0的数字签名参数s的数据类型转换为字节串,得到数字签

(r,s);

整数模乘运算。

在上述任意装置实施例基础上,较佳地,如果所述有效性判定单元使用数

字签名参数r的有效性判定条件运算结果r+k对数字签名参数r的有效性进

判定,所述大整数运算单元在生成所述数字签名参数r后,还用于利

数字签名参数r和所述随机数发生器生成的所述随机数k,生

r的有效性判定条件运算结果r+k;

用生成的

成数字签名参数

生成数字签名参数s时,所述大整数运算单元用于:

使用所述r的有效性判定条件运算结果r+k对椭圆曲线参数n进行求模运

将私钥dA加1后对椭圆曲线参数n进行求模逆运算;

将所述求模运算结果与所述求模逆运算结果进行大整数乘法运算;

将所述大整数乘法运算结果减去所述数字签名参数r后对椭圆曲线参数n

生成数字签名参数s时,可以直接使用r的有效性判定条件运算结果

在上述任意装置侧实施例基础上,较佳地,如果所述有效性判定单元使用

数字签名参数r的有效性判定条件运算结果(r+k)modn对数字签名参数r的

效性进行判定,所述大整数运算单元在生成所述数字签名参数r后,

用生成的数字签名参数r、所述随机数发生器生成的所述随机

参数n,生成数字签名参数r的有效性判定条件运算结

(r+k),进一步提高运算效率。

进行求模运算,得到数字签名参数s。

算;

还用于利

数k和椭圆曲线

果(r+k)modn;

生成数字签名参数s时,所述大整数运算单元用于:

将私钥dA加1后对椭圆曲线参数n进行求模逆运算;

将所述r的有效性判定条件运算结果(r+k)modn与所述求模逆运算结果进

将所述大整数乘法运算结果减去所述数字签名参数r后对椭圆曲线参数n

由于避免了(r·dA)modn的运算,因此,可以减少1次大整数模乘运算。

在上述任意实施例基础上,大整数运算单元所使用的私钥,既可以由该装

方式一:

所述装置还包括:

密钥生成单元,用于生成所述私钥dA

密钥存储单元,用于保存所述密钥生成单元生成的所述私钥dA;所述

大整 数运算单元从所述密钥存储单元中获取所述私钥dA以生

置生成,也可以从外部获取。下面举例说明:

进行求模运算,得到数字签名参数s。

行大整数乘法运算;

成数字签名参数s。

方式二:

所述参数输入接口单元还用于获取所述私钥dA;所述大整数运算单元

从所

数s。

方式三:

所述装置还包括密钥存储单元;所述参数输入接口单元还用于获取所述私

钥dA;所述密钥存储单元用于保存所述参数输入接口单元获取

所述大整数运

述参数输入接口单元获取所述私钥dA以生成数字签名参

的所述私钥dA

算单元从所述密钥存储单元获取所述私钥dA以生成数字签名参

附图说明

图1为本发明实施例提供的第一种方法流程图;

图2为本发明实施例提供的第二种方法流程图;

图3为本发明实施例提供的第三种方法流程图;

图4为本发明实施例提供的装置结构示意图。

具体实施方式

本发明实施例提供了一种生成数字签名的技术方案,装置在生成满足有效

性判定条件的数字签名参数r后,利用私钥dA、取值范围为

数k、数字签名参数r和椭圆曲线参数n,基于如下公

s=((1+dA)-1·(r+k)-

数s。

(1,n-1)的随机

式生成数字签名参数s:

r)modn,判断生成的数字签名参数s是否为0,如果为0, 重新生成满足

有效性判定条件的数字签名参数r,并利用所述私钥dA、重新生

成的取值范围为(1,n-1)的随机数k、所述重新生成的数字签名参数r、

述椭圆曲线参数n,重新生成数字签名参数s,直至所述数字签名参

将最终得到的数字签名参数r和不为0的数字签名参数s的数

节串后,得到数字签名(r,s)。获取数字签名参数s时

次数,从而提高了基于SM2数字签名生成算法

和所

数s不为0,

据类型转换为字

可以减少大整数运算的

生成数字签名的运算效率。

下面将结合附图,对本发明实施例提供的技术方案进行详细描述。

本发明实施例提供的一种生成数字签名的方法如图1所示,具体包括如下

步骤100、装置生成满足有效性判定条件的数字签名参数r。

其中,满足有效性判定条件是指,得到的数字签名参数r不为0,并且r+k

可以但不仅限于采用SM2数字签名生成算法中计算r的方式生成满足有

效性判定条件的数字签名参数r。

操作:

不为n。n为椭圆曲线参数,k为取值范围是(1,n-1)的随机数。

步骤110、该装置利用私钥dA、上述随机数k、上述数字签名参数r

和上

s=((1+dA)-1·(r+k)-r)modn 公式五

其中,公式五是上述公式二的简化形式,基于公式五生成数字签名参数s,

述椭圆曲线参数n,基于如下公式生成数字签名参数s:

不用进行r·dA运算,可以减少一次大整数运算。

s=((1+dA)-1·(k-r·dA))modn

公式化简的原理如下:=((1+dA)-1·(k-r·dA+r-

r))modn

=((1+dA)-1·((r+k)-r(1+dA)))modn

=((1+dA)-1·(r+k)-r)modn

其中,私钥dA是数字签名使用者(例如上述用户A)的私钥。该数字

签名

(UE),

使用者可以是系统或设备,具体的,数字签名使用者可以是用户设备

也可以是参与身份认证的网络节点,如基站、移动性管理实体

(MME)等等。

步骤120、该装置判断生成的数字签名参数s是否为0,如果不为0,执行步

骤130,如果为0,重新生成满足有效性判定条件的数字签名参数r,并利

述私钥dA、重新生成的取值范围为(1,n-1)的随机数

参数r、和上述椭圆曲线参数n,重新生成数字

参数s不为0。

用上

k、重新生成的数字签名

签名参数s,直至生成的数字签名

步骤130、该装置将最终得到的数字签名参数r和不为0的数字签名参数s的

执行上述操作生成数字签名的数字签名生成者可以是设置于数字签名使

用者内部的子系统、硬件模块、在数字签名使用者内可执行的软件模块等等,

也可以是与数字签名使用者有通信连接、被数字签名使用者调用的系

备。

数据类型转换为字节串,得到数字签名(r,s)。

统或设

对于数字签名使用者的私钥,如果数字签名生成者是设置于数字签名使用

者内部的子系统、硬件模块、在数字签名使用者内可执行的软件模块等等,

数字签名生成者可以生成该密钥并保存。

名生成者也可以从数字签名使用者

获取并应用,但不保存。

对于数字签名使用者的私钥,数字签

处获取并保存,还可以从数字签名使用者处

在实际应用过程中,基于公式五,具体可以通过不同的实现方式得到数字

一种优选的实现方式中,该装置利用私钥dA、随机数k、上述数字签

名参

s=(((1+dA)-1modn)·((r+k)modn)-r)modn 公式六

该公式六是s=((1+dA)-1·(r+k)-r)modn的变形。

也就是说,上述装置将数字签名参数r与随机数k进行大整数加法运算后,

使用大整数加法运算结果对椭圆曲线参数n进行求模运算;将私钥

椭圆曲线参数n进行求模逆运算,将求模运算与

整数乘法运算,将该大整数乘法运算结果

数n进行求模运算,得到数字签名

数r、和椭圆曲线参数n,按照如下公式生成数字签名参数s:

签名参数s,从而减少一次大整数乘法运算或者大整数模乘运算。

dA加1后对

求模逆运算的运算结果进行大

减去数字签名参数r后对椭圆曲线参

参数s。

公式化简的原理如下:

s=((1+dA)-1·(r+k)-r)modn

=((((1+dA)-1modn)·((r+k)modn))modn-rmodn)modn

=(((1+dA)-1modn)·((r+k)modn)-r)modn

在该优选的实现方式中,在计算数字签名参数s时,利用该公式六实现。

应当指出的是,生成数字签名参数s的具体实现方式不仅限于该优选实施

例。在本发明实施例提出了简化的公式五后,基于公式五的具体实现公式是

领域技术人员不需要付出创造性劳动即可得到的,也在本发明的保护

内。

范围之

在上述任一实施例的基础上,为了进一步提高生成数字签名的运算效率,

还可以在生成数字签名参数s之前,获取r的有效性判定条件运算结果r+k。

该装置可以直接利用r的有效性判定条件运算结果r+k,私钥

名参数r和椭dA、上述数字签

圆曲线参数n,生成数字签名参数s。

在上述任一实施例的基础上,为了进一步提高生成数字签名的运算效率,

还可以在生成数字签名参数s之前,获取r的有效性判定条件运算结果

(r+k)modn。该装置可以直接利用r的有效性判定条件运算结果(r+k)modn,

钥dA、上述数字签名参数r和椭圆曲线参数n,生成数

的实现方式中,根据有效性判定条件运算结果

据有效性判定条件运算结果r+k判断r的

数字签名生成算法中,数字签名参

之间,因此r+k的取值范围

相应的,在生成满足

(r+k)modn=0代替判

字签名参数s。该优选

(r+k)modn判断r的有效性与根

有效性等效,其等效原理是:在SM2

数r和随机数k的取值范围均在(1,n-1)

在(2,2n-2)之间,故(r+k)modn=0与r+k=n等效。

判定性条件的数字签名参数r的过程中,可以判断是否

断是否r+k=n。

假设待签名的消息为M,下面以公式六为例,结合图2对获取M的数字签

步骤200、将数字签名使用者的杂凑值与消息M进行级联运算,即:置

M

名(r,s)的一种实现方式进行详细说明。该实现方式具体包括如下操作:

=ZA||

M.

步骤210、获取消息摘要信息e,即:计算并将e的数据类型由

转换为整数。

步骤220、用随机数发生器产生随机数k∈[1,n-1]。

步骤230、计算椭圆曲线点(x1,y1)=[k]G,结果

x1为域元素,将x1的数据类型

步骤240、生成数字签名参数r,即:计算r=(e+x1)modn 公式一

步骤250、对r进行有效性判定:假设t=r+k,判断r和t的取值,如果r=0

或t=n,则r不满足有效性判定条件,返回步骤220,如果r≠0且t≠n,则r

有效性判定条件,执行步骤260。

转换为整数。

比特串

满足

步骤260、利用数字签名使用者的私钥dA、r的有效性判定条件运算

结果r+k、 数字签名参数r、和椭圆曲线参数n,按照如下公式生成数字

签名参数s:

s=(((1+dA)-1modn)·(tmodn)-r)modn 公式七

应当指出的是,公式七即上述的公式六。区别仅在于,公式七表示的含义

是:生成数字签名s时,不需要重复计算r+k,而是利用r的有效性判定条

结果r+k。

件运算

步骤270、判断s的取值是否为0,若s=0,返回步骤220,否则,执行步骤

步骤280、将得到的数字签名参数r、s的数据类型由整数转换为字节串,得

图2所示的实施例中,利用公式七生成数字签名参数s,可减少1次大整数

乘法或1次大整数模乘运算,且在使用公式七生成数字签名参数s时,可以

使用r的有效性判定条件运算结果(r+k),进一步提高运算效率。

到消息M的数字签名为(r,s)。

280。

直接

假设待签名的消息为M,下面以公式六为例,结合图3对获取M的数字签

步骤300、将数字签名使用者的杂凑值与消息M进行级联运算,即:置

M

名(r,s)的一种实现方式进行详细说明。该实现方式具体包括如下操作:

=ZA||

M.

步骤310、获取消息摘要信息e,即:计算并将e的数据类型由

转换为整数。

比特串

步骤320、用随机数发生器产生随机数k∈[1,n-1]。

步骤330、计算椭圆曲线点(x1,y1)=[k]G,结果

x1为域元素,将x1的数据类型

步骤340、生成数字签名参数r,即:计算r=(e+x1)modn 公式一

步骤350、对r进行有效性判定:假设t=(r+k)modn,判断r和t的取值,如

步骤360、利用数字签名使用者的私钥dA、r的有效性判定条件运算

结果

数字签名

s=(((1+dA)-1modn)·t-r)modn 公式八

应当指出的是,公式八即上述的公式六。区别仅在于,公式八表示的含义

步骤370、判断s的取值是否为0,若s=0,返回步骤320,否则,执行步骤

步骤380、将得到的数字签名参数r、s的数据类型由整数转换为字节串,得

到消息M的数字签名为(r,s)。

380。

是:生成数字签名s时,不需要重复计算(r+k)modn,而是利用r的有效性判

条件运算结果(r+k)modn。

(r+k)modn、数字签名参数r、和椭圆曲线参数n,按照如下公式生成

参数s:

果r=0或t=0,则r不满足有效性判定条件,返回步骤320,如果r≠0且t≠0,

则r满足有效性判定条件,执行步骤360。

转换为整数。

图3所示的实施例中,利用公式八生成数字签名参数s,可减少1次大整数

乘法或1次大整数模乘运算,且在使用公式八生成数字签名参数s时,可以

使用r的有效性判定条件运算结果(r+k)modn,进一步提高运算效率。

直接

另外,需说明,利用本发明方案对生成数字签名的方法进行改进时,相对

基于与方法相同的发明构思,本发明实施例还提供一种生成数字签名的

参数输入接口单元401,用于获取杂凑值ZA和待签名的消息M。

参数输入接口单元401将获取的杂凑值ZA和待签名的消息M输出给

级联

级联运算单元402,用于将所述参数输入接口单元401获取的杂凑值

ZA

级联运算单元402将生成的输出给密码杂凑算法运算单元403。

密码杂凑算法运算单元403,用于将所述级联运算单元402生成的进行

密码杂凑算法运算单元403将生成的消息摘要信息输出给数据类型转换单

元406。

密码杂凑运算,生成消息摘要信息e。

待签名的消息M进行级联运算,生成

运算单元402。

装置,其结构如图4所示,具体包括:

于公式三将节省一次大整数乘法运算,相对于公式四将节省一次大整数模乘

算。

随机数发生器404,用于生成取值范围为(1,n-1)的随机数k。

随机数发生器404将生成的随机数发送给ECC算法运算单元405。

ECC算法运算单元405,用于根据所述随机数发生器404生成的随机数k

进行椭圆曲线算法点乘运算(x1,y1)=kG,得到椭圆

圆曲线参数。

曲线点横坐标x1,其中G为椭

ECC算法运算单元405将得到的椭圆曲线点横坐标x1输出给数据类型

转换

数据类型转换单元406,用于将所述密码杂凑算法运算单元403生成的消

息摘要信息e的数据类型转换为整数类型,还用于将所述ECC算法运算单

405生成的椭圆曲线点横坐标x1的数据类型转换为整数

单元406。

类型。

数据类型转换单元406将转换类型后的消息摘要信息e和椭圆曲线点横坐

大整数运算单元407,用于利用所述数据类型转换单元406进行数据类型

转换的消息摘要信息e和椭圆曲线点横坐标x1,生成数字签名

标x1输出给大整数运算单元407。

参数r。

大整数运算单元407将生成的数字签名参数r输出给有效性判定单元408。

有效性判定单元408,用于对所述大整数运算单元407生成的数字签名参

数r进行有效性判定。

如果所述数字签名参数r不满足有效性判定条件,所述随机数发生器404

重新生成取值范围为(1,n-1)的随机数k;所述ECC算法运算单元405根

所述随机数发生器404重新生成的随机数k重新得到椭圆曲线点横坐

述数据类型转换单元406对重新得到的椭圆曲线

换;所述大整数运算单元407根据

点横坐标x1

标x1;所

点横坐标x1进行数据类型转

所述消息摘要信息e和重新生成的椭圆曲线

重新生成数字签名参数r,并利用重新生成的数字签名参数r和

重新生成的随机数k,所述有效性判定单元408对重新生成的

进行有效性判定。 数字签名参数r

其中,如果所述数字签名参数r不满足有效性判定条件,既可以由有效性

所述大整数运算单元407还用于,利用私钥dA、所述随机数发生器

404生 成的所述随机数k、所述数字签名参数r、和椭圆曲线参数n,基于

成数字签名参数s:s=((1+dA)-

判定单元408触发随机数发生器404重新生成随机数,也可以通过另外设置

控制单元触发随机数发生器404重新生成随机数。

如下公式生

1·(r+k)-r)modn;

所述有效性判定单元408还用于,判断所述大整数运算单元407生成的数

如果为0,所述随机数发生器404重新生成取值范围为(1,n-1)的随机

数k,所述大整数运算单元407重新生成数字签名参数r,并在所述重新生

的数字签名参数r满足有效性判定条件时,利用所述私钥

范围为(1,n-1)的随机数k、所述重新

线参数n,重新生成数字签名参数

字签名参数s是否为0;

dA、重新生成的取值

生成的数字签名参数r、和所述椭圆曲

s;

所述数据类型转换单元406还用于,将所述大整数运算单元407最终生成

参数输出接口单元409,用于输出数字签名(r,s)。

较佳地,生成数字签名参数s时,所述大整数运算单元407具体用于:

将所述数字签名参数r与所述随机数发生器404生成的所述随机数k进行

大整数加法运算后,使用大整数加法运算结果对椭圆曲线参数n进行求模运

的数字签名参数r和不为0的数字签名参数s的数据类型转换为字节串,得

数字签名(r,s);

算;

将私钥dA加1后对椭圆曲线参数n进行求模逆运算;

将所述求模运算结果与所述求模逆运算结果进行大整数乘法运算;

将所述大整数乘法运算结果减去所述数字签名参数r后对椭圆曲线参数n

在基于图4所示的实施例基础上,较佳地,如果所述有效性判定单元408

进行求模运算,得到数字签名参数s。

使用数字签名参数r的有效性判定条件运算结果r+k对数字签名参数r的有

性进行判定,所述大整数运算单元407在生成所述数字签名参数r后,

利用生成的数字签名参数r和所述随机数发生器404生成的所

成数字签名参数r的有效性判定条件运算结果r+k;

还用于

述随机数k,生

生成数字签名参数s时,所述大整数运算单元407用于:

使用所述r的有效性判定条件运算结果r+k对椭圆曲线参数n进行求模运

将私钥dA加1后对椭圆曲线参数n进行求模逆运算;

将所述求模运算结果与所述求模逆运算结果进行大整数乘法运算;

将所述大整数乘法运算结果减去所述数字签名参数r后对椭圆曲线参数n

在基于图4所示的实施例基础上,较佳地,如果所述有效性判定单元408

使用数字签名参数r的有效性判定条件运算结果(r+k)modn对数字签名参数r

的有效性进行判定,所述大整数运算单元407在生成所述数字签名参数r后,

还用于利用生成的数字签名参数r、所述随机数发生器404生成的所

k和椭圆曲线参数n,生成数字签名参数r的有效性判定条件

(r+k)modn;

进行求模运算,得到数字签名参数s。

算;

述随机数

运算结果

生成数字签名参数s时,所述大整数运算单元407用于:

将私钥dA加1后对椭圆曲线参数n进行求模逆运算;

将所述r的有效性判定条件运算结果(r+k)modn与所述求模逆运算结果进

将所述大整数乘法运算结果减去所述数字签名参数r后对椭圆曲线参数n

在基于图4所示的任意实施例基础上,大整数运算单元407所使用的私钥

dA可以由本装置生成,也可以从外部获取。下面举例说明:

进行求模运算,得到数字签名参数s。

行大整数乘法运算;

方式一:

本发明实施例提供的装置还包括密钥生成单元和密钥存储单元。密钥生成

单元用于生成所述私钥dA;密钥存储单元用于保存所述密钥生

述私钥dA。 成单元生成的所

相应的,所述大整数运算单元407从所述密钥存储单元中获取所述私钥

dA以生成数字签名参数s。

方式二:

参数输入接口单元401还用于获取所述私钥dA

相应的,所述大整数运算单元407从所述参数输入接口单元401获取所述

方式三:

本发明实施例提供的装置还包括密钥存储单元。

所述参数输入接口单元401还用于获取所述私钥dA;所述密钥存储单

元用

相应的,所述大整数运算单元407从所述密钥存储单元获取所述私钥

dA以生成数字签名参数s。

于保存所述参数输入接口单元401获取的所述私钥dA

私钥dA以生成数字签名参数s。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计

算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或

合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多

含有计算机可用程序代码的计算机可用存储介质(包括但不限

CD-ROM、光学存储器等)上实施的计算机程序产品

个其中包

于磁盘存储器、

的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产

品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图

/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的

或方框的结合。可提供这些计算机程序指令到通用计算机、专

式处理机或其他可编程数据处理设备的处理器以产生一

机或其他可编程数据

个流程或多个

流程和/

用计算机、嵌入

个机器,使得通过计算

处理设备的处理器执行的指令产生用于实现在流程图一

流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设

备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器

的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流

流程和/或方框图一个方框或多个方框中指定的功能。 程或多个

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使

得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处

理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流

流程或多个流程和/或方框图一个方框或多个方框中指定的功

程图一个

能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发

明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求

其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利

求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。


发布者:admin,转转请注明出处:http://www.yc00.com/num/1714158971a2392955.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信