CN113177213B - 加密卡及其加密报文的处理方法 - Google Patents

加密卡及其加密报文的处理方法 Download PDF

Info

Publication number
CN113177213B
CN113177213B CN202110472013.9A CN202110472013A CN113177213B CN 113177213 B CN113177213 B CN 113177213B CN 202110472013 A CN202110472013 A CN 202110472013A CN 113177213 B CN113177213 B CN 113177213B
Authority
CN
China
Prior art keywords
descriptor
encryption
encrypted message
queue
operation instruction
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
CN202110472013.9A
Other languages
English (en)
Other versions
CN113177213A (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.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies 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 Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN202110472013.9A priority Critical patent/CN113177213B/zh
Publication of CN113177213A publication Critical patent/CN113177213A/zh
Application granted granted Critical
Publication of CN113177213B publication Critical patent/CN113177213B/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

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

本公开涉及一种加密卡及其加密报文的处理方法。该方法包括:CPU数据核获取待处理的报文;基于加密报文的协议构造第一个描述符;将所述第一个描述符写入硬件队列;FPGA解析所述第一个描述符生成操作指令;FPGA将所述操作指令发送给加解密芯片以处理所述加密报文。本公开涉及的加密卡处理加密报文的方法、电子设备及计算机可读介质,能够提高加密卡中队列利用率的方案,同时可以及时回收已经处理完成的描述符,使更多报文进入队列,解决因为队列满报文无法入队,导致丢包问题,提高加密卡处理效率。

Description

加密卡及其加密报文的处理方法
技术领域
本公开涉及计算机信息处理领域,具体而言,涉及一种加密卡及其处理加密报文的方法、电子设备及计算机可读介质。
背景技术
IP安全(IP Security,以下简称:IPSec)协议族是互联网工程任务组(InternetEngineering Task Force,简称:IETF)制定的一系列协议,它为IP数据报提供了高质量、可互操作、基于密码学的安全性策略,为IP层或IP层之上提供了保护。特定的通信双方之间在IP层通过加密与数据源验证等方式,来保证数据报在网络上传输时的私有性、完整性、真实性和防重放。现有IPSec主要通过认证头(Authentication Header,简称:AH)协议和封装安全载荷(Encapsulating Security Payload,简称:ESP)协议这两个安全协议来实现上述目标。并且还可以通过因特网密钥交换(Internet KeyExchange,简称:IKE)协议为IPSec提供了自动协商交换密钥、建立和维护安全联盟的服务,以简化IPSec的使用和管理。
在基于IPSec对报文进行加密或者解密的过程中,需要进行多次的加密解密工作,在这个过程中,会通过加密卡经常处理,一般通过系统PCI总线将加密卡连接到系统,由主CPU参与加解密运算,由于加密卡本身内存较小,在处理大流量的报文的时候,经常受限于加密卡自身的容量而产生丢包问题。因此,需要一种新的加密卡及其处理加密报文的方法、电子设备及计算机可读介质。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本公开提供一种加密卡及其处理加密报文的方法、电子设备及计算机可读介质,能够提高加密卡中队列利用率的方案,同时可以及时回收已经处理完成的描述符,使更多报文进入队列,解决因为队列满报文无法入队,导致丢包问题,提高加密卡处理效率。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提出一种加密卡处理加密报文的方法,该方法包括:CPU数据核获取待处理的报文;基于加密报文的协议构造第一个描述符;将所述第一个描述符写入硬件队列;FPGA解析所述第一个描述符生成操作指令;FPGA将所述操作指令发送给加解密芯片以处理所述加密报文。
在本公开的一种示例性实施例中,将所述第一个描述符写入硬件队列之后,还包括:硬件队列空闲描述符数量减1;硬件队列尾指针向后移动1。
在本公开的一种示例性实施例中,FPGA将所述操作指令发送给加解密芯片之后,包括:所述加解密芯片处理所述操作指令;在所述加解密芯片处理完所述操作指令之后,由所述硬件队列中删除所述描述符。
在本公开的一种示例性实施例中,所述加解密芯片处理所述操作指令,包括:所述加解密芯片基于所述加密报文的协议对所述加密报文进行加密或解密处理。
在本公开的一种示例性实施例中,所述加密报文为采用国密算法的IPSec加密报文。
在本公开的一种示例性实施例中,由所述硬件队列中删除所述描述符,还包括:回收所述第一个描述符所占用的缓存区。
在本公开的一种示例性实施例中,FPGA将所述操作指令发送给加解密芯片,包括:FPGA由多个加解密芯片中提取目标加解密芯片;FPGA将所述操作指令发送给所述目标加解密芯片。
在本公开的一种示例性实施例中,FPGA将所述操作指令发送给加解密芯片之后,还包括:CPU轮询所述硬件队列,在第一个描述符处理完成后,基于加密报文的协议构造下一个描述符;将所述下一个描述符写入硬件队列以处理所述加密报文。
在本公开的一种示例性实施例中,将所述下一个描述符写入硬件队列之后,还包括:更新队列空闲描述符数量;更新硬件队列尾指针位置。
在本公开的一种示例性实施例中,包括:在所述下一个描述符处理完毕之后,基于加密报文的协议构造下一个描述符直至所述加密报文处理完毕为止。
根据本公开的一方面,提出一种加密卡,包括:CPU数据核,用于获取待处理的加密报文;基于加密报文的协议构造第一个描述符;将所述第一个描述符写入硬件队列;FPGA,用于解析所述第一个描述符生成操作指令;并将所述操作指令发送给加解密芯片;加解密芯片,用于处理所述加密报文。
根据本公开的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本公开的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本公开的加密卡及其处理加密报文的方法、电子设备及计算机可读介质,CPU数据核获取待处理的报文;基于加密报文的协议构造第一个描述符;将所述第一个描述符写入硬件队列;FPGA解析所述第一个描述符生成操作指令;FPGA将所述操作指令发送给加解密芯片以处理所述加密报文的方式,能够提高加密卡中队列利用率的方案,同时可以及时回收已经处理完成的描述符,使更多报文进入队列,解决因为队列满报文无法入队,导致丢包问题,提高加密卡处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种加密卡的示意图。
图2是根据一示例性实施例示出的一种加密卡处理加密报文的方法的示意图。
图3是根据另一示例性实施例示出的一种加密卡处理加密报文的方法的示意图。
图4是根据另一示例性实施例示出的一种加密卡处理加密报文的方法的流程图。
图5是根据另一示例性实施例示出的一种加密卡处理加密报文的方法的示意图。
图6是根据另一示例性实施例示出的一种加密卡处理加密报文的方法的流程图。
图7是根据一示例性实施例示出的一种电子设备的框图。
图8是根据一示例性实施例示出的一种计算机可读介质的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知方法、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。
图1是根据一示例性实施例示出的一种加密卡的示意图。如图1所示,加密卡硬件由FPGA及加解密芯片SM1、SM2&3、SM4芯片构成,CPU通过PCIE访问FPGA,FPGA通过localbus管理加解密芯片。CPU构造描述符写入硬件队列,FPGA解析后将操作指令发送给SM2或SM3或SM4芯片。
其中,CPU数据核,用于获取待处理的加密报文;基于加密报文的协议构造第一个描述符;将所述第一个描述符写入硬件队列;
其中,FPGA,用于解析所述第一个描述符生成操作指令;并将所述操作指令发送给加解密芯片;
其中,加解密芯片,用于处理所述加密报文。
更具体的,加解密芯片可为不同型号的加解密芯片,他们可以运行在同一个加密卡中,在本公开的一个实施例中,加解密芯片SM1可为SSX30-D型号;加解密芯片SM2和SM3可为HSM2-H1;加解密芯片SM4可为HSM4-H1。
其中,CPU(central processing unit),中央处理器作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
其中,FPGA(Field-Programmable Gate Array),现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
在一个实施例中,加密卡可用于对IPSec协议的报文进行加解密,IPSec协议是一些为IP网络提供完整安全性的协议和服务的集合,因为IPSec工作在IP层,所以它能为上层协议和应用提供透明的安全服务。IPSec协议对于加密的报文,先加密再认证,解密报文,先认证再解密。
采用国密算法的IPSec加密报文,先经过一次SM1/SM4对称分组算法加密,再经过两次SM3非对称算法计算做认证。对于解密报文,先经过两次SM3计算做认证,再经过SM1/SM4计算做解密。因此对于一个国密IPSec报文,需要进行三次加解密芯片操作,有三个描述符写入硬件队列通知FPGA完成操作。
其中,国密算法是我国自主研发创新的一套数据加密处理系列算法。从SM1-SM4分别实现了对称、非对称、摘要等算法功能。特别适合应用于嵌入式物联网等相关领域,完成身份认证和数据加解密等功能。一般将国密算法嵌入到硬件加密芯片中结合使用。
如图2所示,CPU数据核收到报文A后,构造三个描述符A1、A2、A3写入硬件队列,队列空闲描述符个数减3,队列尾指针向后移动3个。异步模式下,CPU完成以上操作后,返回继续执行其他业务处理。当CPU收到报文B后,构造三个描述符B1、B2、B3放入队列尾指针处,队列空闲描述符个数减3,队列尾指针向后移动3个。CPU数据核不断轮询硬件队列,如果A3描述符处理完成,则取出加密认证后的报文,队列头指针向后移动三个,空闲描述符个数加3。
内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。每一个文件描述符会与一个打开文件相对应,同时,不同的文件描述符也会指向同一个文件。相同的文件可以被不同的进程打开也可以在同一个进程中被多次打开。系统为每一个进程维护了一个文件描述符表,该表的值都是从0开始的,所以在不同的进程中你会看到相同的文件描述符,这种情况下相同文件描述符有可能指向同一个文件。
如图2所示的方案有以下两个缺点:
1.硬件队列利用率偏低,FPGA同一时间只能处理报文中的一个描述符,但是该报文占用三个描述符位置,如果队列大小为64,则同时最多只能有21个报文缓存在的硬件队列中,不利于缓冲瞬时大流量。
2.描述符无法及时回收,只能同时回收三个,以图3中的隧道模式为例,报文A的三个描述符使用同一段输入buffer(缓存),区别在于起始地址不同,A1描述符起始地址为加密范围,加密完成后密文覆盖明文,A2描述符起始地址为认证范围,两个描述符需要访问同一段输入buffer。因此,A1描述符完成后无法立即回收,应为A1对应的输入buffer还要由A2、A3继续使用。三个描述符都处理完成后,才能一起回收。
为了解决现有技术中的种种缺陷,本公开提出一种加密卡处理加密报文的方法,可用于国密IPSec报文提高FPGA队列利用率,同时可以及时回收已经处理完成的描述符,使更多报文进入队列,解决因为队列满报文无法入队,导致丢包问题。具体的操作过程描述如下:
图4是根据一示例性实施例示出的一种加密卡处理加密报文的方法的流程图。加密卡处理加密报文的方法40至少包括步骤S402至S410。
如图4所示,在S402中,CPU数据核获取待处理的报文。
在S404中,基于加密报文的协议构造第一个描述符。一般而言,在对报文进行加密或者解密处理时,需要构造多个描述符,在本公开的方法中,每次仅构造一个描述符。
在S406中,将所述第一个描述符写入硬件队列。还包括:硬件队列空闲描述符数量减1;硬件队列尾指针向后移动1。
在S408中,FPGA解析所述第一个描述符生成操作指令。
在S410中,FPGA将所述操作指令发送给加解密芯片以处理所述加密报文。
其中,FPGA将所述操作指令发送给加解密芯片之后,包括:所述加解密芯片处理所述操作指令;在所述加解密芯片处理完所述操作指令之后,由所述硬件队列中删除所述描述符。
其中,所述加解密芯片处理所述操作指令,包括:所述加解密芯片基于所述加密报文的协议对所述加密报文进行加密或解密处理。
其中,所述加密报文为采用国密算法的IPSec加密报文。
其中,由所述硬件队列中删除所述描述符,还包括:回收所述第一个描述符所占用的缓存区。即为,清空第一个描述符所占用的缓存空间以供其他描述符使用。
其中,FPGA将所述操作指令发送给加解密芯片,包括:FPGA由多个加解密芯片中提取目标加解密芯片;FPGA将所述操作指令发送给所述目标加解密芯片。FPGA可基于当前加解密芯片的工作状态进行优化选择,进而选择目标加解密芯片。
在一个实施例中,FPGA将所述操作指令发送给加解密芯片之后,还包括:CPU轮询所述硬件队列,在第一个描述符处理完成后,基于加密报文的协议构造下一个描述符;将所述下一个描述符写入硬件队列以处理所述加密报文。
其中,将所述下一个描述符写入硬件队列之后,还包括:更新队列空闲描述符数量;更新硬件队列尾指针位置。
在一个实施例中,还包括:在所述下一个描述符处理完毕之后,基于加密报文的协议构造下一个描述符直至所述加密报文处理完毕为止。更具体的,FPGA根据IPSec协议的内容解析所述第二个描述符生成操作指令,FPGA将所述操作指令发送给加解密芯片再次进行处理。直至根据IPSec协议的要求不需再进行加密或者解密为止。
以IPSec加密报文为例,IPSec加密报文需要经过三次加解密芯片处理,SM1/SM4对称分组算法加密时构造描述符A1,计算HMAC第一次sm3时构造描述符A2,HMAC第二次sm3时构造描述符A3。A1、A2、A3描述符对应IPSec报文处理中的三种状态。
其中,HMAC是密钥相关的哈希运算消息认证码(Hash-based MessageAuthentication Code),它是一个需要密钥的算法,可以对可变长度的消息进行认证,把输出的结果作为认证符。
在本方案中,IPSec报文的三个描述符在缓存中不需要连续的,也不需要同时存在。在同一个时刻中,每个报文只有一个描述符在硬件队列中,等待FPGA处理。在收到IPSec报文时,只构造一个描述符写入硬件处理队列。在这个描述符被轮询到已经处理完成后,CPU再根据这个报文所处的状态,构造第二个描述符或者更多的描述符(每次构造一个描述符)写入队列,直至这个报文被处理完成为止。
对于异步队列,数据核进行以下两个操作:
1.CPU数据核接收IPSec报文,构造描述符写入队列,然后返回处理其他业务;
2.CPU轮询异步队列,回收处理完成的描述符,构造新描述符或取出完成加密认证的报文。
根据本公开的加密卡处理加密报文的方法,CPU数据核获取待处理的报文;基于加密报文的协议构造第一个描述符;将所述第一个描述符写入硬件队列;FPGA解析所述第一个描述符生成操作指令;FPGA将所述操作指令发送给加解密芯片以处理所述加密报文的方式,能够提高加密卡中队列利用率的方案,同时可以及时回收已经处理完成的描述符,使更多报文进入队列,解决因为队列满报文无法入队,导致丢包问题,提高加密卡处理效率。
应清楚地理解,本公开描述了如何形成和使用特定示例,但本公开的原理不限于这些示例的任何细节。相反,基于本公开公开的内容的教导,这些原理能够应用于许多其它实施例。
图5是根据另一示例性实施例示出的一种加密卡处理加密报文的方法的示意图,图5是对图4所示的流程进行了更详细描述。
如图5所示,在S501中,获取报文。
在S502中,构造描述符A1。
在S503中,描述符A1对应的处理是否完成。
在S504中,构造A2,回收A1。
在S505中,描述符A2对应的处理是否完成。
在S506中,构造A3,回收A2。
在S507中,描述符A3对应的处理是否完成。
在S508中,回收A3。
在S509中,异常处理。
图6是根据另一示例性实施例示出的一种加密卡处理加密报文的方法的示意图。以图6为例,描述报文A的处理过程:
1.CPU数据核收到报文A后,构造A1描述符写入硬件队列,队列空闲描述符个数减1,队列尾指针向后移动1个,完成以上操作后,返回继续执行其他业务处理;
2.CPU数据核收到报文B后,构造B1描述符写入硬件队列,队列空闲描述符个数减1,队列尾指针向后移动1个,完成以上操作后,返回继续执行其他业务处理;
3.CPU数据核轮询队列,当查询到A1描述符处理完成后,构造A2描述符写入队列尾指针处,尾指针向后移动1个,回收A1,队列头指针向后移动1个,空闲描述符个数不变;
4.CPU数据核收到报文C后,构造C1描述符写入硬件队列,队列空闲描述符个数减1,队列尾指针向后移动1个,完成以上操作后,返回继续执行其他业务处理;
5.CPU数据核轮询队列,当查询到B1描述符处理完成后,构造B2描述符写入队列尾指针处,尾指针向后移动1个,回收B1,队列头指针向后移动1个,空闲描述符个数不变;
6.CPU数据核轮询队列,当查询到A3描述符处理完成后,取出已经完成加密认证后的报文,回收A3,队列头指针向后移动1个,空闲描述符个数加1。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本公开提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
图7是根据一示例性实施例示出的一种电子设备的框图。
下面参照图7来描述根据本公开的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:至少一个处理单元710、至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730、显示单元740等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元710可以执行如图4,图5中所示的步骤。
所述存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
所述存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备700’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备700交互的设备通信,和/或该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器760可以通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图8所示,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述方法。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:控制CPU数据核获取待处理的报文;基于加密报文的协议构造第一个描述符;将所述第一个描述符写入硬件队列;控制FPGA解析所述第一个描述符生成操作指令;FPGA将所述操作指令发送给加解密芯片以处理所述加密报文。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施例的方法。
以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

Claims (10)

1.一种加密卡处理加密报文的方法,其特征在于,包括:
CPU数据核获取待处理的报文;
基于加密报文的协议构造第一个描述符;
将所述第一个描述符写入硬件队列;
FPGA解析所述第一个描述符生成操作指令;
FPGA将所述操作指令发送给加解密芯片以处理所述加密报文;
CPU轮询所述硬件队列,在第一个描述符处理完成后,基于加密报文的协议构造下一个描述符;
将所述下一个描述符写入硬件队列以处理所述加密报文。
2.如权利要求1所述的方法,其特征在于,将所述第一个描述符写入硬件队列之后,还包括:
硬件队列空闲描述符数量减1;
硬件队列尾指针向后移动1。
3.如权利要求1所述的方法,其特征在于,FPGA将所述操作指令发送给加解密芯片之后,包括:
所述加解密芯片处理所述操作指令;
在所述加解密芯片处理完所述操作指令之后,由所述硬件队列中删除所述描述符。
4.如权利要求3所述的方法,其特征在于,所述加解密芯片处理所述操作指令,包括:
所述加解密芯片基于所述加密报文的协议对所述加密报文进行加密或解密处理。
5.如权利要求4所述的方法,其特征在于,所述加密报文为采用国密算法的IPSec加密报文。
6.如权利要求3所述的方法,其特征在于,由所述硬件队列中删除所述描述符,还包括:
回收所述第一个描述符所占用的缓存区。
7.如权利要求1所述的方法,其特征在于,FPGA将所述操作指令发送给加解密芯片,包括:
FPGA由多个加解密芯片中提取目标加解密芯片;
FPGA将所述操作指令发送给所述目标加解密芯片。
8.如权利要求1所述的方法,其特征在于,将所述下一个描述符写入硬件队列之后,还包括:
更新队列空闲描述符数量;
更新硬件队列尾指针位置。
9.如权利要求1所述的方法,其特征在于,包括:
在所述下一个描述符处理完毕之后,基于加密报文的协议构造下一个描述符直至所述加密报文处理完毕为止。
10.一种加密卡,其特征在于,包括:
CPU数据核,用于获取待处理的加密报文;基于加密报文的协议构造第一个描述符;将所述第一个描述符写入硬件队列;
FPGA,用于解析所述第一个描述符生成操作指令,并将所述操作指令发送给加解密芯片;
加解密芯片,用于处理所述加密报文;
CPU轮询所述硬件队列,在第一个描述符处理完成后,基于加密报文的协议构造下一个描述符,并将所述下一个描述符写入硬件队列以处理所述加密报文。
CN202110472013.9A 2021-04-29 2021-04-29 加密卡及其加密报文的处理方法 Active CN113177213B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110472013.9A CN113177213B (zh) 2021-04-29 2021-04-29 加密卡及其加密报文的处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110472013.9A CN113177213B (zh) 2021-04-29 2021-04-29 加密卡及其加密报文的处理方法

Publications (2)

Publication Number Publication Date
CN113177213A CN113177213A (zh) 2021-07-27
CN113177213B true CN113177213B (zh) 2022-06-24

Family

ID=76925289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110472013.9A Active CN113177213B (zh) 2021-04-29 2021-04-29 加密卡及其加密报文的处理方法

Country Status (1)

Country Link
CN (1) CN113177213B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854353A (zh) * 2010-04-28 2010-10-06 国网电力科学研究院 一种基于fpga的多芯片并行加密方法
CN102970142A (zh) * 2012-12-11 2013-03-13 成都卫士通信息产业股份有限公司 一种vpn设备在多加密卡环境下并发加解密的方法及系统
CN110928604A (zh) * 2019-11-11 2020-03-27 北京天融信网络安全技术有限公司 基于无锁环状队列的密码卡异步调用方法
CN211293972U (zh) * 2019-12-17 2020-08-18 全球能源互联网研究院有限公司 一种加密卡
CN112491821A (zh) * 2020-11-12 2021-03-12 杭州迪普科技股份有限公司 一种IPSec报文转发的方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8675674B2 (en) * 2009-12-23 2014-03-18 Citrix Systems, Inc. Systems and methods for queue level SSL card mapping to multi-core packet engine
US10911491B2 (en) * 2017-11-20 2021-02-02 International Business Machines Corporation Encryption with sealed keys

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854353A (zh) * 2010-04-28 2010-10-06 国网电力科学研究院 一种基于fpga的多芯片并行加密方法
CN102970142A (zh) * 2012-12-11 2013-03-13 成都卫士通信息产业股份有限公司 一种vpn设备在多加密卡环境下并发加解密的方法及系统
CN110928604A (zh) * 2019-11-11 2020-03-27 北京天融信网络安全技术有限公司 基于无锁环状队列的密码卡异步调用方法
CN211293972U (zh) * 2019-12-17 2020-08-18 全球能源互联网研究院有限公司 一种加密卡
CN112491821A (zh) * 2020-11-12 2021-03-12 杭州迪普科技股份有限公司 一种IPSec报文转发的方法及装置

Also Published As

Publication number Publication date
CN113177213A (zh) 2021-07-27

Similar Documents

Publication Publication Date Title
US20180212751A1 (en) End-To-End Secure Operations Using a Query Matrix
CN110460439A (zh) 信息传输方法、装置、客户端、服务端及存储介质
US20180212753A1 (en) End-To-End Secure Operations Using a Query Vector
CN110100422B (zh) 基于区块链智能合约的数据写入方法、装置及存储介质
CN107612683B (zh) 一种加解密方法、装置、系统、设备和存储介质
US9020149B1 (en) Protected storage for cryptographic materials
WO2020252611A1 (zh) 一种数据交互方法及相关设备
CN106067874B (zh) 一种将数据记录至服务器端的方法、终端和服务器
WO2014007296A1 (ja) 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム
CN110061968A (zh) 一种基于区块链的文件加解密方法、系统及存储介质
CN110598429B (zh) 数据加密存储和读取的方法、终端设备及存储介质
CN109842589A (zh) 一种云存储加密方法、装置、设备及存储介质
US20200036516A1 (en) Method and apparatus for policy hiding on ciphertext-policy attribute-based encryption
CN112016104B (zh) 一种金融敏感数据的加密方法、装置和系统
CN114785524B (zh) 电子印章生成方法、装置、设备和介质
CN112088376A (zh) 一种文件存储方法、装置及存储介质
CN113242134A (zh) 数字证书签名方法、装置、系统及存储介质
CN109711178B (zh) 一种键值对的存储方法、装置、设备及存储介质
CN113177213B (zh) 加密卡及其加密报文的处理方法
WO2020177109A1 (zh) 抽签处理方法、可信芯片、节点、存储介质和电子设备
US9203607B2 (en) Keyless challenge and response system
JP4912797B2 (ja) 暗号装置及び復号装置及び暗号方法及び復号方法及びプログラム
US11005651B2 (en) Method and terminal for establishing security infrastructure and device
CN113343254A (zh) 基于ofd格式的保函加解密方法、装置、介质及电子设备
CN111130788B (zh) 数据处理方法和系统、数据读取方法和iSCSI服务器

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