一种基于PCIe接口的密码卡及该密码卡的数据加密方法

文档序号:10655876阅读:367来源:国知局
一种基于PCIe接口的密码卡及该密码卡的数据加密方法
【专利摘要】本发明涉及一种基于PCle接口的密码卡及该密码卡的数据加密方法,涉及密码卡及数据加密领域。目的在于解决现有的普通密码卡密钥存储量小、数据传输延迟、响应速度慢的问题。ARM处理器和FPGA模块通过高速片内总线进行互连,ARM处理器的存储信号输出输入端与存储模块的存储信号输入输出端连接,FPGA模块的通信信号输入输出端与PCle接口的通信信号输出输入端连接,PCle接口与外部服务器连接。PCle接口接收外部服务器发送的业务处理请求包,并将业务数据存储到FPGA模块内部的RAM中;FPGA模块向ARM处理器请求业务权限并启动算法进行加密运算;ARM处理器通知FPGA模块启动PCle接口将数据回传至外部服务器。实现一个完整的密码卡功能。
【专利说明】
一种基于PC I e接口的密码卡及该密码卡的数据加密方法
技术领域
[0001 ]本发明涉及密码卡及数据加密领域。【背景技术】
[0002]近年来,随着网络和计算机技术的迅猛发展,整个世界已经进入了互联网时代,互联网的方便快捷,跨越时空的特性给人类社会带来了巨大的改变,影响到了社会的各个方面。
[0003]人们开始利用这一便捷的基础设施改变传统商务活动和办公模式,进行电子商务、电子政务、网络办公。当前,B2C、B2B等电子商务活动已经相当普及,电子报税、网上审批等电子政务平台建设发展的如火如荼,互联网成为企事业单位远程办公的理想平台。互联网终端也从电脑扩展到手机、平板等移动设备,并有向智能家居设备扩展的趋势。
[0004]然而,由于互联网设计的开放性,导致互联网用户面临诸多方面的安全威胁:身份认证机制较弱,合法用户容易被假冒,无法控制资源的访问;攻击者可以在线路上窃听数据,甚至篡改数据后重新发布到网络上。另外网络应用还面临拒绝服务,线路窃听、破坏数据完整性、机密性等方面的攻击。这些安全问题已经逐渐成为影响网络应用进一步发展的瓶颈。
[0005]为了解决这些问题,业界开发了各种网络安全技术,以应对各种网络安全威胁。如 PKI (公钥基础设施),数据加密、数字签名,虚拟专用网络(VPN)等技术和产品可以有效的解决远程身份认证和数据保密问题。
[0006]对于一些关键行业,国家要求必须使用硬件加密设备,密钥必须保存在硬件载体上,不能出现在系统内存中,因此密码卡便应运而生。
[0007]目前现有的普通密码卡的密钥存储区容量都比较小,大多仅为1MB,远远无法满足现实所需,并且还存在数据传输延迟、响应速度慢的问题。
【发明内容】

[0008]本发明所要解决的技术问题是提供一种基于PCIe接口的密码卡及该密码卡的数据加密方法,目的在于解决现有的普通密码卡密钥存储量小、数据传输延迟、响应速度慢的问题。
[0009]本发明解决上述技术问题的技术方案如下:一种基于PCIe接口的密码卡包括ZYNQ 主处理器、存储模块和PCIe接口,ZYNQ主处理器的存储信号输出输入端与存储模块的存储信号输入输出端连接,ZYNQ主处理器的通信信号输入输出端与PCI e接口的通信信号输出输入端连接,PCIe接口与外部服务器连接。
[0010]所述ZYNQ主处理器用于接收PCIe接口发送的业务请求包,并将该业务请求包进行加密处理;
[0011]所述存储模块用于存储密钥;
[0012]所述PCIe接口用于将加密处理后的业务请求包回传至外部服务器。
[0013] ZYNQ主处理器包括ARM处理器和FPGA模块,所述ARM处理器和FPGA模块通过高速片内总线进行互连,ARM处理器的存储信号输出输入端与存储模块的存储信号输入输出端连接,FPGA模块的通信信号输入输出端与PCI e接口的通信信号输出输入端连接。[〇〇14]本发明的有益效果是:本发明采用ZYNQ主处理器作为板上核心,FPGA模块和ARM处理器采用高速片内总线连接方式进行互连,提高了数据交互性能,降低了系统间延迟,提高了系统性能,降低了系统成本;同时由于采用内部高速总线互连和PCIe接口,提升了数据传输性能,采用FPGA模块实现算法运算,提高了算法性能,系统整体性能也获得了极大的提升,存储模块可以提供海量的密钥存储,存储空间可以提升数万倍。本发明既可以用于普通的加密行业,也可以作为小型化的VPN来使用。
[0015]在上述技术方案的基础上,本发明还可以做如下改进。[0〇16] 进一步,所述ARM处理器为双核Cortex-A9,采用非对称模式,一个核运行Linux系统,另一个核没有操作系统,直接运行程序,与FPGA模块实现交互。[〇〇17]采用上述进一步方案的有益效果是:ARM处理器中一个核运行Linux系统,运行实时性要求不高的业务,一个核直接运行应用程序,没有操作系统,与FPGA模块系统进行交互,提高系统响应速度。[〇〇18] 进一步,所述存储模块包括:采用QSPI FLASH实现的程序存储器;采用eMMC实现的数据/密钥存储器;采用DDR3实现的动态存储器,所述数据/密钥存储器的存储容量最大为 128GB。
[0019]采用上述进一步方案的有益效果是:存储模块包括程序存储器、密钥存储器和动态存储器,能够对系统数据进行大量存储,其中采用eMMC作为数据/密钥存储器,相对传统密码卡,密钥存储空间可以提升数万倍,并且还可以通过更换eMMC大容量芯片继续提升容量,可以提升海量密钥存储,适合云环境使用。
[0020]进一步,所述FPGA模块内部设有一个双口RAM,用于存储PCIe接口接收到的外部服务器数据,并与ARM处理器连接进行数据读取。
[0021]进一步,所述密码卡还包括算法专用芯片,所述算法专用芯片与FPGA模块连接,用于嵌入现有的已通过国密局审核的加密算法对数据进行加密。
[0022]采用上述进一步方案的有益效果是:算法专用芯片中嵌入有现有的通过国密局审核的加密算法,对于部分公开算法也可以采用FPGA模块实现,既提高了芯片的利用率,又能简化板卡设计,降低成本。[〇〇23] 进一步,所述密码卡还包括USB接口,所述USB接口与ARM处理器连接,用于外接USB KEY或USB读卡器,实现密码卡的登录、管理以及密钥的备份恢复。
[0024]—种基于PCIe接口的密码卡的数据加密方法包括:[〇〇25] Sl、PCIe接口接收外部服务器发送的业务处理请求包,并将业务数据存储到FPGA 模块内部的RAM中;[〇〇26] S2、FPGA模块向ARM处理器请求业务权限,ARM处理器根据业务信息进行权限的判断和管理;[〇〇27] S3、FPGA模块根据ARM处理器的判断结果以及发送来的命令启动相对应的加密运算算法,运算完成后通知ARM处理器运算已完成;[〇〇28] S4、ARM处理器将运算结果进行标识后通知FPGA模块启动PCIe接口将数据回传至外部服务器。
[0029]进一步,步骤S1实现的具体过程为:[〇〇3〇] PCIe接口接收服务器发送的数据,并将该数据存储到FPGA模块的双口RAM中,数据发送完成产生中断给FPGA模块,FPGA模块通知ARM处理器已完成数据的接收,请求ARM处理器做下一步的处理。[〇〇31]进一步,步骤S2实现的具体过程为:[〇〇32] ARM处理器收到FPGA模块发送的数据接收完成的信号后,读取FPGA模块双口 RAM中的数据包,并根据数据包格式进行对应的密钥操作及权限判断,若有权限则向FPGA模块发送启动信号,启动FPGA模块开始进行加密运算,若为非法数据则直接丢弃并返回错误码。【附图说明】[〇〇33]图1为本发明所述一种基于PCIe接口的密码卡的原理示意图;
[0034]图2为本发明所述的一种基于PCIe接口的密码卡的数据加密方法流程图。
[0035]附图中,各标号所代表的部件列表如下:[〇〇36]1、ZYNQ主处理器,2、存储模块,3、PCIe接口,4、ARM处理器,5、FPGA模块,6、算法专用芯片,7、USB接口。【具体实施方式】
[0037]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0038]实施例1[〇〇39]如图1所示,本实施例所述的一种基于PCIe接口的密码卡包括ZYNQ主处理器1、存储模块2和PCIe接口 3,所述ZYNQ主处理器1包括ARM处理器4和FPGA模块5,所述ARM处理器4 和FPGA模块5通过高速片内总线进行互连,ARM处理器4的存储信号输出输入端与存储模块2 的存储信号输入输出端连接,FPGA模块5的通信信号输入输出端与PCIe接口 3的通信信号输出输入端连接,PCIe接口 3与外部服务器连接。
[0040]所述ZYNQ主处理器1用于接收PCIe接口 3发送的业务请求包,并将该业务请求包进行加密处理;
[0041]所述存储模块2用于存储密钥;[〇〇42] 所述PCIe接口 3用于将加密处理后的业务请求包回传至外部服务器。[〇〇43] 本实施例采用ZYNQ主处理器作为板上核心,FPGA模块和ARM处理器采用高速片内总线连接方式进行互连,提高了数据交互性能,降低了系统间延迟,提高了系统性能,降低了系统成本;同时由于采用内部高速总线互连和PCIe接口,提升了数据传输性能,采用FPGA 模块实现算法运算,提高了算法性能,系统整体性能也获得了极大的提升,存储模块可以提供海量的密钥存储,存储空间可以提升数万倍。本发明既可以用于普通的加密行业,也可以作为小型化的VPN来使用。
[0044] 本实施例中,PCIe接口 3收到外部服务器发送来的业务处理请求包并将业务数据存储到FPGA模块5内部的RAM中,FPGA模块5通知ARM处理器4已接收到业务包,向ARM处理器4 请求业务权限,ARM处理器4收到业务权限请求后根据业务信息进行权限的判断和管理,若有权限则通知FPGA模块5启动算法运算,运算完成后通知ARM处理器4,ARM处理器4根据相关的业务通知FPGA模块5启动PCI e接口将数据回传至服务器中。
[0045] PCIe接口 3采用PCIe2.0高速接口实现,用于与服务器进行数据交互。[0〇46] 优选的,所述ARM处理器4为双核Cortex-A9,采用非对称模式,一个核运行Linux系统,另一个核没有操作系统,直接运行程序,与FPGA模块5实现交互。
[0047] ARM处理器4的频率达到800MHz,处理能力达到2500MIPS,ARM处理器4中一个核运行Linux系统,运行实时性要求不高的业务,一个核直接运行应用程序,没有操作系统,与 FPGA模块系统进行交互,提高系统响应速度。[〇〇48] 优选的,所述存储模块2包括:采用QSPI FLASH实现的程序存储器;采用eMMC实现的数据/密钥存储器;采用DDR3实现的动态存储器,所述数据/密钥存储器的存储容量最大为128GB。
[0049]存储模块包括程序存储器、密钥存储器和动态存储器,能够对系统数据进行大量存储,其中采用eMMC作为数据/密钥存储器,相对传统密码卡,密钥存储空间可以提升数万倍,并且还可以通过更换eMMC大容量芯片继续提升容量,可以提升海量密钥存储,适合云环境使用。
[0050]优选的,所述FPGA模块5内部设有一个双口RAM,用于存储PCIe接口 3接收到的外部服务器数据,并与ARM处理器4连接进行数据读取。
[0051]优选的,所述密码卡还包括算法专用芯片6,所述算法专用芯片6与FPGA模块5连接,用于嵌入现有的已通过国密局审核的加密算法对数据进行加密。[〇〇52] 算法专用芯片6中嵌入有现有的通过国密局审核的加密算法,如SM1、SM2、SM3、SM4 等,符合国密局关于密码设备的各类标准,对于部分公开算法也可以采用FPGA模块5实现, 既提高了芯片的利用率,又能简化板卡设计,降低成本。[〇〇53] 优选的,所述密码卡还包括USB接口7,所述USB接口7与ARM处理器4连接,用于外接 USB KEY或USB读卡器,实现密码卡的登录、管理以及密钥的备份恢复。[〇〇54] 实施例2
[0055]如图2所示,一种基于PCIe接口的密码卡的数据加密方法包括:[〇〇56] Sl、PCIe接口接收外部服务器发送的业务处理请求包,并将业务数据存储到FPGA 模块内部的RAM中;[〇〇57] S2、FPGA模块向ARM处理器请求业务权限,ARM处理器根据业务信息进行权限的判断和管理;[〇〇58] S3、FPGA模块根据ARM处理器的判断结果启动算法进行加密运算;[〇〇59] S4、ARM处理器将运算结果进行标识后通知FPGA模块启动PCIe接口将数据回传至外部服务器。
[0060]优选的,步骤S1实现的具体过程为:[0061 ] PCIe接口接收服务器发送的数据,并将该数据存储到FPGA模块的双口RAM中,数据发送完成产生中断给FPGA模块,FPGA模块通知ARM处理器已完成数据的接收,请求ARM处理器做下一步的处理。[〇〇62]优选的,步骤S2实现的具体过程为:[〇〇63] ARM处理器收到FPGA模块发送的数据接收完成的信号后,读取FPGA模块双口 RAM中的数据包,并根据数据包格式进行对应的密钥操作及权限判断,若有权限则向FPGA模块发送启动信号,启动FPGA模块开始进行加密运算,若为非法数据则直接丢弃并返回错误码。 [〇〇64]优选的,步骤S3实现的具体过程为:[〇〇65] FPGA模块收至IjARM系统的启动命令后,根据ARM发送来的命令启动相对应的加密运算算法,运算完成后通知ARM处理器运算已完成。[〇〇66]以上实施例在实际板卡上进行了验证,并取得成功。本发明采用了 ZYNQ可编程器件,通过内部高速总线与FPGA模块间进行数据的传输,提高了系统的集成度,提高了数据传输效率,降低了系统的复杂度,降低了系统成本;同时由于采用了内部高速总线互联、PCIe 高速接口,提升了数据传输性能;采用FPGA模块实现算法运算,提高了算法性能,因此系统整体性能也获得了极大的提升。
[0067]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于PCle接口的密码卡,其特征在于,它包括ZYNQ主处理器(1)、存储模块(2)和 PCIe接口(3),所述ZYNQ主处理器(1)的存储信号输出输入端与存储模块(2)的存储信号输 入输出端连接,ZYNQ主处理器(1)的通信信号输入输出端与PCIe接口(3)的通信信号输出输 入端连接,PCIe接口( 3)与外部服务器连接,所述ZYNQ主处理器(1)用于接收PCle接口(3)发送的业务请求包,并将该业务请求包进 行加密处理;所述存储模块(2)用于存储密钥;所述PCle接口(3)用于将加密处理后的业务请求包回传至外部服务器。2.根据权利要求1所述的一种基于PCle接口的密码卡,其特征在于,所述ZYNQ主处理器 (1)包括ARM处理器(4)和FPGA模块(5),所述ARM处理器(4)和FPGA模块(5)通过高速片内总 线进行互连,ARM处理器(4)的存储信号输出输入端与存储模块(2)的存储信号输入输出端 连接,FPGA模块(5)的通信信号输入输出端与PCIe接口(3)的通信信号输出输入端连接。3.根据权利要求2所述的一种基于PCle接口的密码卡,其特征在于,ARM处理器(4)为双 核C〇rteX-A9,采用非对称模式,一个核运行Linux系统,另一个核没有操作系统,直接运行 程序,与FPGA模块(5)实现交互。4.根据权利要求3所述的一种基于PCle接口的密码卡,其特征在于,所述存储模块(2) 包括:采用QSP1 FLASH实现的程序存储器;采用eMMC实现的数据/密钥存储器;采用DDR3实 现的动态存储器,所述数据/密钥存储器的存储容量最大为128GB。5.根据权利要求4所述的一种基于PCle接口的密码卡,其特征在于,所述FPGA模块(5) 内部设有一个双口 RAM,用于存储PCle接口(3)接收到的外部服务器数据,并与ARM处理器 (4)连接进行数据读取。6.根据权利要求2所述的一种基于PCle接口的密码卡,其特征在于,它还包括算法专用 芯片(6),所述算法专用芯片(6)与FPGA模块(5)连接,用于嵌入现有的已通过国密局审核的 加密算法对数据进行加密。7.根据权利要求2所述的一种基于PCle接口的密码卡,其特征在于,它还包括USB接口 (7),所述USB接口(7)与ARM处理器(4)连接,用于外接USB KEY或USB读卡器,实现密码卡的 登录、管理以及密钥的备份恢复。8.权利要求1-7任一项所述的一种基于PCle接口的密码卡的数据加密方法,其特征在 于,所述数据加密方法包括:51、PCle接口接收外部服务器发送的业务处理请求包,并将业务数据存储到FPGA模块5 内部的RAM中;52、FPGA模块向ARM处理器请求业务权限,ARM处理器根据业务信息进行权限的判断和管理;53、FPGA模块根据ARM处理器的判断结果以及发送来的命令启动相对应的加密运算算 法,运算完成后通知ARM处理器运算已完成;54、ARM处理器将运算结果进行标识后通知FPGA模块启动PCle接口将数据回传至外部 服务器。9.根据权利要求8所述的一种基于PCle接口的密码卡的数据加密方法,其特征在于,步 骤S1实现的具体过程为:PCle接口接收服务器发送的数据,并将该数据存储到FPGA模块的双口 RAM中,数据发送 完成产生中断给FPGA模块,FPGA模块通知ARM处理器已完成数据的接收,请求ARM处理器做 下一步的处理。10.根据权利要求9所述一种基于PCle接口的密码卡的数据加密方法,其特征在于,步 骤S2实现的具体过程为:ARM处理器收到FPGA模块发送的数据接收完成的信号后,读取FPGA模块双口 RAM中的数 据包,并根据数据包格式进行对应的密钥操作及权限判断,若有权限则向FPGA模块发送启 动信号,启动FPGA模块开始进行加密运算,若为非法数据则直接丢弃并返回错误码。
【文档编号】G06F21/45GK106022080SQ201610509715
【公开日】2016年10月12日
【申请日】2016年6月30日
【发明人】赵长松
【申请人】北京三未信安科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1