SM2算法标量乘运算优化方法及系统技术方案

技术编号:37786099 阅读:13 留言:0更新日期:2023-06-09 09:16
本发明专利技术涉及数据处理技术领域,特别涉及一种SM2算法标量乘运算优化方法及系统,利用带符号数位集对标量乘运算中整数k进行处理,得到由

【技术实现步骤摘要】
SM2算法标量乘运算优化方法及系统


[0001]本专利技术涉及数据处理
,特别涉及一种SM2算法标量乘运算优化方法及系统。

技术介绍

[0002]现今,随着科技发展的日新月异,进入万物互联时代,智能家居的不断发展,既有以小米为代表的家电互联生态圈,也有各类自主品牌制造的单个家电。在带来生活中和便捷的同时,智能家居、家电的安全与隐私问题越来越引起人们的关注。人机交互出现在越来越多的场景中。扫脸支付、手机扫脸解锁、指纹门锁等等,都为生活、工作提供了便捷,但这层出不穷的软硬件背后的核心,都离不开一个词语——认证。
[0003]对于认证加密算法,国产公钥加密算法SM2具有许多无可比拟的优势,但其仍然存在一定缺陷:1、其密钥操作方式在计算成本方面却非常昂贵,其加密运算方式导致其运算速度可能无法满足需求、使用成本高于使用其他算法等。椭圆曲线域上的点乘运算是SM2的核心运算,而点乘运算也成为SM2算法速率优化的重要步骤。因此减轻SM2算法在使用中的工耗,加快认证速度是一个重要的解决需求。2、利用复杂的加密认证方式进行人员身份的核对,可提升认证的准确性,但是无法保障认证的效率。如果使用简单的认证方式,则安全性可能欠佳。所以,需要在二者间进行权衡。在大量认证活动中,通过硬件进行认证处理需要大量的算力。但往往较小的移动硬件都因硬件特性存在处理速度不足的情况。为此,亟需一种SM2算法优化方案来满足智能家居等移动硬件认证处理的需求。

技术实现思路

[0004]为此,本专利技术提供一种SM2算法标量乘运算优化方法及系统,通过增加SM2算法标量乘运算基础单位来减少运算次数,提高算法计算效率,使SM2加密体制整体上能够达到智能家居等移动硬件认证中安全、有效以及轻量化的要求。
[0005]按照本专利技术所提供的设计方案,提供一种SM2算法标量乘运算优化方法,包含:
[0006]利用带符号数位集对标量乘运算中整数k进行处理,得到由

1、0和1三个元素数值构成的非邻接形式整数集合;并申请并行执行的进程资源,其中,进程资源包含:用于执行倍乘运算的第一进程和用于执行点加运算的第二进程;
[0007]遍历非邻接形式整数集合,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算,并在非邻接形式整数集合的非零位将点加运算和倍乘运算结果相加。
[0008]作为本专利技术SM2算法标量乘运算优化方法,进一步地,利用带符号数位集对标量乘运算中大整数k进行处理中,通过非邻接形式将SM2算法标量乘运算中的整数k进行形式化表示来获取非邻接形式整数集合。
[0009]作为本专利技术SM2算法标量乘运算优化方法,进一步地,非邻接形式整数集合表示为k
j
∈{0,1,

1},l表示集合总长度,且设定非邻接形式整数集合中相邻连续元
素中至少有一个元素的数值为零。
[0010]作为本专利技术SM2算法标量乘运算优化方法,进一步地,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算中,利用共享数组来存储每次循环中执行第一进程得到的倍乘运算结果集;在当前循环中,执行第二进程时,从共享数组中提取当前循环倍乘运算结果来参与第二进程中点加运算。
[0011]作为本专利技术SM2算法标量乘运算优化方法,进一步地,通过第一进程来执行标量乘运算的倍乘运算,包含:遍历非邻接形式整数集合的每次循环中执行倍乘运算R=2R,并将每次循环中倍乘运算结果R存入共享数组。
[0012]作为本专利技术SM2算法标量乘运算优化方法,进一步地,通过第二进程来执行标量乘运算中的点加运算,包含:遍历非邻接形式整数集合,并在每次循环中从共享数组中取出当前循环倍乘运算结果,将当前循环倍乘运算结果存入临时数组T中,将当前循环中非邻接形式整数集合对应元素值存入临时变量m,当m=

1时执行一次点加操作Q=Q+T,并将计算结果存入结果集中,当m=

1时执行一次点减操作Q=Q

T,并将计算结果存入结果集中,直至非邻接形式整数集合所有位遍历结束,返回结果点集Q。
[0013]作为本专利技术SM2算法标量乘运算优化方法,进一步地,共享数组和临时数组均采用FPGA开发板寄存器来实现数据存储和提取调用。
[0014]进一步地,本专利技术还提供一种SM2算法标量乘运算优化系统,包含:稀疏表示单元和运算处理单元,其中,
[0015]稀疏表示单元,用于利用带符号数位集对标量乘运算中整数k进行处理,得到由

1、0和1三个元素数值构成的非邻接形式整数集合;并申请并行执行的进程资源,其中,进程资源包含:用于执行倍乘运算的第一进程和用于执行点加运算的第二进程;
[0016]运算处理单元,用于遍历非邻接形式整数集合,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算,并在非邻接形式整数集合的非零位将点加运算和倍乘运算结果相加。
[0017]本专利技术的有益效果:
[0018]本专利技术通过改变传统标量乘算法的执行过程,传统的计算过程中,运算单位均为二进制的0和1字符,本案方案中在SM2算法标量乘运算中引入另一字符

1,将运算的基础单位增多,减少运算次数,使运算时间比普通二进制算法更短,标量转换更为简单,且利用FPGA并行化思想优化标量乘计算过程,有效提高算法计算效率。在二进制标量乘算法和NAF标量乘算法执行上得到显著优化,计算速度更快,计算量更低,使SM2加密体制整体上达到安全、有效以及轻量化的要求,便于在智能家居等移动硬件认证业务中的应用。
附图说明:
[0019]图1为实施例中SM2算法标量乘运算优化流程示意图;
[0020]图2为实施例中PSECC

NAF算法流程示意;
[0021]图3为实施例中PSECC

NAF算法运算分析过程;
[0022]图4为实施例中SM2算法优化前后运行测试效率对比分析示意。
具体实施方式:
[0023]为使本专利技术的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本专利技术作进一步详细的说明。
[0024]椭圆曲线密码体制中最核心的问题在于随机大整数k与基点P∈E的结果kP的计算,即:
[0025]P+P+P

+P=kP
[0026]该运算称为标量乘,其整体运算主要由点加与倍乘两部分组成,同样是ECC的主要运算之一,占用运算量最大,是主要优化点。
[0027]由二进制运算可知,标量乘kP运算中作为标量的k的二进制长度以及其汉明重量决定其运算的计算效率。为达到轻量化的目的,通过一种稀疏的使用带符号数位集的表示即非邻接形式简化运算的次数。其主要方法是将随机生产的大正整数k通过NAF表达式k=进行表示,最终得到结果为k
i
∈{

1,0,1},k
i
‑1≠0,且没有本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SM2算法标量乘运算优化方法,其特征在于,包含:利用带符号数位集对标量乘运算中整数k进行处理,得到由

1、0和1三个元素数值构成的非邻接形式整数集合;并申请并行执行的进程资源,其中,进程资源包含:用于执行倍乘运算的第一进程和用于执行点加运算的第二进程;遍历非邻接形式整数集合,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算,并在非邻接形式整数集合的非零位将点加运算和倍乘运算结果相加。2.根据权利要求1所述的SM2算法标量乘运算优化方法,其特征在于,利用带符号数位集对标量乘运算中大整数k进行处理中,通过非邻接形式将SM2算法标量乘运算中的整数k进行形式化表示来获取非邻接形式整数集合。3.根据权利要求1或2所述的SM2算法标量乘运算优化方法,其特征在于,非邻接形式整数集合表示为k
j
∈{0,1,

1},l表示集合总长度,且设定非邻接形式整数集合中相邻连续元素中至少有一个元素的数值为零。4.根据权利要求1所述的SM2算法标量乘运算优化方法,其特征在于,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算中,利用共享数组来存储每次循环中执行第一进程得到的倍乘运算结果集;在当前循环中,执行第二进程时,从共享数组中提取当前循环倍乘运算结果来参与第二进程中点加运算。5.根据权利要求4所述的SM2算法标量乘运算优化方法,其特征在于,通过第一进程来执行标量乘运算的倍乘运算,包含:遍历非邻接形式整数集合的每次循环中执行倍乘运算R=2R,并将每次循环中倍乘运算结果R存入共享数组。6.根据权利要求4或5所述的SM2算法标量乘运算优化方法,其特征在于,通过第二进程来执行标量乘运算中的点加运算,包含:...

【专利技术属性】
技术研发人员:柳兴邹房礼国胡浩
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:

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

1