一种SM2数字签名的快速生成方法和装置制造方法及图纸

技术编号:22261989 阅读:46 留言:0更新日期:2019-10-10 14:43
本申请公开了一种基于SM2的快速签名生成方法和装置,方法包括:预先计算并存储SM2椭圆曲线基点的特殊倍点集;生成随机数k;计算随机数k的非邻近形式值NAF(k);基于所述预先计算并存储的椭圆曲线基点的特殊倍点集与所述随机数k的非邻近形式值NAF(k),通过点乘运算获得SM2椭圆曲线点群基点的倍点;基于所述SM2椭圆曲线点群基点的倍点,通过SM2标准签名算法生成SM2数字签名。本申请能够有效减少SM2数字签名生成过程中所需的点乘时间,提升SM2数字签名的生成速度。

A Fast Generation Method and Device of SM2 Digital Signature

【技术实现步骤摘要】
一种SM2数字签名的快速生成方法和装置
本专利技术涉及信息处理
,尤其是涉及一种SM2数字签名的快速生成方法和装置。
技术介绍
数字签名技术为数据提供了完整性和抗抵赖性保护,SM2数字签名算法为国家密码管理部门发布的密码算法之一,该算法最耗时的计算是点乘(或称标量乘),即一个大数与椭圆曲线上的点相乘。针对这种点乘,目前虽有一些通用的优化算法,然而,通用的优化算法并没有利用SM2签名算法自身的特性,如可以利用SM2具体结构和使用的参数进行优化加速,SM2签名算法中的点乘还可以更进一步优化,从而更进一步加速SM2签名计算。SM2签名算法标准参见《GM/T0003.2-2012SM2椭圆曲线公钥密码算法第2部分:数字签名算法》。
技术实现思路
本专利技术实施例提供一种SM2数字签名的快速生成方法和装置,用以减少SM2数字签名生成过程中所需的点乘时间,提高SM2数字签名的生成速度。第一方面,本专利技术实施例提供一种SM2数字签名的快速生成方法,包括:预先计算并存储SM2椭圆曲线基点的特殊倍点集;生成随机数k;计算随机数k的非邻近形式值NAF(k);基于预先计算并存储的SM2椭圆曲线基点的特殊倍点集与随机数k的非邻近形式值NAF(k),通过点乘运算获得SM2椭圆曲线点群基点的倍点;基于所述SM2椭圆曲线点群基点的倍点,通过SM2标准签名算法生成SM2数字签名。在一种可能的实施方式中,本专利技术实施例提供的上述方法中,预先计算并存储SM2椭圆曲线基点的特殊倍点集,包括:特殊倍点集为由Qi=2iG和Ri=-2iG组成的集合,其中G点为SM2算法固定参数,i=[0,300],i为整数。在一种可能的实施方式中,本专利技术实施例提供的上述方法中,计算随机数k的非邻近形式值NAF(k),包括:根据NAF(k)计算公式,输入为随机数k,输出为整数m和数组(a0,a1,…ai…am),其中ai=1或-1或0,i为整数,且0<=i<=m<=300。在一种可能的实施方式中,本专利技术实施例提供的上述方法中,基于预先计算并存储的SM2椭圆曲线基点的特殊倍点集与随机数k的非邻近形式值,获得SM2椭圆曲线点群基点的倍点,包括:SM2椭圆曲线点群基点的倍点Q=kG,其中G点为SM2算法固定参数;其中倍点Q计算步骤为A1:先假设Q=O;A2:遍历i,i=0,1,…m;A3:如果ai=0,则不作任何计算;如果ai=1,则Q=Q+Qi;如果ai=-1,则Q=Q+Ri。其中m和ai通过随机数k的非邻近形式NAF(k)计算获取,Qi=2iG和Ri=-2iG为SM2椭圆曲线基点的特殊倍点集里的点,i为整数,0<=i<=m<=300。第二方面,本专利技术实施例提供一种SM2数字签名的快速生成装置,包括:预计算与存储模块,预先计算并存储SM2椭圆曲线基点的特殊倍点集;生成模块,生成随机数k;计算模块,计算随机数k的非邻近形式值NAF(k);点乘模块,计算基于预先计算并存储的SM2椭圆曲线基点的特殊倍点集与随机数k的非邻近形式值NAF(k),通过点乘运算获得SM2椭圆曲线点群基点的倍点;签名模块,基于所述SM2椭圆曲线点群基点的倍点,通过SM2标准签名算法生成SM2数字签名。在一种可能的实施方式中,本专利技术实施例提供的装置中,预计算与存储模块,用于计算并存储由Qi=2iG和Ri=-2iG组成的特殊倍点集,其中G点为SM2算法固定参数,i=[0,300],i为整数。在一种可能的实施方式中,本专利技术实施例提供的装置中,计算模块,用于计算NAF(k),输入为随机数k,输出为整数m和数组(a0,a1,…ai…am),其中ai=+1或-1或0,i为整数,且0<=i<=m<=300。在一种可能的实施方式中,本专利技术实施例提供的装置中,点乘模块,用于计算SM2椭圆曲线点群基点的倍点Q=kG,其中G点为SM2算法固定参数;其中倍点Q计算步骤为A1:先假设Q=O.A2:遍历i,i=0,1,…m.A3:如果ai=0,则不作任何计算;如果ai=1,则Q=Q+Qi;如果ai=-1,则Q=Q+Ri;其中m和ai通过随机数k的非邻近形式NAF(k)计算获取,Qi=2iG和Ri=-2iG为SM2椭圆曲线基点的特殊倍点集里的点,i为整数,0<=i<=m<=300。第三方面,本专利技术实施例提供一种SM2数字签名的快速生成设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现本专利技术实施例第一方面提供的方法。第四方面,本专利技术实施例提供一种计算机可读存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现本专利技术实施例第一方面提供的方法。由上述方可知,本申请提供一种基于SM2的快速签名生成方法和装置,预先计算并存储SM2椭圆曲线基点的特殊倍点集;生成随机数k;计算随机数k的非邻近形式值NAF(k);基于预先计算并存储的椭圆曲线基点的特殊倍点集与随机数k的非邻近形式值NAF(k),通过点乘运算获得SM2椭圆曲线点群基点的倍点;基于SM2椭圆曲线点群基点的倍点,通过SM2标准签名算法生成SM2数字签名。本申请能够有效减少SM2数字签名生成过程中所需的点乘时间,提升SM2数字签名的生成速度。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1为本专利技术实施例提供的SM2数字签名的快速生成方法的示意流程图;图2为现有的一种点乘运算示意流程图;图3为本专利技术实施例提供的点乘运算示意流程图;图4为本专利技术实施例提供的SM2数字签名的快速生成装置的结构示意图;图5为本专利技术实施例提供的SM2数字签名的快速生成设备的结构示意图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。实施例1根据本专利技术实施例,提供了一种SM2数字签名的快速生成方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。图1是本专利技术实施例提供的SM2数字签名的快速生成方法,其可以包括如下步骤:步骤S101:预先计算并存储SM2椭圆曲线基点的特殊倍点集。具体实施时,SM2椭圆曲线点群的基点的特殊倍点集由Qi=2iG和Ri=-2iG组成,其中G点为SM2算法固定参数,i=[0,300],i为整数,一般i的最大值略大于256,这里i最大值为300,是为了防止随机数的非本文档来自技高网
...

【技术保护点】
1.一种SM2数字签名的快速生成方法,其特征在于,所述方法包括:预先计算并存储SM2椭圆曲线基点的特殊倍点集;生成随机数k;计算随机数k的非邻近形式值 NAF(k);基于所述预先计算并存储的SM2椭圆曲线基点的特殊倍点集与所述随机数k的非邻近形式值NAF(k),通过点乘运算获得SM2椭圆曲线点群基点的倍点;基于所述SM2椭圆曲线点群基点的倍点,通过SM2标准签名算法生成SM2数字签名。

【技术特征摘要】
1.一种SM2数字签名的快速生成方法,其特征在于,所述方法包括:预先计算并存储SM2椭圆曲线基点的特殊倍点集;生成随机数k;计算随机数k的非邻近形式值NAF(k);基于所述预先计算并存储的SM2椭圆曲线基点的特殊倍点集与所述随机数k的非邻近形式值NAF(k),通过点乘运算获得SM2椭圆曲线点群基点的倍点;基于所述SM2椭圆曲线点群基点的倍点,通过SM2标准签名算法生成SM2数字签名。2.根据权利要求1所述SM2数字签名的快速生成方法,其特征在于,预先计算并存储SM2椭圆曲线基点的特殊倍点集,包括:特殊倍点集为由Qi=2iG和Ri=-2iG组成的集合,其中G点为SM2算法固定参数,i=[0,300],i为整数。3.根据权利要求1所述SM2数字签名的快速生成方法,其特征在于,计算随机数k的非邻近形式值NAF(k),包括:根据NAF(k)计算公式,输入为随机数k,输出为整数m和数组(a0,a1,…ai…am),其中ai=1或-1或0,i为整数,且0<=i<=m<=300。4.根据权利要求1-3中任意一项所述SM2数字签名的快速生成方法,其特征在于,基于所述预先计算并存储的SM2椭圆曲线基点的特殊倍点集与所述随机数k的非邻近形式值,通过点乘运算获得SM2椭圆曲线点群基点的倍点,包括:所述SM2椭圆曲线点群基点的倍点Q=kG,其中G点为SM2算法固定参数;其中倍点Q计算步骤为A1:先假设Q=O;A2:遍历i,i=0,1,…m;A3:如果ai=0,则不作任何计算;如果ai=1,则Q=Q+Qi;如果ai=-1,则Q=Q+Ri;其中m和ai通过随机数k的非邻近形式NAF(k)计算获取,Qi=2iG和Ri=-2iG为SM2椭圆曲线基点的特殊倍点集里的点,i为整数,0<=i<=m<=300。5.一种SM2数字签名的快速生成装置,其特征在于,所述装置包括:预计算与存储模块,预先计算并存储SM2椭圆曲线...

【专利技术属性】
技术研发人员:王学进刘雪梅张娟蒋红宇
申请(专利权)人:北京海泰方圆科技股份有限公司
类型:发明
国别省市:北京,11

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

1