CN111625851B - 一种mini PCIE密码卡、数据通信系统及方法 - Google Patents
一种mini PCIE密码卡、数据通信系统及方法 Download PDFInfo
- Publication number
- CN111625851B CN111625851B CN202010433424.2A CN202010433424A CN111625851B CN 111625851 B CN111625851 B CN 111625851B CN 202010433424 A CN202010433424 A CN 202010433424A CN 111625851 B CN111625851 B CN 111625851B
- Authority
- CN
- China
- Prior art keywords
- external host
- data
- interface
- chip
- pci
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出一种mini PCIE密码卡、数据通信系统及方法,所述方法为:选择通过PCI‑E接口对应的第一通信信道以及USB接口对应的第二通信信道,同时与mini PCIE密码卡进行通信;第一通信信道,外部主机将组装后的数据传输至FPGA芯片,进行摘要运算和对称密码运算处理并返回至外部主机,所述安全芯片对接收到数据进行密钥管理和非对称密码运算处理并通过FPGA芯片返回至外部主机;第二通信信道,外部主机将封装后的数据传输至安全芯片进行密钥管理和密码运算,并将处理后的数据通过USB接口返回至外部主机。本发明通过建立两个通信信道,支持USB和mini PCI‑E两种物理接口同时工作互不影响。
Description
技术领域
本发明涉及密码卡技术领域,具体涉及一种mini PCIE密码卡、数据通信系统及方法。
背景技术
随着通信与计算机网络技术的飞速发展,物联网、大数据、云计算等战略性产业的兴起,人们对网络环境和网络信息资源的依赖程度日益加深,大量网络中存储和传输的重要数据需要得到有效的保护。为了保证特殊数据或行业的数据安全,网络数据需要采取加密方式进行传输,一般承担数据加密任务的主要是设备中集成的密码卡。
目前,mini PCIE密码卡是一种支持mini PCI-E接口的密码卡,mini PCI-E接口虽然可以同时支持USB通信协议和PCI-E通信协议,但是在密码卡和主机进行通信时,仅支持PCI-E协议和USB协议中的一种,当更换主机时,会造成与主机支持的协议不匹配而限制密码卡的使用;而且,常见的mini PCIE密码卡和主机进行通信时仅使用一种物理接口进行数据加密处理,例如PCI-E接口或USB接口;即在同一时间mini PCIE密码卡和主机之间只有一条通道进行加密处理。
因此如何设计一种能够支持USB和mini PCI-E两种物理接口同时工作且互不影响的mini PCIE密码卡,是本领域技术人员需要解决的技术问题。
发明内容
本发明针对上述问题,有必要提供一种mini PCIE密码卡、数据通信系统及方法,其能够支持USB和mini PCI-E两种物理接口同时工作且互不影响。
本发明第一方面提出一种mini PCIE密码卡,所述mini PCIE密码卡包括FPGA芯片、安全芯片和第一物理噪声源芯片、第二物理噪声源芯片,以及用于与外部主机通信连接的PCI-E接口和USB接口;
所述FPGA芯片,通过所述PCI-E接口与外部主机进行通信连接,通过SPI接口与所述安全芯片进行通信连接,以构成第一通信信道;
所述第一通信信道用于实现:获取外部主机组装后的数据,所述FPGA芯片进行摘要运算和对称密码运算处理后返回至外部主机;所述安全芯片对接收到的数据进行密钥管理和非对称密码运算处理,通过所述FPGA芯片将处理后的数据返回至外部主机;
所述安全芯片,通过所述USB接口与外部主机进行通信连接,以构成第二通信信道;
所述第二通信信道用于实现:获取外部主机封装后的数据,所述安全芯片进行密钥管理、对称密码运算和非对称密码运算处理后返回至外部主机;
所述第一物理噪声源芯片和所述第二物理噪声源芯片,分别与所述FPGA芯片进行通信连接,用于向所述FPGA芯片提供随机数。
本发明第二方面提供一种数据通信系统,所述数据通信系统包括外部主机和上述的mini PCIE密码卡;所述外部主机支持通过自定义的设备驱动,选择通过PCI-E接口对应的第一通信信道和USB接口对应的第二通信信道,同时与所述mini PCIE密码卡进行通信;或,选择通过PCI-E接口对应的第一通信信道或USB接口对应的第二通信信道与所述miniPCIE密码卡进行通信;所述自定义的设备驱动包括USB设备驱动和PCIE设备驱动。
进一步的,所述外部主机采用自定义的USB设备驱动通过USB接口与所述安全芯片进行通信时,采用一写一读的方式进行数据传输;
所述外部主机采用自定义的PCIE设备驱动通过PCI-E接口与所述FPGA芯片、所述安全芯片进行通信时,采用BAR空间地址映射和DMA方式进行数据传输。
进一步的,所述外部主机采用所述自定义的USB设备驱动通过USB接口对应的第二通信信道与mini PCIE密码卡进行通信过程中,采用一写一读的方式进行数据传输时,执行:所述外部主机对数据进行封装后,采用所述自定义的USB设备驱动,通过USB接口将数据一次写入至所述安全芯片中,所述安全芯片对接收到的数据进行密钥管理、对称密码运算和非对称密码运算处理;在所述安全芯片处理后,采用所述自定义的USB设备驱动,通过USB接口将处理后的数据一次读取至所述外部主机进行解析处理。
进一步的,所述外部主机采用自定义的PCIE设备驱动通过PCI-E接口对应的第一通信信道与mini PCIE密码卡进行通信过程中,采用BAR空间地址映射和DMA方式进行数据传输时,执行:
所述外部主机采用自定义的PCIE设备驱动,通过PCI-E接口与所述FPGA芯片进行BAR空间地址映射、发送和接收缓冲区内存申请和地址映射后,将外部主机发送和接收缓冲区的首地址通过BAR空间发送给所述FPGA芯片,所述FPGA芯片接收到发送和接收缓冲区的首地址后,配置发送至所述FPGA芯片的DMA控制器和接收DMA控制器;
所述外部主机将组装数据包写入其发送缓冲区,并构造命令字写入FPGA芯片的BAR空间以通知所述接收DMA控制器启动;所述FPGA芯片根据命令字启动接收DMA控制器,通过PCI-E接口将外部主机发送缓冲区中的数据包转移至所述FPGA芯片,进行高速的摘要运算和对称密码运算处理;
在需要进行密钥管理和非对称密码运算处理时,所述FPGA芯片还将数据包发送至所述安全芯片,并接收所述安全芯片处理后的数据包;
在对数据包进行运算处理后,所述FPGA芯片启动所述发送DMA控制器,将处理后的数据包转移至外部主机的接收缓冲区进行解析处理。
进一步的,所述外部主机中设置mini PCI-E插槽,所述mini PCI-E插槽包括USB接口和PCI-E接口,用于提供连接外部主机与mini PCIE密码卡之间的物理接口;所述miniPCIE密码卡的FPGA芯片支持多节点传输,进行数据的并行传输和并行处理。
本发明还提出一种数据通信方法,所述数据通信方法包括:配置过程和工作过程;
配置过程:
配置上述mini PCIE密码卡的FPGA芯片通过PCI-E接口与外部主机进行通信连接,以及通过SPI接口与安全芯片进行通信连接,以建立第一通信信道;
配置上述mini PCIE密码卡的安全芯片通过USB接口与外部主机进行通信连接,以建立第二通信信道;
配置第一物理噪声源芯片和第二物理噪声源芯片分别与所述FPGA芯片进行通信连接,以生成随机数,并发送至所述FPGA芯片;
工作过程:
所述外部主机通过自定义的设备驱动,选择通过PCI-E接口对应的第一通信信道和USB接口对应的第二通信信道,同时与所述mini PCIE密码卡进行通信;或,选择通过PCI-E接口对应的第一通信信道或USB接口对应的第二通信信道与所述mini PCIE密码卡进行通信;所述自定义的设备驱动包括USB设备驱动和PCIE设备驱动;
所述外部主机在选择通过PCI-E接口对应的第一通信信道,与所述mini PCIE密码卡进行通信时:所述外部主机将组装后的数据通过PCI-E接口传输至所述FPGA芯片,进行摘要运算和对称密码运算处理,并将摘要运算和对称密码运算处理后的数据,通过PCI-E接口返回至外部主机进行解析处理;在需要进行密钥管理和非对称密码运算处理时,所述FPGA芯片通过SPI接口将数据传输至所述安全芯片,并将获取到的所述安全芯片处理后的数据,通过PCI-E接口返回至外部主机进行解析处理;以及和/或
所述外部主机在选择通过USB接口对应的第二通信信道,与所述mini PCIE密码卡进行通信时:所述外部主机将封装后的数据通过USB接口传输至所述安全芯片,进行密钥管理、对称密码运算和非对称密码运算处理,并将所述安全芯片处理后的数据,通过USB接口返回至所述外部主机进行解析处理。
进一步的,所述外部主机通过自定义的设备驱动选择通过USB接口、PCI-E接口同时与所述mini PCIE密码卡进行通信时:所述外部主机采用自定义的PCIE设备驱动,通过PCI-E接口对应的第一通信信道与mini PCIE密码卡进行通信过程中,采用BAR空间地址映射和DMA方式进行数据传输;所述外部主机采用自定义的USB设备驱动,通过USB接口对应的第二通信信道与mini PCIE密码卡进行通信过程中,采用一写一读的方式进行数据传输。
进一步的,所述外部主机采用自定义的USB设备驱动通过USB接口对应的第二通信信道与mini PCIE密码卡进行通信过程中,采用一写一读的方式进行数据传输时,执行:所述外部主机对数据进行封装后,采用所述自定义的USB设备驱动,通过USB接口将数据一次写入至所述安全芯片中,所述安全芯片对接收到的数据进行密钥管理、对称密码运算和非对称密码运算处理;在所述安全芯片处理后,采用所述自定义的USB设备驱动,通过USB接口将处理后的数据一次读取至所述外部主机进行解析处理。
进一步的,所述外部主机采用自定义的PCIE设备驱动通过PCI-E接口对应的第一通信信道与mini PCIE密码卡进行通信过程中,采用BAR空间地址映射和DMA方式进行数据传输时,执行:
所述外部主机采用自定义的PCIE设备驱动,通过PCI-E接口与所述FPGA芯片进行BAR空间地址映射、发送和接收缓冲区内存申请和地址映射后,将外部主机发送和接收缓冲区的首地址通过BAR空间发送给所述FPGA芯片,所述FPGA芯片接收到发送和接收缓冲区的首地址后,配置发送至所述FPGA芯片的DMA控制器和接收DMA控制器;
所述外部主机将组装数据包写入其发送缓冲区,并构造命令字写入FPGA芯片的BAR空间以通知所述接收DMA控制器启动;所述FPGA芯片根据命令字启动接收DMA控制器,通过PCI-E接口将外部主机发送缓冲区中的数据包转移至所述FPGA芯片,进行摘要运算和对称密码运算处理;
在需要进行密钥管理和非对称密码运算处理时,所述FPGA芯片还将数据包发送至所述安全芯片,并接收所述安全芯片处理后的数据包;
在对数据包进行运算处理后,所述FPGA芯片启动所述发送DMA控制器,将处理后的数据包转移至外部主机的接收缓冲区进行解析处理。
本发明具有突出的实质性特点和显著的进步,具体的说:
(1)本发明设计的mini PCIE密码卡能够同时提供USB接口和PCI-E接口两种物理通讯接口,以建立外部主机与mini PCIE密码卡之间进行通信时的两个通信通道,相当于为外部主机提供了两个密码模块,外部主机中的不同应用在同一时间可使用不同的接口通过该mini PCI-E密码卡进行密码服务,兼容性和通用性好,极大地提高了mini PCIE密码卡的工作效率;同时,该mini PCI-E密码卡也支持选择USB接口和PCI-E接口两种物理通讯接口中的一种进行通信;两个通信通道分别对应不同的协议,因此本发明无需进行通道切换即可同时实现两种协议与外部主机进行通信,拓展了mini PCIE密码卡的应用范围;
(2)外部主机将封装后的数据通过USB接口传输至安全芯片进行密钥管理、对称密码运算和非对称密码运算处理,以及安全芯片将处理后的数据通过USB接口返回至外部主机进行解析处理,使得外部主机使用USB自定义设备驱动通过USB接口访问mini PCIE密码卡,其数据传输能力强,提升整体对称运算性能;
(3)外部主机将组装后的数据通过PCI-E接口传输至FPGA芯片进行高速的摘要运算和对称密码运算处理,在需要时,FPGA芯片通过SPI接口将数据传输至安全芯片进行密钥管理和非对称密码运算处理;FPGA芯片将进行摘要运算和对称密码运算处理后的数据以及获取到的安全芯片处理后的数据,通过PCI-E接口返回至外部主机进行解析处理,使得密码卡性能得到充分发挥,通过PCI-E接口访问时,充分利用FPGA的超强并发运算能力、PCIE接口的超强传输能力;
(4)对于安全芯片提供的高速非对称运算,瓶颈在于IO耗时,多任务分别通过FPGA的SPI接口和USB接口访问安全芯片,可有效减少IO占比,比单一物理接口更能发挥高性能非对称运算能力。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出本发明一种基于mini PCIE密码卡的数据通信系统结构框图;
图2示出本发明一种基于mini PCIE密码卡的数据通信方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
实施例1
如图1所示,本发明第一方面提出一种mini PCIE密码卡,所述mini PCIE密码卡包括FPGA芯片、安全芯片和第一物理噪声源芯片、第二物理噪声源芯片,以及用于与外部主机通信连接的PCI-E接口和USB接口;
所述FPGA芯片,通过所述PCI-E接口与外部主机进行通信连接,通过SPI接口与所述安全芯片进行通信连接,以构成第一通信信道;所述第一通信信道用于实现:所述FPGA芯片通过PCI-E接口获取外部主机组装后的数据,进行摘要运算和对称密码运算处理,并将FPGA芯片处理后的数据通过PCI-E接口返回至外部主机进行解析处理;所述安全芯片对接收到的数据进行密钥管理和非对称密码运算处理,通过所述FPGA芯片将处理后的数据返回至外部主机;
所述安全芯片,通过所述USB接口与外部主机进行通信连接,以构成第二通信信道;所述第二通信信道用于实现:所述安全芯片通过USB接口获取外部主机封装后的数据,进行密钥管理、对称密码运算和非对称密码运算处理,并将所述安全芯片处理后的数据,通过USB接口返回至外部主机进行解析处理;
所述第一物理噪声源芯片和所述第二物理噪声源芯片,分别与所述FPGA芯片进行通信连接,用于向所述FPGA芯片提供随机数。
需要说明的是,mini PCIE密码卡的第一通信信道可以实现三类数据的加密处理:第一类是只需要FPGA芯片进行摘要运算和对称密码运算处理的数据,这类数据经过FPGA芯片处理后直接返回至外部主机;第二类是只需要安全芯片进行密钥管理和非对称密码运算处理的数据,这类数据通过FPGA芯片转发至安全芯片进行处理,在安全芯片处理后又通过FPGA芯片返回至外部主机;第三类是需要FPGA芯片和安全芯片共同处理的数据,这类数据先经过FPGA芯片处理后传输至安全芯片,安全芯片对摘要运算和对称密码运算处理后数据进行密钥管理和非对称密码运算处理后通过FPGA芯片返回至外部主机。
在具体的实施例中,所述安全芯片是主控芯片,具有高速非对称运算能力和较大的密钥存储空间,安全芯片内部支持SM1\SM3\SM4\SM2\RSA\ECDSA\AES等密码算法,提供完整密钥管理机制,安全芯片可以通过USB接口为上层应用提供完整的密码服务,包括密码运算和密钥管理;
所述FPGA芯片,可选用Xilinx系列芯片,支持PCI-E X1协议,主要功能是实现高速的摘要运算以及对称运算(SM4\AES、SHA256\SM3等),通过多节点的方式支持多任务,多任务的运算速度能在一定范围内成倍增加,通过SPI接口连接安全芯片,使用安全芯片提供的密钥管理和非对称密码运算功能;
所述第一物理噪声源芯片和所述第二物理噪声源芯片,可选用WNG8芯片,用于向FPGA和应用程序提供高质量的真随机数,随机数可用于实际业务中的密码服务,例如密钥的生成。
本发明设计的mini PCIE密码卡能够同时提供USB接口和PCI-E接口两种物理通讯接口,建立外部主机与mini PCIE密码卡之间进行通信时的两个通信通道,相当于为外部主机提供了两个密码模块,外部主机中的不同应用可使用不同的接口通过该mini PCI-E密码卡进行密码服务,兼容性和通用性好。
需要说明的是,本发明提出的mini PCIE密码卡能够同时提供两个通信通道与外部主机进行通信连接,每个通信通道对应一种协议,即第一通信信道对应PCI-E协议,第二通信信道对应USB协议;第一通信信道和第二通信信道可同时工作,本发明无需进行通道切换即可同时实现两种协议与外部主机进行通信,拓展了mini PCIE密码卡的应用范围。外部主机中的不同应用在同一时间可使用不同的接口对应的通信通道,通过该mini PCI-E密码卡进行密码服务,具备高速加密处理性能;同时,该mini PCI-E密码卡也支持选择USB接口和PCI-E接口两种物理通讯接口中的一种进行通信。
实施例2
在实施例1中的mini PCIE密码卡的基础上,本发明还提出一种数据通信系统。
本实施例中,所述数据通信系统包括外部主机和上述的mini PCIE密码卡;所述外部主机支持通过自定义的设备驱动,选择通过PCI-E接口对应的第一通信信道和USB接口对应的第二通信信道,同时与所述mini PCIE密码卡进行通信;或,选择通过PCI-E接口对应的第一通信信道或USB接口对应的第二通信信道与所述mini PCIE密码卡进行通信;所述自定义的设备驱动包括USB设备驱动和PCIE设备驱动。
具体的,所述外部主机采用自定义的USB设备驱动通过USB接口与所述安全芯片进行通信时,采用一写一读的方式进行数据传输;所述外部主机采用自定义的PCIE设备驱动通过PCI-E接口与所述FPGA芯片、所述安全芯片进行通信时,采用BAR空间地址映射和DMA方式进行数据传输;其中,所述FPGA芯片包括发送DMA控制器和接收DMA控制器。
具体的,所述外部主机采用所述自定义的USB设备驱动,通过USB接口对应的第二通信信道与mini PCIE密码卡进行通信过程中,采用一写一读的方式进行数据传输时,执行:所述外部主机对数据进行封装后,采用自定义的USB设备驱动,通过USB接口将数据一次写入至所述安全芯片中,所述安全芯片对接收到的数据进行密钥管理、对称密码运算和非对称密码运算处理;在所述安全芯片处理后,采用所述自定义的USB设备驱动,通过USB接口将处理后的数据一次读取至所述外部主机进行解析处理。
具体的,所述外部主机采用自定义的PCIE设备驱动通过PCI-E接口对应的第一通信信道与mini PCIE密码卡进行通信过程中,采用BAR空间地址映射和DMA方式进行数据传输时,执行:
所述外部主机采用自定义的PCIE设备驱动,通过PCI-E接口与所述FPGA芯片进行BAR空间地址映射、发送和接收缓冲区内存申请和地址映射后,将外部主机发送和接收缓冲区的首地址通过BAR空间发送给所述FPGA芯片,所述FPGA芯片接收到发送和接收缓冲区的首地址后,配置发送至所述FPGA芯片的DMA控制器和接收DMA控制器;
所述外部主机将组装数据包写入其发送缓冲区,并构造命令字写入FPGA芯片的BAR空间以通知所述接收DMA控制器启动;所述FPGA芯片根据命令字启动接收DMA控制器,通过PCI-E接口将外部主机发送缓冲区中的数据包转移至所述FPGA芯片,进行高速的摘要运算和对称密码运算处理;
在需要进行密钥管理和非对称密码运算处理时,所述FPGA芯片还将数据包发送至所述安全芯片进行密钥管理和非对称密码运算处理,并接收所述安全芯片处理后的数据包;
在对数据包进行运算处理后,所述FPGA芯片启动所述发送DMA控制器,将处理后的数据包转移至外部主机的接收缓冲区进行解析处理。
需要说明的是,mini PCIE密码卡的第一通信信道可以实现三类数据的加密处理:第一类是只需要FPGA芯片进行摘要运算和对称密码运算处理的数据,这类数据经过FPGA芯片处理后直接返回至外部主机;第二类是只需要安全芯片进行密钥管理和非对称密码运算处理的数据,这类数据通过FPGA芯片转发至安全芯片进行处理,在安全芯片处理后又通过FPGA芯片返回至外部主机;第三类是需要FPGA芯片和安全芯片共同处理的数据,这类数据先经过FPGA芯片处理后传输至安全芯片,安全芯片对摘要运算和对称密码运算处理后数据进行密钥管理和非对称密码运算处理后通过FPGA芯片返回至外部主机。
具体的,所述外部主机中设置mini PCI-E插槽,所述mini PCI-E插槽包括USB接口和PCI-E接口,用于提供连接外部主机与mini PCIE密码卡之间的物理接口;所述FPGA芯片支持多节点传输,进行数据的并行传输和并行处理。
可以理解的是,所述数据通信系统包含两个通信信道,第一通信信道包含miniPCI-E插槽、FPGA和安全芯片,外部主机通过mini PCI-E插槽上的PCI-E接口访问FPGA,FPGA通过SPI接口连接至安全芯片;第二通信信道包含mini PCI-E插槽和安全芯片,外部主机通过mini PCI-E插槽上的USB接口和安全芯片连接。在mini PCIE密码卡的两个通信通道物理结构完全独立的基础上,第一通信信道和第二通信信道可以同时工作,例如,在外部主机中存在不同应用需要通过mini PCIE密码卡进行数据加密处理时,可以同时使用USB接口和PCI-E两种接口进行数据处理,提高数据传输和处理效率。
针对第一通信信道和第二通信信道,外部主机通过自定义的设备驱动会识别出来两个设备节点,来判别是选择第一通信信道还是第二通信信道进行数据传输和处理。若两个设备节点均为有效状态,则选择两个通信信道同时工作;若只有一个设备节点为有效状态,则该设备节点对应的通信信道处于工作状态。
实施例3
在实施例2中的数据通信系统的基础上,本发明还提出一种mini PCIE密码卡的通信方法,如图2所示。
所述数据通信方法包括:配置过程和工作过程;
配置过程:
配置实施例1中的mini PCIE密码卡的FPGA芯片通过所述PCI-E接口与外部主机进行通信连接,以及通过SPI接口与安全芯片进行通信连接,以建立第一通信信道;
配置实施例1中的mini PCIE密码卡的安全芯片通过所述USB接口与外部主机进行通信连接,以建立第二通信信道;
配置所述第一物理噪声源芯片和所述第二物理噪声源芯片分别与所述FPGA芯片进行通信连接,以生成随机数,并发送至所述FPGA芯片;
工作过程:
所述外部主机通过自定义的设备驱动,选择通过PCI-E接口对应的第一通信信道和USB接口对应的第二通信信道,同时与所述mini PCIE密码卡进行通信;或,选择通过PCI-E接口对应的第一通信信道或USB接口对应的第二通信信道,与所述mini PCIE密码卡进行通信;所述自定义的设备驱动包括USB设备驱动和PCIE设备驱动;
所述外部主机在选择通过PCI-E接口对应的第一通信信道,与所述mini PCIE密码卡进行通信时:所述外部主机将组装后的数据通过PCI-E接口传输至所述FPGA芯片,进行高速的摘要运算和对称密码运算处理,并将摘要运算和对称密码运算处理后的数据,通过PCI-E接口返回至外部主机进行解析处理;在需要进行密钥管理和非对称密码运算处理时,所述FPGA芯片通过SPI接口将数据传输至所述安全芯片,并将获取到的所述安全芯片处理后的数据,通过PCI-E接口返回至外部主机进行解析处理;以及和/或
所述外部主机在选择通过USB接口对应的第二通信信道,与所述mini PCIE密码卡进行通信时:所述外部主机将封装后的数据通过USB接口传输至所述安全芯片,进行密钥管理、对称密码运算和非对称密码运算处理,并将所述安全芯片处理后的数据,通过USB接口返回至所述外部主机进行解析处理。
可以理解的是,所述数据通信系统包含两个通信信道,第一通信信道包含miniPCI-E插槽、FPGA和安全芯片,外部主机通过mini PCI-E插槽上的PCI-E接口访问FPGA,FPGA通过SPI接口连接至安全芯片;第二通信信道包含mini PCI-E插槽和安全芯片,外部主机通过mini PCI-E插槽上的USB接口和安全芯片连接。
需要说明的是,外部主机可支持两个通信信道同时工作,也支持两个通信信道自动切换功能。外部主机实现两个通信信道自动切换功能时:外部主机通过PCI-E接口访问时,自动切断安全芯片USB接口服务,即关闭第二通信信道;外部主机通过USB接口访问时,自动关闭FPGA芯片,即关闭第一通信信道。
具体的,所述外部主机通过自定义的设备驱动,选择通过USB接口、PCI-E接口同时与所述mini PCIE密码卡进行通信时:所述外部主机采用自定义的PCIE设备驱动,通过PCI-E接口对应的第一通信信道与mini PCIE密码卡进行通信过程中,采用BAR空间地址映射和DMA方式进行数据传输;所述外部主机采用自定义的USB设备驱动,通过USB接口对应的第二通信信道与mini PCIE密码卡进行通信过程中,采用一写一读的方式进行数据传输。
具体的,所述外部主机通过自定义的设备驱动,选择通过USB接口、PCI-E接口同时与所述mini PCIE密码卡进行通信时:所述外部主机采用自定义的PCIE设备驱动,通过PCI-E接口对应的第一通信信道与mini PCIE密码卡进行通信过程中,采用BAR空间地址映射和DMA方式进行数据传输;所述外部主机采用自定义的USB设备驱动,通过USB接口对应的第二通信信道与mini PCIE密码卡进行通信过程中,采用一写一读的方式进行数据传输;其中,所述FPGA芯片包括发送DMA控制器和接收DMA控制器。
具体的,所述外部主机采用自定义的USB设备驱动,通过USB接口对应的第二通信信道与mini PCIE密码卡进行通信过程中,采用一写一读的方式进行数据传输时,执行:所述外部主机对数据进行封装后,采用所述自定义的USB设备驱动,通过USB接口将数据一次写入至所述安全芯片中,进行密钥管理、对称密码运算和非对称密码运算处理;在所述安全芯片处理后,采用所述自定义的USB设备驱动,通过USB接口将处理后的数据一次读取至所述外部主机进行解析处理。
可以理解的是,第二通信信道使用USB自定义设备驱动,每次指令交互只需要一次写和一次读,有效减少数据交互次数,提高数据传输效率。
具体的,所述外部主机采用自定义的PCIE设备驱动,通过PCI-E接口对应的第一通信信道与mini PCIE密码卡进行通信过程中,采用BAR空间地址映射和DMA方式进行数据传输时,执行:
所述外部主机采用自定义的PCIE设备驱动,通过PCI-E接口与所述FPGA芯片进行BAR空间地址映射、发送和接收缓冲区内存申请和地址映射后,将外部主机发送和接收缓冲区的首地址通过BAR空间发送给所述FPGA芯片,所述FPGA芯片接收到发送和接收缓冲区的首地址后,配置发送至所述FPGA芯片的DMA控制器和接收DMA控制器;
所述外部主机将组装数据包写入其发送缓冲区,并构造命令字写入FPGA芯片的BAR空间以通知所述接收DMA控制器启动;所述FPGA芯片根据命令字启动接收DMA控制器,通过PCI-E接口将外部主机发送缓冲区中的数据包转移至所述FPGA芯片,进行高速的摘要运算和对称密码运算处理;在需要进行密钥管理和非对称密码运算处理时,所述FPGA芯片还将数据包发送至所述安全芯片,并接收所述安全芯片处理后的数据包;
在对数据包进行运算处理后,所述FPGA芯片启动所述发送DMA控制器,将处理后的数据包转移至外部主机的接收缓冲区进行解析处理。
可以理解的是,第一通信信道使用PCI-E协议DMA方式传输数据,共使用两个DMA控制器,发送和读取分别使用一个DMA控制器,FPGA芯片内部支持多节点传输,多个运算单元并行处理的机制。
需要说明的是,mini PCIE密码卡的第一通信信道可以实现三类数据的加密处理:第一类是只需要FPGA芯片进行摘要运算和对称密码运算处理的数据,这类数据经过FPGA芯片处理后直接返回至外部主机;第二类是只需要安全芯片进行密钥管理和非对称密码运算处理的数据,这类数据通过FPGA芯片转发至安全芯片进行处理,在安全芯片处理后又通过FPGA芯片返回至外部主机;第三类是需要FPGA芯片和安全芯片共同处理的数据,这类数据先经过FPGA芯片处理后传输至安全芯片,安全芯片对摘要运算和对称密码运算处理后数据进行密钥管理和非对称密码运算处理后通过FPGA芯片返回至外部主机。
可以理解,当数据仅需要进行高速的摘要运算和对称密码运算处理时,则通过FPGA芯片即可;当数据仅需要进行密钥管理和非对称密码运算处理时,则需要FPGA芯片将要处理的数据传输至安全芯片进行相应处理,FPGA芯片仅进行数据传输,不对数据进行相关密码运算处理;当数据既需要进行高速的摘要运算和对称密码运算处理,又需要进行密钥管理和非对称密码运算处理时,则首先通过FPGA芯片进行相应运算处理,再通过安全芯片进行相应运算处理。
综上所述,外部主机将封装后的数据通过USB接口传输至安全芯片进行密钥管理、对称密码运算和非对称密码运算处理,以及安全芯片将处理后的数据通过USB接口返回至外部主机进行解析处理,使得外部主机使用USB自定义设备驱动通过USB接口访问miniPCIE密码卡,其数据传输能力强,可提升整体对称运算性能;
外部主机将组装后的数据通过PCI-E接口传输至FPGA芯片进行高速的摘要运算和对称密码运算处理,在需要时,FPGA芯片还通过SPI接口将数据传输至安全芯片进行密钥管理和非对称密码运算处理;FPGA芯片将进行摘要运算和对称密码运算处理后的数据以及获取到的安全芯片处理后的数据通过PCI-E接口返回至外部主机进行解析处理,使得密码卡性能得到充分发挥,通过PCI-E接口访问时,充分利用FPGA的超强并发运算能力、PCIE接口的超强传输能力;
对于安全芯片提供的高速非对称运算,瓶颈在于IO耗时;本发明在外部主机与mini PCIE密码卡的安全芯片之间进行通信时的独立两个通信通道,外部主机种的多任务可以分别通过FPGA的SPI接口和USB接口访问mini PCIE密码卡的安全芯片,可有效减少安全芯片的IO占比,比单一物理接口更能发挥高性能非对称运算能力。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种mini PCIE密码卡,其特征在于,所述mini PCIE密码卡包括FPGA芯片、安全芯片和第一物理噪声源芯片、第二物理噪声源芯片,以及用于与外部主机通信连接的PCI-E接口和USB接口;
所述FPGA芯片,通过所述PCI-E接口与外部主机进行通信连接,通过SPI接口与所述安全芯片进行通信连接,以构成第一通信信道;
所述第一通信信道用于实现:获取外部主机组装后的数据,所述FPGA芯片进行摘要运算和对称密码运算处理后返回至外部主机;所述安全芯片对接收到的数据进行密钥管理和非对称密码运算处理,通过所述FPGA芯片将处理后的数据返回至外部主机;
所述安全芯片,通过所述USB接口与外部主机进行通信连接,以构成第二通信信道;
所述第二通信信道用于实现:获取外部主机封装后的数据,所述安全芯片进行密钥管理、对称密码运算和非对称密码运算处理后返回至外部主机;
所述第一物理噪声源芯片和所述第二物理噪声源芯片,分别与所述FPGA芯片进行通信连接,用于向所述FPGA芯片提供随机数。
2.一种数据通信系统,其特征在于,包括外部主机和权利要求1所述的mini PCIE密码卡;所述外部主机支持通过自定义的设备驱动,选择通过PCI-E接口对应的第一通信信道和USB接口对应的第二通信信道,同时与所述mini PCIE密码卡进行通信;或,选择通过PCI-E接口对应的第一通信信道或USB接口对应的第二通信信道与所述mini PCIE密码卡进行通信;所述自定义的设备驱动包括USB设备驱动和PCIE设备驱动。
3.根据权利要求2所述的数据通信系统,其特征在于,所述外部主机采用自定义的USB设备驱动通过USB接口与所述安全芯片进行通信时,采用一写一读的方式进行数据传输;
所述外部主机采用自定义的PCIE设备驱动通过PCI-E接口与所述FPGA芯片、所述安全芯片进行通信时,采用BAR空间地址映射和DMA方式进行数据传输。
4.根据权利要求3所述的数据通信系统,其特征在于,所述外部主机采用自定义的USB设备驱动通过USB接口对应的第二通信信道与mini PCIE密码卡进行通信过程中,采用一写一读的方式进行数据传输时,执行:
所述外部主机对数据进行封装后,采用自定义的USB设备驱动,通过USB接口将数据一次写入至所述安全芯片中,所述安全芯片对接收到的数据进行密钥管理、对称密码运算和非对称密码运算处理;在所述安全芯片处理后,采用所述自定义的USB设备驱动,通过USB接口将处理后的数据一次读取至所述外部主机进行解析处理。
5.根据权利要求3所述的数据通信系统,其特征在于,所述外部主机采用自定义的PCIE设备驱动通过PCI-E接口对应的第一通信信道与mini PCIE密码卡进行通信过程中,采用BAR空间地址映射和DMA方式进行数据传输时,执行:
所述外部主机采用自定义的PCIE设备驱动,通过PCI-E接口与所述FPGA芯片进行BAR空间地址映射、发送和接收缓冲区内存申请和地址映射后,将外部主机发送和接收缓冲区的首地址通过BAR空间发送给所述FPGA芯片,所述FPGA芯片接收到发送和接收缓冲区的首地址后,配置发送至所述FPGA芯片的DMA控制器和接收DMA控制器;
所述外部主机将组装数据包写入其发送缓冲区,并构造命令字写入FPGA芯片的BAR空间以通知所述接收DMA控制器启动;所述FPGA芯片根据命令字启动接收DMA控制器,通过PCI-E接口将外部主机发送缓冲区中的数据包转移至所述FPGA芯片,进行摘要运算和对称密码运算处理;
在需要进行密钥管理和非对称密码运算处理时,所述FPGA芯片还将数据包发送至所述安全芯片,并接收所述安全芯片处理后的数据包;
在对数据包进行运算处理后,所述FPGA芯片启动发送DMA控制器,将处理后的数据包转移至外部主机的接收缓冲区进行解析处理。
6.根据权利要求2所述的数据通信系统,其特征在于,所述外部主机设置mini PCI-E插槽,所述mini PCI-E插槽包括USB接口和PCI-E接口,用于提供连接外部主机与mini PCIE密码卡之间的物理接口;所述mini PCIE密码卡的FPGA芯片支持多节点传输,进行数据的并行传输和并行处理。
7.一种数据通信方法,其特征在于,所述数据通信方法包括:配置过程和工作过程;
配置过程:
配置权利要求1所述的mini PCIE密码卡的FPGA芯片通过PCI-E接口与外部主机进行通信连接,以及通过SPI接口与安全芯片进行通信连接,以建立第一通信信道;
配置权利要求1所述的mini PCIE密码卡的安全芯片通过USB接口与外部主机进行通信连接,以建立第二通信信道;
配置第一物理噪声源芯片和第二物理噪声源芯片分别与所述FPGA芯片进行通信连接,以生成随机数,并发送至所述FPGA芯片;
工作过程:
所述外部主机通过自定义的设备驱动,选择通过PCI-E接口对应的第一通信信道和USB接口对应的第二通信信道,同时与所述mini PCIE密码卡进行通信;或,选择通过PCI-E接口对应的第一通信信道或USB接口对应的第二通信信道与所述mini PCIE密码卡进行通信;所述自定义的设备驱动包括USB设备驱动和PCIE设备驱动;
所述外部主机在选择通过PCI-E接口对应的第一通信信道,与所述mini PCIE密码卡进行通信时:所述外部主机将组装后的数据通过PCI-E接口传输至所述FPGA芯片,进行摘要运算和对称密码运算处理,并将摘要运算和对称密码运算处理后的数据,通过PCI-E接口返回至外部主机进行解析处理;在需要进行密钥管理和非对称密码运算处理时,所述FPGA芯片通过SPI接口将数据传输至所述安全芯片,并将获取到的所述安全芯片处理后的数据,通过PCI-E接口返回至外部主机进行解析处理;以及和/或
所述外部主机在选择通过USB接口对应的第二通信信道,与所述mini PCIE密码卡进行通信时:所述外部主机将封装后的数据通过USB接口传输至所述安全芯片,进行密钥管理、对称密码运算和非对称密码运算处理,并将所述安全芯片处理后的数据,通过USB接口返回至所述外部主机进行解析处理。
8.根据权利要求7所述的数据通信方法,其特征在于,所述外部主机通过自定义的设备驱动选择通过USB接口、PCI-E接口同时与所述mini PCIE密码卡进行通信时:所述外部主机采用自定义的PCIE设备驱动,通过PCI-E接口对应的第一通信信道与mini PCIE密码卡进行通信过程中,采用BAR空间地址映射和DMA方式进行数据传输;所述外部主机采用自定义的USB设备驱动,通过USB接口对应的第二通信信道与mini PCIE密码卡进行通信过程中,采用一写一读的方式进行数据传输。
9.根据权利要求8所述的密码卡的通信方法,其特征在于,所述外部主机采用自定义的USB设备驱动通过USB接口对应的第二通信信道与mini PCIE密码卡进行通信过程中,采用一写一读的方式进行数据传输时,执行:所述外部主机对数据进行封装后,采用自定义的USB设备驱动,通过USB接口将数据一次写入至所述安全芯片中,所述安全芯片对接收到的数据进行密钥管理、对称密码运算和非对称密码运算处理;在所述安全芯片处理后,采用所述自定义的USB设备驱动,通过USB接口将处理后的数据一次读取至所述外部主机进行解析处理。
10.根据权利要求8所述的密码卡的通信方法,其特征在于,所述外部主机采用自定义的PCIE设备驱动通过PCI-E接口对应的第一通信信道与mini PCIE密码卡进行通信过程中,采用BAR空间地址映射和DMA方式进行数据传输时,执行:
所述外部主机采用自定义的PCIE设备驱动,通过PCI-E接口与所述FPGA芯片进行BAR空间地址映射、发送和接收缓冲区内存申请和地址映射后,将外部主机发送和接收缓冲区的首地址通过BAR空间发送给所述FPGA芯片,所述FPGA芯片接收到发送和接收缓冲区的首地址后,配置发送至所述FPGA芯片的DMA控制器和接收DMA控制器;
所述外部主机将组装数据包写入其发送缓冲区,并构造命令字写入FPGA芯片的BAR空间以通知所述接收DMA控制器启动;所述FPGA芯片根据命令字启动接收DMA控制器,通过PCI-E接口将外部主机发送缓冲区中的数据包转移至所述FPGA芯片,进行摘要运算和对称密码运算处理;
在需要进行密钥管理和非对称密码运算处理时,所述FPGA芯片还将数据包发送至所述安全芯片,并接收所述安全芯片处理后的数据包;
在对数据包进行运算处理后,所述FPGA芯片启动发送DMA控制器,将处理后的数据包转移至外部主机的接收缓冲区进行解析处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010433424.2A CN111625851B (zh) | 2020-05-21 | 2020-05-21 | 一种mini PCIE密码卡、数据通信系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010433424.2A CN111625851B (zh) | 2020-05-21 | 2020-05-21 | 一种mini PCIE密码卡、数据通信系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625851A CN111625851A (zh) | 2020-09-04 |
CN111625851B true CN111625851B (zh) | 2022-02-11 |
Family
ID=72271027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010433424.2A Active CN111625851B (zh) | 2020-05-21 | 2020-05-21 | 一种mini PCIE密码卡、数据通信系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625851B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880257A (zh) * | 2022-03-28 | 2022-08-09 | 中安云科科技发展(山东)有限公司 | 一种m.2接口的密码卡 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6883099B2 (en) * | 2001-01-04 | 2005-04-19 | Troika Networks, Inc. | Secure virtual interface |
CN105373506B (zh) * | 2015-12-14 | 2018-10-19 | 天津光电通信技术有限公司 | 一种基于pcie总线的usb接口及实现方法 |
CN108075882A (zh) * | 2016-11-14 | 2018-05-25 | 航天信息股份有限公司 | 密码卡及其加解密方法 |
CN107977333A (zh) * | 2017-12-04 | 2018-05-01 | 山东渔翁信息技术股份有限公司 | 一种密码卡及通信的方法 |
CN108243009A (zh) * | 2018-01-18 | 2018-07-03 | 郑州云海信息技术有限公司 | 一种基于fpga和密码芯片的tpcm板卡 |
-
2020
- 2020-05-21 CN CN202010433424.2A patent/CN111625851B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111625851A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101501660B (zh) | 因特网连接交换机和因特网连接系统 | |
CN112422453B (zh) | 一种报文处理的方法、装置、介质及设备 | |
US7954723B2 (en) | Method for routing incoming and outgoing data in an NFC chipset | |
CN102724035B (zh) | 一种加密卡的加解密方法 | |
CN112052483B (zh) | 一种密码卡的数据通信系统及方法 | |
EP4155925A1 (en) | Data transmission method, processor system, and memory access system | |
CN112329038B (zh) | 一种基于usb接口的数据加密控制系统及芯片 | |
CN112035900B (zh) | 一种高性能密码卡以及其通信方法 | |
US20070288938A1 (en) | Sharing data between partitions in a partitionable system | |
CN112035899B (zh) | 一种基于密码卡的数据通信系统及方法 | |
CN111625851B (zh) | 一种mini PCIE密码卡、数据通信系统及方法 | |
CN109104275A (zh) | 一种hsm设备 | |
CN101452430B (zh) | 多处理器之间的通信方法与包括多处理器的通信装置 | |
CN112565113A (zh) | 多虚拟机间的网卡共享系统、方法、装置、设备及介质 | |
CN115622696A (zh) | 一种服务器、数字芯片及其对称加解密装置 | |
KR100799305B1 (ko) | 다중 암호엔진을 사용하는 고성능 암호화 장치 | |
CN113703843B (zh) | 一种寄存器数据处理方法、装置及存储器 | |
CN110765501A (zh) | 一种加密u盘 | |
CN112116054A (zh) | 一种多芯片集成卡 | |
CN1234079C (zh) | 高速信息安全处理器 | |
CN113422754A (zh) | 数据处理方法和装置、电子设备及计算机可读存储介质 | |
CN107562686B (zh) | 信息处理方法和装置 | |
CN112463682B (zh) | 一种基于模块计算机实现多设备访问的系统和方法 | |
KR20030083100A (ko) | 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법 | |
CN110765497A (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 |