CN112035900B - 一种高性能密码卡以及其通信方法 - Google Patents

一种高性能密码卡以及其通信方法 Download PDF

Info

Publication number
CN112035900B
CN112035900B CN202010851155.1A CN202010851155A CN112035900B CN 112035900 B CN112035900 B CN 112035900B CN 202010851155 A CN202010851155 A CN 202010851155A CN 112035900 B CN112035900 B CN 112035900B
Authority
CN
China
Prior art keywords
register
operation unit
cryptographic
host
algorithm operation
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
CN202010851155.1A
Other languages
English (en)
Other versions
CN112035900A (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 CN202010851155.1A priority Critical patent/CN112035900B/zh
Publication of CN112035900A publication Critical patent/CN112035900A/zh
Application granted granted Critical
Publication of CN112035900B publication Critical patent/CN112035900B/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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (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

本发明提出一种集成度高的高性能密码卡,包括密码集成芯片、随机源模块、FLASH芯片、PCI‑E接口和智能密码钥匙,密码集成芯片内部集成有主处理器单元、密码算法运算单元、外设接口单元、BAR寄存器和DMA控制器;所述密码集成芯片内还设置有BAR寄存器和DMA控制器;所述BAR寄存器还通过所述命令逻辑通道连接外部主机,接收外部主机下发的管理类指令数据、重构密码算子和DMA配置数据并存储至所述密码算法运算单元的寄存器;所述DMA控制器通过所述运算逻辑通道连接外部主机,通过片内总线连接所述非对称算法运算单元和所述可重构对称摘要算法运算单元,接收外部主机下发的密码运算类数据并转发至所述非对称算法运算单元或所述可重构对称摘要算法运算单元。

Description

一种高性能密码卡以及其通信方法
技术领域
本发明涉及高性能密码卡技术领域,具体涉及一种高性能密码卡及其通信方法。
背景技术
随着物联网、大数据、云计算等新生技术的兴起,人们对网络环境和网络信息资源的依赖程度日益加深。计算机网络已经成为当今信息化社会发展的重要保障,网络信息安全关系到国家主权的安全、社会的稳定,关系到公私财物和个人隐私的安全,正是由于网络信息安全问题的存在,所以大量网络中存储和传输的重要数据需要得到有效的保护。
为了保证特殊数据或行业的数据安全,网络数据需要采取加密方式进行传输。一般承担数据加密任务的主要是设备中集成的密码卡。目前,密码卡作为一种硬件加密方法能够提高加解密的处理速度的加密方式,已经被广泛应用。现有的密码卡多由ARM处理器、FPGA芯片、密码算法芯片、存储器等多个芯片组成,会导致高性能密码卡的复杂度高、成本高等。
并且目前,密码卡与主机与之间采用DMA方式进行数据包的传输来实现密码相关处理,然而在实际的数据传输中,主机和高性能密码卡需要传输多个数据包或者传输数据由多部分组成,这些数据存放的地址可能不连续,这样需要多次设置和启动DMA,从而影响整体的传输效率;此外,数据传输过程中通常构造的数据包直接是数据,大量的数据构造数据包会导致效率变低,因此如何降低高性能密码卡的成本,提高主机和高性能密码卡之间的数据传输效率是目前急需解决的问题。
发明内容
本发明针对上述问题,有必要提供一种高性能密码卡,其具备集成度高、成本低的优点;同时提供一种用于高性能密码卡的数据通信方法,能够有效利用DMA的方式,提高主机和高性能密码卡之间的数据传输效率。
为了实现上述的目的,本发明采用了如下的技术方案:
一种高性能密码卡,包括密码集成芯片、随机源模块、FLASH芯片、PCI-E接口和智能密码钥匙,所述PCI-E接口包括命令逻辑通道和运算逻辑通道,用于实现所述高性能密码卡与外部主机之间的通信连接;所述FLASH芯片用于密钥和用户数据的管理和存储;所述随机源模块用于生成随机数序列;
所述密码集成芯片内部集成有主处理器单元、密码算法运算单元、外设接口单元、BAR寄存器和DMA控制器;所述主处理器单元,用于实现管理业务;所述密码算法运算单元包括非对称算法运算单元、多个可重构对称摘要算法运算单元和寄存器,所述非对称算法运算单元,用于采用非对称算法进行加解密计算;所述可重构对称摘要算法运算单元,用于实现对称密码算法和摘要算法;所述外设接口单元包括UART接口,所述UART接口分别连接所述主处理器单元和所述智能密码钥匙,用于实现身份认证;
所述BAR寄存器与所述密码算法运算单元的寄存器地址进行空间映射,所述BAR寄存器还通过所述命令逻辑通道连接外部主机,接收外部主机下发的管理类指令数据、重构密码算子和DMA配置数据并存储至所述密码算法运算单元的寄存器,以及将所述密码算法运算单元的寄存器内存储的执行结果、重构结果或配置结果返回给外部主机;
所述主处理器单元通过片内总线连接所述密码算法运算单元的寄存器,读取外部主机下发的管理类指令数据,所述管理类指令数据包括密钥管理、身份认证、随机数生成;所述主处理器单元根据密钥管理调用所述FLASH芯片完成密钥管理,根据随机数生成指令调用所述随机源模块完成随机数生成;或根据身份认证指令调用所述智能密码钥匙完成身份认证,并将管理类指令数据的执行结果返回至给所述密码算法运算单元的寄存器;
所述可重构对称摘要算法运算单元,通过片内总线连接所述密码算法运算单元的寄存器,读取外部主机下发的重构密码算子,并动态编程配置相应的对称算法和摘要算法,进行对称密码算法和摘要算法程序、参数的动态加载、更换处理,并将重构结果返回至给所述密码算法运算单元的寄存器;
所述DMA控制器,采用通过片内总线连接所述密码算法运算单元的寄存器,读取外部主机下发的配置数据进行配置,并将配置结果返回至给所述密码算法运算单元的寄存器;
所述DMA控制器通过所述运算逻辑通道连接外部主机,通过片内总线连接所述非对称算法运算单元和所述可重构对称摘要算法运算单元,接收外部主机下发的密码运算类数据并转发至所述非对称算法运算单元或所述可重构对称摘要算法运算单元,所述非对称算法运算单元或所述可重构对称摘要算法运算单元处理密码运算类数据,并通过所述DMA控制器将处理结果返回给外部主机。
进一步的,所述DMA控制器包括发送控制器和接收控制器,所述接收控制器,内置有发送队列基地址寄存器、发送队列头寄存器、发送队列尾寄存器和发送队列单包大小寄存器,所述发送队列基地址寄存器和所述发送队列单包大小寄存器根据外部主机下发的配置数据进行配置,所述接收控制器根据发送队列头寄存器、发送队列尾寄存器的值进行启动,以接收外界主机下发的密码运算类数据;所述发送控制器内置有接收队列基地址寄存器、接收队列头寄存器、接收队列尾寄存器和接收队列单包大小寄存器,所述接收队列基地址寄存器和所述接收队列单包大小寄存器根据外部主机下发的配置数据进行配置,所述发送控制器根据所述接收队列头寄存器和所述接收队列尾寄存器的值进行启动,以向外部主机发送密码运算类数据的处理结果。
本发明第二方面还提出一种高性能密码卡的数据通信方法,包括前述的高性能密码卡,所述高性能密码卡通过PCI-E接口与主机物理连接,所述主机和所述高性能密码卡之间设置有命令逻辑通道和运算逻辑通道,具体包括:
所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述高性能密码卡的主处理器单元进行管理类数据的交互;
所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述高性能密码卡的可重构对称摘要算法运算单元进行重构数据的交互;
所述主机,采用所述命令逻辑通道,通过空间映射的方式向所述高性能密码卡的DMA控制器进行配置数据的交互;
所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述高性能密码卡的可重构对称摘要算法运算单元或非对称算法运算单元进行密码运算类数据的地址数据交互,并基于所述地址数据实现与所述密码算法运算单元之间的密码运算类数据交互。
进一步的,所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述高性能密码卡的主处理器单元进行管理类数据的交互,具体包括:
所述主机,采用所述命令逻辑通道,将其内存中要发送的管理类指令数据通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述主处理器单元通过片内总线转从所述高性能密码卡的密码算法运算单元的寄存器里读取管理类指令数据;
所述主处理器单元,通过片内总线将其对所述管理类指令数据的执行结果发送至所述高性能密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述高性能密码卡的密码算法运算单元的寄存器中读取执行结果。
进一步的,所述主机,采用所述命令逻辑通道,通过空间映射的方式动态对所述高性能密码卡的可重构对称摘要算法运算单元进行对称密码算法和摘要算法程序、参数的动态加载、更换处理,具体包括:
所述主机,采用所述命令逻辑通道,将其内存中要发送的所述高性能密码卡的可重构对称摘要算法运算单元的重构密码算子通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述可重构对称摘要算法运算单元通过片内总线转从所述高性能密码卡的密码算法运算单元的寄存器里读取重构密码算子;
所述可重构对称摘要算法运算单元通过片内总线将其重构结果发送至所述高性能密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述高性能密码卡的密码算法运算单元的寄存器中读取重构结果。
进一步的,所述主机,采用所述命令逻辑通道,通过空间映射的方式向所述高性能密码卡的DMA控制器进行配置数据的交互,具体包括:
所述主机的内存中设置环形发送队列缓冲区和环形接收队列缓冲区,所述高性能密码卡的DMA控制器中设置发送控制器和接收控制器;
所述主机,采用所述命令逻辑通道,将其内存中要发送的所述环形发送队列缓冲区的首地址值、所述环形接收队列缓冲区的首地址值、单个请求报文地址数据包内允许包含的地址数据的最大个数、单个响应报文地址数据包内允许包含的地址数据的最大个数通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器读取所述环形发送队列缓冲区的首地址值写入所述接收控制器内置的发送队列基地址寄存器,读取所述环形接收队列缓冲区的首地址值写入所述发送控制器内置的接收队列基地址寄存器,读取单个请求报文地址数据包内允许包含的地址数据的最大个数写入所述接收控制器内置的发送队列单包大小寄存器,读取单个响应报文地址数据包内允许包含的地址数据的最大个数写入所述发送控制器内置的接收队列单包大小寄存器;
所述DMA控制器,通过片内总线将其对所述发送控制器和所述接收控制器的配置结果发送至所述高性能密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述高性能密码卡的密码算法运算单元的寄存器中读取配置结果。
进一步的,所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述高性能密码卡的可重构对称摘要算法运算单元或非对称算法运算单元进行密码运算类数据的地址数据交互,并基于所述地址数据实现与所述密码算法运算单元之间的密码运算类数据交互,具体包括:
所述主机构造请求报文地址数据包,并采用所述命令逻辑通道,将所述环形发送队列缓冲区本次待发送的地址数据个数通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器读取待发送的地址数据的个数,并发送给所述发送队列尾寄存器进行累计存储;
所述发送队列尾寄存器的值根据所述主机发送的地址数据的个数增加相应的值后,所述DMA控制器通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值判断请求报文地址数据包的大小,将获得的请求报文地址数据包的大小与所述发送队列单包大小寄存器的值进行比较,并在大于等于时,启动所述接收控制器;
所述接收控制器采用所述运算逻辑通道,以请求报文地址数据包的形式从所述环形发送队列缓冲区搬运请求报文在所述主机内存中地址数据,并转发至所述密码运算单元;以及用于根据所述密码运算单元对所述请求报文地址数据包的解析结果,采用所述运算逻辑通道从所述主机的内存中搬运请求报文,并转发至所述密码运算单元,以进行解析和密码运算;
在密码运算完成后,所述密码算法运算单元将生成的响应报文发送至所述发送控制器,所述DMA控制器根据所述发送控制器内响应报文的个数将所述接收队列尾寄存器的值增加相应的值后,所述DMA控制器通过计算所述接收队列头寄存器和所述接收队列尾寄存器的差值判断响应报文地址数据包的大小,将获得的响应报文地址数据包的大小与所述接收队列单包大小寄存器的值进行比较,并在大于等于时,启动所述发送控制器;
所述发送控制器采用所述运算逻辑通道将响应报文搬运至所述主机内存,并获得响应报文在所述主机内存中的地址数据;以及采用所述运算逻辑通道,以响应报文地址数据包的形式将所述响应报文在所述主机内存中的地址数据搬运至所述环形接收队列缓冲区;所述主机对所述环形接收队列缓冲区内的响应报文地址数据包进行解析,获得响应报文的地址数据后,再根据所述地址数据依次从所述主机内存中读取相应的响应报文。
进一步的,所述DMA控制器根据所述接收控制器实际接收的请求报文的个数将所述发送队列头寄存器的值增加相应的值;
所述主机在从所述主机内存中读取相应的响应报文后,采用所述命令逻辑通道,通过空间映射的方式将实际读取的响应报文个数通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器读取实际接收的响应报文个数,并发送给所述发送控制器内置的接收队列头寄存器进行累计存储。
进一步的,所述主机在构造请求报文地址数据包之前,获取所述接收控制器内置的发送队列头寄存器和发送队列尾寄存器的值,通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值,判断是否允许构造所述请求报文地址数据包,当所述发送队列头寄存器和所述发送队列尾寄存器的差值不等于0时,允许根据请求报文构造请求报文地址数据包,否则不允许构造请求报文地址数据包。
进一步的,所述密码算法运算单元包括可重构对称摘要算法运算单元和非对称算法运算单元;
所述主机与所述可重构对称摘要算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息、密钥信息和请求报文的地址信息,对应的响应报文地址数据包包括响应报文的地址信息;
所述主机与所述非对称运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息和请求报文的地址列表信息,对应的响应报文地址数据包包括响应报文的地址信息。
本发明具有突出的实质性特点和显著的进步,具体的:
(1)本发明提供了一种高性能密码卡,其中设计的密码集成芯片内部集成有主处理器单元和密码算法运算单元,由该密码集成芯片取代了传统的ARM处理器、FPGA芯片、密码算法芯片等多个芯片,简化了高性能密码卡的构造,集成度高,降低成本;通过修改可重构对称摘要算法运算单元的算子动态编程配置相应的对称算法和摘要算法,进行对称密码算法和摘要算法程序、参数的动态加载、更换处理;以及通过对可重构对称摘要算法运算单元进行配置,实现密码集成芯片的算力和算法可动态配置,能够提高算法性能,增加新的算法和模式,使得密码集成芯片具备软件、硬件双编程的特性,硬件架构和功能能够随着软件变化而实时动态变化;
(2)本发明在主机和高性能密码卡之间设置命令逻辑通道和运算逻辑通道,其中,主机采用命令逻辑通道与主处理器单元、密码算法运算单元进行密码管理类数据的交互;以及主机采用运算逻辑通道与密码算法运算单元进行密码运算类数据的交互;通过设置两种通道能够有效实现管理类的低速数据通信和密码运算类的高速数据通信,避免由密码算法运算单元全部实现管理类和运算类的数据,减轻密码算法运算单元的工作量,提高数据传输效率;
(3)在主机的内存中设置环形发送队列缓冲区和环形接收队列缓冲区;在高性能密码卡的DMA控制器中设置发送控制器和接收控制器;主机采用命令逻辑通道配置相应的寄存器,通过链式DMA方式只需要一次设置和启动DMA便能传输多个数据报文,且采用环形队列机制,在实际中高性能密码卡内部可设置多个环形队列管理器,实现主机和高性能密码卡之间多个数据包传输,提高整体的传输效率;
(4)所述主机与所述可重构对称摘要算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息、密钥信息和请求报文的地址信息,对应的响应报文地址数据包包括响应报文的地址信息;所述可重构对称摘要算法运算单元接收到请求报文地址数据包后,进行解析获得控制信息和地址信息,根据所述地址信息依次从所述主机内存搬运请求数据进行对称和/或摘要运算;在密码运算完成后,所述主机接收到所述响应报文地址数据包进行解析后,获得所述可重构对称摘要算法运算单元的响应报文的地址信息后,再根据所述地址信息依次从所述主机内存中读取运算结果;
或所述主机与所述非对称运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息和请求报文的地址列表信息,对应的响应报文地址数据包包括响应报文的地址信息;所述非对称算法运算单元接收到请求报文地址数据包后,进行解析获得控制信息和地址列表信息,根据所述地址列表信息依次从所述主机内存搬运请求数据进行非对称运算;在密码运算完成后,所述主机接收到所述响应报文地址数据包进行解析后,获得所述非对称算法运算单元的响应报文的地址信息后,再根据所述地址列表信息依次从所述主机内存中读取运算结果;
这样使得在每次传输数据时需要先解析获得相应的地址信息或地址列表信息,才能再获得真正需要进行密码运算的数据;此外,主机中的发送队列缓冲区和接收队列缓冲区中存放的是不是真正的数据,而是地址相关信息,真正的数据存放在主机的内存中,使得在传输数据的时候仅考虑地址相关信息,不用将所有数据都存放在缓冲区中,从而也能提高数据传输的效率。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出本发明的一种高性能密码卡的结构框图;
图2示出本发明的一种高性能密码卡的另一结构框图。
图3示出本发明一种基于高性能密码卡的数据通信方法中主机与高性能密码卡采用DMA方式通信的示意图;
图4示出本发明一种基于高性能密码卡的数据通信方法中单个环形队列工作原理图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1
如图1所示,本发明提供一种高性能密码卡,包括密码集成芯片、随机源模块、FLASH芯片、PCI-E接口和智能密码钥匙,所述PCI-E接口包括命令逻辑通道和运算逻辑通道,用于实现所述高性能密码卡与外部主机之间的通信连接;所述FLASH芯片用于密钥和用户数据的管理和存储;所述随机源模块用于生成随机数序列;
所述密码集成芯片内部集成有主处理器单元、密码算法运算单元、外设接口单元、BAR寄存器和DMA控制器;所述主处理器单元,用于实现管理业务;所述密码算法运算单元包括非对称算法运算单元、多个可重构对称摘要算法运算单元和寄存器,所述非对称算法运算单元,用于采用非对称算法进行加解密计算;所述可重构对称摘要算法运算单元,用于实现对称密码算法和摘要算法;所述外设接口单元包括UART接口,所述UART接口分别连接所述主处理器单元和所述智能密码钥匙,用于实现身份认证;
所述BAR寄存器与所述密码算法运算单元的寄存器地址进行空间映射,所述BAR寄存器还通过所述命令逻辑通道连接外部主机,接收外部主机下发的管理类指令数据、重构密码算子和DMA配置数据并存储至所述密码算法运算单元的寄存器,以及将所述密码算法运算单元的寄存器内存储的执行结果、重构结果或配置结果返回给外部主机;
所述主处理器单元通过片内总线连接所述密码算法运算单元的寄存器,读取外部主机下发的管理类指令数据,所述管理类指令数据包括密钥管理、身份认证、随机数生成;所述主处理器单元根据密钥管理调用所述FLASH芯片完成密钥管理,根据随机数生成指令调用所述随机源模块完成随机数生成;或根据身份认证指令调用所述智能密码钥匙完成身份认证,并将管理类指令数据的执行结果返回至给所述密码算法运算单元的寄存器;
所述可重构对称摘要算法运算单元,通过片内总线连接所述密码算法运算单元的寄存器,读取外部主机下发的重构密码算子,并动态编程配置相应的对称算法和摘要算法,进行对称密码算法和摘要算法程序、参数的动态加载、更换处理,并将重构结果返回至给所述密码算法运算单元的寄存器;
所述DMA控制器,采用通过片内总线连接所述密码算法运算单元的寄存器,读取外部主机下发的配置数据进行配置,并将配置结果返回至给所述密码算法运算单元的寄存器;
所述DMA控制器通过所述运算逻辑通道连接外部主机,通过片内总线连接所述非对称算法运算单元和所述可重构对称摘要算法运算单元,接收外部主机下发的密码运算类数据并转发至所述非对称算法运算单元或所述可重构对称摘要算法运算单元,所述非对称算法运算单元或所述可重构对称摘要算法运算单元处理密码运算类数据,并通过所述DMA控制器将处理结果返回给外部主机。
具体的,所述DMA控制器包括发送控制器和接收控制器,所述接收控制器,内置有发送队列基地址寄存器、发送队列头寄存器、发送队列尾寄存器和发送队列单包大小寄存器,所述发送队列基地址寄存器和所述发送队列单包大小寄存器根据外部主机下发的配置数据进行配置,所述接收控制器根据发送队列头寄存器、发送队列尾寄存器的值进行启动,以接收外界主机下发的密码运算类数据;所述发送控制器内置有接收队列基地址寄存器、接收队列头寄存器、接收队列尾寄存器和接收队列单包大小寄存器,所述接收队列基地址寄存器和所述接收队列单包大小寄存器根据外部主机下发的配置数据进行配置,所述发送控制器根据所述接收队列头寄存器和所述接收队列尾寄存器的值进行启动,以向外部主机发送密码运算类数据的处理结果。
在具体实施过程中,所述主处理器单元采用包括RISC-V架构、M*CORE架构、ARM架构的主流MCU架构,支持Thumb-2指令集和ARM指令集;所述随机源模块包括两个物理噪声源,两个物理噪声源生成的两个随机数序列产生随机数的频率为20MHZ,两个随机数序列通过异或运算后生成所述高性能密码卡真正的随机数序列;所述FLASH芯片用于密钥和用户数据的存储;具体的,所述FLASH芯片为32M,最小的组织单位是页,每页256个字节,可进行页编程;16个页组成4KB的扇区,可进行扇区擦除;128个扇区组成32KB块、64KB的组,可整片擦除。
所述密码集成芯片还包括存储器单元,所述存储器单元,用于程序和安全信息的存储;具体的,所述存储器单元包括有片内NOR FLASH和SRAM;所述SRAM的一部分空间作为程序运行的堆栈空间,另一部分作为安全存储区;所述NOR FLASH用于存储掉电保护的密钥。
进一步的,如图2所示,所述高性能密码卡还包括有按键模块和开关模块,所述按键模块用于在触发后将高性能密码卡中的敏感信息进行销毁;所述开关模块包括有三个拨码开关,用于控制所述密码集成芯片的启动模式,所述启动模式包括有ROM方式、SFC方式、SD方式、SPI方式和Debug方式。
具体的,所述UART接口上引出有两路串口,一路串口用于在所述密码集成芯片的ROM模式下,进行所述主处理器单元固件下载,在所述密码集成芯片的Normal模式下进行日志输出;另一路串口为预留串口,用于在所述密码集成芯片的Normal模式下,连接智能密码钥匙对用户进行认证管理。
可以理解的是,所述智能密码钥匙还可以通过USB接口连接在外部主机上,主机再通过PCI-E接口连接高性能密码卡,实现智能密码钥匙通过主机对高性能密码卡用户进行认证管理;主机可以部署在本地,也可以部署在远程,远程的主机与本地的主机通过网络连接,实现远程的主机连接的智能密码钥匙通过本地的主机对高性能密码卡用户进行认证管理;其中,智能密码钥匙通过内部设置的安全模块对用户的身份信息和访问权限等可以进行认证。
所述外设接口单元,还可以根据需要包括PCI-E接口、SPI接口、SDIO接口和7816接口。
本发明提供了一种高性能密码卡,其中设计的密码集成芯片内部集成有主处理器单元、密码算法运算单元、随机源模块、FLASH芯片、智能密码钥匙和PCI-E接口,由该密码集成芯片取代了传统的ARM处理器、FPGA芯片、密码算法芯片、存储器等多个芯片,简化了高性能密码卡的构造,集成度高,降低成本;
本发明所述的高性能密码卡的密码集成芯片内还设置有BAR寄存器和DMA控制器,所述BAR寄存器与命令逻辑通道连接,所述高性能密码卡的密码算法运算单元的寄存器地址与所述BAR寄存器进行空间映射,所述主处理器单元和所述DMA控制器通过片内总线连接所述密码算法运算单元的寄存器;所述主处理器、所述DMA控制器均采用命令逻辑通道进行管理类的低速通信,所述密码算法运算单元采用运算逻辑通道,通过DMA控制器实现与外部主机的密码运算类的高速通信,避免由密码算法运算单元全部实现管理类和运算类的数据,减轻密码算法运算单元的工作量,提高数据传输效率。
实施例2
本发明还提供一种高性能密码卡的数据通信方法,包括前述的高性能密码卡,所述高性能密码卡通过PCI-E接口与主机物理连接,所述主机和所述高性能密码卡之间设置有命令逻辑通道和运算逻辑通道,具体包括:
所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述高性能密码卡的主处理器单元进行管理类数据的交互;
所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述高性能密码卡的可重构对称摘要算法运算单元进行重构数据的交互;
所述主机,采用所述命令逻辑通道,通过空间映射的方式向所述高性能密码卡的DMA控制器进行配置数据的交互;
所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述高性能密码卡的可重构对称摘要算法运算单元或非对称算法运算单元进行密码运算类数据的地址数据交互,并基于所述地址数据实现与所述密码算法运算单元之间的密码运算类数据交互。
进一步的,所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述高性能密码卡的主处理器单元进行管理类数据的交互,具体包括:
所述主机,采用所述命令逻辑通道,将其内存中要发送的管理类指令数据通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述主处理器单元通过片内总线转从所述高性能密码卡的密码算法运算单元的寄存器里读取管理类指令数据;
所述主处理器单元,通过片内总线将其对所述管理类指令数据的执行结果发送至所述高性能密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述高性能密码卡的密码算法运算单元的寄存器中读取执行结果。
进一步的,所述主机,采用所述命令逻辑通道,通过空间映射的方式与所述高性能密码卡的可重构对称摘要算法运算单元进行重构数据的交互,具体包括:
所述主机,采用所述命令逻辑通道,将其内存中要发送的所述高性能密码卡的可重构对称摘要算法运算单元的重构密码算子通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述可重构对称摘要算法运算单元通过片内总线转从所述高性能密码卡的密码算法运算单元的寄存器里读取重构密码算子;
所述可重构对称摘要算法运算单元通过片内总线将其重构结果发送至所述高性能密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述高性能密码卡的密码算法运算单元的寄存器中读取重构结果。
进一步的,所述主机,采用所述命令逻辑通道,通过空间映射的方式向所述高性能密码卡的DMA控制器进行配置数据的交互,具体包括:
所述主机的内存中设置环形发送队列缓冲区和环形接收队列缓冲区,所述高性能密码卡的DMA控制器中设置发送控制器和接收控制器;
所述主机,采用所述命令逻辑通道,将其内存中要发送的所述环形发送队列缓冲区的首地址值、所述环形接收队列缓冲区的首地址值、单个请求报文地址数据包内允许包含的地址数据的最大个数、单个响应报文地址数据包内允许包含的地址数据的最大个数通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器读取所述环形发送队列缓冲区的首地址值写入所述接收控制器内置的发送队列基地址寄存器,读取所述环形接收队列缓冲区的首地址值写入所述发送控制器内置的接收队列基地址寄存器,读取单个请求报文地址数据包内允许包含的地址数据的最大个数写入所述接收控制器内置的发送队列单包大小寄存器,读取单个响应报文地址数据包内允许包含的地址数据的最大个数写入所述发送控制器内置的接收队列单包大小寄存器;
所述DMA控制器,通过片内总线将其对所述发送控制器和所述接收控制器的配置结果发送至所述高性能密码卡的密码算法运算单元的寄存器;所述主机采用所述命令逻辑通道,通过BAR空间映射从所述高性能密码卡的密码算法运算单元的寄存器中读取配置结果。
如图3所示,所述主机,采用所述运算逻辑通道,通过所述DMA控制器使用环形队列机制与所述高性能密码卡的可重构对称摘要算法运算单元或非对称算法运算单元进行密码运算类数据的地址数据交互,并基于所述地址数据实现与所述密码算法运算单元之间的密码运算类数据交互,具体包括:
所述主机构造请求报文地址数据包,并采用所述命令逻辑通道,将所述环形发送队列缓冲区本次待发送的地址数据个数通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器读取待发送的地址数据的个数,并发送给所述发送队列尾寄存器进行累计存储;
所述发送队列尾寄存器的值根据所述主机发送的地址数据的个数增加相应的值后,所述DMA控制器通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值判断请求报文地址数据包的大小,将获得的请求报文地址数据包的大小与所述发送队列单包大小寄存器的值进行比较,并在大于等于时,启动所述接收控制器;
所述接收控制器采用所述运算逻辑通道,以请求报文地址数据包的形式从所述环形发送队列缓冲区搬运请求报文在所述主机内存中地址数据,并转发至所述密码运算单元;以及用于根据所述密码运算单元对所述请求报文地址数据包的解析结果,采用所述运算逻辑通道从所述主机的内存中搬运请求报文,并转发至所述密码运算单元,以进行解析和密码运算;
在密码运算完成后,所述密码算法运算单元将生成的响应报文发送至所述发送控制器,所述DMA控制器根据所述发送控制器内响应报文的个数将所述接收队列尾寄存器的值增加相应的值后,所述DMA控制器通过计算所述接收队列头寄存器和所述接收队列尾寄存器的差值判断响应报文地址数据包的大小,将获得的响应报文地址数据包的大小与所述接收队列单包大小寄存器的值进行比较,并在大于等于时,启动所述发送控制器;
所述发送控制器采用所述运算逻辑通道将响应报文搬运至所述主机内存,并获得响应报文在所述主机内存中的地址数据;以及采用所述运算逻辑通道,以响应报文地址数据包的形式将所述响应报文在所述主机内存中的地址数据搬运至所述环形接收队列缓冲区;所述主机对所述环形接收队列缓冲区内的响应报文地址数据包进行解析,获得响应报文的地址数据后,再根据所述地址数据依次从所述主机内存中读取相应的响应报文。
需要说明的是,主机和高性能密码卡通过 DMA 进行数据交互,每次传输数据可以使用单个环形队列RING 也可以使用多个环形队列RING,建议每个线程使用一个 RING,使用单个 RING 进行数据交互的时候,每次可以发送单个或者多个req, 高性能密码卡硬件本身对 RING 的深度没有限制(局限于主机申请 DMA 内存的大小)。
在实际的应用中,为了主机和高性能密码卡整体数据传输速率,高性能密码卡使用链式 DMA 方式进行数据传输,并采用环形队列(RING)机制动态管理主机端的内存,高性能密码卡内部设置了128个RING 环形队列管理器,每个RING的工作原理相同,单个RING机制工作原理如图4所示,高性能密码卡的每个 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。
进一步的,所述DMA控制器根据所述接收控制器实际接收的请求报文的个数将所述发送队列头寄存器的值增加相应的值;
所述主机在从所述主机内存中读取相应的响应报文后,采用所述命令逻辑通道,通过空间映射的方式将实际读取的响应报文个数通过BAR空间映射传输至所述高性能密码卡的密码算法运算单元的寄存器,所述DMA控制器通过片内总线从所述高性能密码卡的密码算法运算单元的寄存器读取实际接收的响应报文个数,并发送给所述发送控制器内置的接收队列头寄存器进行累计存储。
需要注意的是:所述主机在构造请求报文地址数据包之前,获取所述接收控制器内置的发送队列头寄存器和发送队列尾寄存器的值,通过计算所述发送队列头寄存器和所述发送队列尾寄存器的差值,判断是否允许构造所述请求报文地址数据包,当所述发送队列头寄存器和所述发送队列尾寄存器的差值不等于0时,允许根据请求报文构造请求报文地址数据包,否则不允许构造请求报文地址数据包。
进一步的,所述密码算法运算单元包括可重构对称摘要算法运算单元和非对称算法运算单元;
所述主机与所述可重构对称摘要算法运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息、密钥信息和请求报文的地址信息,对应的响应报文地址数据包包括响应报文的地址信息;所述可重构对称摘要算法运算单元接收到所述请求报文地址数据包后,进行解析,获得控制信息、密钥信息和地址信息,根据所述地址信息依次从所述主机内存搬运请求数据进行对称和/或摘要运算;在密码运算完成后,所述可重构对称摘要算法运算单元将响应报文搬运至所述主机内存,并根据搬运后获得的响应报文在所述主机内存中的地址信息构造响应报文地址数据包;所述主机接收到所述响应报文地址数据包后进行解析,获得所述可重构对称摘要算法运算单元的响应报文的地址信息后,再根据所述地址信息依次从所述主机内存中读取响应报文;
所述主机与所述非对称运算单元进行密码运算类数据交互时,对应的请求报文地址数据包包括控制信息、密钥信息和请求报文的地址列表信息,对应的响应报文地址数据包包括响应报文的地址信息;所述非对称运算单元接收到所述请求报文地址数据包后,进行解析,获得控制信息、密钥信息和地址列表信息,根据所述地址列表信息依次从所述主机内存搬运请求数据进行非对称运算;在密码运算完成后,所述非对称运算单元将响应报文搬运至所述主机内存,并根据搬运后获得的响应报文在所述主机内存中的地址列表信息构造响应报文地址数据包;所述主机接收到所述响应报文地址数据包后进行解析,获得所述非对称运算单元的响应报文的地址信息后,再根据所述地址信息依次从所述主机内存中读取响应报文。
上面对本发明的具体实施方式进行了详细描述,虽然已表示和描述了一些实施例,但本领域技术人员应该理解,在不脱离由权利要求及其等同物限定其范围的本发明的原理和精神的情况下,可以对这些实施例进行修改和完善,这些修改和完善也应在本发明的保护范围内。

Claims (10)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010851155.1A CN112035900B (zh) 2020-08-21 2020-08-21 一种高性能密码卡以及其通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010851155.1A CN112035900B (zh) 2020-08-21 2020-08-21 一种高性能密码卡以及其通信方法

Publications (2)

Publication Number Publication Date
CN112035900A CN112035900A (zh) 2020-12-04
CN112035900B true CN112035900B (zh) 2022-03-15

Family

ID=73581751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010851155.1A Active CN112035900B (zh) 2020-08-21 2020-08-21 一种高性能密码卡以及其通信方法

Country Status (1)

Country Link
CN (1) CN112035900B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113824626B (zh) * 2021-09-24 2023-12-22 广东科瑞德电气科技有限公司 一种防止信息交互丢失的通讯管理方法
CN114546906B (zh) * 2022-01-28 2023-06-23 郑州信大捷安信息技术股份有限公司 一种基于ring通信机制的数据交互方法和系统
CN114760057A (zh) * 2022-04-13 2022-07-15 中金金融认证中心有限公司 用于密码芯片的方法、密码芯片、密码卡以及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108075882A (zh) * 2016-11-14 2018-05-25 航天信息股份有限公司 密码卡及其加解密方法
CN108628791A (zh) * 2018-05-07 2018-10-09 北京智芯微电子科技有限公司 基于pcie接口的高速安全芯片架构和高速的数据处理方法
CN209803788U (zh) * 2019-06-18 2019-12-17 苏州国芯科技股份有限公司 一种pcie可信密码卡
CN110765438A (zh) * 2019-10-24 2020-02-07 江苏云涌电子科技股份有限公司 一种高性能密码卡及其工作方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110580420B (zh) * 2018-06-11 2023-03-28 阿里巴巴集团控股有限公司 基于集成芯片的数据处理方法、计算机设备、存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108075882A (zh) * 2016-11-14 2018-05-25 航天信息股份有限公司 密码卡及其加解密方法
CN108628791A (zh) * 2018-05-07 2018-10-09 北京智芯微电子科技有限公司 基于pcie接口的高速安全芯片架构和高速的数据处理方法
CN209803788U (zh) * 2019-06-18 2019-12-17 苏州国芯科技股份有限公司 一种pcie可信密码卡
CN110765438A (zh) * 2019-10-24 2020-02-07 江苏云涌电子科技股份有限公司 一种高性能密码卡及其工作方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高速数据密码卡关键技术研究与实现;崔军;《中国优秀博硕士学位论文全文数据库 (硕士)信息科技辑》;20060715(第07期);I138-13 *

Also Published As

Publication number Publication date
CN112035900A (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
US20230110230A1 (en) Technologies for secure i/o with memory encryption engines
CN112035900B (zh) 一种高性能密码卡以及其通信方法
CN109902043B (zh) 一种基于fpga的国密算法加速处理系统
CN109644129B (zh) 用于硬件加速密码的密钥的线程所有权
CN112035899B (zh) 一种基于密码卡的数据通信系统及方法
CN112052483B (zh) 一种密码卡的数据通信系统及方法
US10140457B2 (en) Secure input/output device management
US20200167488A1 (en) Protection of communications between trusted execution environment and hardware accelerator utilizing enhanced end-to-end encryption and inter-context security
CN112035902A (zh) 一种面向高速高并发应用的加密模组
US20230069781A1 (en) Microprocessor, data processing method, electronic device, and storage medium
CN111193591A (zh) 一种基于cpu+fpga的加解密方法及系统
US20230071723A1 (en) Technologies for establishing secure channel between i/o subsystem and trusted application for secure i/o data transfer
CN114266035B (zh) 一种高性能密码卡及配置方法
CN116418522A (zh) 一种基于虚拟化技术的云服务器密码机系统
CN106874065A (zh) 一种支持硬件虚拟化的系统
WO2024074008A1 (zh) 一种总线的安全防护方法、装置及介质
WO2024098594A1 (zh) 代码保护系统、方法、虚拟系统架构、芯片及电子设备
CN116048809B (zh) 多芯粒异构安全芯片的任务处理方法及安全芯片装置
CN114553411B (zh) 用于分布式内存加密装置和用于分布式内存解密装置
CN116628717A (zh) 数据处理方法、装置、电子设备及存储介质
CN116070239A (zh) 文件加密、解密方法、装置、设备及存储介质
CN112257092A (zh) 数据传输控制方法、密钥管理方法、配置方法及相关装置
CN107562686B (zh) 信息处理方法和装置
US20240129282A1 (en) Systems, methods, and apparatus for protection for device data transfers
CN111625851B (zh) 一种mini PCIE密码卡、数据通信系统及方法

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 high-performance password card and its communication method

Effective date of registration: 20230412

Granted publication date: 20220315

Pledgee: China Construction Bank Corporation Zhengzhou Jinshui sub branch

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

Registration number: Y2023980037751

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