CN111416717B - 一种sm2算法并行多路硬件实现方法 - Google Patents

一种sm2算法并行多路硬件实现方法 Download PDF

Info

Publication number
CN111416717B
CN111416717B CN201910010722.8A CN201910010722A CN111416717B CN 111416717 B CN111416717 B CN 111416717B CN 201910010722 A CN201910010722 A CN 201910010722A CN 111416717 B CN111416717 B CN 111416717B
Authority
CN
China
Prior art keywords
fpga
channel
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.)
Active
Application number
CN201910010722.8A
Other languages
English (en)
Other versions
CN111416717A (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.)
Sinoinfosec Beijing Technology Co ltd
Original Assignee
Sinoinfosec Beijing Technology Co ltd
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 Sinoinfosec Beijing Technology Co ltd filed Critical Sinoinfosec Beijing Technology Co ltd
Priority to CN201910010722.8A priority Critical patent/CN111416717B/zh
Publication of CN111416717A publication Critical patent/CN111416717A/zh
Application granted granted Critical
Publication of CN111416717B publication Critical patent/CN111416717B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization 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算法并行多路硬件实现方法。
背景技术
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 (1)

1.一种SM2算法并行多路硬件实现方法,包括:客户端、FPGA、密码模块以及主控处理器;其中,所述客户端:用于创建会话,使用密码设备应用接口,以会话方式调用SM2密码运算接口;每个所述FPGA包含有FPGA模块1至模块4,每个模块均内置有卡内接口寄存器和PC侧接口寄存器,且所述卡内接口寄存器和PC侧接口寄存器共用存储器内的计算资源,减少数据复制带来的开销; 所述主控处理器内置有处理核,每个处理核含有1-4个内核,所述内核中轮询线程获取 状态队列中的状态数据,根据数据中的通道号唤醒对应通道的处理线程;其特征在于,每个客户端会话对应一路通道,每个通道的请求由对应的通道处理线程进行处理,FPGA为每个通道预分配计算资源,由于每个内核支持64个通道,4个内核支持256个多路通道,因此最大支持可以256个客户端会话;所述FPGA 的卡内寄存器接口组数与主控处理器的内核数目一致,以支持无锁并行计算;运行时,所述FPGA通过状态队列通知客户端、主控处理器;其中,状态队列与主控处理器的内核数目一致,以支持无锁并行计算;该方法中所述内接口寄存器、PC侧接口寄存器与状态队列分离设计,以减少数据复制带来的开销;
该方法包括:初始阶段和运行阶段;
初始阶段: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响应数据。
CN201910010722.8A 2019-01-07 2019-01-07 一种sm2算法并行多路硬件实现方法 Active CN111416717B (zh)

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 CN111416717A (zh) 2020-07-14
CN111416717B true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113572613A (zh) * 2021-07-28 2021-10-29 罗克佳华(重庆)科技有限公司 一种消息保护系统及消息保护方法
CN114172644B (zh) * 2021-12-03 2023-04-25 三未信安科技股份有限公司 一种pci密码卡的优化椭圆曲线公钥密码的方法及系统
CN115208571A (zh) * 2022-09-14 2022-10-18 中安网脉(北京)技术股份有限公司 一种基于高速混合加密算法的并行多路硬件实现方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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点乘架构

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101951554A (zh) * 2010-08-25 2011-01-19 中兴通讯股份有限公司 一种实现加密会议电话预接入的方法及系统
US20130290421A1 (en) * 2012-04-27 2013-10-31 Touchtable, Inc. Visualization of complex data sets and simultaneous synchronization of such data sets

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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点乘架构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
密码芯片的多算法随机作业流调度方法;李莉等;《通信学报》;20161225(第12期);第6-7小节 *

Also Published As

Publication number Publication date
CN111416717A (zh) 2020-07-14

Similar Documents

Publication Publication Date Title
CN111416717B (zh) 一种sm2算法并行多路硬件实现方法
US10467057B2 (en) Selecting a logic operation unit that matches a type of logic operation unit required by a selected operation engine
US8478926B1 (en) Co-processing acceleration method, apparatus, and system
Pritchard et al. Leveraging the cray linux environment core specialization feature to realize mpi asynchronous progress on cray xe systems
WO2018233299A1 (zh) 调度处理器的方法、装置、设备及介质
CN109902059B (zh) 一种cpu与gpu之间的数据传输方法
JP2019185764A (ja) Ndpサーバー―データセンターのストレージサーバーベースのデータ中心のコンピューティングアーキテクチャ―
Fei et al. FlexNFV: Flexible network service chaining with dynamic scaling
US8699623B2 (en) Modem architecture
CN107132903B (zh) 一种节能管理实现方法、装置及网络设备
CN107493574B (zh) 无线控制器设备、并行认证处理方法、系统、组网装置
TW200811705A (en) Data processing apparatus and method
US20140281087A1 (en) Moderated completion signaling
CN110909359A (zh) 基于双系统架构的通信方法及终端设备
CN107332654B (zh) 一种基于fpga的多板卡阵列并行解密装置及其方法
WO2021128945A1 (zh) 用于进行rsa计算的计算资源调度方法及装置
Lupescu et al. Commodity hardware performance in AES processing
WO2015070539A1 (zh) 一种基于dma的数据压缩芯片结构及其实现方法
WO2018024217A1 (zh) 一种i/o请求处理方法及设备
Takagi et al. Revisiting rendezvous protocols in the context of RDMA-capable host channel adapters and many-core processors
Xiao et al. Hardware/software adaptive cryptographic acceleration for big data processing
CN115208571A (zh) 一种基于高速混合加密算法的并行多路硬件实现方法
Li et al. Design of Multi Cipher Processing Architecture for Random Cross Access
Liu et al. A USBKEY calling method based on IPSEC XFRM framework
Brini et al. Real-time cpu-gpu demodulator for the lte physical layer

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
DD01 Delivery of document by public notice

Addressee: Zhou Haodong

Document name: Notice of publication of application for patent for invention

DD01 Delivery of document by public notice
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.

CB02 Change of applicant information
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant