CN109145616B - 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统 - Google Patents

基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统 Download PDF

Info

Publication number
CN109145616B
CN109145616B CN201810862172.8A CN201810862172A CN109145616B CN 109145616 B CN109145616 B CN 109145616B CN 201810862172 A CN201810862172 A CN 201810862172A CN 109145616 B CN109145616 B CN 109145616B
Authority
CN
China
Prior art keywords
multiplication
modular
prime number
result
module
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.)
Active
Application number
CN201810862172.8A
Other languages
English (en)
Other versions
CN109145616A (zh
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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201810862172.8A priority Critical patent/CN109145616B/zh
Publication of CN109145616A publication Critical patent/CN109145616A/zh
Application granted granted Critical
Publication of CN109145616B publication Critical patent/CN109145616B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

一种基于高效模乘的SM2加密、签名和密钥交换的实现方法及系统,根据素数特征优化的蒙哥马利蒙模乘方法,将SM2素数参与的乘法运算进行优化后进行模逆运算,最后实现SM2中签名、加解密及密钥交换的标量乘运算的快速实现。本发明利用SM2素数的特征实现高效的模乘,基于该模乘构建高效的标量乘实现和模逆实现,适用于SM2中签名、加解密和密钥交换算法的具体实现。

Description

基于高效模乘的SM2加密、签名和密钥交换的实现方法及系统
技术领域
本发明涉及的是一种计算机安全领域的技术,具体是一种基于素数特征的效率达到传统实现方式两倍的模乘实现,基于该模乘实现能够构建效率达到传统实现两倍的SM2系列算法实现方法及系统。
背景技术
标量乘运算是SM2(椭圆曲线公钥密码算法)乃至所有ECC方案安全性的基础,现有基于椭圆曲线SM2包含三种方案:签名方案、密钥交换方案及加解密方案,而三个方案中计算量最大的部分为标量乘运算。由于SM2定义在素数域上,实现时不能使用仿射坐标。对于坐标系的选择,通常会有投影坐标及雅克比坐标,这两种坐标能够避免在大量的求逆,但在标量乘计算完毕后需要将结果坐标转换至仿射坐标下,因此在整个计算过程需要一次求逆,导致计算效率较低。
发明内容
本发明针对现有技术存在的上述不足,提出一种基于高效模乘的SM2加密、签名和密钥交换的实现方法及系统,利用SM2素数的特征实现高效的模乘,基于该模乘构建高效的标量乘实现和模逆实现,适用于SM2中签名、加解密和密钥交换算法的具体实现。
本发明是通过以下技术方案实现的:
本发明涉及一种基于高效模乘的SM2加密、签名和密钥交换的实现方法,根据素数特征优化的蒙哥马利蒙模乘方法,将SM2素数参与的乘法运算进行优化后进行模逆运算,最后实现SM2中签名、加解密及密钥交换的标量乘运算的快速实现。
所述的素数特征是指:-P-1mod232=1,即该素数在32比特基础乘运算下可提升模乘实现的计算效率。
所述的素数特征优化的蒙哥马利蒙模乘方法,具体包括以下步骤:
步骤1、执行约减运算:对SM2素数约减运算8次,每次循环执行:取大数乘的结果的最低32比特值与SM2素数相乘后所得与大数乘的结果相加后右移32比特。
步骤2、执行额外减法:当步骤1结果大于SM2素数时将其减去SM2素数作为模乘值,否则直接以步骤1的结果作为模乘值。
所述的将SM2素数P参与的乘法运算进行优化是指:
步骤i、将SM2素数P表示成移位形式,即P=[(32,2)(32,1)…(0,0),(32,1)(32,1)],以大数乘的结果作为中间值结果数组B[8,…,0]的初始值。
步骤ii、根据SM2素数P的表示形式循环执行乘数T1的移位和加减运算,具体为:B[i+1,i]=T1<<P(i,1)-T1<<P(i,2),其中:<<为左移,i为数组B的指针0<=i<=7;循环计算8次后所得到的结果即为优化乘法运算所得。
所述的模逆运算,具体包括以下步骤:
步骤①计算a模逆的中间值
Figure GDA0003431002600000021
同时保存中间值
Figure GDA0003431002600000022
其中:a为求逆值;
步骤②计算
Figure GDA0003431002600000023
并执行四次
Figure GDA0003431002600000024
步骤③计算
Figure GDA0003431002600000025
并执行
Figure GDA0003431002600000026
步骤④计算
Figure GDA0003431002600000027
和最终模逆结果
Figure GDA0003431002600000028
得到E为a的求逆结果。
上述模逆运算避免了可能的SPA攻击,该算法一共执行16M+256S并且较优化前的基于费马小定理的运算节省207M,其中M表示模乘运算,而S表示模平方运算。
本发明涉及一种实现上述方法的系统,包括:素数乘模块、蒙哥马利模乘模块、模逆模块和标量乘实现模块,其中:素数乘模块将SM2素数参与的乘法运算转换为移位和减法运算,蒙哥马利模乘模块根据素数特征对移位和减法运算进行计算效率更新并生成素数乘的快速实现并输出至模逆模块,模逆模块进行模逆运算并生成完整高效模乘实现并输出至标量乘实现模块,标量乘实现模块根据投影坐标和算法结构进行优化标量乘算处理,得到完整的高效标量乘法实现。
技术效果
传统的蒙哥马利模乘算法需要调用2k2+k次基础乘单元,本发明优化的蒙哥马利蒙模乘算法利用素数特征,可将其减少至k2次。
所述的模逆计算过程,较传统的计算过程效率提升近一倍。
所述的标量乘运算计算过程,较传统的标量乘实现过程效率提升近一倍。
传统的求逆算法通过扩展欧几里德算法实现,其需要额外的硬件或软件代码,无法实现已有代码的重用,且易受到SPA攻击泄露秘密信息。本发明基于费马小定理的快速求逆算法常时且高效的求逆,能有效抵抗SPA分析。
附图说明
图1为本发明流程示意图;
图2为系统组成示意图。
具体实施方式
实施例1
如图2所示,本实施例涉及实现基于模乘的SM2加密、签名和密钥交换的实现方法的系统,包括:素数乘模块、蒙哥马利模乘模块、模逆模块、标量乘实现模块,其中:素数乘模块将SM2素数参与的乘法运算转换为移位和减法运算,蒙哥马利模乘模块根据素数特征对移位和减法运算进行计算效率更新并生成素数乘的快速实现并输出至模逆模块,模逆模块进行模逆运算并生成完整高效模乘实现并输出至标量乘实现模块,标量乘实现模块根据投影坐标和算法结构进行优化标量乘算处理,得到完整的高效标量乘法实现。
如图1所示,本实施例涉及上述系统的优化信息处理方法,具体包括以下步骤:
步骤1、区块链系统中,用户发起一笔交易,交易发起方提供交易的数值、目标账户的地址及交易发起方的公钥等信息。
步骤2、交易发起方,对步骤1中的信息采用本发明所述素数特征优化的蒙哥马利蒙模乘方法进行签名,从而在1分钟内支持近8000次签名,能有效提升区块链系统的吞吐率。
步骤3、交易发起方将签名信息附加在交易信息之后,通过网络发送给各节点。
步骤4、网络上的所有节点收以交易信息后,节点对该交易信息进行验签,在验签时同样采用所述素数特征优化的蒙哥马利蒙模乘方法,能提升近一倍计算效率,节省计算资源,提升交易上链的速度。
实施例2
本实施例涉及一种数字货币硬件钱包的优化的密钥对生成方案,具体包括以下步骤
步骤1、用户在数字货币硬件钱包中添加密钥生成算法的种子。
步骤2、利用密钥派生算法生成作为用户账户地址的用户公钥,基于该公钥和所述素数特征优化的蒙哥马利蒙模乘方法生成用于进行区块链信息的签名的用户私钥。
上述方法能够将密钥派生算法提升近一倍,节省电路面积和使用时间,节省了数字钱包的成本。
本方法利用SM2素数的特征,提升基础素数乘法运算和蒙哥马利模乘运算的效率,得到高效的基础模乘法运算,该高效模乘运算可用于标量乘法运算的实现中,由于该标量乘实现都是由模乘运算组成,因此可提升SM2标量乘计算效率。由于基于该素数下的模逆运算,可由基于费马小定理的实现,同样由若干模乘运算组成,而SM2素数特征,可用于减少实现中所使用的模乘次数,从而在两方面提升效率。上述方法大大加速了SM2实现中标量乘运算及模逆运算的效率,在32比特乘法器下提升标量乘运算近一倍,提升求逆效率近一倍。
本发明中,从基础素数乘和蒙哥马利模乘实现出发,从基础运算实现中提升计算效率,从而结合模逆的算法改进,与传统基于费马小定理的模逆实现相比,节省了207次模乘运算,模逆的计算效率提升近一倍。基于高效的蒙哥马利模乘,构建高效的标量乘实现,与传统实现方法对比,我们的方案能将效率提升近一倍,从而使SM2签名、加解密和密钥交换算法效率提升近一倍。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。

Claims (2)

1.一种基于模乘的SM2加密、签名和密钥交换的实现方法,通过用户在数字货币硬件钱包中添加密钥生成算法的种子后,利用密钥派生算法生成作为用户账户地址的用户公钥,基于该公钥和素数特征优化的蒙哥马利蒙模乘方法,将SM2素数P参与的乘法运算进行优化后进行模逆运算,最后实现SM2中签名、加解密及密钥交换的标量乘运算的快速实现;
所述的素数特征优化的蒙哥马利蒙模乘方法,具体包括以下步骤:
步骤1、执行约减运算:对SM2素数P约减运算8次,每次循环执行:取大数乘的结果的最低32比特值与SM2素数相乘后所得与大数乘的结果相加后右移32比特;
步骤2、执行额外减法:当步骤1结果大于SM2素数时将其减去SM2素数作为模乘值,否则直接以步骤1的结果作为模乘值;
所述的将SM2素数P参与的乘法运算进行优化是指:
步骤i、将SM2素数P表示成移位形式,即P=[(32,2)(32,1)…(0,0),(32,1)(32,1)],以大数乘的结果作为中间值结果数组B[8,…,0]的初始值;
步骤ii、根据SM2素数P的表示形式循环执行乘数T1的移位和加减运算,具体为:B[i+1,i]=T1<<P(i,1)-T1<<P(i,2),其中:<<为左移,i为数组B的指针0<=i<=7;循环计算8次后所得到的结果即为优化乘法运算所得;
所述的模逆运算,具体包括以下步骤:
步骤①计算a模逆的中间值
Figure FDA0003468456300000011
同时保存中间值
Figure FDA0003468456300000012
其中:a为求逆值;
步骤②计算
Figure FDA0003468456300000013
并执行四次
Figure FDA0003468456300000014
步骤③计算
Figure FDA0003468456300000015
并执行
Figure FDA0003468456300000016
步骤④计算
Figure FDA0003468456300000017
和最终模逆结果
Figure FDA0003468456300000018
得到E为a的求逆结果;
所述的素数特征是指:-P-1mod 232=1。
2.一种实现权利要求1所述方法的系统,其特征在于,包括:素数乘模块、蒙哥马利模乘模块、模逆模块和标量乘实现模块,其中:素数乘模块将SM2素数参与的乘法运算转换为移位和减法运算,蒙哥马利模乘模块根据素数特征将部分乘法运算变化成移位和减法运算进行计算效率提升并输出至模逆模块,模逆模块进行模逆运算并输出至标量乘实现模块,标量乘实现模块根据投影坐标和算法结构进行优化标量乘算处理,得到完整的标量乘法实现。
CN201810862172.8A 2018-08-01 2018-08-01 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统 Active CN109145616B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810862172.8A CN109145616B (zh) 2018-08-01 2018-08-01 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810862172.8A CN109145616B (zh) 2018-08-01 2018-08-01 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统

Publications (2)

Publication Number Publication Date
CN109145616A CN109145616A (zh) 2019-01-04
CN109145616B true CN109145616B (zh) 2022-03-22

Family

ID=64798809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810862172.8A Active CN109145616B (zh) 2018-08-01 2018-08-01 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统

Country Status (1)

Country Link
CN (1) CN109145616B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109933305A (zh) * 2019-03-20 2019-06-25 四川卫士通信息安全平台技术有限公司 适用于国密sm2p256v1算法的快速蒙哥马利模乘器优化组件
CN109933304B (zh) * 2019-03-20 2022-06-21 成都三零嘉微电子有限公司 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法
CN113254968B (zh) * 2021-06-04 2022-07-05 晶澄微电子(宁波)有限公司 减少模逆计算的ecc密钥交换方法、系统、网络设备及存储介质
CN114527956B (zh) * 2022-01-25 2024-05-10 北京航空航天大学 抗spa攻击的sm2算法中非定点标量乘法的计算方法
CN114338049B (zh) * 2022-03-14 2022-07-05 山东区块链研究院 基于模归约的国密算法sm2的快速实现方法及系统
CN114840174B (zh) * 2022-05-18 2023-03-03 广州万协通信息技术有限公司 一种使用多乘法器快速实现蒙哥马利模乘的系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7602655B2 (en) * 2006-01-12 2009-10-13 Mediatek Inc. Embedded system
CN106301756B (zh) * 2016-08-22 2019-04-05 上海交通大学 用于sm2签名的大数模幂求逆功耗检测方法及其系统

Also Published As

Publication number Publication date
CN109145616A (zh) 2019-01-04

Similar Documents

Publication Publication Date Title
CN109145616B (zh) 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统
US9942039B1 (en) Applying modular reductions in cryptographic protocols
CN107040385B (zh) 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统
Stolbunov Constructing public-key cryptographic schemes based on class group action on a set of isogenous elliptic curves.
Liu et al. MoTE-ECC: Energy-scalable elliptic curve cryptography for wireless sensor networks
Gouvêa et al. Efficient software implementation of public-key cryptography on sensor networks using the MSP430X microcontroller
CN101753306B (zh) 运用Montgomery型椭圆曲线的数字签名认证方法
CN109660351B (zh) 一种sm2公钥密码的数字签名快速生成方法
WO2015164996A1 (zh) 椭圆域曲线运算方法和椭圆域曲线运算器
US20090136025A1 (en) Method for scalarly multiplying points on an elliptic curve
US20030072443A1 (en) Method for generating secure elliptic curves using an arithmetic-geometric mean iteration
US20030152218A1 (en) Cryptography method on elliptic curves
Koppermann et al. 18 seconds to key exchange: Limitations of supersingular isogeny Diffie-Hellman on embedded devices
CN112350827B (zh) 一种基于Koblitz曲线的加速标量乘计算的椭圆曲线加解密方法和系统
CN111897578A (zh) 一种特征为2的椭圆曲线上标量乘的并行处理方法及装置
CN103929305A (zh) Sm2签名算法的实现方法
Panjwani et al. Hardware-software co-design of elliptic curve digital signature algorithm over binary fields
Zhao et al. Efficient implementation of kyber on mobile devices
Valencia et al. The design space of the number theoretic transform: A survey
Wong et al. Performance Evaluation of RSA and NTRU over GPU with Maxwell and Pascal Architecture
Huang et al. An efficient signature scheme from supersingular elliptic curve isogenies
Li et al. A novel algorithm for scalar multiplication in ECDSA
CN111614465A (zh) 基于超奇异同源秘钥封装协议的公钥生成方法和装置
Jalali et al. Optimized supersingular isogeny key encapsulation on armv8 processors
CN114513306B (zh) 数据加密传输方法、系统

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
GR01 Patent grant
GR01 Patent grant