CN116070292A - 一种基于fpga的sm4加密异构加速系统 - Google Patents

一种基于fpga的sm4加密异构加速系统 Download PDF

Info

Publication number
CN116070292A
CN116070292A CN202310206827.7A CN202310206827A CN116070292A CN 116070292 A CN116070292 A CN 116070292A CN 202310206827 A CN202310206827 A CN 202310206827A CN 116070292 A CN116070292 A CN 116070292A
Authority
CN
China
Prior art keywords
module
encryption
fpga
data
ddr4
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
Application number
CN202310206827.7A
Other languages
English (en)
Other versions
CN116070292B (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.)
Suzhou Hongcunxinjie Technology Co ltd
Original Assignee
Suzhou Hongcunxinjie 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 Suzhou Hongcunxinjie Technology Co ltd filed Critical Suzhou Hongcunxinjie Technology Co ltd
Priority to CN202310206827.7A priority Critical patent/CN116070292B/zh
Publication of CN116070292A publication Critical patent/CN116070292A/zh
Application granted granted Critical
Publication of CN116070292B publication Critical patent/CN116070292B/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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
    • 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)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于FPGA的SM4加密异构加速系统,属于计算机硬件加速技术领域。系统包括SM4加密模块、HOST‑FPGA通讯模块和OpenSSL拓展模块。SM4加密模块基于FPGA实现,包括加密模块和密钥扩展模块。HOST‑FPGA通讯模块基于PCIe实现,包括主机端和FPGA端。其中,主机端用于数据收发;FPGA端通过数据收发模块、连接模块、DDR4模块、控制模块和FIFO缓存模块,实现数据的接收、处理和发送。OpenSSL拓展模块基于引擎机制,使OpenSSL能够透明调用硬件SM4加密方法。本发明具有功耗低、速度快、易于开发等优点,适用范围广,方便使用和推广。

Description

一种基于FPGA的SM4加密异构加速系统
技术领域
本发明涉及一种基于FPGA的SM4加密异构加速系统,属于计算机硬件加速技术领域。
背景技术
随着计算机网络的发展,越来越多的事务依赖于计算机进行处理,大量数据信息通过网络进行传递,数据安全的重要性愈发凸显。密码学是保障信息安全的重要支撑,通过对信息进行加密,明文数据被转换为不可理解的密文数据,使得攻击者即使能够获取数据也不能理解其含义。SM4是由我国自主研发的一种对称加密算法,具有效率高、易实现等优点。
SM4加密是典型的计算密集型任务,使用CPU处理加密任务,速度较低,并会消耗大量的CPU和内存资源,使CPU强大的逻辑处理能力不能得到充分利用。因此,将加密任务卸载到硬件加速器上,有效的解决方法。而FPGA具有定制化程度高、并行程度高、功耗低等特点,适合于在该场景下使用。
发明内容
本发明的目的是针对现有技术存在的不足,为了解决传统的CPU执行SM4时,加密任务速度慢、CPU资源得不到合理利用等技术问题,提出一种基于FPGA的SM4加密异构加速系统。
为了解决上述技术问题,本发明采用以下技术手段实现。
一种基于FPGA的SM4加密异构加速系统,包括SM4加密模块、HOST-FPGA通讯模块和OpenSSL拓展模块。
其中,SM4加密模块基于FPGA实现,包括加密模块和密钥扩展模块。
SM4加密模块操作包括异或、位移、S盒变换。进一步地,异或和位移使用组合逻辑实现,S盒变换基于LUT实现。进一步地,加密模块和密钥扩展模块均采用三十二级流水线架构,实现每个周期输出一个分组数据加密结果,以获得更高吞吐率。
HOST-FPGA通讯模块基于PCIe实现,包括主机端和FPGA端。其中,主机端通过XDMA驱动和上层控制模块,实现数据收发;FPGA端通过数据收发模块、连接模块、DDR4模块、控制模块和FIFO缓存模块,实现数据的接收、处理和发送。
具体地,主机端发送的明文数据经过FPGA端的数据收发模块、连接模块被写入到DDR4模块中,FPGA从DDR4模块中取出数据并暂存入明文FIFO,SM4加密模块从明文FIFO中取数进行加密,加密结果暂存入密文FIFO,FPGA将密文FIFO中的数据写回DDR4模块,以供主机取回。
进一步地,上层控制模块采用多线程和多通道相结合的方式进行数据收发。在发送线程中,主机端轮流向2块DDR4发送明文数据;接收线程有2个,分别使用c2h0通道和c2h1通道从2块DDR4中读取加密结果。主机发数据、FPGA处理、主机取数据,形成三级流水线。
进一步地,DDR4模块采用2组4块DDR4,为实现数据收发和处理的三级流水线提供物理条件,最大限度降低等待延迟。其中,同一时刻同一块DDR4只能由一个设备接口对其进行读或写。为避免同时申请读写同一块DDR4,实现明文发送和密文接收的解耦,明文和密文在物理上要分开存放,2块DDR4为一组,1块存放明文数据,1块存放密文数据。FPGA在进行加密操作时,要同时读写2块DDR4,此时主机无法基于这2块DDR4进行数据的收发,因此,当其中一组在进行SM4加密时,另一组进行主机与FPGA之间的数据传输。
进一步地,控制模块采用地址指针来控制数据收发和读写。具体地,每组DDR4采用4个指针来指示当前数据状态,其中,写指针指向主机待写明文地址,读指针指向FPGA待取明文地址,写回指针指向FPGA待写密文地址,读回指针指向主机待取密文地址。读指针和写指针指示是否有空间写待加密明文,是否有明文待取出加密。写回指针和读回指针指示是否有空间写回密文,是否有密文待取出。
OpenSSL拓展模块基于OpenSSL透明地调用FPGA,实现SM4加密。
进一步地,OpenSSL拓展实现SM4硬件加密引擎;基于引擎机制,使得OpenSSL能够透明调用硬件加密方法,SM4引擎加载方式包括动态和静态两种。
有益效果
1.本发明实现基于FPGA的SM4硬件加密算法,具有功耗低、速度快、易于开发等优点。三十二级流水线架构使得单个SM4核数据吞吐率高达56.39Gbps,多引擎进一步提升了整体加密速度。
2.本发明所述的HOST-FPGA通讯框架采用地址映射模式,适用范围广。本发明组合使用多线程、多通道、多DDR4,充分利用PCIe带宽资源,实现数据收发过程的解耦,在避免资源竞争和提高并行度间取得平衡,吞吐率高达92Gbps。
3.本发明对上层提供简洁易用的调用接口,支持通过OpenSSL透明地调用FPGA进行SM4加密,方便本发明的使用和推广。
附图说明
图1为本发明的总体架构图;
图2为本发明中数据收发和处理三级流水线示意图;
图3为本发明中FPGA端数据流转过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1-图3所示,一种基于FPGA的SM4加密异构加速系统,包括SM4加密模块、HOST-FPGA通讯模块和OpenSSL拓展模块。
所述SM4加密模块包括加密模块和密钥扩展模块,采用三十二级流水线架构,实现每个周期输出一个分组数据加密结果。
所述HOST-FPGA通讯模块包括主机端和FPGA端两部分,主机端通过驱动和上层控制模块实现数据收发,FPGA端通过数据收发模块、连接模块、DDR4模块、控制模块以及FIFO缓存模块实现数据的接收、处理和发送;所述上层控制模块采用多线程和多通道相结合的方式进行数据收发;所述DDR4模块采用两组四块DDR4,为实现数据收发和处理的三级流水线提供物理条件;所述控制模块采用地址指针控制数据收发和读写;所述OpenSSL拓展实现基于OpenSSL透明地调用FPGA进行SM4加密。
作为本发明的一种实施方式,所述SM4加密算法基于FPGA实现,由加密模块和密钥扩展模块构成,操作包括异或、位移、S盒变换;所述异或和位移使用组合逻辑实现,所述S盒变换基于LUT实现;所述加密模块和密钥扩展模块都采用三十二级流水线架构以获得更高吞吐率;一个128bit的明文数据经过32个周期完成加密,在不断流的情况下每个周期输出一个128bit加密结果。
作为本发明的一种实施方式,所述HOST-FPGA通讯模块基于PCIe3.0×16实现,包括主机端和FPGA端;主机端发送的明文数据经过FPGA端的数据收发模块、连接模块被写入到DDR4中,FPGA从DDR4中取出数据暂存入明文FIFO,SM4模块从明文FIFO中取数进行加密,加密结果暂存入密文FIFO,FPGA将密文FIFO中数据写回DDR4以供主机取回。
作为本发明的一种实施方式,所述主机端上层控制模块采用多通道和多线程相结合的方式进行数据收发;发送线程中,主机轮流向两块DDR4发送明文数据;接收线程有两个,分别使用c2h0通道和c2h1通道从两块DDR4中读取加密结果;主机发数据、FPGA处理、主机取数据形成三级流水线。
作为本发明的一种实施方式,所述DDR4模块采用两组四块DDR4,为实现数据收发和处理的三级流水线提供物理条件,最大限度降低等待延迟;同一时刻同一块DDR4只能由一个设备接口对其进行读或写,为避免同时申请读写同一块DDR4,实现明文发送和密文接收的解耦,明文和密文在物理上分开存放,两块DDR4为一组,一块存放明文数据,一块存放密文数据;FPGA在进行加密操作时,需要同时读写两块DDR4,此时主机无法基于这两块DDR4进行数据的收发,因此当其中一组在进行SM4加密时,另一组进行主机与FPGA之间的数据传输。
作为本发明的一种实施方式,所述控制模块采用地址指针控制数据收发和读写,每组DDR4采用四个指针来指示当前数据状态;写指针指向主机待写明文地址,读指针指向FPGA待取明文地址,写回指针指向FPGA待写密文地址,读回指针指向主机待取密文地址;所述读指针和写指针指示是否有空间写待加密明文,是否有明文待取出加密;所述写回指针和读回指针指示是否有空间写回密文,是否有密文待取出。
作为本发明的一种实施方式,所述OpenSSL拓展实现SM4硬件加密引擎;基于引擎机制,使得OpenSSL能够透明调用本发明的硬件加密方法。SM4引擎加载方式,包括动态和静态两种。
进一步地,本发明系统的处理方法如下,包括以下步骤:
步骤1:在主机端安装Xilinx提供的XDMA(DMA/Bridge Subsystem for PCIExpress)驱动,并使用setpci命令将MaxReadReq设为当下支持的最大值1024B。
步骤2:主机创建一个发送线程和两个接收线程。
步骤2.1:发送线程中,主机轮流向DDR4_0和DDR4_2发送数据;发送前,发送线程比较DDR4_0或DDR4_2的读写指针,判断是否有空间存放新数据,发送后更新相应写指针。
步骤2.2:接收线程有两个,一个线程通过c2h0通道读取DDR4_1中数据,一个线程通过c2h1通道读取DDR4_3中数据,不同通道保证了数据之间的相互独立;接收线程通过比较读回和写回指针判断是否有新加密结果可以读取,读取后更新读回指针。
步骤2.3:如图2所示,主机发数据、FPGA处理、主机取数据形成三级流水线。
步骤3:主机端通过驱动以SGDMA方式实现数据的收发。
步骤4:FPGA端,主机发送的明文数据首先经过数据收发模块,数据收发模块基于XDMA IP实现,DMA接口选择AXI地址映射模式,时钟频率为250MHz,数据宽度为512bit;XDMA通过AXI4接口将主机发送的数据传输到连接模块;连接模块基于AXI Interconnect IP实现,它根据地址将数据转发到DDR4_0或DDR4_2;当主机读取密文数据时,数据从DDR4_1或DDR4_3中取出,经过连接模块传送到数据收发模块,最后以SGDMA模式发送到主机端;此过程中,连接模块还负责实现仲裁、跨时钟域等功能。
步骤5:如图3所示,FPGA端有两组SM4加密引擎;每组由控制模块、DDR4模块、FIFO缓存模块、SM4模块组成;具体的,每组引擎包括两个DDR4、四个寄存器、两个FIFO以及四个SM4核。
步骤5.1:控制模块根据写、读、写回、读回指针实现逻辑控制,指针基于32位寄存器实现,寄存器中保存DDR4地址。
步骤5.2:当读写指针不相等时,创建读请求,采用突发读方式读取出DDR4中的数据并暂存到明文FIFO中,读结束后更新读指针。
步骤5.3:当明文FIFO不为空时,取出512bit数据,即四个明文数据,分别发送到四个SM4核中进行加密。
步骤5.4:单个SM4核由加密模块和密钥扩展模块组成,两个模块的输入时钟信号为300MHz;加密模块的输入信号还包括轮密钥、128bit明文以及明文有效信号,输出为128bit密文和密文有效信号;密钥扩展模块的输入信号有128bit密钥和密钥有效信号,输出为扩展后的轮密钥;加密模块和密钥扩展模块都采用三十二级流水线架构,加密模块在不断流的情况下每个周期输出一个加密结果,密钥扩展模块的每级流水每个周期完成一个32bit轮密钥的生成;密钥扩展模块需要比加密模块提前一个周期启动,以实现明文有效后无需等待轮密钥,轮密钥产生后就立刻被使用;在300MHz时钟频率下,单个SM4核的吞吐率为35.76Gbps,根据WNS可计算出其最高吞吐率为56.39Gbps。
步骤5.5:加密结果被暂存在密文FIFO中,当密文FIFO中的数据量达到一次突发写的上限或一段时间内无数据被写入时,创建写请求,以突发写方式将密文写回DDR4,写结束后更新写回指针。
步骤6:主机创建并加载SM4硬件加密引擎后,通过OpenSSL透明地调用硬件进行SM4加密。
步骤6.1:首先完成算法结构体定义,在evp_cipher_st结构体中完成nid标识、分组长度、密钥长度、初始化函数、加解密函数等相关设置。
步骤6.2:动态加载模式下,使用IMPLEMENT_DYNAMIC_BIND_FN完成引擎注册,然后将代码编译为动态链接库,通过-engine命令实现调用。
步骤6.3:静态加载模式下,使用ENGINE_add实现注册,通过ENGINE_by_id获取引擎指针以此实现SM4硬件加密算法的调用。
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。

Claims (9)

1.一种基于FPGA的SM4加密异构加速系统,其特征在于,包括SM4加密模块、HOST-FPGA通讯模块和OpenSSL拓展模块;
SM4加密模块基于FPGA实现,包括加密模块和密钥扩展模块;SM4加密模块的操作包括异或、位移、S盒变换;
HOST-FPGA通讯模块基于PCIe实现,包括主机端和FPGA端,其中,主机端通过XDMA驱动和上层控制模块,实现数据收发;FPGA端通过数据收发模块、连接模块、DDR4模块、控制模块和FIFO缓存模块,实现数据的接收、处理和发送;主机端发送的明文数据经过FPGA端的数据收发模块、连接模块被写入到DDR4模块中,FPGA从DDR4模块中取出数据并暂存入明文FIFO,SM4加密模块从明文FIFO中取数进行加密,加密结果暂存入密文FIFO,FPGA将密文FIFO中的数据写回DDR4模块,以供主机取回;
OpenSSL拓展模块实现SM4硬件加密引擎,基于OpenSSL透明地调用FPGA,实现SM4加密。
2.如权利要求1所述的一种基于FPGA的SM4加密异构加速系统,其特征在于,SM4加密模块中,异或和位移使用组合逻辑实现,S盒变换基于LUT实现。
3.如权利要求1所述的一种基于FPGA的SM4加密异构加速系统,其特征在于,SM4加密模块中,加密模块和密钥扩展模块均采用三十二级流水线架构,实现每个周期输出一个分组数据加密结果。
4.如权利要求1所述的一种基于FPGA的SM4加密异构加速系统,其特征在于,HOST-FPGA通讯模块中,上层控制模块采用多线程和多通道相结合的方式进行数据收发。
5.如权利要求1所述的一种基于FPGA的SM4加密异构加速系统,其特征在于,HOST-FPGA通讯模块中,主机发数据、FPGA处理、主机取数据,形成三级流水线;
其中,DDR4模块采用2组4块DDR4,其中,同一时刻同一块DDR4只能由一个设备接口对其进行读或写;明文和密文在物理上要分开存放,2块DDR4为一组,1块存放明文数据,1块存放密文数据;
FPGA在进行加密操作时,要同时读写2块DDR4,此时主机无法基于这2块DDR4进行数据的收发,当其中一组在进行SM4加密时,另一组进行主机与FPGA之间的数据传输;
在发送线程中,主机端轮流向2块DDR4发送明文数据;接收线程有2个,分别使用c2h0通道和c2h1通道从2块DDR4中读取加密结果。
6.如权利要求1所述的一种基于FPGA的SM4加密异构加速系统,其特征在于,HOST-FPGA通讯模块中,控制模块采用地址指针来控制数据收发和读写;
每组DDR4采用4个指针来指示当前数据状态,其中,写指针指向主机待写明文地址,读指针指向FPGA待取明文地址,写回指针指向FPGA待写密文地址,读回指针指向主机待取密文地址;读指针和写指针指示是否有空间写待加密明文,是否有明文待取出加密;写回指针和读回指针指示是否有空间写回密文,是否有密文待取出。
7.如权利要求1所述的一种基于FPGA的SM4加密异构加速系统,其特征在于,SM4引擎加载方式包括动态和静态两种。
8.如权利要求1所述的一种基于FPGA的SM4加密异构加速系统,其特征在于,系统处理过程包括以下步骤:
步骤1:在主机端安装XDMA驱动,并使用setpci命令将MaxReadReq设为当下支持的最大值;
步骤2:主机创建一个发送线程和两个接收线程;
步骤2.1:发送线程中,主机轮流向DDR4_0和DDR4_2发送数据;发送前,发送线程比较DDR4_0或DDR4_2的读写指针,判断是否有空间存放新数据,发送后更新相应写指针;
步骤2.2:接收线程包括两个,一个线程通过c2h0通道读取DDR4_1中数据,一个线程通过c2h1通道读取DDR4_3中数据;接收线程通过比较读回和写回指针判断是否有新加密结果可以读取,读取后更新读回指针;
步骤2.3:主机发数据、FPGA处理、主机取数据形成三级流水线;
步骤3:主机端通过驱动以SGDMA方式实现数据的收发;
步骤4:在FPGA端,主机发送的明文数据首先经过数据收发模块,数据收发模块基于XDMA IP实现,DMA接口选择AXI地址映射模式;XDMA通过AXI4接口将主机发送的数据传输到连接模块;连接模块基于AXI Interconnect IP实现,它根据地址将数据转发到DDR4_0或DDR4_2;当主机读取密文数据时,数据从DDR4_1或DDR4_3中取出,经过连接模块传送到数据收发模块,最后以SGDMA模式发送到主机端;此过程中,连接模块负责实现仲裁、跨时钟域;
步骤5:FPGA端包括两组SM4加密引擎;每组由控制模块、DDR4模块、FIFO缓存模块、SM4模块组成;每组引擎包括两个DDR4、四个寄存器、两个FIFO以及四个SM4核;
步骤5.1:控制模块根据写、读、写回、读回指针实现逻辑控制,指针基于32位寄存器实现,寄存器中保存DDR4地址;
步骤5.2:当读写指针不相等时,创建读请求,采用突发读方式读取出DDR4中的数据并暂存到明文FIFO中,读结束后更新读指针;
步骤5.3:当明文FIFO不为空时,取出四个明文数据,分别发送到四个SM4核中进行加密;
步骤5.4:单个SM4核由加密模块和密钥扩展模块组成;加密模块的输入信号包括轮密钥、明文以及明文有效信号,输出为密文和密文有效信号;密钥扩展模块的输入信号有密钥和密钥有效信号,输出为扩展后的轮密钥;加密模块和密钥扩展模块采用三十二级流水线架构,加密模块在不断流的情况下每个周期输出一个加密结果,密钥扩展模块的每级流水每个周期完成一个轮密钥的生成;密钥扩展模块需要比加密模块提前一个周期启动,以实现明文有效后无需等待轮密钥,轮密钥产生后就立刻被使用;
步骤5.5:加密结果被暂存在密文FIFO中,当密文FIFO中的数据量达到一次突发写的上限或一段时间内无数据被写入时,创建写请求,以突发写方式将密文写回DDR4,写结束后更新写回指针;
步骤6:主机创建并加载SM4硬件加密引擎后,通过OpenSSL透明地调用硬件进行SM4加密。
9.如权利要求8所述的一种基于FPGA的SM4加密异构加速系统,其特征在于,步骤6包括以下步骤:
步骤6.1:首先完成算法结构体定义,在evp_cipher_st结构体中完成包括nid标识、分组长度、密钥长度、初始化函数、加解密函数的设置;
步骤6.2:动态加载模式下,使用IMPLEMENT_DYNAMIC_BIND_FN完成引擎注册,然后将代码编译为动态链接库,通过-engine命令实现调用;
步骤6.3:静态加载模式下,使用ENGINE_add实现注册,通过ENGINE_by_id获取引擎指针,实现SM4硬件加密算法的调用。
CN202310206827.7A 2023-03-07 2023-03-07 一种基于fpga的sm4加密异构加速系统 Active CN116070292B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310206827.7A CN116070292B (zh) 2023-03-07 2023-03-07 一种基于fpga的sm4加密异构加速系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310206827.7A CN116070292B (zh) 2023-03-07 2023-03-07 一种基于fpga的sm4加密异构加速系统

Publications (2)

Publication Number Publication Date
CN116070292A true CN116070292A (zh) 2023-05-05
CN116070292B CN116070292B (zh) 2023-06-16

Family

ID=86173313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310206827.7A Active CN116070292B (zh) 2023-03-07 2023-03-07 一种基于fpga的sm4加密异构加速系统

Country Status (1)

Country Link
CN (1) CN116070292B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116488794A (zh) * 2023-06-16 2023-07-25 杭州海康威视数字技术股份有限公司 基于fpga的高速sm4密码模组实现方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105184196A (zh) * 2015-09-02 2015-12-23 四川九洲电器集团有限责任公司 电子系统信息安全保护系统及方法
CN105897406A (zh) * 2016-06-02 2016-08-24 北京赛思信安技术股份有限公司 一种明密文等长的aes加解密的装置
CN107528690A (zh) * 2017-10-10 2017-12-29 郑州云海信息技术有限公司 一种基于异构加速平台的sm4对称加解密方法及系统
CN109902043A (zh) * 2019-01-30 2019-06-18 中国科学院声学研究所 一种基于fpga的国密算法加速处理系统
CN111865995A (zh) * 2020-07-24 2020-10-30 芯河半导体科技(无锡)有限公司 一种在tr069中使用硬件国密算法的通信方式
CN112765614A (zh) * 2020-11-26 2021-05-07 神州龙芯智能科技有限公司 一种在fpga上实现sm4加密算法的模块及方法
CN112765054A (zh) * 2019-11-01 2021-05-07 中国科学院声学研究所 一种基于fpga的高速数据采集系统及方法
CN113078996A (zh) * 2021-02-25 2021-07-06 西安电子科技大学 Sm4密码算法的fpga优化实现方法、系统及应用
CN115549911A (zh) * 2022-11-28 2022-12-30 苏州浪潮智能科技有限公司 一种加解密架构、方法、处理器和服务器

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105184196A (zh) * 2015-09-02 2015-12-23 四川九洲电器集团有限责任公司 电子系统信息安全保护系统及方法
CN105897406A (zh) * 2016-06-02 2016-08-24 北京赛思信安技术股份有限公司 一种明密文等长的aes加解密的装置
CN107528690A (zh) * 2017-10-10 2017-12-29 郑州云海信息技术有限公司 一种基于异构加速平台的sm4对称加解密方法及系统
CN109902043A (zh) * 2019-01-30 2019-06-18 中国科学院声学研究所 一种基于fpga的国密算法加速处理系统
CN112765054A (zh) * 2019-11-01 2021-05-07 中国科学院声学研究所 一种基于fpga的高速数据采集系统及方法
CN111865995A (zh) * 2020-07-24 2020-10-30 芯河半导体科技(无锡)有限公司 一种在tr069中使用硬件国密算法的通信方式
CN112765614A (zh) * 2020-11-26 2021-05-07 神州龙芯智能科技有限公司 一种在fpga上实现sm4加密算法的模块及方法
CN113078996A (zh) * 2021-02-25 2021-07-06 西安电子科技大学 Sm4密码算法的fpga优化实现方法、系统及应用
CN115549911A (zh) * 2022-11-28 2022-12-30 苏州浪潮智能科技有限公司 一种加解密架构、方法、处理器和服务器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吴永强: "国密SSL安全通信协议的研究与实现", 中国优秀硕士学位论文全文数据库信息科技辑 *
彭福来等: "面向国产CPU的可重构计算系统设计及性能探究", 计算机工程与应用, pages 42 - 47 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116488794A (zh) * 2023-06-16 2023-07-25 杭州海康威视数字技术股份有限公司 基于fpga的高速sm4密码模组实现方法及装置
CN116488794B (zh) * 2023-06-16 2023-09-19 杭州海康威视数字技术股份有限公司 基于fpga的高速sm4密码模组实现方法及装置

Also Published As

Publication number Publication date
CN116070292B (zh) 2023-06-16

Similar Documents

Publication Publication Date Title
CN109902043B (zh) 一种基于fpga的国密算法加速处理系统
US20220138349A1 (en) Cryptographic architecture for cryptographic permutation
KR100881049B1 (ko) 복수의 어드레스 2 채널 버스 구조
CN101854353B (zh) 一种基于fpga的多芯片并行加密方法
CN116070292B (zh) 一种基于fpga的sm4加密异构加速系统
US12010209B2 (en) Memory-efficient hardware cryptographic engine
US6549622B1 (en) System and method for a fast hardware implementation of RC4
CN112367155B (zh) 一种基于fpga的zuc加密系统ip核构建方法
JP2021507343A (ja) 高性能周辺バスベースのシリアル周辺インターフェース通信装置
US7191262B2 (en) High-throughput UART interfaces
CN112306924A (zh) 一种数据交互方法、装置、系统及可读存储介质
Yang et al. Design of a pre-scheduled data bus for advanced encryption standard encrypted system-on-chips
CN108874702B (zh) 基于axi总线的多路对称加解密ip核并行处理装置和方法
CN114547663B (zh) 基于usb接口的高速芯片实现数据加解密及读取的方法
CN117113442B (zh) 一种面向同态加密算法Paillier的数据通路的加速系统
CN116506106B (zh) 一种基于fpga的可配置密钥sm4加解密系统
US7006634B1 (en) Hardware-based encryption/decryption employing dual ported key storage
US6226706B1 (en) Rotation bus interface coupling processor buses to memory buses for interprocessor communication via exclusive memory access
CN101515853B (zh) 信息终端及其信息安全装置
CN103077362B (zh) 具有安全机制的gpio ip核
CN114969851B (zh) 一种基于fpga的数据处理方法、装置、设备及介质
CN109743350B (zh) 一种科学计算应用影像区交换通信模式的卸载实现方法
CN115437972A (zh) 一种带时钟切换的乒乓缓存方法、装置及接口控制器
CN210836072U (zh) 一种流加密usb接口转fifo接口的桥片
CN106209370A (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