【技术实现步骤摘要】
一种基于FPGA的SM4加密异构加速系统
[0001]本专利技术涉及一种基于FPGA的SM4加密异构加速系统,属于计算机硬件加速
技术介绍
[0002]随着计算机网络的发展,越来越多的事务依赖于计算机进行处理,大量数据信息通过网络进行传递,数据安全的重要性愈发凸显。密码学是保障信息安全的重要支撑,通过对信息进行加密,明文数据被转换为不可理解的密文数据,使得攻击者即使能够获取数据也不能理解其含义。SM4是由我国自主研发的一种对称加密算法,具有效率高、易实现等优点。
[0003]SM4加密是典型的计算密集型任务,使用CPU处理加密任务,速度较低,并会消耗大量的CPU和内存资源,使CPU强大的逻辑处理能力不能得到充分利用。因此,将加密任务卸载到硬件加速器上,有效的解决方法。而FPGA具有定制化程度高、并行程度高、功耗低等特点,适合于在该场景下使用。
技术实现思路
[0004]本专利技术的目的是针对现有技术存在的不足,为了解决传统的CPU执行SM4时,加密任务速度慢、CPU资源得不到合理利用等技术问 ...
【技术保护点】
【技术特征摘要】
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命令将MaxReadR...
【专利技术属性】
技术研发人员:邵雨洁,
申请(专利权)人:苏州宏存芯捷科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。