CN110110538A - 硬件加解密系统及方法 - Google Patents

硬件加解密系统及方法 Download PDF

Info

Publication number
CN110110538A
CN110110538A CN201910381346.3A CN201910381346A CN110110538A CN 110110538 A CN110110538 A CN 110110538A CN 201910381346 A CN201910381346 A CN 201910381346A CN 110110538 A CN110110538 A CN 110110538A
Authority
CN
China
Prior art keywords
algorithm
data packet
module
pond
processing
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.)
Pending
Application number
CN201910381346.3A
Other languages
English (en)
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 CN201910381346.3A priority Critical patent/CN110110538A/zh
Priority to CN201910722329.1A priority patent/CN110287721B/zh
Publication of CN110110538A publication Critical patent/CN110110538A/zh
Pending legal-status Critical Current

Links

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic 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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提出了一种硬件加解密系统及方法,所述硬件加解密系统包括:集成在加解密芯片中的接收缓冲模块、分配模块、算法池、收集模块、中间缓冲模块以及发送缓冲模块;本发明的硬件加解密系统及方法,能够对送入加解密芯片的不同协议的数据包多次调用算法池中的算法,并在发送缓冲模块输出已全部处理完成加解密的数据包,整个加解密处理过程无需处理器逻辑处理,减轻了处理器的运行负荷,同时实现对算法资源的最大化利用,有效提升了数据包加解密处理的效率。

Description

硬件加解密系统及方法
技术领域
本发明涉及数据安全技术领域,尤其涉及一种硬件加解密系统及方法。
背景技术
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
在信息安全日益受到人们重视的信息化时代,数据处理及存储产品要求不只具有处理数据的功能,还需要具有病毒防护和加解密的功能。针对此项要求,目前市场上有软件加解密和硬件加解密两种方案,而其中硬件加解密由于其速度快,安全性高而受到研究者的重视。
现有技术中,硬件加解密较多地采用FPGA实现。但由于一个数据包的加解密过程可能需要经历多次算法(如SM3、SM4等)处理,且每一次算法处理完成后,需要重新回溯至CPU以对未完成加解密过程的数据包重新规划下一次算法处理,直至该数据包完成所有加解密算法步骤;然而,上述加解密过程中,数据包需要在CPU与FPGA之间进行回传多次方可完成加解密过程,增加了CPU的资源利用,加重了CPU的运行负荷;同时,多次回传过程还会降低了数据包加解密处理的效率。
发明内容
鉴于上述内容,有必要提供一种硬件加解密系统及方法,其能够降低CPU的运行负荷,并提高了数据加解密处理的效率。
本发明提供一种硬件加解密系统,包括:集成在加解密芯片中的接收缓冲模块、分配模块、算法池、收集模块、中间缓冲模块以及发送缓冲模块;其中,
所述接收缓冲模块,用于接收来自外部的数据包并进行缓存处理;
所述算法池,包括多个算法单元,每个算法单元能够对数据包进行一次独立的算法处理;
所述分配模块,电性连接于所述接收缓冲模块和所述中间缓冲模块,用于根据预定的规则将所述接收缓冲模块和所述中间缓冲模块的数据包分配给算法池相应的算法单元;
所述收集模块,用于收集所述算法池中每个算法单元处理过的数据包,并根据预定的规则将各个数据包分流处理;
所述中间缓冲模块,电性连接于所述收集模块,用于接收由所述收集模块分流的未全部处理完成加解密的数据包并进行缓存处理,以供所述分配模块调用,并再次分配给算法池相应的算法单元处理;
所述发送缓冲模块,电性连接于所述收集模块,用于接收由所述收集模块分流的已全部处理完成加解密的数据包并进行缓存处理,以待外部设备读取。
进一步的,所述加解密芯片为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已全部处理完成加解密的数据包并进行存储,以便于外部设备进行读取操作。
优选的,所述加解密芯片可以为FPGA芯片或ASIC芯片,但不限于此。
优选的,所述输入设备10可以为CPU或DMA,所述输出设备30可以为DMA,但不限于此。
所述加解密芯片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 (10)

1.一种硬件加解密系统,其特征在于,包括:集成在加解密芯片中的接收缓冲模块、分配模块、算法池、收集模块、中间缓冲模块以及发送缓冲模块;其中,
所述接收缓冲模块,用于接收来自外部的数据包并进行缓存处理;
所述算法池,包括多个算法单元,每个算法单元能够对数据包进行一次独立的算法处理;
所述分配模块,电性连接于所述接收缓冲模块和所述中间缓冲模块,用于根据预定的规则将所述接收缓冲模块和所述中间缓冲模块的数据包分配给算法池相应的算法单元;
所述收集模块,用于收集所述算法池中每个算法单元处理过的数据包,并根据预定的规则将各个数据包分流处理;
所述中间缓冲模块,电性连接于所述收集模块,用于接收由所述收集模块分流的未全部处理完成加解密的数据包并进行缓存处理,以供所述分配模块调用,并再次分配给算法池相应的算法单元处理;
所述发送缓冲模块,电性连接于所述收集模块,用于接收由所述收集模块分流的已全部处理完成加解密的数据包并进行缓存处理,以待外部设备读取。
2.根据权利要求1所述的硬件加解密系统,其特征在于,所述加解密芯片为FPGA芯片或ASIC芯片。
3.根据权利要求1所述的硬件加解密系统,其特征在于,还包括:输入设备和输出设备;所述输入设备电性连接于所述加解密芯片,用于向所述加解密芯片提供数据包并对所述数据包进行编号处理;所述输出设备电性连接于所述加解密芯片,用于接收经由所述加解密芯片已全部处理完成加解密的数据包并依据数据包的编号进行存储,以便于外部设备进行读取操作。
4.根据权利要求1所述的硬件加解密系统,其特征在于,所述算法池包含M个第一算法单元和N个第二算法单元,所述第一算法单元采用消息摘要算法实现对数据包的数字签名及验证、消息认证码生成及验证;所述第二算法单元采用对称密码算法对数据包进行加解密处理。
5.根据权利要求4所述的硬件加解密系统,其特征在于,每个算法单元包括前缓存区、算法区以及后缓存区;
所述前缓存区位于所述算法区的前端,其用于对流入的数据包进行预存,以对所述算法区进行不间断的供应数据包;
所述算法区内设有对称密码算法或消息摘要算法,以对数据包进行算法处理;
所述后缓存区位于所述算法区的后端,其用于对所述算法区处理过的数据包进行暂存,以备所述收集模块获取。
6.根据权利要求1所述的硬件加解密系统,其特征在于,预设所述算法池能够承纳的最大数据包量为K,所述分配模块监控流入所述加解密芯片与流出所述加解密芯片的数据包量的差值X,若X等于K时,则所述分配模块停止接收来自所述接收缓冲模块的数据包,待X小于K时,则所述分配模块开放接收来自所述接收缓冲模块的数据包。
7.一种应用权利要求1-6任意一项所述硬件加解密系统的加解密方法,所述硬件加解密系统包括集成在加解密芯片中的接收缓冲模块、分配模块、算法池、收集模块、中间缓冲模块以及发送缓冲模块,其特征在于,所述加解密方法包括:
接收缓冲模块接收到待加解密数据包并进行缓存处理;
分配模块从所述接收缓冲模块读取所述待加解密数据包,并根据预定的规则分配给算法池相应的算法单元;
所述算法池相应的算法单元对所述待加解密数据包进行一次算法处理;
收集模块接收来自所述算法池相应的算法单元加解密处理过的数据包,若所述数据包未全部处理完成加解密处理,则所述数据包被分流至中间缓冲模块,以待下一次算法池的算法处理;若所述数据包已全部处理完成加解密处理,则所述数据包将被分流至发送缓冲模块,以待外部设备读取。
8.根据权利要求7所述的加解密方法,其特征在于,
在接收缓冲模块接收到待加解密数据包并进行缓存处理之前,还包括:
由输入设备对待加解密数据包进行编号处理,以使流入所述加解密芯片的数据包与流出的数据包相对应;
在收集模块接收来自所述算法池相应的算法单元加解密处理过的数据包之后,还包括:
若所述数据包仅完成对称密码算法处理,并未完成消息摘要算法处理,或者所述数据包仅完成消息摘要算法处理,并未完成对称密码算法处理,则所述数据包将被分流至中间缓冲模块,以待下一次算法池中相应的算法单元对其进行消息摘要算法或对称密码算法处理;若所述数据包已完成对称密码算法和消息摘要算法处理,或者所述数据包已完成且只需完成对称密码算法或消息摘要算法处理,则所述数据包将被分流至发送缓冲模块,以待输出设备读取。
9.根据权利要求7所述的加解密方法,其特征在于,每个算法单元包括前缓存区、算法区以及后缓存区;
所述前缓存区位于所述算法区的前端,其用于对流入的数据包进行预存,以对所述算法区进行不间断的供应数据包;
所述算法区内设有对称密码算法或消息摘要算法,以对数据包进行算法处理;
所述后缓存区位于所述算法区的后端,其用于对所述算法区处理过的数据包进行暂存,以备所述收集模块获取。
10.根据权利要求7所述的加解密方法,其特征在于,预设所述算法池能够承纳的最大数据包量为K,所述分配模块监控流入所述加解密芯片与流出加解密芯片的数据包量的差值X,若X等于K时,则所述分配模块停止接收来自所述接收缓冲模块的数据包,待X小于K时,则所述分配模块开放接收来自所述接收缓冲模块的数据包。
CN201910381346.3A 2019-05-08 2019-05-08 硬件加解密系统及方法 Pending CN110110538A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910381346.3A CN110110538A (zh) 2019-05-08 2019-05-08 硬件加解密系统及方法
CN201910722329.1A CN110287721B (zh) 2019-05-08 2019-08-06 硬件加解密系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910381346.3A CN110110538A (zh) 2019-05-08 2019-05-08 硬件加解密系统及方法

Publications (1)

Publication Number Publication Date
CN110110538A true CN110110538A (zh) 2019-08-09

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 After (1)

Application Number Title Priority Date Filing Date
CN201910722329.1A Active CN110287721B (zh) 2019-05-08 2019-08-06 硬件加解密系统及方法

Country Status (1)

Country Link
CN (2) CN110110538A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110855431A (zh) * 2019-09-12 2020-02-28 南方电网数字电网研究院有限公司 一种密码算法加解密系统
CN112511318A (zh) * 2021-02-07 2021-03-16 浙江地芯引力科技有限公司 一种多通道安全芯片的并行保密通信方法及其系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2715601A1 (en) * 2011-06-01 2014-04-09 Security First Corp. Systems and methods for secure distributed storage
CN103942107B (zh) * 2014-04-23 2017-06-27 杭州电子科技大学 一种分布式加密系统
CN105207816A (zh) * 2015-09-16 2015-12-30 国网智能电网研究院 一种多缓冲并行加密的软件调度方法
US10218497B2 (en) * 2016-08-31 2019-02-26 Intel Corporation Hybrid AES-SMS4 hardware accelerator

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110855431A (zh) * 2019-09-12 2020-02-28 南方电网数字电网研究院有限公司 一种密码算法加解密系统
CN112511318A (zh) * 2021-02-07 2021-03-16 浙江地芯引力科技有限公司 一种多通道安全芯片的并行保密通信方法及其系统
CN112511318B (zh) * 2021-02-07 2021-05-07 浙江地芯引力科技有限公司 一种多通道安全芯片的并行保密通信方法及其系统

Also Published As

Publication number Publication date
CN110287721B (zh) 2021-07-30
CN110287721A (zh) 2019-09-27

Similar Documents

Publication Publication Date Title
CN101594227B (zh) 数据加密和解密的方法、装置及通信系统
CN102196425B (zh) 基于量子密钥分配网络的移动加密系统及其通信方法
CN109145568A (zh) 一种基于pci-e接口的全算法密码卡及其加密方法
US20210312071A1 (en) Method and apparatus for securing data in multiple independent channels
US20080065885A1 (en) Data processing apparatus
CN108833343A (zh) 一种支持大数据的并行加密方法及解密方法
CN105099672A (zh) 混合加密方法及实现该方法的装置
CN102710415A (zh) 一种利用对称密码算法进行数据加解密的方法及查表装置
CN104809407A (zh) 云存储前端数据加解密及校验方法和系统
KR101608815B1 (ko) 폐쇄형 네트워크에서 암복호화 서비스 제공 시스템 및 방법
CN107454590A (zh) 一种数据加密方法、解密方法及无线路由器
CN107534558B (zh) 用于保护经由数据总线传输的数据的信息安全的方法以及数据总线系统
CN110110538A (zh) 硬件加解密系统及方法
CN107181716A (zh) 一种基于国家商用密码算法的网络安全通信系统及方法
CN103905183B (zh) 一种提高嵌入式加密芯片通讯传输安全性的方法
CN1675877A (zh) 加密解密装置及其方法,加密装置及其方法,解密装置及其方法,以及接收发送装置
CN102571321A (zh) 一种数据加密传输的方法和设备
WO2024078347A1 (zh) 加速设备、计算系统及加速方法
CN110222519A (zh) 一种可配置通道的数据处理系统及方法
CN107026873A (zh) 一种基于椭圆曲线算法的加解密方法及系统
CN101515853B (zh) 信息终端及其信息安全装置
CN101710964B (zh) Mpeg2传输流数据包的加密和解密方法
CN103777918A (zh) 一种硬件加速器
CN116488795B (zh) 一种gcm-aes处理方法和装置
CN115913783A (zh) 一种基于Soc芯片的数据加解密方法和装置

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190809