掌桥专利:专业的专利平台
掌桥专利
首页

一种海量短数据流加密解密方法及系统

文献发布时间:2023-06-19 18:46:07


一种海量短数据流加密解密方法及系统

技术领域

本发明数据加密技术领域,尤其涉及一种针对海量短数据的流加密解密方法及系统。

背景技术

现有的各种密码设备(密码机等)只有在持续对大数据包(几十KB或上百KB)进行加密并且采用ECB等支持并行运算的算法模式时才能获得最佳的加密性能。在面对日益强烈的海量敏感数据机密性和完整性保护需求时,因为敏感数据通常是手机号、身份证号等数量巨大的短数据,而且一般需要使用CBC、CMAC等无法并行运算的算法模式,面对这种情况,密码设备的实际性能表现就会出现几十、几百倍的大幅降低,很难满足用户对性能的需求。

发明内容

有鉴于此,本发明提供一种海量短数据流加密、解密方法及系统,充分利用密码设备对大数据包的并行处理能力,提高加密、解密效率。

为解决以上技术问题,本发明的技术方案为采用一种海量短数据流加密方法,包括:

选定块对称加密算法和算法模式;

输入原始小包明文数据流,根据选定的块对称加密算法将原始小包明文数据流中每个原始小包内的明文数据分割成顺序的若干个明文数据块;

若选定的块对称算法模式需要,则对原始小包内的明文数据块进行前置加密处理;

将所有原始小包打散,把所有原始小包中的第一个明文数据块聚合成第一大包,将所有原始小包中的第二个明文数据块聚合成第二大包以此类推,从而形成大包数据流;

利用密码设备按照选定的加密算法对大包数据流进行加密运算;

将所有密码设备加密后返回的大包打散,把隶属于同个原始小包的数据块重新聚合成小包形成二次小包数据流;

若选定的块对称算法模式需要,对二次小包数据流内的数据块进行后置加密处理;

输出二次小包数据流,所述二次小包内为与原始小包中明文数据块对应的密文数据块。

作为一种改进,所述算法模式为ECB、CBC、CFB、OFB、CTR中的一种;其中ECB没有前置加密处理和后置加密处理,CBC仅有前置加密处理,CFB仅有后置加密处理,OFB仅有后置加密处理,CTR既有前置加密处理也有后置加密处理。

作为一种进一步的改进,所述CBC算法模式中前置加密处理包括:

在利用密码设备加密之前,将明文数据块与上一个明文数据块利用密码设备加密后得到的密文数据块进行异或运算,以此类推;

若明文数据块为第一个明文数据块,则生成一个初始化向量与该明文数据块进行异或运算。

作为另一种更进一步的改进,所述CFB算法模式中的后置加密处理包括:

在利用密码设备对上一个密文数据块进行加密之后,将得到的加密结果与下一个明文数据块进行异或运算得到密文数据块,以此类推;

若明文数据块为第一个明文数据块,则生成一个初始化向量后利用密码设备加密初始化向量以得到第一个加密结果与该明文数据块进行异或运算。

作为一种改进,所述OFB算法模式中的后置加密处理包括:

在利用密码设备对上一个加密结果进行加密之后,将得到的加密结果与下一个明文数据块进行异或运算得到密文数据块,以此类推;

在获得第一个加密结果之前,生成一个初始化向量利后利用密码设备加密初始化向量以得到第一个加密结果。

作为一种改进,所述CTR算法模式中的前置加密处理包括:

令CTR=CRT+1,其中CTR为计数器数值;

所述CTR算法模式中的后置加密处理包括:

在密码设备对计数器数值进行加密之后,将得到的加密结果与明文数据块进行异或运算得到密文数据块,以此类推;

第一次加密之前初始化一个计数器数值。

作为一种优选,所述前置加密处理或/和后置加密处理在密码服务SDK或密码设备SDK中进行。

本发明还提供一种海量短数据流解密方法,包括:

输入原始小包密文数据流,根据加密时选定的块对称加密算法将原始小包密文数据流中每个原始小包内的密文数据分割成顺序的若干个密文数据块;

若选定的块对称算法模式需要,则对原始小包内的密文数据块进行前置解密处理;

将所有原始小包打散,把所有原始小包中的第一个密文数据块聚合成第一大包,将所有原始小包中的第二个密文数据块聚合成第二大包以此类推,从而形成大包数据流;

利用密码设备按照加密时选定的加密算法对大包数据流进行运算;

将所有密码设备运算后返回的大包打散,把隶属于同个原始小包的数据块重新聚合成小包形成二次小包数据流;

若选定的块对称算法模式需要,对二次小包数据流内的数据块进行后置解密处理;

输出二次小包数据流,所述二次小包内为与原始小包中密文数据块对应的明文数据块。

作为一种改进,所述算法模式为ECB、CBC、CFB、OFB、CTR中的一种;其中ECB没有前置解密处理和后置解密处理,CBC仅有后置解密处理,CFB仅有后置解密处理,OFB仅有后置解密处理,CTR既有前置解密处理也有后置解密处理。

作为一种改进,所述CBC算法模式中后置解密处理包括:

在利用密码设备解密之后,将解密结果与上一个密文数据块进行异或运算,以此类推;

若密文数据块为第一个密文数据块,则生成一个初始化向量与该密文的解密结果进行异或运算。

作为一种改进,所述CFB算法模式中的后置解密处理包括:

在利用密码设备对上一个密文数据块进行加密之后,将得到的加密结果与下一个密文数据块进行异或运算得到明文数据块,以此类推;

若密文数据块为第一个密文数据块,则生成一个初始化向量后利用密码设备加密初始化向量以得到第一个加密结果与该密文数据块进行异或运算。

作为一种改进,所述OFB算法模式中的后置加密处理包括:

在利用密码设备对上一个加密结果进行加密之后,将得到的加密结果与下一个密文数据块进行异或运算得到明文数据块,以此类推;

在获得第一个加密结果之前,生成一个初始化向量利后利用密码设备加密初始化向量以得到第一个加密结果。

作为一种改进,所述CTR算法模式中的前置解密处理包括:

令CTR=CRT+1,其中CTR为计数器数值;

所述CTR算法模式中的后置解密处理包括:

在密码设备对计数器数值进行加密之后,将得到的加密结果与密文数据块进行异或运算得到明文数据块,以此类推;

第一次解密之前初始化一个计数器数值。

作为一种改进,所述前置解密处理或/和后置解密处理在密码服务SDK或密码设备SDK中进行。

本发明还提供一种海量短数据流加密系统,包括:

数据分割模块,用于根据选定的块对称加密算法将每个原始小包内的明文数据分割成顺序的若干个明文数据块,或者将密文数据分割成顺序的若干个密文数据块

前置加密解密处理模块,用于根据选定的块对称算法模式对原始小包内的明文数据块进行前置加密处理,或者对密文数据块进行前置解密处理;

转置模块,用于将所有原始小包打散,把所有原始小包中的第一个数据块聚合成第一大包,将所有原始小包中的第二个数据块聚合成第二大包以此类推,从而形成大包数据流;

密码设备,用于按照选定的加密算法对大包数据流进行加密或者解密运算;

逆转模块,用于将所有大包打散,把隶属于同个原始小包的数据块重新聚合成小包形成二次小包数据流;

后置加密解密处理模块,用于根据选定的块对称算法模式对原始小包内的明文数据块进行后置加密处理,或者对密文数据块进行后置解密处理。

本发明的有益之处在于:本发明创新的改变传统对称块加密解密算法模式的处理流程,将通常在密码设备中进行的各种对称块算法模式处理过程移到密码设备之外,由密码服务SDK或者密码设备SDK中来完成,在密码设备中只完成可以并行的基于密钥的运算;同时对批量短数据进行转置,将批量小包数据流聚合成大包数据流。通过上述技术手段,使得在进行海量敏感数据机密性和完整性保护时,密码设备一直能够处于大数据包、并行运算的最佳性能状态,相比普通短数据加密解密,实现上百倍的实际性能提升。

附图说明

图1为本发明加密流程图。

图2为CBC算法模式加密示意图。

图3为CFB算法模式加密示意图。

图4为OFB算法模式加密示意图。

图5为CTR算法模式加密示意图。

图6为本发明解密流程图。

图7为CBC算法模式解密示意图。

图8为CFB算法模式解密示意图。

图9为OFB算法模式解密示意图。

图10为CTR算法模式解密示意图。

图11为本发明结构原理图。

具体实施方式

为了使本领域的技术人员更好地理解本发明的技术方案,下面结合具体实施方式对本发明作进一步的详细说明。

现有的块对称加密方法中,整个加密流程都是放到密码设备中进行的。然而密码设备只有在持续对大数据包进行加密并且采用并行运算的算法模式时才能获得最佳的加密性能。

为了让密码设备能持续并行处理大数据包,如图1所示,本发明提供一种海量短数据流加密方法,包括:

S11选定块对称加密算法和算法模式;对称块加密算法(如SM4、AES、3DES等)都会有几种不同的算法模式,如ECB、CBC、OFB、CFB、CTR等,各自有不同的特点和安全性,可以针对不同的场景使用。

S12输入原始小包明文数据流,根据选定的块对称加密算法将原始小包明文数据流中每个原始小包内的明文数据分割成顺序的若干个明文数据块;每个原始小包有唯一的编号,每个原始小包内的明文数据也按照顺序进行分割,分割后的明文数据块具有块序。例如原始小包m内包含若干个明文数据块,明文数据块就编号为块mn,其中m代表包序,n带包块序。

S13若选定的块对称算法模式需要,则对原始小包内的明文数据块进行前置加密处理;在某些块堆成算法模式中,在进行核心的加密过程之前需要进行一系列的运算,而某些算法模式中,在进行核心的加密过程之后需要进行一系列的运算,另外一些算法模式中,在进行核心的加密过程前后都需要进行一系列的运算。因此本步骤中,根据所选的算法模式不同做相应的处理。后续会通过几个具体的算法模式进行阐述。

S14将所有原始小包打散,把所有原始小包中的第一个明文数据块聚合成第一大包,将所有原始小包中的第二个明文数据块聚合成第二大包以此类推,从而形成大包数据流。在经过前置加密处理后(如果有),需要将原始小包转置成大包。转置的方法为将所有原始小包打散,然后将所有具有相同块序的大包,即将所有块序编号n相同的数据块聚合成一个大包。例如原本有100个原始小包,每个小包10个明文数据块,转置后就变成10个大包,每个大包100个明文数据块。当然,由于系统机制的限制,无法一次性对无限个小包进行聚合,一般上限为4096个。

S15利用密码设备如加密机、USBkey等按照选定的加密算法对大包数据流进行基于密钥的块加密运算;本步骤中,按照选定的算法(如SM4、AES、3DES等)进行基于密钥的块加密运算,并输出加密结果。由于密码设备只进行加密计算,因此可以并行处理,提高加密效率。

S16将所有密码设备加密后返回的大包打散,把隶属于同个原始小包的数据块重新聚合成小包形成二次小包数据流;经过密码设备的加密计算后,需要将大包逆转成小包。逆转的方法是将大包全部打散,然后将具有相同包序的数据块重新聚合成小包,即将所有包序编号m相同的数据块集合成小包。例如原本10个大包,每个大包100个数据块,经过上述操作,又逆转为100个小包,每个小包10个数据块。

S17若选定的块对称算法模式需要,对二次小包数据流内的数据块进行后置加密处理;对逆转后的数据块进行相应的后置加密操作(如果有)。

S18输出二次小包数据流,所述二次小包内为与原始小包中明文数据块对应的密文数据块,本步骤中即可输出加密结果。

本发明的加密过程中,除了步骤S15中的基于密钥的块加密运算是放到密码设备中进行,其前置加密处理或/和后置加密处理都可以在加密服务SDK或者加密设备SDK中进行的。所谓加密服务SDK是一个程序库,提供函数接口供应用开发人员调用。

本发明中算法模式为ECB、CBC、CFB、OFB、CTR中的一种;其中ECB没有前置解密处理和后置解密处理,CBC仅有后置解密处理,CFB仅有后置解密处理,OFB仅有后置解密处理,CTR既有前置解密处理也有后置解密处理。

CBC算法模式仅需在密码设备加密计算之前进行前置处理,如图2所示,CBC算法模式中前置加密处理包括:

在利用密码设备加密之前,将明文数据块与上一个明文数据块利用密码设备加密后得到的密文数据块进行异或运算,以此类推;

若明文数据块为第一个明文数据块,则生成一个初始化向量与该明文数据块进行异或运算。

CFB算法模式仅需在密码设备加密计算之后进行后置处理,如图3所示,CFB算法模式中的后置加密处理包括:

在利用密码设备对上一个密文数据块进行加密之后,将得到的加密结果与下一个明文数据块进行异或运算得到密文数据块,以此类推;

若明文数据块为第一个明文数据块,则生成一个初始化向量后利用密码设备加密初始化向量以得到第一个加密结果与该明文数据块进行异或运算。

OFB算法模式仅需在密码设备加密计算之后进行后置处理,如图4所示,OFB算法模式中的后置加密处理包括:

在利用密码设备对上一个加密结果进行加密之后,将得到的加密结果与下一个明文数据块进行异或运算得到密文数据块,以此类推;

在获得第一个加密结果之前,生成一个初始化向量利后利用密码设备加密初始化向量以得到第一个加密结果。

CTR模式既有前置加密处理也有后置加密处理,如图5所示,所述CTR算法模式中的前置加密处理包括:

令CTR=CRT+1,其中CTR为计数器数值;

所述CTR算法模式中的后置加密处理包括:

在密码设备对计数器数值进行加密之后,将得到的加密结果与明文数据块进行异或运算得到密文数据块,以此类推;

第一次加密之前初始化一个计数器数值。

现有的加密方法中,对于CBC、OFB、CFB等存在反馈机制的算法模式,正常情况下需要先加密数据的第一个块,然后才能加密后一个块,算法模式处理移出密码设备后,这种反馈依赖关系也前移到密码服务SDK中,而在密码设备内,数据块之间的加密依赖关系就不存在了。在密码服务SDK中,通过块加密转置,将批量小包数据流聚合成大包数据流后再传入密码设备,密码设备只处理大数据包,这样就可以让密码设备一直处于最大性能的运行状态。

与上述加密方法对应的,如图6所示,本发明还提供一种海量短数据流解密方法,包括:

S21输入原始小包密文数据流,根据加密时选定的块对称加密算法将原始小包密文数据流中每个原始小包内的密文数据分割成顺序的若干个密文数据块;加密算法和算法模式在加密时已选定,在解密过程中按照选定的算法和模式进行即可。

S22若选定的块对称算法模式需要,则对原始小包内的密文数据块进行前置解密处理。

S23将所有原始小包打散,把所有原始小包中的第一个数据块聚合成第一大包,将所有原始小包中的第二个数据块聚合成第二大包以此类推,从而形成大包数据流。

S24利用密码设备按照加密时选定的加密算法对大包数据流进行运算;根据算法模式的不同,加密模式有可能进行加密运算也可能进行解密运算。

S25将所有密码设备运算后返回的大包打散,把隶属于同个原始小包的数据块重新聚合成小包形成二次小包数据流。

S26若选定的块对称算法模式需要,对二次小包数据流内的数据块进行后置解密处理。

S27输出二次小包数据流,所述二次小包内为与原始小包中密文数据块对应的明文数据块。

本发明的解密方法与加密方法类似,其每个步骤的详细过程可参考加密过程,此处不再赘述。

本发明的解密过程中,除了步骤S24中的加密或者解密运算是放到密码设备中进行,其前置解密处理或/和后置解密处理都可以在加密服务SDK或者加密设备SDK中进行的。所谓加密服务SDK是一个程序库,提供函数接口供应用开发人员调用。

本发明中,解密的算法模式为ECB、CBC、CFB、OFB、CTR中的一种;其中ECB没有前置解密处理和后置解密处理,CBC仅有后置解密处理,CFB仅有后置解密处理,OFB仅有后置解密处理,CTR既有前置解密处理也有后置解密处理。

CBC算法模式仅需在密码设备解密计算之后进行后置处理,如图7所示,所述CBC算法模式中后置解密处理包括:

在利用密码设备解密之后,将解密结果与上一个密文数据块进行异或运算,以此类推;

若密文数据块为第一个密文数据块,则生成一个初始化向量与该密文的解密结果进行异或运算。

CFB算法模式仅需在密码设备加密计算之后进行后置处理,如图8所示,所述CFB算法模式中的后置解密处理包括:

在利用密码设备对上一个密文数据块进行加密(注意此处也是加密)之后,将得到的加密结果与下一个密文数据块进行异或运算得到明文数据块,以此类推;

若密文数据块为第一个密文数据块,则生成一个初始化向量后利用密码设备加密初始化向量以得到第一个加密结果与该密文数据块进行异或运算。

OFB算法模式仅需在密码设备加密计算之后进行后置处理,如图9所示,所述OFB算法模式中的后置加密处理包括:

在利用密码设备对上一个加密结果进行加密(注意此处也是加密)之后,将得到的加密结果与下一个密文数据块进行异或运算得到明文数据块,以此类推;

在获得第一个加密结果之前,生成一个初始化向量利后利用密码设备加密初始化向量以得到第一个加密结果。

CTR模式既有前置解密处理也有后置解密处理,如图10所示,所述CTR算法模式中的前置解密处理包括:

令CTR=CRT+1,其中CTR为计数器数值;

所述CTR算法模式中的后置解密处理包括:

在密码设备对计数器数值进行加密(注意此处也是加密)之后,将得到的加密结果与密文数据块进行异或运算得到明文数据块,以此类推;

第一次解密之前初始化一个计数器数值。

如图11所示,本发明还提供一种海量短数据流加密系统,包括:

数据分割模块,用于根据选定的块对称加密算法将每个原始小包内的明文数据分割成顺序的若干个明文数据块,或者将密文数据分割成顺序的若干个密文数据块

前置加密解密处理模块,用于根据选定的块对称算法模式对原始小包内的明文数据块进行前置加密处理,或者对密文数据块进行前置解密处理;

转置模块,用于将所有原始小包打散,把所有原始小包中的第一个数据块聚合成第一大包,将所有原始小包中的第二个数据块聚合成第二大包以此类推,从而形成大包数据流;

密码设备,用于按照选定的加密算法对大包数据流进行加密或者解密运算;

逆转模块,用于将所有大包打散,把隶属于同个原始小包的数据块重新聚合成小包形成二次小包数据流;

后置加密解密处理模块,用于根据选定的块对称算法模式对原始小包内的明文数据块进行后置加密处理,或者对密文数据块进行后置解密处理。

本发明扭转了密码设备在应对海量敏感数据机密性和完整性保护这种批量短数据加密场景的性能问题,充分满足了政务、金融等行业用户对短数据加密解密的性能需求。

以上仅是本发明的优选实施方式,应当指出的是,上述优选实施方式不应视为对本发明的限制,本发明的保护范围应当以权利要求所限定的范围为准。对于本技术领域的普通技术人员来说,在不脱离本发明的精神和范围内,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术分类

06120115686682