CN112052483B - 一种密码卡的数据通信系统及方法 - Google Patents

一种密码卡的数据通信系统及方法 Download PDF

Info

Publication number
CN112052483B
CN112052483B CN202010849940.3A CN202010849940A CN112052483B CN 112052483 B CN112052483 B CN 112052483B CN 202010849940 A CN202010849940 A CN 202010849940A CN 112052483 B CN112052483 B CN 112052483B
Authority
CN
China
Prior art keywords
register
address data
cryptographic
operation unit
address
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
Application number
CN202010849940.3A
Other languages
English (en)
Other versions
CN112052483A (zh
Inventor
彭金辉
雷宗华
王阳阳
陈万顺
习道彬
杨廷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Xinda Jiean Information Technology Co Ltd
Original Assignee
Zhengzhou Xinda Jiean Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhengzhou Xinda Jiean Information Technology Co Ltd filed Critical Zhengzhou Xinda Jiean Information Technology Co Ltd
Priority to CN202010849940.3A priority Critical patent/CN112052483B/zh
Publication of CN112052483A publication Critical patent/CN112052483A/zh
Application granted granted Critical
Publication of CN112052483B publication Critical patent/CN112052483B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (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控制器使用环形队列机制与所述密码卡的密码算法运算单元进行密码运算类数据的地址数据交互,并基于所述地址数据实现与所述密码算法运算单元之间的密码运算类数据交互。
进一步的,所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述密码卡的主处理器单元进行管理类数据的交互,以及对所述密码卡的DMA控制器进行配置,具体包括:
所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述主处理器单元;
所述主机,采用所述命令逻辑通道,将其内存中要发送的管理类指令数据和DMA配置数据通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器;所述管理类指令数据包括密钥管理、身份认证、密码卡配置信息;所述DMA配置数据包括所述环形发送队列缓冲区的首地址值、所述环形接收队列缓冲区的首地址值、单个请求报文地址数据包内允许包含的地址数据的最大个数、单个响应报文地址数据包内允许包含的地址数据的最大个数;
所述主处理器单元通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器里读取管理类指令数据;以及通过片内总线将其对所述管理类指令数据的执行结果发送至所述高性能密码卡的密码算法运算单元的寄存器;
所述DMA控制器通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器里读取所述环形发送队列缓冲区的首地址值写入所述接收控制器内置的发送队列基地址寄存器,读取所述环形接收队列缓冲区的首地址值写入所述发送控制器内置的接收队列基地址寄存器,读取单个请求报文地址数据包内允许包含的地址数据的最大个数写入所述接收控制器内置的发送队列单包大小寄存器,读取单个响应报文地址数据包内允许包含的地址数据的最大个数写入所述发送控制器内置的接收队列单包大小寄存器;
所述DMA控制器通过片内总线将其对所述DMA配置数据的执行结果发送至所述高性能密码卡的密码算法运算单元的寄存器;
所述主机采用所述命令逻辑通道,通过BAR空间映射从所述高性能密码卡的密码算法运算单元的寄存器中读取执行结果。
进一步的,所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码卡的密码算法运算单元进行密码运算类数据的地址数据交互,并基于所述地址数据实现与所述密码算法运算单元之间的密码运算类数据交互,具体包括:
所述主机获取所述接收控制器内置的发送队列头寄存器和发送队列尾寄存器的值,通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值,判断是否允许构造所述请求报文地址数据包,当所述发送队列头寄存器和所述发送队列尾寄存器的差值不等于0时,允许根据请求报文构造请求报文地址数据包,否则不允许构造请求报文地址数据包;
所述主机构造请求报文地址数据包,并采用所述命令逻辑通道,将所述环形发送队列缓冲区本次待发送的地址数据个数通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器读取待发送的地址数据的个数,并发送给所述发送队列尾寄存器进行累计存储;
所述发送队列尾寄存器的值根据所述主机发送的地址数据的个数增加相应的值后,所述DMA控制器通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值判断请求报文地址数据包的大小,将获得的请求报文地址数据包的大小与所述发送队列单包大小寄存器的值进行比较,并在大于等于时,启动所述接收控制器;
所述接收控制器采用所述运算逻辑通道,以请求报文地址数据包的形式从所述环形发送队列缓冲区搬运请求报文在所述主机内存中地址数据,并转发至所述密码运算单元;以及用于根据所述密码运算单元对所述请求报文地址数据包的解析结果,采用所述运算逻辑通道从所述主机的内存中搬运请求报文,并转发至所述密码运算单元,以进行解析和密码运算;所述DMA控制器根据所述接收控制器实际接收的请求报文的个数将所述发送队列头寄存器的值增加相应的值;
在密码运算完成后,所述密码算法运算单元将生成的响应报文发送至所述发送控制器,所述DMA控制器根据所述发送控制器内响应报文的个数将所述接收队列尾寄存器的值增加相应的值后,所述DMA控制器通过计算所述接收队列头寄存器和所述接收队列尾寄存器的差值判断响应报文地址数据包的大小,将获得的响应报文地址数据包的大小与所述接收队列单包大小寄存器的值进行比较,并在大于等于时,启动所述发送控制器;
所述发送控制器采用所述运算逻辑通道将响应报文搬运至所述主机内存,并获得响应报文在所述主机内存中的地址数据;以及采用所述运算逻辑通道,以响应报文地址数据包的形式将所述响应报文在所述主机内存中的地址数据搬运至所述环形接收队列缓冲区;所述主机对所述环形接收队列缓冲区内的响应报文地址数据包进行解析,获得响应报文的地址数据后,再根据所述地址数据依次从所述主机内存中读取相应的响应报文;
所述主机在从所述主机内存中读取相应的响应报文后,采用所述命令逻辑通道,通过空间映射的方式将实际读取的响应报文个数通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器读取实际接收的响应报文个数,并发送给所述发送控制器内置的接收队列头寄存器进行累计存储。
进一步的,所述密码算法运算单元包括对称摘要算法运算单元和非对称算法运算单元;
所述主机与所述对称摘要算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息、密钥信息和请求报文的地址信息,对应的响应报文地址数据包包括响应报文的地址信息;
所述主机与所述非对称算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息和请求报文的地址列表信息,对应的响应报文地址数据包包括响应报文的地址信息。
本发明具有突出的实质性特点和显著的进步,具体的说:
(1)本发明在主机和密码卡之间设置命令逻辑通道和运算逻辑通道,其中,主机采用命令逻辑通道与主处理器单元、密码算法运算单元进行密码管理类数据的交互;以及主机采用运算逻辑通道与密码算法运算单元进行密码运算类数据的交互;通过设置两种通道能够有效实现管理类的低速数据通信和密码运算类的高速数据通信,避免由密码算法运算单元全部实现管理类和运算类的数据,减轻密码算法运算单元的工作量,提高数据传输效率;
(2)在主机的内存中设置环形发送队列缓冲区和环形接收队列缓冲区;在密码卡的DMA控制器中设置发送控制器和接收控制器;主机采用命令逻辑通道配置相应的寄存器,通过链式DMA方式只需要一次设置和启动DMA便能传输多个数据报文,且采用环形队列机制,在实际中密码卡内部可设置多个环形队列管理器,实现主机和密码卡之间多个数据包传输,提高整体的传输效率;
(3)所述主机与所述对称摘要算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息、密钥信息和请求报文的地址信息,对应的响应报文地址数据包包括响应报文的地址信息;所述对称摘要算法运算单元接收到请求报文地址数据包后,进行解析获得控制信息和地址信息,根据所述地址信息依次从所述主机内存搬运请求数据进行对称和/或摘要运算;在密码运算完成后,所述主机接收到所述响应报文地址数据包进行解析后,获得所述对称摘要算法运算单元的响应报文的地址信息后,再根据所述地址信息依次从所述主机内存中读取运算结果;
或所述主机与所述非对称算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息和请求报文的地址列表信息,对应的响应报文地址数据包包括响应报文的地址信息;所述非对称算法运算单元接收到请求报文地址数据包后,进行解析获得控制信息和地址列表信息,根据所述地址列表信息依次从所述主机内存搬运请求数据进行非对称运算;在密码运算完成后,所述主机接收到所述响应报文地址数据包进行解析后,获得所述非对称算法运算单元的响应报文的地址信息后,再根据所述地址列表信息依次从所述主机内存中读取运算结果;
这样使得在每次传输数据时需要先解析获得相应的地址信息或地址列表信息,才能再获得真正需要进行密码运算的数据;此外,主机中的发送队列缓冲区和接收队列缓冲区中存放的是不是真正的数据,而是地址相关信息,真正的数据存放在主机的内存中,使得在传输数据的时候仅考虑地址相关信息,不用将所有数据都存放在缓冲区中,从而也能提高数据传输的效率。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出本发明一种基于密码卡的数据通信系统示意图;
图2示出本发明一种基于密码卡的数据通信方法中主机与密码卡采用DMA方式通信的示意图;
图3示出本发明一种基于密码卡的数据通信方法中单个环形队列工作原理图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
如图1所示,本发明第一方面提出一种密码卡的数据通信系统,包括通过PCI-E接口物理连接的主机和密码卡,所述密码卡包括密码算法运算单元、主处理器单元和DMA控制器,
所述主机和所述密码卡之间设置有命令逻辑通道和运算逻辑通道;
所述主机,用于采用所述命令逻辑通道,通过空间映射的方式与所述主处理器单元进行管理类数据的交互,以及对所述DMA控制器进行配置;
所述主机,还用于采用所述运算逻辑通道,通过DMA控制器使用环形队列机制与所述密码算法运算单元进行密码运算类数据的地址交互,并基于所述地址数据实现与所述密码算法运算单元之间的密码运算类数据交互。
具体的,所述主机的内存中设置有环形发送队列缓冲区和环形接收队列缓冲区,所述DMA控制器中设置有发送控制器和接收控制器;所述发送控制器和所述接收控制器分别与所述密码运算单元连接;
所述接收控制器,用于采用所述运算逻辑通道,以请求报文地址数据包的形式从所述环形发送队列缓冲区搬运请求报文在所述主机内存中地址数据,并转发至所述密码运算单元进行解析,以及用于根据所述密码运算单元对所述请求报文地址数据包的解析结果,采用所述运算逻辑通道从所述主机的内存中搬运请求报文,并转发至所述密码运算单元,以进行解析和密码运算;
所述发送控制器,用于采用所述运算逻辑通道将密码运算获得的响应报文搬运至所述主机内存,并获得响应报文在所述主机内存中的地址数据;以及用于采用所述运算逻辑通道,以响应报文地址数据包的形式将所述响应报文在所述主机内存中的地址数据搬运至所述环形接收队列缓冲区,供所述主机解析和读取。
具体的,所述密码算法运算单元包括对称摘要算法运算单元和非对称算法运算单元;
所述主机与所述对称摘要算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息、密钥信息和请求报文的地址信息,对应的响应报文地址数据包包括响应报文的地址信息;
所述主机与所述非对称算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息和请求报文的地址列表信息,对应的响应报文地址数据包包括响应报文的地址信息。
具体的,所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述主处理器单元和所述DMA控制器;
所述主机,采用所述命令逻辑通道,将其内存中要发送的管理类指令数据和DMA配置数据通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器;
所述主处理器单元通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器里读取管理类指令数据;以及通过片内总线将其对所述管理类指令数据的执行结果发送至所述高性能密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述高性能密码卡的密码算法运算单元的寄存器中读取执行结果;
所述DMA控制器,通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器里读取DMA配置数据;以及通过片内总线将其对所述DMA配置数据的执行结果发送至所述高性能密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述高性能密码卡的密码算法运算单元的寄存器中读取执行结果。
所述发送控制器内置有接收队列基地址寄存器、接收队列头寄存器、接收队列尾寄存器和接收队列单包大小寄存器;所述接收控制器内置有发送队列基地址寄存器、发送队列头寄存器、发送队列尾寄存器和发送队列单包大小寄存器;
所述发送队列基地址寄存器用于存储所述环形发送队列缓冲区的首地址值,所述发送队列单包大小寄存器用于存储单个请求报文地址数据包内允许包含的地址数据的最大个数;所述接收队列基地址寄存器用于存储所述环形接收队列缓冲区的首地址值,所述接收队列单包大小寄存器用于存储单个响应报文地址数据包内允许包含的地址数据的最大个数;
所述发送队列头寄存器用于存储所述环形发送队列缓冲区累计待发送的地址数据个数,所述发送队列尾寄存器用于存储所述接收控制器累计接收的地址数据个数;所述接收队列头寄存器用于存储所述发送控制器累计待发送的地址数据个数,所述发送队列尾寄存器用于存储所述环形接收队列缓冲区累计接收的地址数据个数;
所述接收控制器根据发送队列头寄存器、发送队列尾寄存器的值进行启动,以接收外界主机下发的请求报文地址数据包;所述发送控制器根据所述接收队列头寄存器和所述接收队列尾寄存器的值进行启动,以向外部主机发送响应报文地址数据包。
具体的,所述DMA配置数据包括所述环形发送队列缓冲区的首地址值、所述环形接收队列缓冲区的首地址值、单个请求报文地址数据包内允许包含的地址数据的最大个数和单个响应报文地址数据包内允许包含的地址数据的最大个数;
所述DMA控制器将所述环形发送队列缓冲区的首地址值写入所述接收控制器内置的发送队列基地址寄存器,将所述环形接收队列缓冲区的首地址值写入所述发送控制器内置的接收队列基地址寄存器,将单个请求报文地址数据包内允许包含的请求报文的最大个数写入所述接收控制器内置的发送队列单包大小寄存器,将单个响应报文地址数据包内允许包含的地址数据的最大个数写入所述发送控制器内置的接收队列单包大小寄存器。
本发明第二方面还提出一种密码卡的数据通信方法,包括通过PCI-E接口物理连接的主机和密码卡,所述主机和所述密码卡之间设置有命令逻辑通道和运算逻辑通道,具体包括:
所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述密码卡的主处理器单元进行管理类数据的交互,以及对所述密码卡的DMA控制器进行配置;
所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码卡的密码算法运算单元进行密码运算类数据的地址数据交互,并基于所述地址数据实现与所述密码算法运算单元之间的密码运算类数据交互。
进一步的,所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述密码卡的主处理器单元进行管理类数据的交互,以及对所述密码卡的DMA控制器进行配置,具体包括:
所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述主处理器单元;
所述主机,采用所述命令逻辑通道,将其内存中要发送的管理类指令数据和DMA配置数据通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器;所述管理类指令数据包括密钥管理、身份认证、密码卡配置信息;所述DMA配置数据包括所述环形发送队列缓冲区的首地址值、所述环形接收队列缓冲区的首地址值、单个请求报文地址数据包内允许包含的地址数据的最大个数、单个响应报文地址数据包内允许包含的地址数据的最大个数;
所述主处理器单元通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器里读取管理类指令数据;以及通过片内总线将其对所述管理类指令数据的执行结果发送至所述高性能密码卡的密码算法运算单元的寄存器;
所述DMA控制器通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器里读取所述环形发送队列缓冲区的首地址值写入所述接收控制器内置的发送队列基地址寄存器,读取所述环形接收队列缓冲区的首地址值写入所述发送控制器内置的接收队列基地址寄存器,读取单个请求报文地址数据包内允许包含的地址数据的最大个数写入所述接收控制器内置的发送队列单包大小寄存器,读取单个响应报文地址数据包内允许包含的地址数据的最大个数写入所述发送控制器内置的接收队列单包大小寄存器;
所述DMA控制器通过片内总线将其对所述DMA配置数据的执行结果发送至所述高性能密码卡的密码算法运算单元的寄存器;
所述主机采用所述命令逻辑通道,通过BAR空间映射从所述高性能密码卡的密码算法运算单元的寄存器中读取执行结果。
如图2所示,所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码卡的密码算法运算单元进行密码运算类数据的地址数据交互,并基于所述地址数据实现与所述密码算法运算单元之间的密码运算类数据交互,具体包括:
所述主机获取所述接收控制器内置的发送队列头寄存器和发送队列尾寄存器的值,通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值,判断是否允许构造所述请求报文地址数据包,当所述发送队列头寄存器和所述发送队列尾寄存器的差值不等于0时,允许根据请求报文构造请求报文地址数据包,否则不允许构造请求报文地址数据包;
所述主机构造请求报文地址数据包,并采用所述命令逻辑通道,将所述环形发送队列缓冲区本次待发送的地址数据个数通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器读取待发送的地址数据的个数,并发送给所述发送队列尾寄存器进行累计存储;
所述发送队列尾寄存器的值根据所述主机发送的地址数据的个数增加相应的值后,所述DMA控制器通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值判断请求报文地址数据包的大小,将获得的请求报文地址数据包的大小与所述发送队列单包大小寄存器的值进行比较,并在大于等于时,启动所述接收控制器;
所述接收控制器采用所述运算逻辑通道,以请求报文地址数据包的形式从所述环形发送队列缓冲区搬运请求报文在所述主机内存中地址数据,并转发至所述密码运算单元;以及用于根据所述密码运算单元对所述请求报文地址数据包的解析结果,采用所述运算逻辑通道从所述主机的内存中搬运请求报文,并转发至所述密码运算单元,以进行解析和密码运算;所述DMA控制器根据所述接收控制器实际接收的请求报文的个数将所述发送队列头寄存器的值增加相应的值;
在密码运算完成后,所述密码算法运算单元将生成的响应报文发送至所述发送控制器,所述DMA控制器根据所述发送控制器内响应报文的个数将所述接收队列尾寄存器的值增加相应的值后,所述DMA控制器通过计算所述接收队列头寄存器和所述接收队列尾寄存器的差值判断响应报文地址数据包的大小,将获得的响应报文地址数据包的大小与所述接收队列单包大小寄存器的值进行比较,并在大于等于时,启动所述发送控制器;
所述发送控制器采用所述运算逻辑通道将响应报文搬运至所述主机内存,并获得响应报文在所述主机内存中的地址数据;以及采用所述运算逻辑通道,以响应报文地址数据包的形式将所述响应报文在所述主机内存中的地址数据搬运至所述环形接收队列缓冲区;所述主机对所述环形接收队列缓冲区内的响应报文地址数据包进行解析,获得响应报文的地址数据后,再根据所述地址数据依次从所述主机内存中读取相应的响应报文;
所述主机在从所述主机内存中读取相应的响应报文后,采用所述命令逻辑通道,通过空间映射的方式将实际读取的响应报文个数通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器读取实际接收的响应报文个数,并发送给所述发送控制器内置的接收队列头寄存器进行累计存储。
需要说明的是,主机和密码卡通过 DMA 进行数据交互,每次传输数据可以使用单个环形队列RING 也可以使用多个环形队列RING,建议每个线程使用一个 RING,使用单个RING 进行数据交互的时候,每次可以发送单个或者多个req, 密码卡硬件本身对 RING 的深度没有限制(局限于主机申请 DMA 内存的大小)。
在实际的应用中,为了主机和密码卡整体数据传输速率,密码卡使用链式 DMA 方式进行数据传输,并采用环形队列(RING)机制动态管理主机端的内存,密码卡内部设置了128个RING 环形队列管理器,每个RING的工作原理相同,单个RING机制工作原理如图3所示,密码卡的每个 RING 有两组寄存器(基地址寄存器、头寄存器、尾寄存器和单包大小寄存器),分别来管理主机端的发送队列缓冲区和接收队列缓冲区。发送队列缓冲区存放的是req地址数据包(请求报文地址数据包),接收队列缓冲区存放的是resp地址数据包(响应报文地址数据包)。发送队列缓冲区和接收队列缓冲区由主机来申请,主机通过 BAR 空间把发送队列缓冲区的首地址写入到密码卡上接收控制器的 rx_ring_base_addr 寄存器中(接收队列基地址寄存器),把接收队列缓冲区的首地址写入到密码卡发送控制器的 tx_ring_base_addr 寄存器中(发送队列基地址寄存器)。
req地址数据包和resp地址数据包中存放的地址数据,并不是真正需要做密码运算的数据。
启动DMA 控制器后,首先搬运req地址数据包,密码卡接收到req地址数据包以后进行解析,获取req地址信息,再次自动搬运真正需要做密码运算的req,运算完成以后,启动DMA 控制器将resp搬运至主机数据缓冲区,然后把和resp地址数据包搬运接收队列缓冲区对应的位置,并进行解析,获取resp地址信息,并根据resp地址信息从主机数据缓冲区中依次读取resp。
进一步的,所述密码算法运算单元包括对称摘要算法运算单元和非对称算法运算单元;
所述主机与所述对称摘要算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息、密钥信息和请求报文的地址信息,对应的响应报文地址数据包包括响应报文的地址信息;所述对称摘要算法运算单元接收到所述请求报文地址数据包后,进行解析,获得控制信息、密钥信息和地址信息,根据所述地址信息依次从所述主机内存搬运请求数据进行对称和/或摘要运算;在密码运算完成后,所述对称摘要算法运算单元将响应报文搬运至所述主机内存,并根据搬运后获得的响应报文在所述主机内存中的地址信息构造响应报文地址数据包;所述主机接收到所述响应报文地址数据包后进行解析,获得所述对称摘要算法运算单元的响应报文的地址信息后,再根据所述地址信息依次从所述主机内存中读取响应报文;
所述主机与所述非对称运算单元进行交互时,对应的请求报文地址数据包包括控制信息、密钥信息和请求报文的地址列表信息,对应的响应报文地址数据包包括响应报文的地址信息;所述非对称运算单元接收到所述请求报文地址数据包后,进行解析,获得控制信息、密钥信息和地址列表信息,根据所述地址列表信息依次从所述主机内存搬运请求数据进行非对称运算;在密码运算完成后,所述非对称运算单元将响应报文搬运至所述主机内存,并根据搬运后获得的响应报文在所述主机内存中的地址列表信息构造响应报文地址数据包;所述主机接收到所述响应报文地址数据包后进行解析,获得所述非对称运算单元的响应报文的地址信息后,再根据所述地址列表信息依次从所述主机内存中读取响应报文。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种密码卡的数据通信系统,其特征在于,包括通过PCI-E接口物理连接的主机和密码卡,所述密码卡包括密码算法运算单元、主处理器单元和DMA控制器,
所述主机和所述密码卡之间设置有命令逻辑通道和运算逻辑通道;
所述主机,用于采用所述命令逻辑通道,通过空间映射的方式与所述主处理器单元进行管理类数据的交互,以及对所述DMA控制器进行配置;
所述主机,还用于采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码算法运算单元进行密码运算类数据的地址数据交互,并基于所述地址数据实现与所述密码算法运算单元之间的密码运算类数据交互;
所述主机的内存中设置有环形发送队列缓冲区和环形接收队列缓冲区,所述DMA控制器中设置有发送控制器和接收控制器;所述发送控制器和所述接收控制器分别与所述密码算法运算单元连接;
所述接收控制器,用于采用所述运算逻辑通道,以请求报文地址数据包的形式从所述环形发送队列缓冲区搬运请求报文在所述主机内存中地址数据,并转发至所述密码算法运算单元进行解析,以及用于根据所述密码算法运算单元对所述请求报文地址数据包的解析结果,采用所述运算逻辑通道从所述主机的内存中搬运请求报文,并转发至所述密码算法运算单元,以进行解析和密码运算;
所述发送控制器,用于采用所述运算逻辑通道将密码运算获得的响应报文搬运至所述主机内存,并获得响应报文在所述主机内存中的地址数据;以及用于采用所述运算逻辑通道,以响应报文地址数据包的形式将所述响应报文在所述主机内存中的地址数据搬运至所述环形接收队列缓冲区,供所述主机解析和读取。
2.根据权利要求1所述的数据通信系统,其特征在于,
所述密码算法运算单元包括对称摘要算法运算单元和非对称算法运算单元;
所述主机与所述对称摘要算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息、密钥信息和请求报文的地址信息,对应的响应报文地址数据包包括响应报文的地址信息;
所述主机与所述非对称算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息和请求报文的地址列表信息,对应的响应报文地址数据包包括响应报文的地址信息。
3.根据权利要求2所述的数据通信系统,其特征在于:所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述主处理器单元和所述DMA控制器;
所述主机,采用所述命令逻辑通道,将其内存中要发送的管理类指令数据和DMA配置数据通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器;
所述主处理器单元通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取管理类指令数据;以及通过片内总线将其对所述管理类指令数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果;
所述DMA控制器,通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取DMA配置数据;以及通过片内总线将其对所述DMA配置数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果。
4.根据权利要求3所述的数据通信系统,其特征在于,
所述发送控制器内置有接收队列基地址寄存器、接收队列头寄存器、接收队列尾寄存器和接收队列单包大小寄存器;所述接收控制器内置有发送队列基地址寄存器、发送队列头寄存器、发送队列尾寄存器和发送队列单包大小寄存器;
所述发送队列基地址寄存器用于存储所述环形发送队列缓冲区的首地址值,所述发送队列单包大小寄存器用于存储单个请求报文地址数据包内允许包含的地址数据的最大个数;所述接收队列基地址寄存器用于存储所述环形接收队列缓冲区的首地址值,所述接收队列单包大小寄存器用于存储单个响应报文地址数据包内允许包含的地址数据的最大个数;
所述发送队列头寄存器用于存储所述环形发送队列缓冲区累计待发送的地址数据个数,所述发送队列尾寄存器用于存储所述接收控制器累计接收的地址数据个数;所述接收队列头寄存器用于存储所述发送控制器累计待发送的地址数据个数,所述发送队列尾寄存器用于存储所述环形接收队列缓冲区累计接收的地址数据个数;
所述接收控制器根据发送队列头寄存器、发送队列尾寄存器的值进行启动,以接收外界主机下发的请求报文地址数据包;所述发送控制器根据所述接收队列头寄存器和所述接收队列尾寄存器的值进行启动,以向外部主机发送响应报文地址数据包。
5.根据权利要求4所述的数据通信系统,其特征在于,所述DMA配置数据包括所述环形发送队列缓冲区的首地址值、所述环形接收队列缓冲区的首地址值、单个请求报文地址数据包内允许包含的地址数据的最大个数和单个响应报文地址数据包内允许包含的地址数据的最大个数;
所述DMA控制器将所述环形发送队列缓冲区的首地址值写入所述接收控制器内置的发送队列基地址寄存器,将所述环形接收队列缓冲区的首地址值写入所述发送控制器内置的接收队列基地址寄存器,将单个请求报文地址数据包内允许包含的请求报文的最大个数写入所述接收控制器内置的发送队列单包大小寄存器,将单个响应报文地址数据包内允许包含的地址数据的最大个数写入所述发送控制器内置的接收队列单包大小寄存器。
6.一种用于密码卡的数据通信方法,包括通过PCI-E接口物理连接的主机和密码卡,所述主机和所述密码卡之间设置有命令逻辑通道和运算逻辑通道,其特征在于,
所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述密码卡的主处理器单元进行管理类数据的交互,以及对所述密码卡的DMA控制器进行配置;
所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码卡的密码算法运算单元进行密码运算类数据的地址数据交互,并基于所述地址数据实现与所述密码算法运算单元之间的密码运算类数据交互;
所述主机的内存中设置有环形发送队列缓冲区和环形接收队列缓冲区,所述DMA控制器中设置有发送控制器和接收控制器;所述发送控制器和所述接收控制器分别与所述密码算法运算单元连接;
所述接收控制器,采用所述运算逻辑通道,以请求报文地址数据包的形式从所述环形发送队列缓冲区搬运请求报文在所述主机内存中地址数据,并转发至所述密码算法运算单元进行解析,以及用于根据所述密码算法运算单元对所述请求报文地址数据包的解析结果,采用所述运算逻辑通道从所述主机的内存中搬运请求报文,并转发至所述密码算法运算单元,以进行解析和密码运算;
所述发送控制器,采用所述运算逻辑通道将密码运算获得的响应报文搬运至所述主机内存,并获得响应报文在所述主机内存中的地址数据;以及用于采用所述运算逻辑通道,以响应报文地址数据包的形式将所述响应报文在所述主机内存中的地址数据搬运至所述环形接收队列缓冲区,供所述主机解析和读取。
7.根据权利要求6所述的数据通信方法,其特征在于,所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述密码卡的主处理器单元进行管理类数据的交互,以及对所述密码卡的DMA控制器进行配置,具体包括:
所述密码卡的配置空间中设置有BAR寄存器;所述BAR寄存器与所述密码卡的密码算法运算单元的寄存器地址进行空间映射;所述密码算法运算单元的寄存器通过片内总线连接所述主处理器单元;
所述主机,采用所述命令逻辑通道,将其内存中要发送的管理类指令数据和DMA配置数据通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器;所述管理类指令数据包括密钥管理、身份认证、密码卡配置信息;所述DMA配置数据包括所述环形发送队列缓冲区的首地址值、所述环形接收队列缓冲区的首地址值、单个请求报文地址数据包内允许包含的地址数据的最大个数、单个响应报文地址数据包内允许包含的地址数据的最大个数;
所述主处理器单元通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取管理类指令数据;以及通过片内总线将其对所述管理类指令数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;
所述DMA控制器通过片内总线从所述密码卡的密码算法运算单元的寄存器里读取所述环形发送队列缓冲区的首地址值写入所述接收控制器内置的发送队列基地址寄存器,读取所述环形接收队列缓冲区的首地址值写入所述发送控制器内置的接收队列基地址寄存器,读取单个请求报文地址数据包内允许包含的地址数据的最大个数写入所述接收控制器内置的发送队列单包大小寄存器,读取单个响应报文地址数据包内允许包含的地址数据的最大个数写入所述发送控制器内置的接收队列单包大小寄存器;
所述DMA控制器通过片内总线将其对所述DMA配置数据的执行结果发送至所述密码卡的密码算法运算单元的寄存器;
所述主机采用所述命令逻辑通道,通过BAR空间映射从所述密码卡的密码算法运算单元的寄存器中读取执行结果。
8.根据权利要求7所述的数据通信方法,其特征在于,所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述密码卡的密码算法运算单元进行密码运算类数据的地址数据交互,并基于所述地址数据实现与所述密码算法运算单元之间的密码运算类数据交互,具体包括:
所述主机获取所述接收控制器内置的发送队列头寄存器和发送队列尾寄存器的值,通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值,判断是否允许构造所述请求报文地址数据包,当所述发送队列头寄存器和所述发送队列尾寄存器的差值不等于0时,允许根据请求报文构造请求报文地址数据包,否则不允许构造请求报文地址数据包;
所述主机构造请求报文地址数据包,并采用所述命令逻辑通道,将所述环形发送队列缓冲区本次待发送的地址数据个数通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述密码卡的密码算法运算单元的寄存器读取待发送的地址数据的个数,并发送给所述发送队列尾寄存器进行累计存储;
所述发送队列尾寄存器的值根据所述主机发送的地址数据的个数增加相应的值后,所述DMA控制器通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值判断请求报文地址数据包的大小,将获得的请求报文地址数据包的大小与所述发送队列单包大小寄存器的值进行比较,并在大于等于时,启动所述接收控制器;
所述接收控制器采用所述运算逻辑通道,以请求报文地址数据包的形式从所述环形发送队列缓冲区搬运请求报文在所述主机内存中地址数据,并转发至所述密码算法运算单元;以及用于根据所述密码算法运算单元对所述请求报文地址数据包的解析结果,采用所述运算逻辑通道从所述主机的内存中搬运请求报文,并转发至所述密码算法运算单元,以进行解析和密码运算;所述DMA控制器根据所述接收控制器实际接收的请求报文的个数将所述发送队列头寄存器的值增加相应的值;
在密码运算完成后,所述密码算法运算单元将生成的响应报文发送至所述发送控制器,所述DMA控制器根据所述发送控制器内响应报文的个数将所述接收队列尾寄存器的值增加相应的值后,所述DMA控制器通过计算所述接收队列头寄存器和所述接收队列尾寄存器的差值判断响应报文地址数据包的大小,将获得的响应报文地址数据包的大小与所述接收队列单包大小寄存器的值进行比较,并在大于等于时,启动所述发送控制器;
所述发送控制器采用所述运算逻辑通道将响应报文搬运至所述主机内存,并获得响应报文在所述主机内存中的地址数据;以及采用所述运算逻辑通道,以响应报文地址数据包的形式将所述响应报文在所述主机内存中的地址数据搬运至所述环形接收队列缓冲区;所述主机对所述环形接收队列缓冲区内的响应报文地址数据包进行解析,获得响应报文的地址数据后,再根据所述地址数据依次从所述主机内存中读取相应的响应报文;
所述主机在从所述主机内存中读取相应的响应报文后,采用所述命令逻辑通道,通过空间映射的方式将实际读取的响应报文个数通过BAR空间映射传输至所述密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述密码卡的密码算法运算单元的寄存器读取实际接收的响应报文个数,并发送给所述发送控制器内置的接收队列头寄存器进行累计存储。
9.根据权利要求7所述的数据通信方法,其特征在于:所述密码算法运算单元包括对称摘要算法运算单元和非对称算法运算单元;
所述主机与所述对称摘要算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息、密钥信息和请求报文的地址信息,对应的响应报文地址数据包包括响应报文的地址信息;
所述主机与所述非对称算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息和请求报文的地址列表信息,对应的响应报文地址数据包包括响应报文的地址信息。
CN202010849940.3A 2020-08-21 2020-08-21 一种密码卡的数据通信系统及方法 Active CN112052483B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010849940.3A CN112052483B (zh) 2020-08-21 2020-08-21 一种密码卡的数据通信系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010849940.3A CN112052483B (zh) 2020-08-21 2020-08-21 一种密码卡的数据通信系统及方法

Publications (2)

Publication Number Publication Date
CN112052483A CN112052483A (zh) 2020-12-08
CN112052483B true CN112052483B (zh) 2022-03-25

Family

ID=73599688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010849940.3A Active CN112052483B (zh) 2020-08-21 2020-08-21 一种密码卡的数据通信系统及方法

Country Status (1)

Country Link
CN (1) CN112052483B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113609042B (zh) * 2021-07-20 2024-04-26 天津七所精密机电技术有限公司 一种提高数据交互速度的系统
CN114328345B (zh) * 2021-12-10 2024-05-03 北京泽石科技有限公司 控制信息的处理方法、装置以及计算机可读存储介质
CN114546906B (zh) * 2022-01-28 2023-06-23 郑州信大捷安信息技术股份有限公司 一种基于ring通信机制的数据交互方法和系统
CN117149276A (zh) * 2023-08-28 2023-12-01 山东华翼微电子技术股份有限公司 基于PCIe XDMA实现多进程并发的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200617977A (en) * 2004-08-03 2006-06-01 Unitest Inc An algorithm pattern generator for testing a memory device and memory tester using the same
CN108075882A (zh) * 2016-11-14 2018-05-25 航天信息股份有限公司 密码卡及其加解密方法
CN109478177A (zh) * 2016-08-26 2019-03-15 英特尔公司 双数据率命令总线

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8498418B2 (en) * 2009-08-31 2013-07-30 International Business Machines Corporation Conversion of cryptographic key protection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200617977A (en) * 2004-08-03 2006-06-01 Unitest Inc An algorithm pattern generator for testing a memory device and memory tester using the same
CN109478177A (zh) * 2016-08-26 2019-03-15 英特尔公司 双数据率命令总线
CN108075882A (zh) * 2016-11-14 2018-05-25 航天信息股份有限公司 密码卡及其加解密方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于FPGA的税控算法加密卡设计与实现;苏振宇;《电子科技》;20141215(第12期);全文 *

Also Published As

Publication number Publication date
CN112052483A (zh) 2020-12-08

Similar Documents

Publication Publication Date Title
CN112052483B (zh) 一种密码卡的数据通信系统及方法
US11171936B2 (en) Method, device, and system for offloading algorithms
CN112035899B (zh) 一种基于密码卡的数据通信系统及方法
CN109902043B (zh) 一种基于fpga的国密算法加速处理系统
CN106022080B (zh) 一种基于PCIe接口的密码卡及该密码卡的数据加密方法
US7386705B2 (en) Method for allocating processor resources and system for encrypting data
CN110958215B (zh) 安全的在线接收的网络分组处理
CN112035900B (zh) 一种高性能密码卡以及其通信方法
CN106571978B (zh) 数据包捕获方法及装置
CN112000598B (zh) 用于联邦学习的处理器、异构处理系统及隐私数据传输方法
EP4412152A1 (en) Authentication method and communication apparatus
CN109104275A (zh) 一种hsm设备
KR100799305B1 (ko) 다중 암호엔진을 사용하는 고성능 암호화 장치
US20180083777A1 (en) Methods, systems, apparatuses, and devices for securing network communications using multiple security protocols
CN110958216B (zh) 安全的在线网络分组传输
CN111404842A (zh) 数据传输方法、装置及计算机存储介质
CN114553411B (zh) 用于分布式内存加密装置和用于分布式内存解密装置
CN111625851B (zh) 一种mini PCIE密码卡、数据通信系统及方法
CN113422754A (zh) 数据处理方法和装置、电子设备及计算机可读存储介质
WO2023030475A1 (zh) 报文处理的方法、装置以及系统
CN112257092A (zh) 数据传输控制方法、密钥管理方法、配置方法及相关装置
CN111143897A (zh) 数据安全处理装置、系统及处理方法
US20130329887A1 (en) Apparatus and method for providing security service
US20230388791A1 (en) Power saving method for lower power devices, electronic device and computer readable storage medium
CN109639619A (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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A data communication system and method for a password card

Granted publication date: 20220325

Pledgee: Bank of Zhengzhou Co.,Ltd. Zhongyuan Science and Technology City Sub branch

Pledgor: ZHENGZHOU XINDA JIEAN INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2024980007004

PE01 Entry into force of the registration of the contract for pledge of patent right