CN114338049A - 基于模归约的国密算法sm2的快速实现方法及系统 - Google Patents
基于模归约的国密算法sm2的快速实现方法及系统 Download PDFInfo
- Publication number
- CN114338049A CN114338049A CN202210243778.XA CN202210243778A CN114338049A CN 114338049 A CN114338049 A CN 114338049A CN 202210243778 A CN202210243778 A CN 202210243778A CN 114338049 A CN114338049 A CN 114338049A
- Authority
- CN
- China
- Prior art keywords
- calculation process
- modular
- operation module
- encountered
- reduction
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Complex Calculations (AREA)
Abstract
Description
技术领域
本发明涉及计算机安全技术领域,特别是涉及基于模归约的国密算法SM2的快速实现方法及系统。
背景技术
本部分的陈述仅仅是提到了与本发明相关的背景技术,并不必然构成现有技术。
国密算法SM2,包括:数字签名算法、密钥交换协议和公钥加密算法;国密算法SM2目前所使用的椭圆曲线参数是256位椭圆曲线参数,定义在素域上的SM2算法是在模运算的基础上实现的,其中模乘算法为核心算法,决定着SM2的运行效率,模乘运算的快慢直接决定了国密算法SM2的快慢,目前在开源算法库中对SM2的模乘运算主要使用Montgomery算法以及基于预计算的Comb算法。
在实现本发明的过程中,发明人发现现有技术中存在以下技术问题:
现有SM2算法在计算过程中,数字签名算法在实现签名和验签时效率较低。浪费了大量的计算资源,特别是服务器需要进行大量的签名和验签运算的时候,现有的SM2计算方式,提高了时间复杂度,在芯片上运行时,对芯片的功耗较大,国密SM2算法运算速度慢,影响用户的使用体验。
发明内容
为了解决现有技术的不足,本发明提供了基于模归约的国密算法SM2的快速实现方法及系统;
第一方面,本发明提供了基于模归约的国密算法SM2的快速实现方法;
基于模归约的国密算法SM2的快速实现方法,包括:
获取待运算的国密算法SM2;所述待运算的国密算法SM2,包括:数字签名算法;所述数字签名算法,用于对用户的原始数据进行签名,得到对应的数字签名结果;
根据待运算国密算法SM2当前的计算过程,选择对应的运算模块,实现国密算法SM2的快速运算;
当计算过程中遇到模加计算过程时,选择模加运算模块;
当计算过程中遇到模减计算过程时,选择模减运算模块;
当计算过程中遇到模逆计算过程时,选择模逆运算模块。
第二方面,本发明提供了基于模归约的国密算法SM2的快速实现系统;
基于模归约的国密算法SM2的快速实现系统,包括:
获取模块,其被配置为:获取待运算的国密算法SM2;所述待运算的国密算法SM2,包括:数字签名算法;所述数字签名算法,用于对用户的原始数据进行签名,得到对应的数字签名结果;
快速运算模块,其被配置为:根据待运算国密算法SM2当前的计算过程,选择对应的运算模块,实现国密算法SM2的快速运算;
当计算过程中遇到模加计算过程时,选择模加运算模块;
当计算过程中遇到模减计算过程时,选择模减运算模块;
当计算过程中遇到模逆计算过程时,选择模逆运算模块。
与现有技术相比,本发明的有益效果是:
通过对国密算法SM2的数字签名算法、密钥交换协议或公钥加密算法运行过程中遇到的模加、模减、模乘和模逆过程,采用本发明设计的运算模块进行计算,大大降低了数字签名、密钥交换或公钥加密过程的时间复杂度,能够提升数字签名的速度、密钥交换的速度和公钥加密的速度,在芯片上运行时,对芯片的功耗降低,使得系统性能提升。
本发明针对SM2算法中素域特征的稀疏性质,提出了基于模归约的一种新的模运算实现方法,包括模加运算、模减运算、模乘运算、模逆运算,该算法有利于纯软件实现,也利于汇编及硬件实现,算法的运行效率优于当前已知的开源算法库,同时也为SM2的研究提供了新的方法。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为实施例一的算法3:高256位归约算法(模p);
图2为实施例一的算法5:模乘算法(阶N)。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本实施例所有数据的获取都在符合法律法规和用户同意的基础上,对数据的合法应用。
实施例一
本实施例提供了基于模归约的国密算法SM2的快速实现方法;
基于模归约的国密算法SM2的快速实现方法,包括:
S101:获取待运算的国密算法SM2;所述待运算的国密算法SM2,包括:数字签名算法、密钥交换协议或公钥加密算法;
S102:根据待运算国密算法SM2当前的计算过程,选择对应的运算模块,实现国密算法SM2的快速运算;
当计算过程中遇到模加计算过程时,选择模加运算模块;
当计算过程中遇到模减计算过程时,选择模减运算模块;
当计算过程中遇到模逆计算过程时,选择模逆运算模块。
应理解地,所述数字签名算法,用于对用户的原始数据进行签名,得到对应的数字签名结果;所述数字签名算法用于数字签名和验证,满足多种密码应用中的身份认证和数据完整性、真实性的安全需求;
所述密钥交换协议,用于满足通信双方经过两次或可选三次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥(会话密钥)。
所述公钥加密算法,用于消息加解密,消息发送者可以利用接收者的公钥对消息进行加密,接收者用对应的私钥进行解密,获取消息。
进一步地,所述数字签名算法,具体过程包括:
进一步地,所述当计算过程中遇到模加计算过程时,选择模加运算模块;具体包括:
进一步地,所述当计算过程中遇到模减计算过程时,选择模减运算模块;具体包括:
S102b3:令:
S102c2:计算:
S102c4计算:
S102c6:计算:
S102c31:输入:
S102c32:
S102c33:
S102c34:
S102c35:
S102c36:
S102c37:
S102d2:计算:
S102d3:
进一步地,所述当计算过程中遇到模逆计算过程时,选择模逆运算模块;具体包括:
S102e3:赋初始值:
返回S102e4;
基于素域的SM2算法所涉及的大数运算长度为256比特,其中包括模加、模减、模乘运算。所有数据定义为数组,数组长度与CPU的工作环境相关,假设CPU工作的环境为比特,一般为32或者64,那么数组长度为。大数可以表示为比特的维数组:
,这里的表示低位向高位的进位值,且。模加的一般方法为在大数加法的基础上,判断是否有溢出(即是否为0),如果有溢出则进行减操作。本发明我们以加操作代替减操作,这是因为在SM2算法中的值为,从而在多个数的连续相加中,可以先进行多次加法,再利用一次模运算完成归约计算,如算法1所示:
算法1:模加算法;
说明:
算法2:模减算法;
在SM2的设计中;
结合上述公式,可以得到约减算法:
附图1详细描述了该归约过程。基于以上算法,我们可以给出模乘运算,如算法4所示:
1.计算:
3. 计算:
5. 计算:
注:这里第3步的运算利用移位相加(减)的操作方式进行计算。
其中最高32比特的值为1,因此我们可以利用算法1的思想给出模
1.计算:
说明:
模逆运算一般使用扩展欧几里得算法或者费马定理,但由于本发明已经实现了高效的模乘算法,因此结合“部分蒙哥马利求逆算法”(Partial Montgomery inversion),我们实现了更加高效的模逆运算,如算法6所示:
算法6:基于蒙哥马利方法的模逆运算;
//2-4步为Partial Montgomery 算法,此时:
说明:
2.第4步结束时:
3.第1步和第5步的模乘计算,可在移位后调用算法4中的第2-5步进行归约计算,复杂度与整体算法相比可以忽略。但如果没有高效的模乘运算,则该算法并不适用。
模加、模减、模乘、模逆构成椭圆曲线运算的基础,在SM2的点的基本运算中,我们调用以上基础模运算模块,按照SM2椭圆曲线算法标准完成点加与倍点运算。为了与各开源算法库进行同等条件下的比较,按照当前各开源库通用的椭圆曲线标量乘法实现方法,在点乘运算中,对于基点的标量乘法按照窗口为7的预计算点值的方法进行实现;对于非固定点的标量乘法按照窗口为5的方法进行实现。
SM2协议实现按照SM2标准算法实现。由于本发明只针对SM2基础模运算,椭圆曲线点的运算及SM2协议实现不属于本发明的内容,因此不再赘述。
基于模归约方法的SM2实现方法对SM2的实现效率进行了有效提升,我们以Golang语言,结合汇编算法进行验证。
验证条件:以签名验签速度为参照,基点标量乘法预计算点值窗口为7(即预计算37*64个点值),非固定点标量乘法方法下窗口为5,无公钥的预计算点值,测试环境为IntelCore i5-10210U CPU,1.60GHz,Ubuntu单线程运行。
验证结果:通过测试当前开源代码库,各主要编程语言下SM2签名最快的运算速度为每秒5万次,验签速度为每秒1.3万次。
实施例二
本实施例提供了基于模归约的国密算法SM2的快速实现系统;
基于模归约的国密算法SM2的快速实现系统,包括:
获取模块,其被配置为:获取待运算的国密算法SM2;所述待运算的国密算法SM2,包括:数字签名算法;所述数字签名算法,用于对用户的原始数据进行签名,得到对应的数字签名结果;
快速运算模块,其被配置为:根据待运算国密算法SM2当前的计算过程,选择对应的运算模块,实现国密算法SM2的快速运算;
当计算过程中遇到模加计算过程时,选择模加运算模块;
当计算过程中遇到模减计算过程时,选择模减运算模块;
当计算过程中遇到模逆计算过程时,选择模逆运算模块。
此处需要说明的是,上述获取模块和快速运算模块对应于实施例一中的步骤S101至S102,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。
需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
7.如权利要求1所述的基于模归约的国密算法SM2的快速实现方法,其特征是,所述当计算过程中遇到模逆计算过程时,选择模逆运算模块;具体包括:
e3:赋初始值:
返回e4;
8.基于模归约的国密算法SM2的快速实现系统,其特征是,包括:
获取模块,其被配置为:获取待运算的国密算法SM2;所述待运算的国密算法SM2,包括:数字签名算法;所述数字签名算法,用于对用户的原始数据进行签名,得到对应的数字签名结果;
快速运算模块,其被配置为:根据待运算国密算法SM2当前的计算过程,选择对应的运算模块,实现国密算法SM2的快速运算;
当计算过程中遇到模加计算过程时,选择模加运算模块;
当计算过程中遇到模减计算过程时,选择模减运算模块;
当计算过程中遇到模逆计算过程时,选择模逆运算模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210243778.XA CN114338049B (zh) | 2022-03-14 | 2022-03-14 | 基于模归约的国密算法sm2的快速实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210243778.XA CN114338049B (zh) | 2022-03-14 | 2022-03-14 | 基于模归约的国密算法sm2的快速实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338049A true CN114338049A (zh) | 2022-04-12 |
CN114338049B CN114338049B (zh) | 2022-07-05 |
Family
ID=81033124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210243778.XA Active CN114338049B (zh) | 2022-03-14 | 2022-03-14 | 基于模归约的国密算法sm2的快速实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338049B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117896067A (zh) * | 2024-03-13 | 2024-04-16 | 杭州金智塔科技有限公司 | 适用于国密sm2算法的并行模约减方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120069994A1 (en) * | 2010-09-16 | 2012-03-22 | Stmicroelectronics S.R.L. | Method for genertaing a digital signature |
US20160191252A1 (en) * | 2013-08-16 | 2016-06-30 | China Iwncomm Co., Ltd. | Method and device for generating digital signature |
CN106549769A (zh) * | 2016-12-08 | 2017-03-29 | 广东工业大学 | 一种素域Fp下SM2椭圆曲线签名系统 |
CN109145616A (zh) * | 2018-08-01 | 2019-01-04 | 上海交通大学 | 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统 |
CN109660351A (zh) * | 2018-11-08 | 2019-04-19 | 北京大学 | 一种sm2公钥密码的数字签名快速生成方法 |
CN109933304A (zh) * | 2019-03-20 | 2019-06-25 | 四川卫士通信息安全平台技术有限公司 | 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法 |
CN112118103A (zh) * | 2019-06-20 | 2020-12-22 | 佛山芯珠微电子有限公司 | 一种素域Fp下椭圆曲线快速点乘的硬件实现系统 |
CN113193962A (zh) * | 2021-04-30 | 2021-07-30 | 安徽师范大学 | 基于轻量级模乘的sm2数字签名生成与验证器 |
CN113628094A (zh) * | 2021-07-29 | 2021-11-09 | 西安电子科技大学 | 一种基于gpu的高吞吐量sm2数字签名计算系统及方法 |
CN113660087A (zh) * | 2021-07-06 | 2021-11-16 | 浙江传媒学院 | 一种基于有限域的sm9标识密码算法硬件实现系统 |
-
2022
- 2022-03-14 CN CN202210243778.XA patent/CN114338049B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120069994A1 (en) * | 2010-09-16 | 2012-03-22 | Stmicroelectronics S.R.L. | Method for genertaing a digital signature |
US20160191252A1 (en) * | 2013-08-16 | 2016-06-30 | China Iwncomm Co., Ltd. | Method and device for generating digital signature |
CN106549769A (zh) * | 2016-12-08 | 2017-03-29 | 广东工业大学 | 一种素域Fp下SM2椭圆曲线签名系统 |
CN109145616A (zh) * | 2018-08-01 | 2019-01-04 | 上海交通大学 | 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统 |
CN109660351A (zh) * | 2018-11-08 | 2019-04-19 | 北京大学 | 一种sm2公钥密码的数字签名快速生成方法 |
CN109933304A (zh) * | 2019-03-20 | 2019-06-25 | 四川卫士通信息安全平台技术有限公司 | 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法 |
CN112118103A (zh) * | 2019-06-20 | 2020-12-22 | 佛山芯珠微电子有限公司 | 一种素域Fp下椭圆曲线快速点乘的硬件实现系统 |
CN113193962A (zh) * | 2021-04-30 | 2021-07-30 | 安徽师范大学 | 基于轻量级模乘的sm2数字签名生成与验证器 |
CN113660087A (zh) * | 2021-07-06 | 2021-11-16 | 浙江传媒学院 | 一种基于有限域的sm9标识密码算法硬件实现系统 |
CN113628094A (zh) * | 2021-07-29 | 2021-11-09 | 西安电子科技大学 | 一种基于gpu的高吞吐量sm2数字签名计算系统及方法 |
Non-Patent Citations (5)
Title |
---|
DAN ZHANG等: ""High-Performance Implementation of SM2 Based on FPGA"", 《 2016 8TH IEEE INTERNATIONAL CONFERENCE ON COMMUNICATION SOFTWARE AND NETWORKS(ICCSN 2016)》 * |
DAN ZHANG等: ""High-Performance Implementation of SM2 Based on FPGA"", 《 2016 8TH IEEE INTERNATIONAL CONFERENCE ON COMMUNICATION SOFTWARE AND NETWORKS(ICCSN 2016)》, 4 June 2016 (2016-06-04), pages 603 - 607 * |
李凡等: "基于FPGA的SM2点运算快速并行实现", 《电子测量技术》 * |
李凡等: "基于FPGA的SM2点运算快速并行实现", 《电子测量技术》, no. 15, 8 August 2020 (2020-08-08), pages 111 - 117 * |
郭晓等: "SM2高速双域Montgomery模乘的硬件设计", 《微电子学与计算机》, no. 09, 5 September 2013 (2013-09-05), pages 23 - 27 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117896067A (zh) * | 2024-03-13 | 2024-04-16 | 杭州金智塔科技有限公司 | 适用于国密sm2算法的并行模约减方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114338049B (zh) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10116437B1 (en) | Method for protecting data used in cloud computing with homomorphic encryption | |
US7505587B2 (en) | Elliptic curve cryptosystem apparatus, storage medium storing elliptic curve cryptosystem program, and elliptic curve cryptosystem arithmetic method | |
JP4668931B2 (ja) | 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置 | |
US8428252B1 (en) | Using multiples above two with running totals in elliptic curve cryptography scalar multiplication acceleration tables | |
US20090228717A1 (en) | System for making program difficult to read, device for making program difficult to read, and method for making program difficult to read | |
KR20070008012A (ko) | 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법 | |
CN112148437A (zh) | 用于联邦学习的计算任务加速处理方法、装置及设备 | |
TWI821501B (zh) | 安全處理器、所述安全處理器的操作方法、以及加密或解密資料的方法 | |
Moon et al. | An Efficient Encrypted Floating‐Point Representation Using HEAAN and TFHE | |
Kim et al. | Crystals‐Dilithium on ARMv8 | |
Dong et al. | sDPF-RSA: Utilizing floating-point computing power of GPUs for massive digital signature computations | |
CN112491543B (zh) | 基于改进的蒙哥马利模幂电路的ic卡解密方法 | |
CN116436709B (zh) | 一种数据的加解密方法、装置、设备和介质 | |
Breuer et al. | Idea: towards a working fully homomorphic crypto-processor: practice and the secret computer | |
CN114338049B (zh) | 基于模归约的国密算法sm2的快速实现方法及系统 | |
Vollala et al. | Efficient modular exponential algorithms compatible with hardware implementation of public‐key cryptography | |
Gouert et al. | HELM: Navigating Homomorphic Encryption through Gates and Lookup Tables | |
Liu et al. | Performance analysis of arithmetic operations in homomorphic encryption | |
D’Anvers | One-hot conversion: Towards faster table-based A2B conversion | |
JP6212377B2 (ja) | 演算装置、演算方法およびコンピュータプログラム | |
JP4692022B2 (ja) | 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム | |
JP5179933B2 (ja) | データ処理装置 | |
EP3410292A1 (en) | Calculations with reduced time dependence on the input | |
Blanton et al. | Secure and Accurate Summation of Many Floating-Point Numbers | |
CN111480140A (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 |