CN116225369A - Sm2算法标量乘运算优化方法及系统 - Google Patents

Sm2算法标量乘运算优化方法及系统 Download PDF

Info

Publication number
CN116225369A
CN116225369A CN202211732870.9A CN202211732870A CN116225369A CN 116225369 A CN116225369 A CN 116225369A CN 202211732870 A CN202211732870 A CN 202211732870A CN 116225369 A CN116225369 A CN 116225369A
Authority
CN
China
Prior art keywords
multiplication operation
scalar multiplication
algorithm
integer
contiguous
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211732870.9A
Other languages
English (en)
Inventor
柳兴邹
房礼国
胡浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Information Engineering University of PLA Strategic Support Force
Original Assignee
Information Engineering University of PLA Strategic Support Force
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Information Engineering University of PLA Strategic Support Force filed Critical Information Engineering University of PLA Strategic Support Force
Priority to CN202211732870.9A priority Critical patent/CN116225369A/zh
Publication of CN116225369A publication Critical patent/CN116225369A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及数据处理技术领域,特别涉及一种SM2算法标量乘运算优化方法及系统,利用带符号数位集对标量乘运算中整数k进行处理,得到由‑1、0和1三个元素数值构成的非邻接形式整数集合;并申请并行执行的进程资源,其中,进程资源包含:用于执行倍乘运算的第一进程和用于执行点加运算的第二进程;遍历非邻接形式整数集合,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算,并在非邻接形式整数集合的非零位将点加运算和倍乘运算结果相加。本发明通过增加SM2算法标量乘运算基础单位来减少运算次数,提高算法计算效率,使SM2加密体制整体上能够达到智能家居等移动硬件认证中安全、有效以及轻量化的要求。

Description

SM2算法标量乘运算优化方法及系统
技术领域
本发明涉及数据处理技术领域,特别涉及一种SM2算法标量乘运算优化方法及系统。
背景技术
现今,随着科技发展的日新月异,进入万物互联时代,智能家居的不断发展,既有以小米为代表的家电互联生态圈,也有各类自主品牌制造的单个家电。在带来生活中和便捷的同时,智能家居、家电的安全与隐私问题越来越引起人们的关注。人机交互出现在越来越多的场景中。扫脸支付、手机扫脸解锁、指纹门锁等等,都为生活、工作提供了便捷,但这层出不穷的软硬件背后的核心,都离不开一个词语——认证。
对于认证加密算法,国产公钥加密算法SM2具有许多无可比拟的优势,但其仍然存在一定缺陷:1、其密钥操作方式在计算成本方面却非常昂贵,其加密运算方式导致其运算速度可能无法满足需求、使用成本高于使用其他算法等。椭圆曲线域上的点乘运算是SM2的核心运算,而点乘运算也成为SM2算法速率优化的重要步骤。因此减轻SM2算法在使用中的工耗,加快认证速度是一个重要的解决需求。2、利用复杂的加密认证方式进行人员身份的核对,可提升认证的准确性,但是无法保障认证的效率。如果使用简单的认证方式,则安全性可能欠佳。所以,需要在二者间进行权衡。在大量认证活动中,通过硬件进行认证处理需要大量的算力。但往往较小的移动硬件都因硬件特性存在处理速度不足的情况。为此,亟需一种SM2算法优化方案来满足智能家居等移动硬件认证处理的需求。
发明内容
为此,本发明提供一种SM2算法标量乘运算优化方法及系统,通过增加SM2算法标量乘运算基础单位来减少运算次数,提高算法计算效率,使SM2加密体制整体上能够达到智能家居等移动硬件认证中安全、有效以及轻量化的要求。
按照本发明所提供的设计方案,提供一种SM2算法标量乘运算优化方法,包含:
利用带符号数位集对标量乘运算中整数k进行处理,得到由-1、0和1三个元素数值构成的非邻接形式整数集合;并申请并行执行的进程资源,其中,进程资源包含:用于执行倍乘运算的第一进程和用于执行点加运算的第二进程;
遍历非邻接形式整数集合,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算,并在非邻接形式整数集合的非零位将点加运算和倍乘运算结果相加。
作为本发明SM2算法标量乘运算优化方法,进一步地,利用带符号数位集对标量乘运算中大整数k进行处理中,通过非邻接形式将SM2算法标量乘运算中的整数k进行形式化表示来获取非邻接形式整数集合。
作为本发明SM2算法标量乘运算优化方法,进一步地,非邻接形式整数集合表示为
Figure BDA0004032178540000021
kj∈{0,1,-1},l表示集合总长度,且设定非邻接形式整数集合中相邻连续元素中至少有一个元素的数值为零。
作为本发明SM2算法标量乘运算优化方法,进一步地,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算中,利用共享数组来存储每次循环中执行第一进程得到的倍乘运算结果集;在当前循环中,执行第二进程时,从共享数组中提取当前循环倍乘运算结果来参与第二进程中点加运算。
作为本发明SM2算法标量乘运算优化方法,进一步地,通过第一进程来执行标量乘运算的倍乘运算,包含:遍历非邻接形式整数集合的每次循环中执行倍乘运算R=2R,并将每次循环中倍乘运算结果R存入共享数组。
作为本发明SM2算法标量乘运算优化方法,进一步地,通过第二进程来执行标量乘运算中的点加运算,包含:遍历非邻接形式整数集合,并在每次循环中从共享数组中取出当前循环倍乘运算结果,将当前循环倍乘运算结果存入临时数组T中,将当前循环中非邻接形式整数集合对应元素值存入临时变量m,当m=-1时执行一次点加操作Q=Q+T,并将计算结果存入结果集中,当m=-1时执行一次点减操作Q=Q-T,并将计算结果存入结果集中,直至非邻接形式整数集合所有位遍历结束,返回结果点集Q。
作为本发明SM2算法标量乘运算优化方法,进一步地,共享数组和临时数组均采用FPGA开发板寄存器来实现数据存储和提取调用。
进一步地,本发明还提供一种SM2算法标量乘运算优化系统,包含:稀疏表示单元和运算处理单元,其中,
稀疏表示单元,用于利用带符号数位集对标量乘运算中整数k进行处理,得到由-1、0和1三个元素数值构成的非邻接形式整数集合;并申请并行执行的进程资源,其中,进程资源包含:用于执行倍乘运算的第一进程和用于执行点加运算的第二进程;
运算处理单元,用于遍历非邻接形式整数集合,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算,并在非邻接形式整数集合的非零位将点加运算和倍乘运算结果相加。
本发明的有益效果:
本发明通过改变传统标量乘算法的执行过程,传统的计算过程中,运算单位均为二进制的0和1字符,本案方案中在SM2算法标量乘运算中引入另一字符-1,将运算的基础单位增多,减少运算次数,使运算时间比普通二进制算法更短,标量转换更为简单,且利用FPGA并行化思想优化标量乘计算过程,有效提高算法计算效率。在二进制标量乘算法和NAF标量乘算法执行上得到显著优化,计算速度更快,计算量更低,使SM2加密体制整体上达到安全、有效以及轻量化的要求,便于在智能家居等移动硬件认证业务中的应用。
附图说明:
图1为实施例中SM2算法标量乘运算优化流程示意图;
图2为实施例中PSECC-NAF算法流程示意;
图3为实施例中PSECC-NAF算法运算分析过程;
图4为实施例中SM2算法优化前后运行测试效率对比分析示意。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
椭圆曲线密码体制中最核心的问题在于随机大整数k与基点P∈E的结果kP的计算,即:
P+P+P…+P=kP
该运算称为标量乘,其整体运算主要由点加与倍乘两部分组成,同样是ECC的主要运算之一,占用运算量最大,是主要优化点。
由二进制运算可知,标量乘kP运算中作为标量的k的二进制长度以及其汉明重量决定其运算的计算效率。为达到轻量化的目的,通过一种稀疏的使用带符号数位集的表示即非邻接形式简化运算的次数。其主要方法是将随机生产的大正整数k通过NAF表达式k=
Figure BDA0004032178540000031
进行表示,最终得到结果为ki∈{-1,0,1},ki-1≠0,且没有两个连续的数字是非零的,可假设l表示NAF(Non-Adjacent Form)的长度。NAF(k)表示随机大整数k的非邻接表现形式。
在SM2数字签名算法中,运算量最大的步骤属于基点倍乘运算,其运算复杂且属于离散形式运算,其所消耗资源极大且降低认证效率。通过优化ECC(Elliptic CurvesCryptography)公钥加密运算中的标量乘运算来达到降低目标运算量的目的。实质上,也可通过改进椭圆曲线标量乘运算来实现椭圆曲线密码体制的轻量化。
对同一个点的多次加成为该点的点乘运算。设k是一个正整数,p是椭圆曲线上的,称点P的k次加为点P的k倍点运算,记为Q=[k]P=P+...+P,等式最右边的部分包括k个P。设有限域GF(P)上的椭圆曲线y2=x3+ax+b上的所有点加上无穷远点构成的集合为E(GF(P)),由于E(GF(P))在定义的点加运算下构成一个阿贝尔群,椭圆曲线点乘运算可以归结为基本的点加运算。在仿射坐标系下每次基本的点加运算都会用到有限域GF(P)上的求逆运算,由于有限域上的求逆运算相对于其他的运算非常消耗时间,这样就大大影响了点乘运算的运行速度。因此,在进行多倍点运算的算法实现时,可采用Jacobi加重射影坐标系下进行,最后将计算的结果转化到仿射坐标系下。Jacobi加重射影坐标系下的点加运算不包含求逆运算,这样可以通过几个模乘运算,加上最后坐标转化时的一个求逆运算,便可完成多倍点运算,从而提高了多倍乘的运行效率。
针对现有SM2算法在智能家居等移动硬件认证业务中使用受限的情形,本发明实施例,参见图1所示,提供一种SM2算法标量乘运算优化方法,包含:
S101、利用带符号数位集对标量乘运算中整数k进行处理,得到由-1、0和1三个元素数值构成的非邻接形式整数集合;并申请并行执行的进程资源,其中,进程资源包含:用于执行倍乘运算的第一进程和用于执行点加运算的第二进程;
S102、遍历非邻接形式整数集合,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算,并在非邻接形式整数集合的非零位将点加运算和倍乘运算结果相加。
在SM2算法中,点乘运算可归结为基本的点加运算,本案实施例中,通过在SM2算法标量乘运算中引入另一字符-1,将运算的基础单位增多,减少运算次数,使运算时间比普通二进制算法更短,标量转换更为简单,可以有效减少多倍点运算中点加运算和倍乘运算的执行次数,提高SM2算法运行效率。
作为优选实施例,进一步地,利用带符号数位集对标量乘运算中大整数k进行处理中,通过非邻接形式将SM2算法标量乘运算中的整数k进行形式化表示来获取非邻接形式整数集合。进一步地,非邻接形式整数集合表示为
Figure BDA0004032178540000041
kj∈{0,1,-1},l表示集合总长度,且设定非邻接形式整数集合中相邻连续元素中至少有一个元素的数值为零。
作为本发明SM2算法标量乘运算优化方法,进一步地,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算中,利用共享数组来存储每次循环中执行第一进程得到的倍乘运算结果集;在当前循环中,执行第二进程时,从共享数组中提取当前循环倍乘运算结果来参与第二进程中点加运算。
合理运用硬件并行架构将SM2算法标量乘运算中的倍乘运算和点加运算进行并行处理,整个算法分为两大步骤分别由两个进程分别进行处理。其进程分别如下:
进程1:执行倍乘运算(只写操作)
沿用上一循环的结果集,将资源重复利用,提高利用效率。
在该结果集的基础上,从右向左扫描每一位ki,每次循环均执行倍乘运算R=2R,并将结果集R存储进共享数组中,实质即是FPGA开发板的寄存器中,为进程2的提取调用作准备。
进程2:通过NAF转换标量,再执行点加运算(进行读取操作)执行NAF标量转换,生产k的非邻接表现形式。
从右向左扫描每一位ki,并从进程1的共享数组中提取当前倍乘运算结果存入临时数组即FPGA开发板的另一寄存器中。取出当前位的值ki存入临时变量中。通过调取当前位的值进行判断,进行推断当前位为1时执行一次点加操作,并将计算后的最终结果存入结果集中。当前位为-1时执行一次点减操作,并将计算结果存入结果集中。重新调去步骤2中的位值,直至所有位扫描结束。返回结果集合。
具体地,参见图2所示的PSECC-NAF算法流程可作为本案实施例中的一种方案的实现算法。算法内容可描述如下:
输入:将大整数转化为多维进制集合即
Figure BDA0004032178540000051
kj∈{0,1,-1},l表示集合总长度。
输出:椭圆曲线上的点Q=[k]P
第一步:将结果集R置换成;
第二步:从右到左扫描每一位ki,每次循环均执行倍乘运算R=2R,并将结果集R存入共享数组Ai
第三步:执行NAF标量转换;
第四步:从右到左扫描每一位ki,并从共享数组中Ai中取出当前倍乘运算结果存临时数组T中,取出当前位的值ki存入临时变量m中;
第五步:判断当前位m的值,当m=-1时执行一次点加操作Q=Q+T,并将计算结果存入结果集中当m=-1时执行一次点减操作Q=Q-T,并将计算结果,存入结果集中.返回第四步,直至所有位扫描结束;
第六步:返回结果集合Q。
对于进程1,通过计算l-1次倍乘运算,将倍乘结果储存到共享数组中。通过分析知进程1中的倍乘运算与进程2中NAF运算间并不存在任何相关性,通过相互独立的进程是二者能够并行运算,从而加快其效率,也不存在安全隐患。
对于进程2,首先通过NAF对随机大整数进行处理得到非邻接形式的数集合,然后执行点加操作。非邻接形式的整数集是由-1、0、1三种数组成,点加操作的点加次数与密钥的汉明重量相等。当对整数集中的位进行遍历时,如果遇到位数为1时,进程2即可执行点加运算并将结果存储到累加器中;如果遇到位数为-1时,进程2即可执行减法运算并将结果存储到累加器中;如果遇到位数0时,进程2不会执行任何操作。对于共享数组进程1与进程2都能对其进行访问,但对共享数组的操作是不同的。进程1只允许写入,而进程2只允许读出。
参见图3所示的算法运算过程,有l-1次倍点运算和平均(l-1)/3次点加运算,点加运算次数明显小于倍乘运算次数,由于倍乘运算相较与点加运算明显复杂。经过算法优化后,可发现通过NAF表示标量后,标量的汉明重量明显降低,从而达到减少点加运算的效果。在NAF标量的基础上,改进原算法的计算过程与之前点加运算执行前必须等待倍乘运算不同的情形,改进后只需在非零位将点加和倍乘运算结果相加即可。并且可利用FPGA并行化思想,将点加运算与倍乘运算在FPGA中并行执行,使两者的运算成为独立的进程,极大减少点加运算的等待时间,提高算法的执行效率。
进一步地,基于上述的方法,本发明实施例还提供一种SM2算法标量乘运算优化系统,包含:稀疏表示单元和运算处理单元,其中,
稀疏表示单元,用于利用带符号数位集对标量乘运算中整数k进行处理,得到由-1、0和1三个元素数值构成的非邻接形式整数集合;并申请并行执行的进程资源,其中,进程资源包含:用于执行倍乘运算的第一进程和用于执行点加运算的第二进程;
运算处理单元,用于遍历非邻接形式整数集合,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算,并在非邻接形式整数集合的非零位将点加运算和倍乘运算结果相加。
为验证本案方案有效性,下面结合模拟数据做进一步解释说明:
参见图4所示,优化后的SM2签名与验证签名PSECC-NAF算法方案与传统SM2实现方案在模拟软件上运行测试效率进行对比分析,在使用相同的伪随机数生成模块与数据传输模式的情况下,每一轮测试结果均要比传统方案效率提高约12%,通过该数据能够进一步有效证明了本案方案的正确性与实用性。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的各实例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已按照功能一般性地描述了各示例的组成及步骤。这些功能是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不认为超出本发明的范围。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如:只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种SM2算法标量乘运算优化方法,其特征在于,包含:
利用带符号数位集对标量乘运算中整数k进行处理,得到由-1、0和1三个元素数值构成的非邻接形式整数集合;并申请并行执行的进程资源,其中,进程资源包含:用于执行倍乘运算的第一进程和用于执行点加运算的第二进程;
遍历非邻接形式整数集合,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算,并在非邻接形式整数集合的非零位将点加运算和倍乘运算结果相加。
2.根据权利要求1所述的SM2算法标量乘运算优化方法,其特征在于,利用带符号数位集对标量乘运算中大整数k进行处理中,通过非邻接形式将SM2算法标量乘运算中的整数k进行形式化表示来获取非邻接形式整数集合。
3.根据权利要求1或2所述的SM2算法标量乘运算优化方法,其特征在于,非邻接形式整数集合表示为
Figure FDA0004032178530000011
kj∈{0,1,-1},l表示集合总长度,且设定非邻接形式整数集合中相邻连续元素中至少有一个元素的数值为零。
4.根据权利要求1所述的SM2算法标量乘运算优化方法,其特征在于,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算中,利用共享数组来存储每次循环中执行第一进程得到的倍乘运算结果集;在当前循环中,执行第二进程时,从共享数组中提取当前循环倍乘运算结果来参与第二进程中点加运算。
5.根据权利要求4所述的SM2算法标量乘运算优化方法,其特征在于,通过第一进程来执行标量乘运算的倍乘运算,包含:遍历非邻接形式整数集合的每次循环中执行倍乘运算R=2R,并将每次循环中倍乘运算结果R存入共享数组。
6.根据权利要求4或5所述的SM2算法标量乘运算优化方法,其特征在于,通过第二进程来执行标量乘运算中的点加运算,包含:遍历非邻接形式整数集合,并在每次循环中从共享数组中取出当前循环倍乘运算结果,将当前循环倍乘运算结果存入临时数组T中,将当前循环中非邻接形式整数集合对应元素值存入临时变量m,当m=-1时执行一次点加操作Q=Q+T,并将计算结果存入结果集中,当m=-1时执行一次点减操作Q=Q-T,并将计算结果存入结果集中,直至非邻接形式整数集合所有位遍历结束,返回结果点集Q。
7.根据权利要求6所述的SM2算法标量乘运算优化方法,其特征在于,共享数组和临时数组均采用FPGA开发板寄存器来实现数据存储和提取调用。
8.一种SM2算法标量乘运算优化系统,其特征在于,包含:稀疏表示单元和运算处理单元,其中,
稀疏表示单元,用于利用带符号数位集对标量乘运算中整数k进行处理,得到由-1、0和1三个元素数值构成的非邻接形式整数集合;并申请并行执行的进程资源,其中,进程资源包含:用于执行倍乘运算的第一进程和用于执行点加运算的第二进程;
运算处理单元,用于遍历非邻接形式整数集合,通过第一进程和第二进程来并行执行标量乘运算中的倍乘运算和点加运算,并在非邻接形式整数集合的非零位将点加运算和倍乘运算结果相加。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口、存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序,并在程序执行时实现权利要求1~7任一项所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~7任一项所述的方法步骤。
CN202211732870.9A 2022-12-30 2022-12-30 Sm2算法标量乘运算优化方法及系统 Pending CN116225369A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211732870.9A CN116225369A (zh) 2022-12-30 2022-12-30 Sm2算法标量乘运算优化方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211732870.9A CN116225369A (zh) 2022-12-30 2022-12-30 Sm2算法标量乘运算优化方法及系统

Publications (1)

Publication Number Publication Date
CN116225369A true CN116225369A (zh) 2023-06-06

Family

ID=86576007

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211732870.9A Pending CN116225369A (zh) 2022-12-30 2022-12-30 Sm2算法标量乘运算优化方法及系统

Country Status (1)

Country Link
CN (1) CN116225369A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117972761A (zh) * 2024-04-01 2024-05-03 杭州金智塔科技有限公司 基于国密sm2算法的数据处理方法以及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117972761A (zh) * 2024-04-01 2024-05-03 杭州金智塔科技有限公司 基于国密sm2算法的数据处理方法以及装置

Similar Documents

Publication Publication Date Title
CN106487512A (zh) 一种rsa密钥对快速生成系统及方法
CN113628094B (zh) 一种基于gpu的高吞吐量sm2数字签名计算系统及方法
CN104579656A (zh) 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器
US20140294174A1 (en) Efficient Prime-Number Check
US6772942B2 (en) Arithmetic circuit to increase the speed of a modular multiplication for a public key system for encryption
CN103049710A (zh) 用于sm2数字签名验证算法的fpga芯片
US20220166614A1 (en) System and method to optimize generation of coprime numbers in cryptographic applications
CN112970227A (zh) 包括公钥组合验证的计算机实现的系统和方法
CN109145616A (zh) 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统
CN108875416B (zh) 椭圆曲线多倍点运算方法和装置
CN116225369A (zh) Sm2算法标量乘运算优化方法及系统
Lu et al. Implementation of fast RSA key generation on smart cards
CN109933304B (zh) 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法
Pornin Optimized binary gcd for modular inversion
CN101183945A (zh) 基于旁路算子的椭圆曲线抗旁路攻击方法
CN116527274B (zh) 基于多标量乘快速计算的椭圆曲线验签方法及系统
Kotukh et al. Method of Security Improvement for MST3 Cryptosystem Based on Automorphism Group of Ree Function Field
CN104503730A (zh) 一种基于指令的大数点加、倍点运算电路及实现方法
WO2023124371A1 (zh) 数据处理装置、方法、芯片、计算机设备及存储介质
US11985221B2 (en) Efficient masking of secure data in ladder-type cryptographic computations
CN111460488B (zh) 基于预存储和n维Arnold变换的多图像快速加密方法
CN104298897A (zh) 基于混沌技术的嵌入式版权认证方法及专用处理器
CN114510217A (zh) 处理数据的方法、装置和设备
CN116225373A (zh) 一种数据处理方法、装置、计算机设备及存储介质
CN113505383A (zh) 一种ecdsa算法执行系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination