CN111416717A - 一种sm2算法并行多路硬件实现方法 - Google Patents
一种sm2算法并行多路硬件实现方法 Download PDFInfo
- Publication number
- CN111416717A CN111416717A CN201910010722.8A CN201910010722A CN111416717A CN 111416717 A CN111416717 A CN 111416717A CN 201910010722 A CN201910010722 A CN 201910010722A CN 111416717 A CN111416717 A CN 111416717A
- Authority
- CN
- China
- Prior art keywords
- channel
- fpga
- register
- client
- card
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Sources (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种SM2算法并行多路硬件实现方法,包括:客户端、FPGA、密码模块以及主控处理器。与现有技术相比,本发明具有以下益处:(1)相对于以往技术,该项技术将主控处理器***资源(通道处理线程)、FPGA计算资源与实际客户端会话通过多路通道进行绑定,极大提高了硬件资源利用率;(2)相对于以往技术,该项技术同时支持256个客户端会话并行执行SM2运算,大大提高了SM2运算并行程度;(3)相对于以往技术,当客户端负载与密码模块功耗为线程关系,最大程度降低密码模块在中低负载的情形下,资源浪费现象。
Description
技术领域
本发明涉及密码学技术领域,更具体的说是涉及一种SM2算法并行多路硬件实现方法。
背景技术
SM2算法标准系列是由国家密码管理局制定,采用ECC椭圆曲线密码机制,在签名、密钥交换方面不同于ECDSA、ECDH等国际标准,选取了更为安全的机制。国家密码管理局同时制定了配套的密码设备应用接口规范,采用会话方式访问密码运算接口。
已有的SM2算法硬件实现受限于FPGA器件技术工艺、散热功耗等,其主控处理器采用单片机、DSP、片上***核等方式实现,并发度不高,性能受限,导致SM2算法整体性能不能实现量的突破。
目前FPGA器件技术工艺已具备和低功耗的ARM多核处理器配合工作,配套完善的散热设计,已具备通过提高并发度来提升SM2算法整体性能的条件。
发明内容
有鉴于此,本发明提供了一种可以用于SM2非对称密码算法运算,提高SM2算法数字签名、加密解密、密钥协商并发程度,极大提升整体性能的SM2算法并行多路硬件实现方法。
为实现上述目的,本发明提供如下技术方案:
一种SM2算法并行多路硬件实现方法,包括:客户端、FPGA、密码模块以及主控处理器;其中,
所述客户端:用于创建会话,使用密码设备应用接口,以会话方式调用SM2密码运算接口;
每个所述FPGA包含有FPGA模块1至模块4,每个模块均内置有卡内接口寄存器和PC侧接口寄存器,且所述卡内接口寄存器和PC侧接口寄存器共用存储器内的计算资源,减少数据复制带来的开销;
所述主控处理器内置有处理核,每个处理核含有1-4个内核,所述内核中轮询线程获取状态队列中的状态数据,根据数据中的通道号唤醒对应通道的处理线程;
其特征在于,每个客户端会话对应一路通道,每个通道的请求由对应的通道处理线程进行处理,FPGA为每个通道预分配计算资源,由于每个内核支持64个通道,4个内核支持256个多路通道,因此最大支持可以256个客户端会话。
优选的,在上述一种SM2算法并行多路硬件实现方法中,所述FPGA的卡内寄存器接口组数与主控处理器的内核数目一致,以支持无锁并行计算。
优选的,在上述一种SM2算法并行多路硬件实现方法中,运行时,所述FPGA通过状态队列通知客户端、主控处理器;其中,状态队列与主控处理器的内核数目一致,以支持无锁并行计算。
优选的,在上述一种SM2算法并行多路硬件实现方法中,该方法中所述内接口寄存器、PC侧接口寄存器与状态队列分离设计,以减少数据复制带来的开销。
6、优选的,在上述一种SM2算法并行多路硬件实现方法中,该方法包括:初始阶段和运行阶段;
初始阶段:1)FPGA为每个通道分配卡内、PC侧接口寄存器资源,计算资源(乘法器);2)主控处理器分配DMA等资源、配置卡内寄存器,为每个处理核创建一个轮询线程,和FPGA进行通信,为每个通道创建处理线程;
运行阶段:1)客户端创建会话,调用SM2密码运算接口;
2)客户端将SM2密码运算请求数据发送到会话对应的通道中,同时写PC侧接口寄存器;
3)FPGA获取SM2密码运算请求数据,将数据写入到卡内寄存器,通过状态队列通知主控处理器;
4)主控处理器轮询线程获取状态队列中的状态数据,根据数据中的通道号唤醒对应通道处理线程;
5)通道处理线程从卡内寄存器中获取待处理数据,解析并处理请求转化为SM2运算原语(基点乘、点乘、混合点乘)请求写入到卡内接口寄存器,进入睡眠状态;
6)FPGA获取到卡内寄存器中的请求数据,调用对应通道计算资源进行SM2运算,将计算结果写入到卡内寄存器,通过状态队列通知主控处理器;
7)主控处理器轮询线程获取到状态数据后,唤醒对应通道处理线程继续处理,主线程处理结束后将处理结果写入卡内寄存;
8)FPGA获取处理结果,写入PC侧接口寄存器,通过状态队列通知客户端;
9)客户端从会话对应的通道中获取SM2响应数据。
经由上述的技术方案可知,与现有技术相比,本发明具有以下益处:
(1)相对于以往技术,该项技术将主控处理器***资源(通道处理线程)、FPGA计算资源与实际客户端会话通过多路通道进行绑定,极大提高了硬件资源利用率;
(2)相对于以往技术,该项技术同时支持256个客户端会话并行执行SM2运算,大大提高了SM2运算并行程度;
(3)相对于以往技术,当客户端负载与密码模块功耗为线程关系,最大程度降低密码模块在中低负载的情形下,资源浪费现象。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1附图为本发明的总体框架结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种就有节约资源、提高硬件资源利用率及SM2运算并行程度、减少成本等特点的SM2算法并行多路硬件实现方法。
请参阅附图1,为本发明公开的一种SM2算法并行多路硬件实现方法,具体包括:
客户端、FPGA、密码模块以及主控处理器;其中,
所述客户端:用于创建会话,使用密码设备应用接口,以会话方式调用SM2密码运算接口;
每个所述FPGA包含有FPGA模块1至模块4,每个模块均内置有卡内接口寄存器和PC侧接口寄存器,且所述卡内接口寄存器和PC侧接口寄存器共用存储器内的计算资源,减少数据复制带来的开销;
所述主控处理器内置有处理核,每个处理核含有1-4个内核,所述内核中轮询线程获取状态队列中的状态数据,根据数据中的通道号唤醒对应通道的处理线程;
其特征在于,每个客户端会话对应一路通道,每个通道的请求由对应的通道处理线程进行处理,FPGA为每个通道预分配计算资源,由于每个内核支持64个通道,4个内核支持256个多路通道,因此最大支持可以256个客户端会话。
为了进一步优化上述技术方案,所述FPGA的卡内寄存器接口组数与主控处理器的内核数目一致,以支持无锁并行计算。
为了进一步优化上述技术方案,运行时,所述FPGA通过状态队列通知客户端、主控处理器;其中,状态队列与主控处理器的内核数目一致,以支持无锁并行计算。
为了进一步优化上述技术方案,该方法中所述内接口寄存器、PC侧接口寄存器与状态队列分离设计,以减少数据复制带来的开销。
7、为了进一步优化上述技术方案,该方法包括:初始阶段和运行阶段;
初始阶段:1)FPGA为每个通道分配卡内、PC侧接口寄存器资源,计算资源(乘法器);2)主控处理器分配DMA等资源、配置卡内寄存器,为每个处理核创建一个轮询线程,和FPGA进行通信,为每个通道创建处理线程;
运行阶段:1)客户端创建会话,调用SM2密码运算接口;
2)客户端将SM2密码运算请求数据发送到会话对应的通道中,同时写PC侧接口寄存器;
3)FPGA获取SM2密码运算请求数据,将数据写入到卡内寄存器,通过状态队列通知主控处理器;
4)主控处理器轮询线程获取状态队列中的状态数据,根据数据中的通道号唤醒对应通道处理线程;
5)通道处理线程从卡内寄存器中获取待处理数据,解析并处理请求转化为SM2运算原语(基点乘、点乘、混合点乘)请求写入到卡内接口寄存器,进入睡眠状态;
6)FPGA获取到卡内寄存器中的请求数据,调用对应通道计算资源进行SM2运算,将计算结果写入到卡内寄存器,通过状态队列通知主控处理器;
7)主控处理器轮询线程获取到状态数据后,唤醒对应通道处理线程继续处理,主线程处理结束后将处理结果写入卡内寄存;
8)FPGA获取处理结果,写入PC侧接口寄存器,通过状态队列通知客户端;
9)客户端从会话对应的通道中获取SM2响应数据。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (5)
1.一种SM2算法并行多路硬件实现方法,包括:客户端、FPGA、密码模块以及主控处理器;其中,
所述客户端:用于创建会话,使用密码设备应用接口,以会话方式调用SM2密码运算接口;
每个所述FPGA包含有FPGA模块1至模块4,每个模块均内置有卡内接口寄存器和PC侧接口寄存器,且所述卡内接口寄存器和PC侧接口寄存器共用存储器内的计算资源,减少数据复制带来的开销;
所述主控处理器内置有处理核,每个处理核含有1-4个内核,所述内核中轮询线程获取状态队列中的状态数据,根据数据中的通道号唤醒对应通道的处理线程;
其特征在于,每个客户端会话对应一路通道,每个通道的请求由对应的通道处理线程进行处理,FPGA为每个通道预分配计算资源,由于每个内核支持64个通道,4个内核支持256个多路通道,因此最大支持可以256个客户端会话。
2.根据权利要求1所述的一种SM2算法并行多路硬件实现方法,其特征在于,所述FPGA的卡内寄存器接口组数与主控处理器的内核数目一致,以支持无锁并行计算。
3.根据权利要求2所述的一种SM2算法并行多路硬件实现方法,其特征在于,运行时,所述FPGA通过状态队列通知客户端、主控处理器;其中,状态队列与主控处理器的内核数目一致,以支持无锁并行计算。
4.根据权利要求3所述的一种SM2算法并行多路硬件实现方法,其特征在于,该方法中所述内接口寄存器、PC侧接口寄存器与状态队列分离设计,以减少数据复制带来的开销。
5.根据权利要求4所述的一种SM2算法并行多路硬件实现方法,其特征在于,该方法包括:初始阶段和运行阶段;
初始阶段:1)FPGA为每个通道分配卡内、PC侧接口寄存器资源,计算资源(乘法器);2)主控处理器分配DMA等资源、配置卡内寄存器,为每个处理核创建一个轮询线程,和FPGA进行通信,为每个通道创建处理线程;
运行阶段:1)客户端创建会话,调用SM2密码运算接口;
2)客户端将SM2密码运算请求数据发送到会话对应的通道中,同时写PC侧接口寄存器;
3)FPGA获取SM2密码运算请求数据,将数据写入到卡内寄存器,通过状态队列通知主控处理器;
4)主控处理器轮询线程获取状态队列中的状态数据,根据数据中的通道号唤醒对应通道处理线程;
5)通道处理线程从卡内寄存器中获取待处理数据,解析并处理请求转化为SM2运算原语(基点乘、点乘、混合点乘)请求写入到卡内接口寄存器,进入睡眠状态;
6)FPGA获取到卡内寄存器中的请求数据,调用对应通道计算资源进行SM2运算,将计算结果写入到卡内寄存器,通过状态队列通知主控处理器;
7)主控处理器轮询线程获取到状态数据后,唤醒对应通道处理线程继续处理,主线程处理结束后将处理结果写入卡内寄存;
8)FPGA获取处理结果,写入PC侧接口寄存器,通过状态队列通知客户端;
9)客户端从会话对应的通道中获取SM2响应数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910010722.8A CN111416717B (zh) | 2019-01-07 | 2019-01-07 | 一种sm2算法并行多路硬件实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910010722.8A CN111416717B (zh) | 2019-01-07 | 2019-01-07 | 一种sm2算法并行多路硬件实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111416717A true CN111416717A (zh) | 2020-07-14 |
CN111416717B CN111416717B (zh) | 2023-01-03 |
Family
ID=71494102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910010722.8A Active CN111416717B (zh) | 2019-01-07 | 2019-01-07 | 一种sm2算法并行多路硬件实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111416717B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572613A (zh) * | 2021-07-28 | 2021-10-29 | 罗克佳华(重庆)科技有限公司 | 一种消息保护***及消息保护方法 |
CN114172644A (zh) * | 2021-12-03 | 2022-03-11 | 三未信安科技股份有限公司 | 一种pci密码卡的优化椭圆曲线公钥密码的方法及*** |
CN115208571A (zh) * | 2022-09-14 | 2022-10-18 | 中安网脉(北京)技术股份有限公司 | 一种基于高速混合加密算法的并行多路硬件实现方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130142334A1 (en) * | 2010-08-25 | 2013-06-06 | Zte Corporation | Method and System for Pre-Accessing Conference Telephone and Network Side Device |
US20130290421A1 (en) * | 2012-04-27 | 2013-10-31 | Touchtable, Inc. | Visualization of complex data sets and simultaneous synchronization of such data sets |
CN104080084A (zh) * | 2006-02-07 | 2014-10-01 | 株式会社东芝 | 多pana会话 |
CN104393993A (zh) * | 2014-10-24 | 2015-03-04 | 国家电网公司 | 一种用于售电终端的安全芯片及其实现方法 |
CN104506594A (zh) * | 2014-12-11 | 2015-04-08 | 腾讯科技(深圳)有限公司 | 用于社交应用***的数据通信方法及*** |
CN105824780A (zh) * | 2016-04-01 | 2016-08-03 | 浪潮电子信息产业股份有限公司 | 一种基于单机多fpga的并行开发方法 |
CN106899969A (zh) * | 2017-01-18 | 2017-06-27 | 东南大学常州研究院 | 基于iOS***的特定保密终端***实现方法 |
CN107026859A (zh) * | 2017-03-31 | 2017-08-08 | 西安电子科技大学 | 一种隐私云医疗数据的安全传输方法 |
CN108964914A (zh) * | 2017-05-17 | 2018-12-07 | 中国科学技术大学 | 抗侧信道攻击的sm2点乘架构 |
-
2019
- 2019-01-07 CN CN201910010722.8A patent/CN111416717B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104080084A (zh) * | 2006-02-07 | 2014-10-01 | 株式会社东芝 | 多pana会话 |
US20130142334A1 (en) * | 2010-08-25 | 2013-06-06 | Zte Corporation | Method and System for Pre-Accessing Conference Telephone and Network Side Device |
US20130290421A1 (en) * | 2012-04-27 | 2013-10-31 | Touchtable, Inc. | Visualization of complex data sets and simultaneous synchronization of such data sets |
CN104393993A (zh) * | 2014-10-24 | 2015-03-04 | 国家电网公司 | 一种用于售电终端的安全芯片及其实现方法 |
CN104506594A (zh) * | 2014-12-11 | 2015-04-08 | 腾讯科技(深圳)有限公司 | 用于社交应用***的数据通信方法及*** |
CN105824780A (zh) * | 2016-04-01 | 2016-08-03 | 浪潮电子信息产业股份有限公司 | 一种基于单机多fpga的并行开发方法 |
CN106899969A (zh) * | 2017-01-18 | 2017-06-27 | 东南大学常州研究院 | 基于iOS***的特定保密终端***实现方法 |
CN107026859A (zh) * | 2017-03-31 | 2017-08-08 | 西安电子科技大学 | 一种隐私云医疗数据的安全传输方法 |
CN108964914A (zh) * | 2017-05-17 | 2018-12-07 | 中国科学技术大学 | 抗侧信道攻击的sm2点乘架构 |
Non-Patent Citations (1)
Title |
---|
李莉等: "密码芯片的多算法随机作业流调度方法", 《通信学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572613A (zh) * | 2021-07-28 | 2021-10-29 | 罗克佳华(重庆)科技有限公司 | 一种消息保护***及消息保护方法 |
CN114172644A (zh) * | 2021-12-03 | 2022-03-11 | 三未信安科技股份有限公司 | 一种pci密码卡的优化椭圆曲线公钥密码的方法及*** |
CN114172644B (zh) * | 2021-12-03 | 2023-04-25 | 三未信安科技股份有限公司 | 一种pci密码卡的优化椭圆曲线公钥密码的方法及*** |
CN115208571A (zh) * | 2022-09-14 | 2022-10-18 | 中安网脉(北京)技术股份有限公司 | 一种基于高速混合加密算法的并行多路硬件实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111416717B (zh) | 2023-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111416717B (zh) | 一种sm2算法并行多路硬件实现方法 | |
EP3612942B1 (en) | Queue management for direct memory access | |
KR102368970B1 (ko) | 지능형 고 대역폭 메모리 장치 | |
US8478926B1 (en) | Co-processing acceleration method, apparatus, and system | |
US20180196699A1 (en) | Scheduling method, apparatus, and system for use in data processing | |
Pritchard et al. | Leveraging the cray linux environment core specialization feature to realize mpi asynchronous progress on cray xe systems | |
WO2018233299A1 (zh) | 调度处理器的方法、装置、设备及介质 | |
US9419972B2 (en) | Two dimensional direct memory access scheme for enhanced network protocol processing performance | |
WO2021139467A1 (zh) | 联邦学习方法、***、计算机设备和存储介质 | |
CN109902059B (zh) | 一种cpu与gpu之间的数据传输方法 | |
JP2019185764A (ja) | Ndpサーバー―データセンターのストレージサーバーベースのデータ中心のコンピューティングアーキテクチャ― | |
CN107132903B (zh) | 一种节能管理实现方法、装置及网络设备 | |
CN103870331B (zh) | 一种动态分配处理器内核的方法及电子设备 | |
TW200952537A (en) | Enhancing power efficiency in a wireless internet card | |
CN107493574B (zh) | 无线控制器设备、并行认证处理方法、***、组网装置 | |
CN110909359A (zh) | 基于双***架构的通信方法及终端设备 | |
CN111190733B (zh) | 用于进行rsa计算的计算资源调度方法及装置 | |
WO2018196459A1 (zh) | 一种下载请求处理方法、装置、处理设备及介质 | |
CN116136790A (zh) | 任务处理方法和装置 | |
Lupescu et al. | Commodity hardware performance in AES processing | |
CN105763480A (zh) | 一种基于fpga实现流采样的装置及方法 | |
Xiao et al. | Hardware/software adaptive cryptographic acceleration for big data processing | |
Hughes et al. | Transparent multi-core cryptographic support on Niagara CMT Processors | |
WO2015070539A1 (zh) | 一种基于dma的数据压缩芯片结构及其实现方法 | |
CN115208571A (zh) | 一种基于高速混合加密算法的并行多路硬件实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
DD01 | Delivery of document by public notice | ||
DD01 | Delivery of document by public notice |
Addressee: Zhou Haodong Document name: Notice of publication of application for patent for invention |
|
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 8-10 / F, block B, building 1, yard 30, Wuhuan South Road, Fengtai District, Beijing 100070 Applicant after: SINOINFOSEC (BEIJING) TECHNOLOGY Co.,Ltd. Address before: 8-9 / F, block a, building 3, yard 8, Haiying Road, Fengtai District, Beijing 100070 Applicant before: SINOINFOSEC (BEIJING) TECHNOLOGY Co.,Ltd. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |