CN110287721B - 硬件加解密系统及方法 - Google Patents
硬件加解密系统及方法 Download PDFInfo
- Publication number
- CN110287721B CN110287721B CN201910722329.1A CN201910722329A CN110287721B CN 110287721 B CN110287721 B CN 110287721B CN 201910722329 A CN201910722329 A CN 201910722329A CN 110287721 B CN110287721 B CN 110287721B
- Authority
- CN
- China
- Prior art keywords
- algorithm
- module
- encryption
- decryption
- data packet
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 86
- 238000012795 verification Methods 0.000 claims description 7
- 230000001133 acceleration Effects 0.000 claims description 3
- 238000013524 data verification Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 20
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种硬件加解密系统及方法,所述硬件加解密系统包括:集成在加解密模块中的接收缓冲模块、分配模块、算法池、收集模块、中间缓冲模块以及发送缓冲模块;本发明的硬件加解密系统及方法,能够对送入加解密模块的TLS/IPsec等不同协议的数据包多次调用算法池中的算法,并在发送缓冲模块输出已全部处理完成加解密的数据包,整个加解密处理过程无需处理器逻辑干预,减轻了处理器的运行负荷,同时实现对算法资源的最大化利用,有效提升了数据包加解密处理的效率。
Description
技术领域
本发明涉及数据安全技术领域,尤其涉及一种硬件加解密系统及方法。
背景技术
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
在信息安全日益受到人们重视的信息化时代,数据处理及存储产品要求不止具有处理数据的功能,还需要具有病毒防护和加解密的功能。针对此项要求,目前市场上有软件加解密和硬件加解密两种方案,而其中硬件加解密由于其速度快,安全性高而受到研究者的重视。
现有技术中,硬件加解密较多地采用FPGA实现。但由于一个数据包的加解密过程可能需要经历多次算法(如SM3、SM4等)处理,且每一次算法处理完成后,需要重新回溯至CPU以对未完成加解密过程的数据包重新规划下一次算法处理,直至该数据包完成所有加解密算法步骤;然而,上述加解密过程中,数据包需要在CPU与FPGA之间进行回传多次方可完成加解密过程,增加了CPU的资源利用,加重了CPU的运行负荷;同时,多次回传过程还会降低了数据包加解密处理的效率。
发明内容
鉴于上述内容,有必要提供一种硬件加解密系统及方法,其能够降低CPU的运行负荷,并提高了数据加解密处理的效率。
本发明提供一种硬件加解密系统,包括:集成在加解密模块中的接收缓冲模块、分配模块、算法池、收集模块、中间缓冲模块以及发送缓冲模块;其中,
所述接收缓冲模块,用于接收来自外部的数据包并进行缓存处理;
所述算法池,包括多个算法单元,每个算法单元能够对数据包进行一次独立的算法处理;
所述分配模块,电性连接于所述接收缓冲模块和所述中间缓冲模块,用于根据预定的规则将所述接收缓冲模块和所述中间缓冲模块的数据包分配给算法池相应的算法单元;
所述收集模块,用于收集所述算法池中每个算法单元处理过的数据包,并根据预定的规则将各个数据包分流处理;
所述中间缓冲模块,电性连接于所述收集模块,用于接收由所述收集模块分流的未全部处理完成加解密的数据包并进行缓存处理,以供所述分配模块调用,并再次分配给算法池相应的算法单元处理;
所述发送缓冲模块,电性连接于所述收集模块,用于接收由所述收集模块分流的已全部处理完成加解密的数据包并进行缓存处理,以待外部设备读取。
进一步的,所述硬件加解密系统对TLS协议或IPsec协议进行数据加速处理,所述加解密模块为FPGA芯片或ASIC芯片。
进一步的,还包括:输入设备和输出设备;所述输入设备电性连接于所述加解密模块,用于向所述加解密模块提供数据包并对所述数据包进行编号处理;所述输出设备电性连接于所述加解密模块,用于接收经由所述加解密模块已全部处理完成加解密的数据包进行存储,数据包中的编号以用于外部设备进行读取、识别操作。
进一步的,所述算法池包含M个第一算法单元和N个第二算法单元,所述第一算法单元采用消息摘要算法实现对数据包的数字签名及验证、消息认证码生成及验证;所述第二算法单元采用对称密码算法对数据包进行加解密处理。
进一步的,每个算法单元包括前缓存区、算法区以及后缓存区;
所述前缓存区位于所述算法区的前端,其用于对流入的数据包进行预存,以对所述算法区进行不间断的供应数据包;
所述算法区内设有对称密码算法或消息摘要算法,以对数据包进行算法处理;
所述后缓存区位于所述算法区的后端,其用于对所述算法区处理过的数据包进行暂存,以备所述收集模块获取。
进一步的,预设所述算法池能够承纳的最大数据包量为K,所述分配模块监控流入所述加解密模块与流出所述加解密模块的数据包量的差值X,若X等于K时,则所述分配模块停止接收来自所述接收缓冲模块的数据包,待X小于K时,则所述分配模块开放接收来自所述接收缓冲模块的数据包。
本发明还提出一种应用上述硬件加解密系统的加解密方法,所述硬件加解密系统包括集成在加解密模块中的接收缓冲模块、分配模块、算法池、收集模块、中间缓冲模块以及发送缓冲模块,所述加解密方法包括:
接收缓冲模块接收到待加解密数据包并进行缓存处理;
分配模块从所述接收缓冲模块读取所述待加解密数据包,并根据预定的规则分配给算法池相应的算法单元;
所述算法池相应的算法单元对所述待加解密数据包进行一次算法处理;
收集模块接收来自所述算法池相应的算法单元加解密处理过的数据包,若所述数据包未全部处理完成加解密处理,则所述数据包被分流至中间缓冲模块,以待下一次算法池的算法处理;若所述数据包已全部处理完成加解密处理,则所述数据包将被分流至发送缓冲模块,以待外部设备读取。
进一步的,在接收缓冲模块接收到待加解密数据包并进行缓存处理之前,还包括:
由输入设备对待加解密数据包进行编号处理,以使流入所述加解密模块的数据包与流出的数据包相对应;
在收集模块接收来自所述算法池相应的算法单元加解密处理过的数据包之后,还包括:
若所述数据包仅完成对称密码算法处理,并未完成消息摘要算法处理,或者所述数据包仅完成消息摘要算法处理,并未完成对称密码算法处理,则所述数据包将被分流至中间缓冲模块,以待下一次算法池中相应的算法单元对其进行消息摘要算法或对称密码算法处理;若所述数据包已完成对称密码算法和消息摘要算法处理,或者所述数据包已完成且只需完成对称密码算法或消息摘要算法处理,则所述数据包将被分流至发送缓冲模块,以待输出设备读取。
进一步的,每个算法单元包括前缓存区、算法区以及后缓存区;
所述前缓存区位于所述算法区的前端,其用于对流入的数据包进行预存,以对所述算法区进行不间断的供应数据包;
所述算法区内设有对称密码算法或消息摘要算法,以对数据包进行算法处理;
所述后缓存区位于所述算法区的后端,其用于对所述算法区处理过的数据包进行暂存,以备所述收集模块获取。
进一步的,预设所述算法池能够承纳的最大数据包量为K,所述分配模块监控流入所述加解密模块与流出加解密模块的数据包量的差值X,若X等于K时,则所述分配模块停止接收来自所述接收缓冲模块的数据包,待X小于K时,则所述分配模块开放接收来自所述接收缓冲模块的数据包。
本发明的硬件加解密系统及方法通过在加解密模块集成了接收缓冲模块、分配模块、算法池、收集模块、中间缓冲模块以及发送缓冲模块。且接收缓冲模块接收到待加解密数据包并进行缓存处理;分配模块从所述接收缓冲模块读取所述待加解密数据包,并根据预定的规则分配给算法池相应的算法单元;所述算法池相应的算法单元对所述待加解密数据包进行一次算法处理;收集模块接收来自所述算法池相应的算法单元加解密处理过的数据包,若所述数据包未完成加解密处理,则所述数据包被分流至中间缓冲模块,以待下一次算法池的算法处理;若所述数据包已完成加解密处理,则所述数据包将被分流至发送缓冲模块,以待外部设备读取。由此可知,本发明的硬件加解密系统及方法能够对送入加解密模块的不同协议的数据包多次调用算法池中的算法,并在发送缓冲模块输出加解密已完成的数据包,整个加解密处理过程无需处理器逻辑处理,减轻了CPU的运行负荷,并提升了数据包加解密处理的效率。
现有技术中,通过设计专门的加密通道和解密通道。例如,加密通道采用SM4算法单元加SM3算法单元的方式(先进行SM4算法,然后进行SM3算法),而解密通道通过SM3算法单元加SM4算法单元的方式(先进行SM3算法,然后进行SM4算法),待加密的数据包被送入加密通道后,先是SM4算法单元工作,SM3算法单元处于闲置状态,待SM4算法单元工作完毕后,SM3算法单元才开始工作,此时SM4算法单元则转为闲置状态;同理,待解密的数据包被送入解密通道后,先是SM3算法单元工作,SM4算法单元处于闲置状态;待SM3算法单元工作完毕后,SM4算法单元才开始工作,此时SM3算法单元则转为闲置状态。因此,现有技术无论对数据包进行加密还是解密,均存在闲置的算法单元,造成资源浪费。另外,现有技术通常设定加密通道的个数与解密通道的个数相等,然而,实际处理过程中,待加密的数据包量和待解密的数据包量明显不对等,进而造成资源利用不合理的现象。而本发明的硬件加解密系统及方法中的每一个算法单元均能独立的进行算法处理,并通过分配模块、收集模块以及中间缓冲模块构建循环的加解密通道,使得算法池中的每一个算法单元都得以有效的利用,且无论是加密过程还是解密过程,均不会出现有算法单元的闲置,实现对资源利用的合理化和最大化。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一个实施例的硬件加解密系统的示意图。
图2是本发明一个实施例的硬件加解密方法流程图。
主要元件符号说明
硬件加解密系统 | 100 |
输入设备 | 10 |
加解密模块 | 20 |
接收缓冲模块 | 21 |
分配模块 | 22 |
算法池 | 23 |
收集模块 | 24 |
中间缓冲模块 | 25 |
发送缓冲模块 | 26 |
输出模块 | 30 |
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
请参阅图1,本发明的一个实施例提供一种硬件加解密系统100,其能够提高了数据加解密处理的效率。
所述硬件加解密系统100包括:输入设备10、加解密模块20以及输出设备30;所述输入设备10用于生成数据包,所述加解密模块20电性连接于所述输入设备10,以接收来自所述输入设备10的数据包,并对所述数据包进行加解密处理;所述输出设备30电性连接于所述加解密模块20,用于接收来自所述加解密模块20已全部处理完成加解密的数据包并进行存储,以便于外部设备进行读取操作。
优选的,所述硬件加解密系统可以对TLS协议或IPsec协议进行数据加速处理,但不限于此。
优选的,所述加解密模块可以为FPGA芯片或ASIC芯片,但不限于此。
优选的,所述输入设备10可以为CPU或FPGA,所述输出设备30可以为CPU或FPGA,但不限于此。
所述加解密模块20包括:接收缓冲模块21、分配模块22、算法池23、收集模块24、中间缓冲模块25以及发送缓冲模块26。
所述接收缓冲模块21电性连接于所述输入设备10,以用于接收来自所述输入设备10的数据包并进行缓存处理;所述算法池23包括多个算法单元,每个算法单元能够对数据包进行一次独立的算法处理;所述分配模块22电性连接于所述接收缓冲模块21和所述中间缓冲模块25,以用于根据预定的规则,将所述接收缓冲模块21和所述中间缓冲模块25的数据包分配给算法池23相应的算法单元;所述收集模块24,用于收集所述算法池23中每个算法单元处理完成的数据包,并根据预定的规则将各个数据包分流处理;其中,一路将加解密未完成的数据包发送到中间缓冲模块25,等待下一次的算法池23的算法处理;另一路将加解密完成的数据包发送至所述发送缓冲模块26,等待所述输出设备30的读取;所述中间缓冲模块25电性连接于所述收集模块24,用于接收由所述收集模块24分流的加解密未完成的数据包并进行缓存处理,以供所述分配模块22调用,并再次分配给算法池23相应的算法单元处理;所述发送缓冲模块26电性连接于所述收集模块24,用于接收由所述收集模块24分流的加解密完成的数据包并进行缓存处理,以待所述输出设备30读取。
在本实施例中,所述算法池23包含M个第一算法单元和N个第二算法单元,所述第一算法单元内设有第一算法,所述第一算法主要采用Hash函数,实现对数据包的数字签名及验证、消息认证码生成及验证等;优选的,所述第一算法可以为SM3、SHA-1、SHA-256、SHA-512、MD5之类的消息摘要算法,但不限于此。所述第二算法单元内设有第二算法,所述第二算法用于对数据包进行加解密处理;优选的,所述第二算法可以为SM4、DES、AES之类的对称密码算法,但不限于此。通过在算法池23中设有M个第一算法单元和N个第二算法单元,以实现多路对称密码算法和消息摘要算法处理,提升了所述算法池23的利用率。
进一步的,每个算法单元包括前缓存区、算法区以及后缓存区,所述前缓存区位于所述算法区的前端,其用于对流入的数据包进行预存,以对算法区进行不间断的供应数据包,确保算法区能够进行不间断的算法处理,进而提升了算法池的运行效率;所述算法区内设有对称密码算法或消息摘要算法,以对数据包进行算法处理;所述后缓存区位于所述算法区的后端,其用于对所述算法区处理过的数据包进行暂存,以备所述收集模块24获取。可以理解,所述收集模块24从多个算法单元中逐个获取处理过的数据包,如果没有后缓冲区,则处理过的数据包只能滞留在算法区内,且算法区只有等待所述收集模块24取走处理过的数据包方可接收下一个待处理的数据包;而本实施例中,通过设置后缓存区,使算法区处理完的数据包先暂存于后缓存区,以等待收集模块24提取,与此同时,算法区也可正常接收下一个待处理的数据包,进而提升了算法区的利用率。综上所述,通过在每个算法单元设置前缓存区、算法区以及后缓存区,能够保证了每个算法单元的工作连续性,提升了算法池23整体的处理效率。
可以理解,若干条数据信息可能会被分别拆分成多个大小不同数据包,并按照预定的顺序分别送入所述加解密模块20,然而,由于较大的数据包经由算法池23处理的时间可能略大于较小的数据包经由算法池23处理的时间,即使较大的数据包先于较小的数据包被送入加解密模块20,但由于较大的数据包在加解密模块20中的处理的时间较长,则有可能较小的数据包先于较大的数据包被送出所述加解密模块20,造成数据包顺序的紊乱。在本实施例中,通过在所述输入设备10中对多个数据包进行编号处理,多个数据包则将按照编号的顺序依次被送入所述加解密模块20,即使不同大小的数据包在所述加解密模块20的处理时间不同,且从所述加解密模块20流出的数据包先后顺序与先前流入的数据包先后顺序不同,但是,由于每一个数据包均有对应的编号,通过编号可以对数据包重新编排,以使流入所述加解密模块20的数据包与流出的数据包相对应,确保数据信息不受损坏,进一步保证了数据信息的完整性。
在本实施例中,所述分配模块22能够对数据包量进行流控。具体的,预设所述算法池23能够承纳的最大数据包量为K,所述分配模块22监控流入所述加解密模块20与流出加解密模块20的数据包量的差值X,若X等于K时,则所述分配模块22停止接收来自所述接收缓冲模块21的数据包,但正常接收来自所述中间缓冲模块25中的数据包;待X小于K时,说明已有全部处理完成加解密处理的数据包流出所述加解密模块20,所述分配模块22即可开放接收来自所述接收缓冲模块21的数据包。本发明通过对数据包量进行流控处理,以避免因数据包量过大造成所述算法池23拥堵的现象,进一步提升了所述加解密模块20的稳定性。
可以理解, 本发明硬件加解密系统100支持多种协议的加解密操作,例如,某些数据包需要进行数据加密和数字签名操作,某些数据包仅需要进行数据加密操作。
请参阅附图2,本发明还提供一种应用上述硬件加解密系统的加解密方法,其包括如下步骤:
步骤1,接收缓冲模块21接收到待加解密数据包并进行缓存处理;
具体的,所述接收缓冲模块21接收来自所述输入设备10的数据包并进行缓存处理。
步骤2,分配模块22从所述接收缓冲模块21读取所述待加解密数据包,并根据预定的规则分配给算法池23相应的算法单元;
具体的,分配模块22根据预定的规则,将所述待加解密数据包分配给其中一个算法单元前端的缓存区进行排队。
步骤3,所述算法池23相应的算法单元对所述待加解密数据包进行一次算法处理。
具体的,所述算法池23包含M个第一算法单元和N个第二算法单元,所述第一算法单元内设有第一算法,所述第一算法主要采用Hash函数,实现对数据包的数字签名及验证、消息认证码生成及验证等;优选的,所述第一算法可以为SM3、SHA-1、SHA-256、SHA-512、MD5之类的消息摘要算法,但不限于此。所述第二算法单元内设有第二算法,所述第二算法用于对数据包进行加解密处理;优选的,所述第二算法可以为SM4、DES、AES之类的对称密码算法,但不限于此。通过在算法池23中设有M个第一算法单元和N个第二算法单元,以实现多路对称密码算法和消息摘要算法处理,提升了所述算法池23的利用率。
每个算法单元包括前缓存区、算法区以及后缓存区;所述前缓存区位于所述算法区的前端,其用于对流入的数据包进行预存,以对所述算法区进行不间断的供应数据包;所述算法区内设有对称密码算法或消息摘要算法,以对数据包进行算法处理;所述后缓存区位于所述算法区的后端,其用于对所述算法区处理过的数据包进行暂存,以备所述收集模块获取。
步骤4,收集模块24接收来自所述算法池23相应的算法单元加解密处理过的数据包,并判断所述数据包是否完成加解密处理,若所述数据包未全部处理完成加解密处理,则所述数据包被分流至中间缓冲模块25,以待下一次算法池23的算法处理;若所述数据包已全部处理完成加解密处理,则所述数据包将被分流至发送缓冲模块26,以待外部设备读取。
具体的,若所述数据包仅完成对称密码算法处理,并未完成消息摘要算法处理,或若所述数据包仅完成消息摘要算法处理,并未完成对称密码算法处理,则所述数据包将被分流至中间缓冲模块25,以待下一次算法池23中相应的算法单元对其进行对称密码算法或消息摘要算法处理;若所述数据包已完成对称密码算法和消息摘要算法处理,或者所述数据包已完成且只需完成对称密码算法或消息摘要算法处理,则所述数据包将被分流至发送缓冲模块26,以待输出设备30读取。
进一步的,预设所述算法池23能够承纳的最大数据包量为K,所述分配模块22监控流入所述加解密模块20与流出加解密模块20的数据包量的差值X,若X等于K时,则所述分配模块22停止接收来自所述接收缓冲模块21的数据包,待X小于K时,则所述分配模块22即可开放接收来自所述接收缓冲模块21的数据包。
在上述步骤1之前还包括:
由输入设备10对待加解密数据包进行编号处理,以使流入所述加解密模块20的数据包与流出的数据包相对应。
具体的,通过在所述输入设备10中对多个数据包进行编号处理,多个数据包则将按照编号的顺序依次被送入所述加解密模块20,即使不同大小的数据包在所述加解密模块20的处理时间不同,且从所述加解密模块20流出的数据包先后顺序与先前流入的数据包先后顺序不同,但是,由于每一个数据包均有对应的编号,通过编号可以对数据包重新编排,以使流入所述加解密模块20的数据包与流出的数据包相对应,确保数据信息不受损坏,进一步保证了数据信息的完整性。
本发明的硬件加解密系统及方法通过在加解密模块20集成接收缓冲模块21、分配模块22、算法池23、收集模块24、中间缓冲模块25以及发送缓冲模块26。且接收缓冲模块21接收到待加解密数据包并进行缓存处理;分配模块22从所述接收缓冲模块21读取所述待加解密数据包,并根据预定的规则分配给算法池23相应的算法单元;所述算法池23相应的算法单元对所述待加解密数据包进行一次算法处理;收集模块24接收来自所述算法池23相应的算法单元加解密处理过的数据包,若所述数据包未完成加解密处理,则所述数据包被分流至中间缓冲模块25,以待下一次算法池23的算法处理;若所述数据包已完成加解密处理,则所述数据包将被分流至发送缓冲模块26,以待外部设备读取。由此可知,本发明的硬件加解密系统及方法能够对送入加解密模块20的不同协议的数据包多次调用算法池23中的算法,并在发送缓冲模块26输出加解密已完成的数据包,整个加解密处理过程无需输入设备10参与,减轻了CPU的运行负荷,并提升了数据包加解密处理的效率。
现有技术中,通过设计专门的加密通道和解密通道。例如,加密通道采用SM4算法单元加SM3算法单元的方式(先进行SM4算法,然后进行SM3算法),而解密通道通过SM3算法单元加SM4算法单元的方式(先进行SM3算法,然后进行SM4算法),待加密的数据包被送入加密通道后,先是SM4算法单元工作,SM3算法单元处于闲置状态,待SM4算法单元工作完毕后,SM3算法单元才开始工作,此时SM4算法单元则转为闲置状态;同理,待解密的数据包被送入解密通道后,先是SM3算法单元工作,SM4算法单元处于闲置状态;待SM3算法单元工作完毕后,SM4算法单元才开始工作,此时SM3算法单元则转为闲置状态。因此,现有技术无论对数据包进行加密还是解密,均存在闲置的算法单元,造成资源浪费以及资源利用不合理的现象。另外,现有技术通常设定加密通道的个数与解密通道的个数相等,然而,实际处理过程中,待加密的数据包量和待解密的数据包量明显不对等,进而造成资源利用不合理的现象。而本发明的硬件加解密系统及方法中的每一个算法单元均能独立的进行算法处理,并通过分配模块、收集模块以及中间缓冲模块构建循环的加解密通道,使得算法池中的每一个算法单元都得以有效的利用,且无论是加密过程还是解密过程,均不会出现有算法单元的闲置,实现对资源利用的合理化和最大化。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种硬件加解密系统,其特征在于,包括:集成在加解密模块中的接收缓冲模块、分配模块、算法池、收集模块、中间缓冲模块以及发送缓冲模块;其中,
所述接收缓冲模块,用于接收来自外部的数据包并进行缓存处理;
所述算法池,包括多个算法单元,每个算法单元能够对数据包进行一次独立的算法处理;
所述分配模块,电性连接于所述接收缓冲模块和所述中间缓冲模块,用于根据预定的规则将所述接收缓冲模块和所述中间缓冲模块的数据包分配给算法池相应的算法单元;
所述收集模块,用于收集所述算法池中每个算法单元处理过的数据包,并根据预定的规则将各个数据包分流处理;
所述中间缓冲模块,电性连接于所述收集模块,用于接收由所述收集模块分流的未全部处理完成加解密的数据包并进行缓存处理,以供所述分配模块调用,并再次分配给算法池相应的算法单元处理;
所述发送缓冲模块,电性连接于所述收集模块,用于接收由所述收集模块分流的已全部处理完成加解密的数据包并进行缓存处理,以待外部设备读取。
2.根据权利要求1所述的硬件加解密系统,其特征在于,所述硬件加解密系统对TLS协议或IPsec协议进行数据加速处理,所述加解密模块为FPGA芯片或ASIC芯片。
3.根据权利要求1所述的硬件加解密系统,其特征在于,还包括:输入设备和输出设备;所述输入设备电性连接于所述加解密模块,用于向所述加解密模块提供数据包并对所述数据包进行编号处理;所述输出设备电性连接于所述加解密模块,用于接收经由所述加解密模块已全部处理完成加解密的数据包进行存储,数据包中的编号以用于外部设备进行读取、识别操作。
4.根据权利要求1所述的硬件加解密系统,其特征在于,所述算法池包含M个第一算法单元和N个第二算法单元,所述第一算法单元采用消息摘要算法实现对数据包的数字签名及验证、消息认证码生成及验证;所述第二算法单元采用对称密码算法对数据包进行加解密处理。
5.根据权利要求4所述的硬件加解密系统,其特征在于,每个算法单元包括前缓存区、算法区以及后缓存区;
所述前缓存区位于所述算法区的前端,其用于对流入的数据包进行预存,以对所述算法区进行不间断的供应数据包;
所述算法区内设有对称密码算法或消息摘要算法,以对数据包进行算法处理;
所述后缓存区位于所述算法区的后端,其用于对所述算法区处理过的数据包进行暂存,以备所述收集模块获取。
6.根据权利要求1所述的硬件加解密系统,其特征在于,预设所述算法池能够承纳的最大数据包量为K,所述分配模块监控流入所述加解密模块与流出所述加解密模块的数据包量的差值X,若X等于K时,则所述分配模块停止接收来自所述接收缓冲模块的数据包,待X小于K时,则所述分配模块开放接收来自所述接收缓冲模块的数据包。
7.一种应用权利要求1-6任意一项所述硬件加解密系统的加解密方法,所述硬件加解密系统包括集成在加解密模块中的接收缓冲模块、分配模块、算法池、收集模块、中间缓冲模块以及发送缓冲模块,其特征在于,所述加解密方法包括:
接收缓冲模块接收到待加解密数据包并进行缓存处理;
分配模块从所述接收缓冲模块读取所述待加解密数据包,并根据预定的规则分配给算法池相应的算法单元;
所述算法池相应的算法单元对所述待加解密数据包进行一次算法处理;
收集模块接收来自所述算法池相应的算法单元加解密处理过的数据包,若所述数据包未全部处理完成加解密处理,则所述数据包被分流至中间缓冲模块,以待下一次算法池的算法处理;若所述数据包已全部处理完成加解密处理,则所述数据包将被分流至发送缓冲模块,以待外部设备读取。
8.根据权利要求7所述的加解密方法,其特征在于,
在接收缓冲模块接收到待加解密数据包并进行缓存处理之前,还包括:
由输入设备对待加解密数据包进行编号处理,以使流入所述加解密模块的数据包与流出的数据包相对应;
在收集模块接收来自所述算法池相应的算法单元加解密处理过的数据包之后,还包括:
若所述数据包仅完成对称密码算法处理,并未完成消息摘要算法处理,或者所述数据包仅完成消息摘要算法处理,并未完成对称密码算法处理,则所述数据包将被分流至中间缓冲模块,以待下一次算法池中相应的算法单元对其进行消息摘要算法或对称密码算法处理;若所述数据包已完成对称密码算法和消息摘要算法处理,或者所述数据包已完成且只需完成对称密码算法或消息摘要算法处理,则所述数据包将被分流至发送缓冲模块,以待输出设备读取。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910381346.3A CN110110538A (zh) | 2019-05-08 | 2019-05-08 | 硬件加解密系统及方法 |
CN2019103813463 | 2019-05-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110287721A CN110287721A (zh) | 2019-09-27 |
CN110287721B true CN110287721B (zh) | 2021-07-30 |
Family
ID=67488927
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910381346.3A Pending CN110110538A (zh) | 2019-05-08 | 2019-05-08 | 硬件加解密系统及方法 |
CN201910722329.1A Active CN110287721B (zh) | 2019-05-08 | 2019-08-06 | 硬件加解密系统及方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910381346.3A Pending CN110110538A (zh) | 2019-05-08 | 2019-05-08 | 硬件加解密系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN110110538A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855431A (zh) * | 2019-09-12 | 2020-02-28 | 南方电网数字电网研究院有限公司 | 一种密码算法加解密系统 |
CN112511318B (zh) * | 2021-02-07 | 2021-05-07 | 浙江地芯引力科技有限公司 | 一种多通道安全芯片的并行保密通信方法及其系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942107A (zh) * | 2014-04-23 | 2014-07-23 | 杭州电子科技大学 | 一种分布式加密系统 |
CN105207816A (zh) * | 2015-09-16 | 2015-12-30 | 国网智能电网研究院 | 一种多缓冲并行加密的软件调度方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2012261972A1 (en) * | 2011-06-01 | 2014-01-09 | Security First Corp. | Systems and methods for secure distributed storage |
US10218497B2 (en) * | 2016-08-31 | 2019-02-26 | Intel Corporation | Hybrid AES-SMS4 hardware accelerator |
-
2019
- 2019-05-08 CN CN201910381346.3A patent/CN110110538A/zh active Pending
- 2019-08-06 CN CN201910722329.1A patent/CN110287721B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942107A (zh) * | 2014-04-23 | 2014-07-23 | 杭州电子科技大学 | 一种分布式加密系统 |
CN105207816A (zh) * | 2015-09-16 | 2015-12-30 | 国网智能电网研究院 | 一种多缓冲并行加密的软件调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110287721A (zh) | 2019-09-27 |
CN110110538A (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345806B (zh) | 一种硬件加密卡和加密方法 | |
CN1964251B (zh) | 分组加密系统和方法 | |
US9363078B2 (en) | Method and apparatus for hardware-accelerated encryption/decryption | |
CN101346930B (zh) | 安全的片上系统 | |
CN103067157B (zh) | 利用随机排序和随机块大小的安全数据传输 | |
US8181024B2 (en) | Data processing apparatus | |
CN101290569A (zh) | 一种采用多密码芯片并行数据处理的方法 | |
US20020083317A1 (en) | Security communication packet processing apparatus and the method thereof | |
CN101854353A (zh) | 一种基于fpga的多芯片并行加密方法 | |
CN110287721B (zh) | 硬件加解密系统及方法 | |
US20050149744A1 (en) | Network processor having cryptographic processing including an authentication buffer | |
EP4148606A1 (en) | Data encryption or decryption method, apparatus and system | |
WO2024078347A1 (zh) | 加速设备、计算系统及加速方法 | |
CN109104275A (zh) | 一种hsm设备 | |
CN110222519B (zh) | 一种可配置通道的数据处理系统及方法 | |
CN101655894B (zh) | 在通用串行总线加密锁设备上提高分组算法吞吐量的方法 | |
WO2019224374A1 (en) | Multi-master security circuit | |
CN101515853B (zh) | 信息终端及其信息安全装置 | |
EP2558946B1 (en) | Method and system for cryptographic processing core | |
CN104426654A (zh) | 一种基于多缓冲方式的加密卡的加解密方法 | |
CN106533653A (zh) | 加密芯片、加密方法及加密系统 | |
EP4084484A1 (en) | Method and device for encryption of video stream, communication equipment, and storage medium | |
CN100502348C (zh) | 网络安全处理装置及其方法 | |
US12126711B2 (en) | Method and device for encryption of video stream, communication equipment, and storage medium | |
JP2020020928A (ja) | 通信装置および通信プログラム |
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: Hardware encryption and decryption system and method Granted publication date: 20210730 Pledgee: China Postal Savings Bank Co.,Ltd. Zhengzhou Branch Pledgor: ZHENGZHOU XINDA JIEAN INFORMATION TECHNOLOGY Co.,Ltd. Registration number: Y2024980042451 |