CN112035899B - 一种基于密码卡的数据通信系统及方法 - Google Patents
一种基于密码卡的数据通信系统及方法 Download PDFInfo
- Publication number
- CN112035899B CN112035899B CN202010851154.7A CN202010851154A CN112035899B CN 112035899 B CN112035899 B CN 112035899B CN 202010851154 A CN202010851154 A CN 202010851154A CN 112035899 B CN112035899 B CN 112035899B
- Authority
- CN
- China
- Prior art keywords
- register
- queue
- cryptographic
- controller
- operation unit
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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 cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出一种基于密码卡的数据通信系统,包括通过PCI‑E接口物理连接的主机和密码卡,所述密码卡包括密码算法运算单元、主处理器单元和DMA控制器,所述主机和所述密码卡之间设置有命令逻辑通道和运算逻辑通道;所述主机,用于采用所述命令逻辑通道,通过空间映射的方式与所述主处理器单元进行管理类数据的交互,以及对所述DMA控制器进行配置;所述主机,还用于采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码算法运算单元进行密码运算类数据的交互。本发明还提供一种基于密码卡的数据通信方法;本发明能够通过命令逻辑通道和运算逻辑通道实现管理类和密码运算类数据的传输,且有效利用DMA、环形队列的方式,提高主机和密码卡之间的数据传输效率。
Description
技术领域
本发明涉及密码卡技术领域,具体涉及一种基于密码卡的数据通信系统及方法。
背景技术
如今网络上信息安全问题逐渐成为人们关注的焦点,而加密技术是解决安全问题的有效手段;加密技术主要有两种,软件加密和硬件加密。软件加密需要计算机的全程参与,具有消耗大量的系统资源、加密速度慢和容易被破解等缺点;而硬件加密具有速度快、保密性强等特点,因此硬件加密被广泛采用。硬件加密基本上采用密码卡的形式,密码卡具有成本低、性能高的特点。
密码卡是为各类安全平台提供加密服务的专用插卡式密码设备。它以应用程序接口的方式为计算机应用系统提供各种安全保密服务、包括数据加密、数字签名、信息完整性验证、身份认证和访问控制等,主要应用于电子政务、电子商务、电子金融等行业。目前,主机与密码卡之间可采用DMA方式进行数据包的传输来实现密码相关处理,然而在实际的数据传输中,主机和密码卡需要传输多个数据包或者传输数据由多部分组成,这些数据存放的地址可能不连续,这样需要多次设置和启动DMA,从而影响整体的传输效率,因此如何有效利用DMA的方式,提高主机和密码卡之间的数据传输效率是目前急需解决的问题。
发明内容
本发明针对上述问题,有必要提供一种基于密码卡的数据通信系统及方法,能够有效利用DMA的方式,提高主机和密码卡之间的数据传输效率。
本发明第一方面提出一种基于密码卡的数据通信系统,包括通过PCI-E接口物理连接的主机和密码卡,所述密码卡包括密码算法运算单元、主处理器单元和DMA控制器,
所述主机和所述密码卡之间设置有命令逻辑通道和运算逻辑通道;
所述主机,用于采用所述命令逻辑通道,通过空间映射的方式与所述主处理器单元进行管理类数据的交互,以及对所述DMA控制器进行配置;
所述主机,还用于采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码算法运算单元进行密码运算类数据的交互。
进一步的,所述主机的内存中设置有环形发送队列缓冲区和环形接收队列缓冲区,所述DMA控制器中设置有发送控制器和接收控制器,所述发送控制器和所述接收控制器分别与所述密码运算单元连接;
所述接收控制器,用于采用所述运算逻辑通道,以请求数据包的形式从所述环形发送队列缓冲区搬运所述主机的请求报文,并转发至所述密码运算单元,以进行解析和密码运算;
所述发送控制器,用于从所述密码运算单元接收响应报文,并采用所述运算逻辑通道,以响应数据包的形式将所述密码运算单元的响应报文搬运至所述环形接收队列缓冲区,供所述主机解析和读取。
进一步的,所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述主处理器单元和所述DMA控制器;
所述主机,采用所述命令逻辑通道,将其内存中要发送的管理类指令数据和DMA配置数据通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器;
所述主处理器单元通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取管理类指令数据;以及通过片内总线将其对所述管理类指令数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果;
所述DMA控制器,通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取DMA配置数据;以及通过片内总线将其对所述DMA配置数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果。
进一步的,所述发送控制器内置有接收队列基地址寄存器、接收队列头寄存器、接收队列尾寄存器和接收队列单包大小寄存器;所述接收控制器内置有发送队列基地址寄存器、发送队列头寄存器、发送队列尾寄存器和发送队列单包大小寄存器;
所述发送队列基地址寄存器用于存储所述环形发送队列缓冲区的首地址值,所述发送队列单包大小寄存器用于存储单个请求数据包内允许包含的请求报文的最大个数;所述接收队列基地址寄存器用于存储所述环形接收队列缓冲区的首地址值,所述接收队列单包大小寄存器用于存储单个响应数据包内允许包含的响应报文的最大个数;
所述发送队列头寄存器用于存储所述环形发送队列缓冲区累计待发送的请求报文个数,所述发送队列尾寄存器用于存储所述接收控制器累计接收的请求报文个数;所述接收队列头寄存器用于存储所述发送控制器累计待发送的响应报文个数,所述发送队列尾寄存器用于存储所述环形接收队列缓冲区累计接收的响应报文个数;
所述接收控制器根据发送队列头寄存器、发送队列尾寄存器的值进行启动,以接收外界主机下发的请求数据包;所述发送控制器根据所述接收队列头寄存器和所述接收队列尾寄存器的值进行启动,以向外部主机发送响应数据包。
进一步的,所述DMA配置数据包括所述环形发送队列缓冲区的首地址值、所述环形接收队列缓冲区的首地址值、单个请求数据包内允许包含的请求报文的最大个数和单个响应数据包内允许包含的响应报文的最大个数;
所述DMA控制器将所述环形发送队列缓冲区的首地址值写入所述接收控制器内置的发送队列基地址寄存器,将所述环形接收队列缓冲区的首地址值写入所述发送控制器内置的接收队列基地址寄存器,将单个请求数据包内允许包含的请求报文的最大个数写入所述接收控制器内置的发送队列单包大小寄存器,将单个响应数据包内允许包含的响应报文的最大个数写入所述发送控制器内置的接收队列单包大小寄存器。
本发明第二方面还一种基于密码卡的数据通信方法,包括通过PCI-E接口物理连接的主机和密码卡,所述主机和所述密码卡之间设置有命令逻辑通道和运算逻辑通道,
所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述密码卡的主处理器单元进行管理类数据的交互;
所述主机,采用所述命令逻辑通道,通过空间映射的方式对所述密码卡的DMA控制器进行配置;
所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码算法运算单元进行密码运算类数据的交互。
进一步的,所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述密码卡的主处理器单元进行管理类数据的交互,具体包括:
所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述主处理器单元;
所述主机,采用所述命令逻辑通道,将其内存中要发送的管理类指令数据通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器;所述管理类指令数据包括密钥管理、身份认证、密码卡配置信息;
所述主处理器单元通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取管理类指令数据;以及通过片内总线将其对所述管理类指令数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果。
进一步的,所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码算法运算单元进行密码运算类数据的交互,具体包括:
所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述DMA控制器;
所述主机,采用所述命令逻辑通道,将其内存中要发送的DMA配置数据通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器;所述DMA配置数据包括所述环形发送队列缓冲区的首地址值、所述环形接收队列缓冲区的首地址值、单个请求数据包内允许包含的请求报文的最大个数、单个响应数据包内允许包含的响应报文的最大个数;
所述DMA控制器通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取所述环形发送队列缓冲区的首地址值写入所述接收控制器内置的发送队列基地址寄存器,读取所述环形接收队列缓冲区的首地址值写入所述发送控制器内置的接收队列基地址寄存器,读取单个请求数据包内允许包含的请求报文的最大个数写入所述接收控制器内置的发送队列单包大小寄存器,读取单个响应数据包内允许包含的响应报文的最大个数写入所述发送控制器内置的接收队列单包大小寄存器;
所述DMA控制器通过片内总线将其对所述DMA配置数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;
所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果。
进一步的,所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码算法运算单元进行密码运算类数据的交互,具体包括:
所述主机构造请求数据包,并采用所述命令逻辑通道,将所述环形发送队列缓冲区本次待发送的请求报文个数通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述密码卡的密码算法运算单元的寄存器读取待发送的地址数据的个数发送给所述发送队列尾寄存器进行累计存储;
所述发送队列尾寄存器的值根据所述主机发送的请求报文的个数增加相应的值后,所述DMA控制器通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值判断所述请求数据包的大小,将获得的请求数据包的大小与所述发送队列单包大小寄存器的值进行比较,并在获得的请求数据包的大小大于所述发送队列单包大小寄存器的值时,启动所述接收控制器;所述接收控制器,采用所述运算逻辑通道,以请求数据包的形式从所述环形发送队列缓冲区搬运所述主机的请求报文,并转发至所述密码运算单元;
所述DMA控制器在所述接收控制器从所述环形发送队列缓冲区搬运请求数据包后,根据实际接收的请求报文的个数将所述发送队列头寄存器的值增加相应的值;
在密码运算完成后,所述密码算法运算单元将生成的响应报文发送至所述发送控制器,构造响应数据包,所述DMA控制器根据所述发送控制器内响应报文的个数将所述接收队列尾寄存器的值增加相应的值后,通过计算所述接收队列头寄存器和所述接收队列尾寄存器的差值判断所述响应数据包的大小,将获得的响应数据包的大小与所述接收队列单包大小寄存器的值进行比较,并在获得的响应数据包的大小大于所述接收队列单包大小寄存器的值时,启动所述发送控制器;所述发送控制器采用所述运算逻辑通道,以响应数据包的形式将所述密码运算单元的响应报文搬运至所述环形接收队列缓冲区;
所述主机采用所述命令逻辑通道,将所述环形接收队列缓冲区本次实际接收的响应报文个数通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述密码卡的密码算法运算单元的寄存器读取所述环形接收队列缓冲区本次实际接收的响应报文个数发送给所述接收队列头寄存器进行累计存储。
进一步的,所述主机在构造请求数据包之前,获取所述接收控制器内置的发送队列头寄存器和发送队列尾寄存器的值,通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值,判断是否允许构造所述请求报文地址数据包,当所述发送队列头寄存器和所述发送队列尾寄存器的差值不等于0时,允许构造请求数据包,否则不允许构造请求数据包。
本发明具有突出的实质性特点和显著的进步,具体的说:
(1)本发明在主机和密码卡之间设置命令逻辑通道和运算逻辑通道,其中,主机采用命令逻辑通道与主处理器单元、密码算法运算单元进行密码管理类数据的交互;以及主机采用运算逻辑通道与密码算法运算单元进行密码运算类数据的交互;通过设置两种通道能够有效实现管理类的低速数据通信和密码运算类的高速数据通信,避免由密码算法运算单元全部实现管理类和运算类的数据,减轻密码算法运算单元的工作量,提高数据传输效率;
(2)在主机的内存中设置发送队列缓冲区和接收队列缓冲区;在密码卡的DMA控制器中设置发送控制器和接收控制器;主机采用命令逻辑通道配置相应的寄存器,且采用环形队列机制,以提高实现主机和密码卡之间整体的传输效率。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出本发明一种基于密码卡的数据通信系统示意图;
图2示出本发明一种基于密码卡的数据通信方法中单个环形队列工作原理图。
图3示出本发明一种基于密码卡的数据通信方法中主机与密码卡采用DMA方式通信的示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
如图1所示,本发明第一方面提供一种基于密码卡的数据通信系统,包括通过PCI-E接口物理连接的主机和密码卡,所述密码卡包括密码算法运算单元、主处理器单元和DMA控制器,
所述主机和所述密码卡之间设置有命令逻辑通道和运算逻辑通道;
所述主机,用于采用所述命令逻辑通道,通过空间映射的方式与所述主处理器单元进行管理类数据的交互,以及对所述DMA控制器进行配置;
所述主机,还用于采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码算法运算单元进行密码运算类数据的交互。
进一步的,所述主机的内存中设置有环形发送队列缓冲区和环形接收队列缓冲区,所述DMA控制器中设置有发送控制器和接收控制器,所述发送控制器和所述接收控制器分别与所述密码运算单元连接;
所述接收控制器,用于采用所述运算逻辑通道,以请求数据包的形式从所述环形发送队列缓冲区搬运所述主机的请求报文,并转发至所述密码运算单元,以进行解析和密码运算;
所述发送控制器,用于从所述密码运算单元接收响应报文,并采用所述运算逻辑通道,以响应数据包的形式将所述密码运算单元的响应报文搬运至所述环形接收队列缓冲区,供所述主机解析和读取。
进一步的,所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述主处理器单元和所述DMA控制器;
所述主机,采用所述命令逻辑通道,将其内存中要发送的管理类指令数据和DMA配置数据通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器;
所述主处理器单元通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取管理类指令数据;以及通过片内总线将其对所述管理类指令数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果;
所述DMA控制器,通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取DMA配置数据;以及通过片内总线将其对所述DMA配置数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果。
进一步的,所述发送控制器内置有接收队列基地址寄存器、接收队列头寄存器、接收队列尾寄存器和接收队列单包大小寄存器;所述接收控制器内置有发送队列基地址寄存器、发送队列头寄存器、发送队列尾寄存器和发送队列单包大小寄存器;
所述发送队列基地址寄存器用于存储所述环形发送队列缓冲区的首地址值,所述发送队列单包大小寄存器用于存储单个请求数据包内允许包含的请求报文的最大个数;所述接收队列基地址寄存器用于存储所述环形接收队列缓冲区的首地址值,所述接收队列单包大小寄存器用于存储单个响应数据包内允许包含的响应报文的最大个数;
所述发送队列头寄存器用于存储所述环形发送队列缓冲区累计待发送的请求报文个数,所述发送队列尾寄存器用于存储所述接收控制器累计接收的请求报文个数;所述接收队列头寄存器用于存储所述发送控制器累计待发送的响应报文个数,所述发送队列尾寄存器用于存储所述环形接收队列缓冲区累计接收的响应报文个数;
所述接收控制器根据发送队列头寄存器、发送队列尾寄存器的值进行启动,以接收外界主机下发的请求数据包;所述发送控制器根据所述接收队列头寄存器和所述接收队列尾寄存器的值进行启动,以向外部主机发送响应数据包。
进一步的,所述DMA配置数据包括所述环形发送队列缓冲区的首地址值、所述环形接收队列缓冲区的首地址值、单个请求数据包内允许包含的请求报文的最大个数和单个响应数据包内允许包含的响应报文的最大个数;
所述DMA控制器将所述环形发送队列缓冲区的首地址值写入所述接收控制器内置的发送队列基地址寄存器,将所述环形接收队列缓冲区的首地址值写入所述发送控制器内置的接收队列基地址寄存器,将单个请求数据包内允许包含的请求报文的最大个数写入所述接收控制器内置的发送队列单包大小寄存器,将单个响应数据包内允许包含的响应报文的最大个数写入所述发送控制器内置的接收队列单包大小寄存器。
本发明第二方面还一种基于密码卡的数据通信方法,包括通过PCI-E接口物理连接的主机和密码卡,所述主机和所述密码卡之间设置有命令逻辑通道和运算逻辑通道,
所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述密码卡的主处理器单元进行管理类数据的交互;
所述主机,采用所述命令逻辑通道,通过空间映射的方式对所述密码卡的DMA控制器进行配置;
所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码算法运算单元进行密码运算类数据的交互。
进一步的,所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述主处理器单元;
所述主机,采用所述命令逻辑通道,将其内存中要发送的管理类指令数据通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器;所述管理类指令数据包括密钥管理、身份认证、密码卡配置信息;
所述主处理器单元通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取管理类指令数据;以及通过片内总线将其对所述管理类指令数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果。
进一步的,所述主机,采用所述命令逻辑通道,通过空间映射的方式对所述密码卡的DMA控制器进行配置,具体包括:
所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述DMA控制器;
所述主机,采用所述命令逻辑通道,将其内存中要发送的DMA配置数据通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器;所述DMA配置数据包括所述环形发送队列缓冲区的首地址值、所述环形接收队列缓冲区的首地址值、单个请求数据包内允许包含的请求报文的最大个数、单个响应数据包内允许包含的响应报文的最大个数;
所述DMA控制器通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取所述环形发送队列缓冲区的首地址值写入所述接收控制器内置的发送队列基地址寄存器,读取所述环形接收队列缓冲区的首地址值写入所述发送控制器内置的接收队列基地址寄存器,读取单个请求数据包内允许包含的请求报文的最大个数写入所述接收控制器内置的发送队列单包大小寄存器,读取单个响应数据包内允许包含的响应报文的最大个数写入所述发送控制器内置的接收队列单包大小寄存器;
所述DMA控制器通过片内总线将其对所述DMA配置数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;
所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果。
在实际的应用中,为了主机和密码卡整体数据传输速率,密码卡使用DMA 方式进行数据传输,并采用环形队列(RING)机制动态管理主机端的内存,密码卡内部设置了128个RING 环形队列管理器,每个RING的工作原理相同,单个RING机制工作原理如图2所示,密码卡的每个 RING 有两组寄存器(基地址寄存器、头寄存器、尾寄存器和单包大小寄存器),分别来管理主机端的发送队列缓冲区和接收队列缓冲区。发送队列缓冲区存放的是req数据包(请求数据包),接收队列缓冲区存放的是resp数据包(响应数据包)。发送队列缓冲区和接收队列缓冲区由主机来申请,主机通过 BAR 空间映射方式把发送队列缓冲区的首地址写入到密码卡上接收控制器的 rx_ring_base_addr 寄存器(接收队列基地址寄存器)中,把接收队列缓冲区的首地址写入到密码卡发送控制器的 tx_ring_base_addr 寄存器(发送队列基地址寄存器)中。
进一步的,如图3所示,所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码算法运算单元进行密码运算类数据的交互,具体包括:
所述主机构造请求数据包,并采用所述命令逻辑通道,将所述环形发送队列缓冲区本次待发送的请求报文个数通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述密码卡的密码算法运算单元的寄存器读取待发送的地址数据的个数发送给所述发送队列尾寄存器进行累计存储;
所述发送队列尾寄存器的值根据所述主机发送的请求报文的个数增加相应的值后,所述DMA控制器通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值判断所述请求数据包的大小,将获得的请求数据包的大小与所述发送队列单包大小寄存器的值进行比较,并在获得的请求数据包的大小大于所述发送队列单包大小寄存器的值时,启动所述接收控制器;所述接收控制器,采用所述运算逻辑通道,以请求数据包的形式从所述环形发送队列缓冲区搬运所述主机的请求报文,并转发至所述密码运算单元;
所述DMA控制器在所述接收控制器从所述环形发送队列缓冲区搬运请求数据包后,根据实际接收的请求报文的个数将所述发送队列头寄存器的值增加相应的值;
在密码运算完成后,所述密码算法运算单元将生成的响应报文发送至所述发送控制器,构造响应数据包,所述DMA控制器根据所述发送控制器内响应报文的个数将所述接收队列尾寄存器的值增加相应的值后,通过计算所述接收队列头寄存器和所述接收队列尾寄存器的差值判断所述响应数据包的大小,将获得的响应数据包的大小与所述接收队列单包大小寄存器的值进行比较,并在获得的响应数据包的大小大于所述接收队列单包大小寄存器的值时,启动所述发送控制器;所述发送控制器采用所述运算逻辑通道,以响应数据包的形式将所述密码运算单元的响应报文搬运至所述环形接收队列缓冲区;
所述主机采用所述命令逻辑通道,将所述环形接收队列缓冲区本次实际接收的响应报文个数通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述密码卡的密码算法运算单元的寄存器读取所述环形接收队列缓冲区本次实际接收的响应报文个数发送给所述接收队列头寄存器进行累计存储。
进一步的,所述主机在构造请求数据包之前,获取所述接收控制器内置的发送队列头寄存器和发送队列尾寄存器的值,通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值,判断是否允许构造所述请求报文地址数据包,当所述发送队列头寄存器和所述发送队列尾寄存器的差值不等于0时,允许构造请求数据包,否则不允许构造请求数据包。
本发明在主机和密码卡之间设置命令逻辑通道和运算逻辑通道,其中,主机采用命令逻辑通道与主处理器单元、密码算法运算单元进行密码管理类数据的交互;以及主机采用运算逻辑通道与密码算法运算单元进行密码运算类数据的交互;通过设置两种通道能够有效实现管理类的低速数据通信和密码运算类的高速数据通信,避免由密码算法运算单元全部实现管理类和运算类的数据,减轻密码算法运算单元的工作量,提高数据传输效率;
本发明在主机的内存中设置发送队列缓冲区和接收队列缓冲区;在密码卡的DMA控制器中设置发送控制器和接收控制器;主机采用命令逻辑通道配置相应的寄存器,且采用环形队列机制,以提高实现主机和密码卡之间整体的传输效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于密码卡的数据通信系统,其特征在于,包括通过PCI-E接口物理连接的主机和密码卡,所述密码卡包括密码算法运算单元、主处理器单元和DMA控制器,所述主机和所述密码卡之间设置有命令逻辑通道和运算逻辑通道;
所述主机,用于采用所述命令逻辑通道,通过空间映射的方式与所述主处理器单元进行管理类数据的交互,以及对所述DMA控制器进行配置;
所述主机,还用于采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码算法运算单元进行密码运算类数据的交互;
所述主机的内存中设置有环形发送队列缓冲区和环形接收队列缓冲区,所述DMA控制器中设置有发送控制器和接收控制器,所述发送控制器和所述接收控制器分别与所述密码算法运算单元连接;
所述接收控制器,用于采用所述运算逻辑通道,以请求数据包的形式从所述环形发送队列缓冲区搬运所述主机的请求报文,并转发至所述密码算法运算单元,以进行解析和密码运算;
所述发送控制器,用于从所述密码算法运算单元接收响应报文,并采用所述运算逻辑通道,以响应数据包的形式将所述密码算法运算单元的响应报文搬运至所述环形接收队列缓冲区,供所述主机解析和读取。
2.根据权利要求1所述的数据通信系统,其特征在于,所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述主处理器单元和所述DMA控制器;
所述主机,采用所述命令逻辑通道,将其内存中要发送的管理类指令数据和DMA配置数据通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器;
所述主处理器单元通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取管理类指令数据;以及通过片内总线将其对所述管理类指令数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果;
所述DMA控制器,通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取DMA配置数据;以及通过片内总线将其对所述DMA配置数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果。
3.根据权利要求2所述的数据通信系统,其特征在于,
所述发送控制器内置有接收队列基地址寄存器、接收队列头寄存器、接收队列尾寄存器和接收队列单包大小寄存器;所述接收控制器内置有发送队列基地址寄存器、发送队列头寄存器、发送队列尾寄存器和发送队列单包大小寄存器;
所述发送队列基地址寄存器用于存储所述环形发送队列缓冲区的首地址值,所述发送队列单包大小寄存器用于存储单个请求数据包内允许包含的请求报文的最大个数;所述接收队列基地址寄存器用于存储所述环形接收队列缓冲区的首地址值,所述接收队列单包大小寄存器用于存储单个响应数据包内允许包含的响应报文的最大个数;所述发送队列头寄存器用于存储所述环形发送队列缓冲区累计待发送的请求报文个数,所述发送队列尾寄存器用于存储所述接收控制器累计接收的请求报文个数;所述接收队列头寄存器用于存储所述发送控制器累计待发送的响应报文个数,所述接收队列尾寄存器用于存储所述环形接收队列缓冲区累计接收的响应报文个数;
所述接收控制器根据发送队列头寄存器、发送队列尾寄存器的值进行启动,以接收外界主机下发的请求数据包;所述发送控制器根据所述接收队列头寄存器和所述接收队列尾寄存器的值进行启动,以向外部主机发送响应数据包。
4.根据权利要求3所述的数据通信系统,其特征在于,所述DMA配置数据包括所述环形发送队列缓冲区的首地址值、所述环形接收队列缓冲区的首地址值、单个请求数据包内允许包含的请求报文的最大个数和单个响应数据包内允许包含的响应报文的最大个数;
所述DMA控制器将所述环形发送队列缓冲区的首地址值写入所述接收控制器内置的发送队列基地址寄存器,将所述环形接收队列缓冲区的首地址值写入所述发送控制器内置的接收队列基地址寄存器,将单个请求数据包内允许包含的请求报文的最大个数写入所述接收控制器内置的发送队列单包大小寄存器,将单个响应数据包内允许包含的响应报文的最大个数写入所述发送控制器内置的接收队列单包大小寄存器。
5.一种基于密码卡的数据通信方法,其特征在于,包括通过PCI-E接口物理连接的主机和密码卡,所述主机和所述密码卡之间设置有命令逻辑通道和运算逻辑通道,所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述密码卡的主处理器单元进行管理类数据的交互;
所述主机,采用所述命令逻辑通道,通过空间映射的方式对所述密码卡的DMA控制器进行配置;
所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与密码算法运算单元进行密码运算类数据的交互;
所述主机的内存中设置有环形发送队列缓冲区和环形接收队列缓冲区,所述DMA控制器中设置有发送控制器和接收控制器,所述发送控制器和所述接收控制器分别与所述密码算法运算单元连接;
所述接收控制器,用于采用所述运算逻辑通道,以请求数据包的形式从所述环形发送队列缓冲区搬运所述主机的请求报文,并转发至所述密码算法运算单元,以进行解析和密码运算;
所述发送控制器,用于从所述密码算法运算单元接收响应报文,并采用所述运算逻辑通道,以响应数据包的形式将所述密码算法运算单元的响应报文搬运至所述环形接收队列缓冲区,供所述主机解析和读取。
6.根据权利要求5所述的数据通信方法,其特征在于,所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述密码卡的主处理器单元进行管理类数据的交互,具体包括:所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述主处理器单元;
所述主机,采用所述命令逻辑通道,将其内存中要发送的管理类指令数据通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器;所述管理类指令数据包括密钥管理、身份认证、密码卡配置信息;
所述主处理器单元通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取管理类指令数据;以及通过片内总线将其对所述管理类指令数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果。
7.根据权利要求5所述的数据通信方法,其特征在于,所述主机,采用所述命令逻辑通道,通过空间映射的方式对所述密码卡的DMA控制器进行配置,具体包括:
所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述DMA控制器;
所述主机,采用所述命令逻辑通道,将其内存中要发送的DMA配置数据通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器;所述DMA配置数据包括所述环形发送队列缓冲区的首地址值、所述环形接收队列缓冲区的首地址值、单个请求数据包内允许包含的请求报文的最大个数、单个响应数据包内允许包含的响应报文的最大个数;
所述DMA控制器通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取所述环形发送队列缓冲区的首地址值写入所述接收控制器内置的发送队列基地址寄存器,读取所述环形接收队列缓冲区的首地址值写入所述发送控制器内置的接收队列基地址寄存器,读取单个请求数据包内允许包含的请求报文的最大个数写入所述接收控制器内置的发送队列单包大小寄存器,读取单个响应数据包内允许包含的响应报文的最大个数写入所述发送控制器内置的接收队列单包大小寄存器;
所述DMA控制器通过片内总线将其对所述DMA配置数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;
所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果。
8.根据权利要求7所述的数据通信方法,其特征在于,所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码算法运算单元进行密码运算类数据的交互,具体包括:
所述主机构造请求数据包,并采用所述命令逻辑通道,将所述环形发送队列缓冲区本次待发送的请求报文个数通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述密码卡的密码算法运算单元的寄存器读取待发送的地址数据的个数发送给所述发送队列尾寄存器进行累计存储;
所述发送队列尾寄存器的值根据所述主机发送的请求报文的个数增加相应的值后,所述DMA控制器通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值判断所述请求数据包的大小,将获得的请求数据包的大小与所述发送队列单包大小寄存器的值进行比较,并在获得的请求数据包的大小大于所述发送队列单包大小寄存器的值时,启动所述接收控制器;所述接收控制器,采用所述运算逻辑通道,以请求数据包的形式从所述环形发送队列缓冲区搬运所述主机的请求报文,并转发至所述密码算法运算单元;
所述DMA控制器在所述接收控制器从所述环形发送队列缓冲区搬运请求数据包后,根据实际接收的请求报文的个数将所述发送队列头寄存器的值增加相应的值;
在密码运算完成后,所述密码算法运算单元将生成的响应报文发送至所述发送控制器,构造响应数据包,所述DMA控制器根据所述发送控制器内响应报文的个数将所述接收队列尾寄存器的值增加相应的值后,通过计算所述接收队列头寄存器和所述接收队列尾寄存器的差值判断所述响应数据包的大小,将获得的响应数据包的大小与所述接收队列单包大小寄存器的值进行比较,并在获得的响应数据包的大小大于所述接收队列单包大小寄存器的值时,启动所述发送控制器;所述发送控制器采用所述运算逻辑通道,以响应数据包的形式将所述密码算法运算单元的响应报文搬运至所述环形接收队列缓冲区;
所述主机采用所述命令逻辑通道,将所述环形接收队列缓冲区本次实际接收的响应报文个数通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器,所述DMA 控制器通过片内总线从所述密码卡的密码算法运算单元的寄存器读取所述环形接收队列缓冲区本次实际接收的响应报文个数发送给所述接收队列头寄存器进行累计存储。
9.根据权利要求8所述的数据通信方法,其特征在于,所述主机在构造请求数据包之前,获取所述接收控制器内置的发送队列头寄存器和发送队列尾寄存器的值,通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值,判断是否允许构造所述请求报文地址数据包,当所述发送队列头寄存器和所述发送队列尾寄存器的差值不等于0时,允许构造请求数据包,否则不允许构造请求数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010851154.7A CN112035899B (zh) | 2020-08-21 | 2020-08-21 | 一种基于密码卡的数据通信系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010851154.7A CN112035899B (zh) | 2020-08-21 | 2020-08-21 | 一种基于密码卡的数据通信系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035899A CN112035899A (zh) | 2020-12-04 |
CN112035899B true CN112035899B (zh) | 2022-04-15 |
Family
ID=73580441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010851154.7A Active CN112035899B (zh) | 2020-08-21 | 2020-08-21 | 一种基于密码卡的数据通信系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035899B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546906B (zh) * | 2022-01-28 | 2023-06-23 | 郑州信大捷安信息技术股份有限公司 | 一种基于ring通信机制的数据交互方法和系统 |
CN117319092B (zh) * | 2023-11-29 | 2024-02-09 | 杭州海康威视数字技术股份有限公司 | 分布式密钥管理方法、装置、密码卡及系统 |
CN117521160B (zh) * | 2024-01-05 | 2024-03-19 | 中安网脉(北京)技术股份有限公司 | 一种sm2私钥授权码快速验证方法及其应用 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1825292A (zh) * | 2005-02-23 | 2006-08-30 | 华为技术有限公司 | 一种直接存储器存取装置及单通道双向数据交互实现方法 |
CN102662881A (zh) * | 2012-03-26 | 2012-09-12 | 深圳市朗科科技股份有限公司 | Usb互联设备和usb互联系统 |
CN102819799A (zh) * | 2012-07-26 | 2012-12-12 | 郑州信大捷安信息技术股份有限公司 | 基于U-Key的多通道安全认证系统及认证方法 |
CN109861974A (zh) * | 2018-12-25 | 2019-06-07 | 南瑞集团有限公司 | 一种数据加密传输装置及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010047473A1 (en) * | 2000-02-03 | 2001-11-29 | Realtime Data, Llc | Systems and methods for computer initialization |
US10599587B2 (en) * | 2016-11-29 | 2020-03-24 | The Government Of The United States, As Represented By The Secretary Of The Army | High latency channel and low latency channel |
-
2020
- 2020-08-21 CN CN202010851154.7A patent/CN112035899B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1825292A (zh) * | 2005-02-23 | 2006-08-30 | 华为技术有限公司 | 一种直接存储器存取装置及单通道双向数据交互实现方法 |
CN102662881A (zh) * | 2012-03-26 | 2012-09-12 | 深圳市朗科科技股份有限公司 | Usb互联设备和usb互联系统 |
CN102819799A (zh) * | 2012-07-26 | 2012-12-12 | 郑州信大捷安信息技术股份有限公司 | 基于U-Key的多通道安全认证系统及认证方法 |
CN109861974A (zh) * | 2018-12-25 | 2019-06-07 | 南瑞集团有限公司 | 一种数据加密传输装置及方法 |
Non-Patent Citations (2)
Title |
---|
A Fast Double-Buffering Strategy for Electrophysiological Data Transmission;Jing Sun 等;《2019 International Conference on Machine Learning, Big Data and Business Intelligence (MLBDBI)》;20200102;全文 * |
基于IP的调度系统双通道数据通信设计;张野 等;《计算机与数字工程》;20120427;第40卷(第2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112035899A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035899B (zh) | 一种基于密码卡的数据通信系统及方法 | |
EP3701690B1 (en) | Method, device, and system for offloading algorithms | |
CN112052483B (zh) | 一种密码卡的数据通信系统及方法 | |
CN109902043B (zh) | 一种基于fpga的国密算法加速处理系统 | |
CN106022080B (zh) | 一种基于PCIe接口的密码卡及该密码卡的数据加密方法 | |
CN100454321C (zh) | 带有数据存储和智能密钥的usb设备及其控制方法 | |
CN112035900B (zh) | 一种高性能密码卡以及其通信方法 | |
US11836262B2 (en) | Protection of communications between trusted execution environment and hardware accelerator utilizing enhanced end-to-end encryption and inter-context security | |
JPH10320191A (ja) | プログラム可能暗号処理システムおよび方法 | |
CN112329038B (zh) | 一种基于usb接口的数据加密控制系统及芯片 | |
WO2004021168A2 (en) | Apparatus for calculating and encryption | |
CN100550030C (zh) | 在便携式终端主机上添加可信平台的方法 | |
US20230071723A1 (en) | Technologies for establishing secure channel between i/o subsystem and trusted application for secure i/o data transfer | |
CN109104275A (zh) | 一种hsm设备 | |
CN116418522A (zh) | 一种基于虚拟化技术的云服务器密码机系统 | |
CN116048809B (zh) | 多芯粒异构安全芯片的任务处理方法及安全芯片装置 | |
CN114553411B (zh) | 用于分布式内存加密装置和用于分布式内存解密装置 | |
CN116070239A (zh) | 文件加密、解密方法、装置、设备及存储介质 | |
CN111625851B (zh) | 一种mini PCIE密码卡、数据通信系统及方法 | |
WO2023030475A1 (zh) | 报文处理的方法、装置以及系统 | |
US8855309B2 (en) | Apparatus and method for providing security service | |
CN110990122A (zh) | 一种虚拟机迁移方法和装置 | |
Lu et al. | A new secure communication framework for smart cards | |
US20230388791A1 (en) | Power saving method for lower power devices, electronic device and computer readable storage medium | |
KR101875093B1 (ko) | HTTPs 패킷분석 처리성능 향상 시스템 |
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 |