一种基于SM2算法的快速验签与加密方法技术

技术编号:35005208 阅读:38 留言:0更新日期:2022-09-21 14:55
本发明专利技术提供一种基于SM2算法的快速验签与加密方法,在特定场景下,可将公钥P视为固定点进行固定点点乘运算,从而极大提升了特定场景下的SM2验签和加密的运算性能。下的SM2验签和加密的运算性能。下的SM2验签和加密的运算性能。

【技术实现步骤摘要】
一种基于SM2算法的快速验签与加密方法


[0001]本专利技术属于数字签名加密领域,具体涉及一种基于SM2算法的快速验签与加密方法。

技术介绍

[0002]SM2算法是中国的标准商用密码算法,基于SM2算法的数字签名和加解密技术已经广泛应用于金融、支付、政务等各个领域,成为保障信息安全的基石。提升SM2算法的性能是SM2算法优化的重要方向。SM2算法规范参考GM/T 0003

2012《SM2椭圆曲线公钥密码算法》。在SM2算法中,点乘(或称标量乘法)决定了算法的运算速度,提升点乘的计算效率也就提升了SM2算法的性能。点乘运算分为固定点的点乘和非固定点的点乘。固定点的点乘通过预计算基础数据能够大幅度提升运算速度,固定点的点乘效率可以数倍于非固定点的点乘效率。
[0003]在现有的SM2实现方案中,将SM2椭圆曲线基点G视为固定点。公钥通过随机整数k与基点G进行点乘计算所得(P=[k]G),随机整数k值变化,公钥P也随之变化,因此一般都将公钥P视为非固定点参与点乘运算。无视业务场景特点,将所有公钥P均视为非固定点参与点乘运算将无法利用固定点预计算的性能优势,使得具有公钥参与运算的SM2验签算法和SM2加密算法性能较低。
[0004]鉴于此,亟需提出一种运算效率更高的基于SM2算法的快速验签与加密方法。

技术实现思路

[0005]为此,本专利技术提供一种运算效率更高的基于SM2算法的快速验签与加密方法。
[0006]本专利技术的基于SM2算法的快速验签方法,获取来自通信对端的公钥P
A
、收到的消息M'及数字签名(r',s'),包括如下步骤:
[0007]S1、检验r'∈[1,n

1],若不成立验证失败;
[0008]S2、检验s'∈[1,n

1],若不成立验证失败;
[0009]S3、置
[0010]S4、计算消息摘要
[0011]S5、计算t=(r'+s')mod n,若t=0,验证失败;
[0012]S6、以SM2椭圆曲线基点G、公钥P
A
为固定点分别对两者执行点乘计算;
[0013]得到椭圆曲线点(x1,y1)=[s']G+[t]P
A;
[0014]S7、计算R=(e'+x1)mod n,若R=r',验证通过;否则验证失败。
[0015]进一步的,通信终端的通信对端为平台服务器,通信终端使用服务器公钥进行验签。
[0016]本专利技术还提供一种基于SM2算法的快速加密方法,获取来自通信对端的公钥P
B
以及消息M,包括如下步骤:
[0017]S1、产生随机数k∈[1,n

1];
[0018]S2、计算椭圆曲线点C1=[k]G=(x1,y1);
[0019]S3、计算椭圆曲线点S=[h]P
B
,若S=0报错并退出,将公钥P
B
视为固定点至多计算一次;
[0020]S4、计算[k]P
B
=(x2,y2),将公钥P
B
视为固定点,使用固定点点乘方法进行计算;
[0021]S5、计算t=KDF(x2||y2,klen),若t=0,重新产生随机数,KDF()为密钥派生函数;
[0022]S6、计算
[0023]S7、计算C3=Hash(x2||M||y2);
[0024]输出密文C=C1||C3||C
2。
[0025]进一步的,通信终端的通信对端为平台服务器,通信终端使用服务器公钥进行加密。
[0026]本专利技术还提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行所述的基于SM2算法的快速验签方法,或者执行所述的基于SM2算法的快速加密方法。
[0027]本专利技术还提供一种电子设备,所述电子设备包括:
[0028]处理器;
[0029]用于存储所述处理器可执行指令的存储器;
[0030]所述处理器用于执行所述的基于SM2算法的快速验签方法,或者用于执行所述的基于SM2算法的快速加密方法
[0031]本专利技术的上述技术方案,相比现有技术具有以下优点:
[0032]其他SM2验签及加密实现方案均将SM2椭圆曲线基点G视为固定点进行固定点点乘运算、将公钥P均视为非固定点进行非固定点点乘运算。而本专利技术限定了在特定场景下,可将公钥P视为固定点进行固定点点乘运算,从而极大提升了特定场景下的SM2验签和加密的运算性能;
附图说明
[0033]图1是本专利技术实施例提供的基于SM2算法的快速验签方法的流程示意图;
[0034]图2是本专利技术实施例提供的基于SM2算法的快速加密方法的流程示意图;
[0035]图3是本专利技术实施例提供的电子设备的模块连接示意图。
具体实施方式
[0036]下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0037]在本专利技术的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0038]在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义。
[0039]本专利技术中的特定场景是指通信终端的通信对端为平台服务器,通信终端使用服务器公钥进行验签或使用服务器公钥进行加密的特定场景,典型的场景为C/S(客户机/服务器)等架构下客户端基于服务器公钥进行验签或加密运算。
[0040]《SM2椭圆曲线公钥密码算法第2部分数字签名算法》规定了数字签名验证算法的详细过程,为了通过通信对端的公钥P
A
校验收到的消息M'及数字签名(r',s'),具体步骤为:
[0041]1)检验r'∈[1,n

1],若不成立验证失败;
[0042]2)检验s'∈[1,n

1],若不成立验证失败;
[0043]3)置
[0044]4)计算消息摘要
[0045]5本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SM2算法的快速验签方法,获取来自通信对端的公钥P
A
、收到的消息M'及数字签名(r',s'),其特征在于,包括如下步骤:S1、检验r'∈[1,n

1],若不成立验证失败;S2、检验s'∈[1,n

1],若不成立验证失败;S3、置S4、计算消息摘要S5、计算t=(r'+s')mod n,若t=0,验证失败;S6、以SM2椭圆曲线基点G、公钥P
A
为固定点分别对两者执行点乘计算;得到椭圆曲线点(x1,y1)=[s']G+[t]P
A;
S7、计算R=(e'+x1)mod n,若R=r',验证通过;否则验证失败。2.根据权利要求1所述的基于SM2算法的快速验签方法,其特征在于,通信终端的通信对端为平台服务器,通信终端使用服务器公钥进行验签。3.一种基于SM2算法的快速加密方法,获取来自通信对端的公钥P
B
以及消息M,其特征在于,包括如下步骤:S1、产生随机数k∈[1,n

1];S2、计算椭圆曲线点C1=[k]G=(x1,y1);S3、计算椭圆曲线点S=[h]P
B
,若S=...

【专利技术属性】
技术研发人员:刘鹏方恒禄
申请(专利权)人:北京信长城科技发展有限公司
类型:发明
国别省市:

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

1