一种基于FPGA对数据进行算法处理的密码卡及其加密方法与流程

文档序号:16882369发布日期:2019-02-15 22:17阅读:549来源:国知局
一种基于FPGA对数据进行算法处理的密码卡及其加密方法与流程

本发明涉及一种数据安全领域,具体地说,是涉及一种基于fpga对数据进行算法处理的密码卡及其加密方法。



背景技术:

随着通信与计算机网络技术的飞速发展,物联网、大数据、云计算等战略产业的兴起,人们对网络互不干涉和网络信息资源的依赖程度日益加深。计算机网络已成为当今信息化社会发展的重要保障,网络信息安全关系到国家主权、社会稳定,关系到公私财物和个人隐私的安全,正是由于网络信息安全问题的存在,所以大量网络中存储和传输的数据需要得到有效的保护,网络信息安全问题的根源一方面是来自网络自身的安全缺陷,如网络协议的不安全和业务的不安全,另一方面是人为因素,如管理不善导致黑客攻击。

为了保证特殊数据或行业数据的安全,网络数据需要采取加密方式进行传输,一般承担数据加密任务的主要是设备集成的密码卡,目前,密码卡作为一种硬件加密方法,主要应用于电子商务、电子政务、电子金融网络领域,其中,fpga、dsp、算法芯片和pex8311芯片的通用架构密码卡硬件电路模块众多,从而增加了整个电路和电源模块、pcb制版文件的设计难度,并且功耗略大于高速密码卡,硬件电路模块的增多意味着密码卡控制系统的繁杂,增加了代码编写与维护的工作强度。同时,国家密码局根据我国信息安全需要先后颁布了多套国产密码算法,包括sm1、sm2、sm3、sm4及祖冲之序列密码算法等,为支持不同的密码算法,需要设计各种密码卡来满足支持这些密码算法,目前的密码卡不支持多种密码算法,并且存在硬件电路复杂并且运算效率低的缺点,不能满足目前的加密需要。



技术实现要素:

本发明的目的在于提供一种基于fpga对数据进行算法处理的密码卡及其加密方法,本发明优化了密码卡的通用架构,减少硬件芯片数量并降低硬件电路的设计难度和密码卡功耗,有效地发挥了高速密码卡算法芯片的速度和性能,具有密码运算速度快、效率高、功耗小的优点,具有很好的推广的价值。

为实现上述目的,本发明采用的技术方案如下:

一种基于fpga对数据进行算法处理的密码卡,包括:密码算法模块、flash存储器、pci-e总线接口、随机数发生器,还包括:具有nios软核处理器的fpga主控芯片,所述fpga主控芯片其内部集成有pci-eip核和算法状态机,其中,所述pci-e总线接口,通过所述pci-eip核连接于所述fpga主控芯片,用于实现数据交互;

所述nios软核处理器为fpga主控芯片的主处理器,用于控制所述fpga主控芯片进行数据和命令的读写操作;

所述随机数发生器由nios软核处理器控制,并将产生的随机数序列存储于与所述fpga主控芯片连接的所述flash存储器中;

所述算法状态机控制与所述fpga主控芯片连接的所述密码算法模块,用于调用密码算法模块进行密码运算。

进一步地,所述fpga主控芯片内设有双端口ram,用于储存所述pci-e总线接口发送和接收的数据,并于所述nios软核处理器进行数据读取。

再进一步地,所述随机数发生器具有两片wng9物理噪声源芯片,并由所述nios软核处理器控制,进而产生随机数序列。

再进一步地,所述fpga主控芯片连接有epcs16配置芯片,所述epcs16配置芯片用于存储配置程序,每次上电后所述fpga主控芯片需要加载所述epcs16配置芯片里的配置程序,从而初始化密码卡。

再进一步地,所述密码算法模块包括多个专用密码算法芯片,所述专用密码算法芯片与所述fpga主控芯片连接,且每个密码算法芯片分别对应有sm1/sm2/sm3/sm4算法及rsa国际密码算法。

再进一步地,所述fpga主控芯片内集成有寄存器,用于暂存指令、数据和地址。

再进一步地,所述fpga主控芯片内设有dma控制器,所述dma控制器通过所述pci-e总线接口处理数据的传送,完成一批数据传输之后,向fpga主控芯片发出一次中断请求,并请示下一步的操作要求。

基于上述结构,本发明还公开了一种基于fpga对数据进行算法处理的密码卡的加密方法,包括如下步骤:

(1)fpga主控芯片从epcs16配置芯片里加载程序,进而等待外部服务器发送请求指令;

(2)外部服务器准备好待加密码数据,通过pci-e总线接口将待加密数据存储至双端口ram中,并向fpga主控芯片发送中断信号;

(3)fpga主控芯片接收到中断信号后清除中断,向nios软核处理器发送控制密码算法模块读取双口ram的数据进行加密的命令;

(4)密码算法模块对数据加密完成后向nios软核处理器发送完成指令,nios软核处理器将加密好的数据送回到双端口ram内存储,同时向fpga主控芯片发送完成命令;

(5)fpga主控芯片向外部服务器发送中断信号;

(6)数据由双端口ram通过pci-e总线接口读回到外部服务器的内存,至此完成一次加密过程。

与现有技术相比,本发明具有以下有益效果:

(1)本发明的密码卡通过选用fpga主控芯片和专用加密芯片硬件实现密码运算,提供加解密、数字签名等安全服务,保证敏感信息在网络传输中的机密性、完整性、有效性和不可否认性,相对于传统的在主机上运行加密软件进行加密的方法,硬件加密具有加密速度快、占用中央处理器(cpu)资源少、安全性高的优点;

(2)本发明的密码卡具有pci-express(pci-e)总线接口,符合pci-e2.0接口规范,通过pci-e总线接口置于计算机内,该密码卡位于网络安全平台的最底层——硬件加密层,主要作用是为上层应用系统提供所需的密码运算服务,达到了数据传输快的效果;

(3)本发明的密码卡在处理器方面使用fpga主控芯片内嵌的nios软核作为处理器,相较于传统的使用dsp作为处理器,此处使用nios具有灵活性大、设计简单的优点,并且优化了密码卡处理器的架构,提高了密码卡算法的性能,减少硬件芯片数量并降低硬件电路的设计难度和密码卡功耗;

(4)本发明中的随机数发生器采用了两片wng9物理噪声源芯片并行工作,并且将两个物理噪声源的信号经异或后,生成各种随机密钥的,进而通过高度随机性提高了密钥的质量,从而提高了整个系统的安全性;

(5)本发明的密码卡的采用pci-eip硬核设计抛弃了原来的pex8311转换芯片,提高了密钥传输的安全性与快捷性。

附图说明

图1为本发明的整体结构示意图。

图2为发明的工作流程图。

具体实施方式

下面结合附图说明和实施例对本发明作进一步说明,本发明的方式包括但不仅限于以下实施例。

实施例

如图1-图2所示,本发明公开了一种基于fpga对数据进行算法处理的密码卡,包括:密码算法模块、flash存储器、pci-e总线接口、随机数发生器,还包括:具有nios软核处理器的fpga主控芯片,所述fpga主控芯片其内部集成有pci-eip核和算法状态机,其中,

所述pci-e总线接口,通过所述pci-eip核连接于所述fpga主控芯片,用于实现数据交互;

所述nios软核处理器为fpga主控芯片的主处理器,用于控制所述fpga主控芯片进行数据和命令的读写操作;

所述随机数发生器由nios软核处理器控制,并将产生的随机数序列存储于与所述fpga主控芯片连接的所述flash存储器中;

所述算法状态机控制与所述fpga主控芯片连接的所述密码算法模块,用于调用密码算法模块进行密码运算。

为了保证密钥的安全性,实现掉电后密钥数据消失,所述fpga主控芯片内设有双端口ram,用于储存所述pci-e总线接口发送和接收的数据,并于所述nios软核处理器进行数据读取。

为了提高随机密钥的质量,所述随机数发生器具有两片wng9物理噪声源芯片,并由所述nios软核处理器控制,进而产生随机数序列。

所述fpga主控芯片连接有epcs16配置芯片,所述epcs16配置芯片用于存储配置程序,每次上电后所述fpga主控芯片需要加载所述epcs16配置芯片里的配置程序,从而初始化密码卡。

为了实现多种算法,所述密码算法模块包括多个专用密码算法芯片,所述专用密码算法芯片与所述fpga主控芯片连接,且每个密码算法芯片分别对应有sm1/sm2/sm3/sm4算法及rsa国际密码算法。

所述fpga主控芯片内集成有寄存器,用于暂存指令、数据和地址。

所述fpga主控芯片内设有dma控制器,所述dma控制器通过所述pci-e总线接口处理数据的传送,完成一批数据传输之后,向fpga主控芯片发出一次中断请求,并请示下一步的操作要求。

基于上述结构,本发明还公开了一种基于fpga对数据进行算法处理的密码卡的加密方法,包括如下步骤:

(1)fpga主控芯片从epcs16配置芯片里加载程序,进而等待外部服务器发送请求指令;

(2)外部服务器准备好待加密码数据,通过pci-e总线接口将待加密数据存储至双端口ram中,并向fpga主控芯片发送中断信号;

(3)fpga主控芯片接收到中断信号后清除中断,向nios软核处理器发送控制密码算法模块读取双口ram的数据进行加密的命令;

(4)密码算法模块对数据加密完成后向nios软核处理器发送完成指令,nios软核处理器将加密好的数据送回到双端口ram内存储,同时向fpga主控芯片发送完成命令;

(5)fpga主控芯片向外部服务器发送中断信号;

(6)数据由双端口ram通过pci-e总线接口读回到外部服务器的内存,至此完成一次加密过程。

本发明的工作过程:首先接通电源,密码卡进行上电自复位后,fpga主控芯片从epcs配置芯片里加载卡内程序,初始化密码卡的硬件参数,等待外部服务器的指令,密码卡处于等待状态,外部服务器准备好待加密数据,设置fpga主控芯片的控制状态寄存器(csr),外部服务器通过pci-e总线接口把待加密的明文、密钥等数据由外部服务器的内存传入到fpga主控芯片的双端口ram中,进行存储,存储完成,则向fpga芯片发送中断信号,若存储未完成,则pci-e总线接口继续把待加密明文、密钥等数据传入双端口ram中存储,直到存储完成,fpga主控芯片接收到中断信号后清除中断,向nios软核处理器发送命令,nios软核处理器接收到命令后控制密码算法模块读取双端口ram的数据进行加密,进而识别算法类型:sm1、sm2、sm3、sm4国产密码算法或rsa国际密码算法,从而进行加密处理,若未完成加密处理,则,nios软核处理器继续调用密码算法模块,直至密码算法模块完成加密处理。nios软核处理器接收到密码算法模块对数据加密完成的指令后,进而控制fpga主控芯片接口,将加密好的数据送回到双端口ram内存储,同时nios软核处理器向fpga主控芯片发送完成命令,进而向外部服务器发送中断信号,外部服务器接收到中断信号后,数据由双端口ram通过pci-e总线接口读回到外部服务器的内存,外部服务器读取数据若未结束,则继续给外部服务器发送中断信号后,直至读取数据结束,至此完成一次加密过程。

本发明优化了密码卡的通用架构,在实现相同算法功能的基础之上提高密码卡算法的性能,减少硬件芯片数量并降低硬件电路的设计难度和密码卡功耗,有效地发挥了高速密码卡算法芯片的速度和性能,具有密码运算速度快、效率高、功耗小的优点,具有很好的推广的价值。

上述实施例仅为本发明的优选实施方式之一,不应当用于限制本发明的保护范围,但凡在本发明的主体设计思想和精神上作出的毫无实质意义的改动或润色,其所解决的技术问题仍然与本发明一致的,均应当包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1