一种分组加密的方法及其系统、分组解密的方法与流程

文档序号:14478768阅读:366来源:国知局

本发明涉及一种分组加密的方法及其系统以及与该分组加密的方法相对应的分组解密的方法。



背景技术:

加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。因此,加密具有保护信息数据的作用。

分组加密是对明文数据进行编码表示后的数字序列,划分成一定长度的组,每组分别在密钥的控制下可变换成密文数字序列。

明文数据通常要比特定的分组大小长得多,而且使用各种不同的技术或操作方式进行加密。现有的分组加密主要包括四种模式,分别为:电子编码本(ecb)模式、密码分组链接(cbc)模式、密文反馈(cfb)模式以及输出反馈(ofb)模式。

目大部分的密码卡都不支持输出反馈(ofb)模式,而软实现的输出反馈(ofb)模式都是利用电子编码本(ecb)模式结合输出反馈(ofb)模式来实现的。这就意味着,每一组明文数据都要分开处理和加密,而这对密码卡是很大的开销。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种分组加密的方法及其系统以及与该分组加密的方法相对应的分组解密的方法。该分组加密的方法利用密码分组链接模式来实现输出反馈模式,使得输出反馈模式加密方法中的所有分组可以一次性加密处理,对于大数据块来说,大大降低了密码卡的开销。

根据本发明的一个方面提供一种分组加密的方法,所述分组加密的方法包括如下步骤:s10:获取一组待加密明文数据;s20:判断是否存在未使用的加密数据,若是,则执行步骤s30和步骤s40,若否则执行步骤s50;s30:将所述未使用的加密数据与所述待加密明文数据中部分数据进行异或运算,得到第一密文子数据;s40:对所述步骤s30中未进行异或运算的剩余待加密明文数据进行密码分组链接模式加密,得到第二密文子数据,将所述第一密文子数据和所述第二密文子数据结合得到一密文数据;s50:对所述步骤s10中的待加密明文数据进行密码分组链接模式加密,得到所述第三密文子数据,将所述第三密文子数据作为密文数据;其中,对所述剩余待加密明文数据或所述待加密明文数据进行所述密码分组链接模式加密包括如下步骤:s601:获取当前初始化向量,构建虚拟明文数据;s602:对所述当前初始化向量和所述虚拟明文数据进行异或运算;s603:将所述步骤s602中异或运算的值进行密钥加密,得到一组加密数据,其中,所述加密数据包括多个长度相同的加密分组数据,每个所述加密分组数据的长度与所述密钥加密的长度相同,且所述加密数据的长度为大于等于所述待加密明文数据或者所述剩余待加密明文数据的长度的最小值;s604:将所述加密数据与所述待加密明文数据或者所述剩余待加密明文数据进行异或运算,生成所述第二密文子数据或者所述第三密文子数据;s605:将所述步骤s601中的所述当前初始化向量更新为所述步骤s603中的所述加密数据中的最后一个加密分组数据,供下一组所述剩余待加密明文数据或所述加密明文数据进行所述密码分组链接模式加密。

优选地,所述s605完成后包括如下步骤:s606:判断最后一个加密分组数据中是否存在未使用的加密数据,若是,则执行步骤s607;s607:将该最后一个加密分组数据保存为缓存数据。

优选地,所述步骤s20中包括如下步骤:判断所述步骤s10的待加密明文数据是否为第一组待加密明文数据;若是,则执行步骤s50;若否,则判断上一组所述待加密明文数据加密后,所述缓存数据中是否存在未使用的数据;若是,则执行所述步骤s30和步骤s40,若否,则执行步骤s50。

优选地,当所述步骤s50中的所述待加密明文数据的长度为所述加密数据的长度的整数倍或者所述步骤s40中的所述剩余待加密明文数据的长度为所述加密数据的长度的整数倍时,所述步骤s606中判断结果为最后一个加密分组数据中不存在未使用的加密数据,否则,所述步骤s606中判断结果为最后一个加密分组数据中存在未使用的加密数据。

优选地,所述密钥加密为16字节长度的数据加密。

优选地,所述加密分组数据的长度为16字节,所述加密数据的长度为根据所述待加密明文数据或者所述剩余待加密明文数据的长度按照16字节的整数倍扩充。

优选地,所述虚拟明文数据的长度与所述当前初始化向量的长度相同、且填充均为0。

优选地,所述步骤s10之前还包括如下步骤:创建输出反馈模式加密的上下文,所述输出反馈模式加密的上下文用于储存密码分组链接模式加密的密钥、当前初始化向量、缓存数据以及未使用的加密数据。

根据本发明的另一个方面,还提供一种分组加密的系统,所述分组加密的系统包括:明文数据获取模块,用于获取待加密明文数据;第一判断模块,用于判断是否存在未使用的加密数据;第一运算模块,用于当所述第一判断模块判断结果为是时,将所述未使用的加密数据与所述待加密明文数据中部分数据进行异或运算,得到第一密文子数据;第一加密模块,用于对所述第一运算模块中未进行异或运算的剩余待加密明文数据进行密码分组链接模式加密,得到第二密文子数据,将所述第一密文子数据和所述第二密文子数据结合得到一密文数据;第二加密模块,用于当所述第一判断模块判断结果为否时,对所述明文数据获取模块获取的待加密明文数据进行密码分组链接模式加密,得到所述第三密文子数据,将所述第三密文子数据作为密文数据;所述第一加密模块以及所述第二加密模块均包括密码分组链接模式加密单元,所述密码分组链接模式加密单元用于对所述剩余待加密明文数据或所述待加密明文数据进行密码分组链接模式加密,其包括:第一数据获取模块,用于获取当前初始化向量,构建虚拟明文数据;第二运算模块,用于对所述当前初始化向量和所述虚拟明文数据进行异或运算;第三加密模块,将所述第二运算模块中异或运算的值进行密钥加密,得到一组加密数据,其中,所述加密数据包括多个长度相同的加密分组数据,每个所述加密分组数据的长度与所述密钥加密的长度相同,且所述加密数据的长度为大于等于所述待加密明文数据或者所述剩余待加密明文数据的长度的最小值;第三运算模块,用于将所述加密数据与所述待加密明文数据或者所述剩余待加密明文数据进行异或运算,生成所述第二密文子数据或者所述第三密文子数据;数据更新模块,用于将所述第一数据获取模块获取的当前初始化向量更新为所述第三加密模块得到所述加密数据中的最后一个加密分组数据,供下一组所述剩余待加密明文数据或所述加密明文数据进行所述密码分组链接模式加密。

根据本发明的又一个方面,还提供一种分组解密的方法,所述分组解密的方法包括如下步骤:s100:获取一组待解密密文数据;s200:判断是否存在未使用的解密数据,若是,则执行步骤s300和步骤s400,若否则执行步骤s500;s300:将所述未使用的解密数据与所述待解密密文数据进行异或运算,得到第一明文子数据;s400:对所述步骤s300中未进行异或运算的剩余待解密密文数据进行密码分组链接模式解密,得到第二明文子数据,将所述第一明文子数据和所述第二明文子数据结合得到一明文数据;s500:对所述步骤s100中的待解密密文数据进行密码分组链接模式解密,得到所述第三明文子数据,将所述第三明文子数据作为明文数据;其中,对所述剩余待解密密文数据或所述待解密密文数据进行所述密码分组链接模式解密包括如下步骤:s6010:获取当前初始化向量,构建虚拟密文数据;s6020:对所述当前初始化向量和所述虚拟密文数据进行异或运算;s6030:将所述步骤s6020中异或运算的值进行密钥解密,得到一组解密数据,其中,所述解密数据包括多个长度相同的解密分组数据,每个所述解密分组数据的长度与所述密钥解密的长度相同,且所述解密数据的长度为大于等于所述待解密密文数据或者所述剩余待解密密文数据的长度的最小值;s6040:将所述解密数据与所述待解密密文数据或者所述剩余待解密密文数据进行异或运算,生成所述第二明文子数据或者所述第三明文子数据;s6050:将所述步骤s6010中的所述当前初始化向量更新为所述步骤s6030中的所述解密数据中的最后一个解密分组数据,供下一组所述剩余待解密密文数据或所述解密密文数据进行所述密码分组链接模式解密。

相比于现有技术,本发明实施例提供的分组加密的方法及其系统以及与该分组加密的方法相对应的分组解密的方法中,分组加密的方法通过密码分组链接模式来实现输出反馈模式,使得输出反馈模式加密方法中的所有分组可以一次性加密处理,对于大数据块来说,大大降低了密码卡的开销。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的一个实施例的分组加密的方法的流程图;

图2为本发明的一个实施例的分组加密的方法中判断是否存在未使用的加密数据的各个步骤流程图;

图3为本发明的一个实施例的分组加密的方法中进行密码分组链接模式加密的各个步骤流程图;

图4为本发明的一个实施例的分组加密的方法中进行密码分组链接模式加密的算法示意图;

图5为本发明的一个实施例的分组加密系统的模块示意图;以及

图6为本发明的一个实施例的分组加密系统中密码分组链接模式加密单元的模块示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。

所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员应意识到,没有特定细节中的一个或更多,或者采用其它的方法、组元、材料等,也可以实践本发明的技术方案。在某些情况下,不详细示出或描述公知结构、材料或者操作以避免模糊本发明。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

下面结合附图和实施例对本发明的技术内容进行进一步地说明。

请参见图1,其示出了本发明的一个实施例的分组加密的方法的流程图。具体来说,本发明实施例的分组加密的方法主要针对安全加密卡的sm1算法。由于一般现有的加密卡不提供sm1_ofb,并且通常ofb(输出反馈模式加密)是使用ecb(电子编码本)来实现的,ecb(电子编码本)要求每一个block_size就要加密一次,这极大的增加了与安全加密卡的交互次数,性能损耗严重,因此,本发明实施例的分组加密的方法利用密码分组链接模式来实现输出反馈模式,使得输出反馈模式加密方法中的所有分组可以一次性加密处理,对于大数据块来说,大大降低了密码卡的开销。如图1所示,在本发明的实施例中,该分组加密的方法包括如下步骤:

步骤s10:获取一组待加密明文数据。

步骤s20:判断是否存在未使用的加密数据。具体来说,请参见图2,其示出了本发明的一个实施例的分组加密的方法中判断是否存在未使用的加密数据的各个步骤流程图。如图2所示,在本发明的优选实施例中,所述步骤s20包括如下步骤:

步骤s201:判断所述步骤s10获取的待加密明文数据是否为第一组待加密明文数据。换言之,即为判断在对步骤s10中的待加密明文数据之前是否并未对其他待加密明文数据进行加密。

若是,则由于并未进行密码分组链接模式加密,因此,并不会产生加密数据,进而更不可能存在未使用的加密数据,可以执行步骤s202:直接判断步骤s20的结果为存在未使用的加密数据。进而,执行后续步骤s50(可参见下文)。

若否,则执行步骤s203:判断上一组所述待加密明文数据加密后的缓存数据中是否存在未使用的数据(可参见下文)。若存在,则执行所述步骤s30和步骤s40,若不存在,则执行步骤s50。

步骤s30:将未使用的加密数据与待加密明文数据中部分数据进行异或运算,得到第一密文子数据。具体来说,在本发明实施例中,未使用的加密数据是储存于缓存中,形成缓存数据,即在此步骤中,将缓存数据中未使用的加密数据与步骤s10中获取的待加密明文数据中部分数据(待加密明文数据中与未使用的加密数据长度相同的部分数据)进行异或运算,异或运算后的值即为第一密文子数据。

步骤s40:对所述步骤s30中未进行异或运算的剩余待加密明文数据进行密码分组链接模式加密,得到第二密文子数据,将所述第一密文子数据和所述第二密文子数据结合得到一密文数据。具体来说,该步骤中的剩余待加密明文数据即为上述步骤s10中待加密明文数据中未经过步骤s30异或运算的明文数据。第一密文子数据和第二密文子数据结合是指将第一密文子数据与第二密文子数据直接拼接形成密文数据。

步骤s50:对所述步骤s10中的待加密明文数据进行密码分组链接模式加密,得到所述第三密文子数据,将所述第三密文子数据作为密文数据。

进一步地,请一并参见图3和图4,其示出了本发明一个实施例的分组加密的方法中进行密码分组链接模式加密的各个步骤流程图以及算法示意图。具体来说,如图3所示,对所述剩余待加密明文数据或对待加密明文数据进行密码分组链接模式加密包括如下步骤:

步骤s601:获取当前初始化向量,构建虚拟明文数据。在本发明的实施例中,使用密码分组链接模式加密(cbc加密)来实现整个输出反馈模式加密(ofb加密),而通常,密码分组链接模式加密(cbc加密)的基本流程是先使用明文分组数据与当前初始化向量(iv)进行异或运算后再使用密钥进行加密的,而输出反馈模式加密(ofb加密)是事先对当前初始化向量(iv)使用密钥加密后再与各个明文分组数据进行异或运算。因此,本发明实施例中,为了使用密码分组链接模式加密(cbc加密)来实现整个输出反馈模式加密(ofb加密),因此,需要获取当前初始化向量、并且构件一虚拟明文数据,使用虚拟明文数据来代替原先密码分组链接模式加密(cbc加密)中实际的明文分组数据。在本发明的优选实施例中,虚拟明文数据为长度与当前初始化向量的长度相同、且填充均为0的数据。

步骤s602:对所述当前初始化向量和所述虚拟明文数据进行异或运算。如上所示,由于本发明的优选实施例中,虚拟明文数据为长度与当前初始化向量的长度相同、且填充均为0的数据,因此,对当前初始化向量和虚拟明文数据进行异或运算后,形成的数据与当前初始化向量相同。

步骤s603:将所述步骤s602中异或运算的值进行密钥加密,得到一组加密数据。具体来说,在此步骤中,密钥加密是指使用cbc密钥和cbc加密器来进行加密,加密后得到所述加密数据,该加密数据用于对待加密明文数据进行加密。

进一步地,加密数据包括多个长度相同的加密分组数据,每个所述加密分组数据的长度与所述密钥加密的长度相同,且所述加密数据的长度为大于等于所述待加密明文数据或者所述剩余待加密明文数据的长度的最小值。具体来说,本发明实施例中使用cbc密钥和cbc加密器来进行加密,其密钥加密为16字节长度的数据加密。进而,加密分组数据的长度为16字节与cbc密钥加密的加密数据的长度相同,所述加密数据的长度为根据所述待加密明文数据或者所述剩余待加密明文数据的长度按照16字节的整数倍扩充,扩充至加密数据的长度为大于等于待加密明文数据或者剩余待加密明文数据的长度的最小值。举例来说,若上述步骤s40中的剩余待加密明文数据或者步骤s50中的待加密明文数据的长度为50字节,则在满足上述条件的基础上,加密数据的长度是按照16字节的4倍扩充,即加密数据包括4个16字节的加密分组数据。

步骤s604:将所述加密数据与所述待加密明文数据或者所述剩余待加密明文数据进行异或运算,生成所述第二密文子数据或者所述第三密文子数据。具体来说,在步骤s40中即为将加密数据与剩余待加密明文数据进行异或运算,生成第二密文子数据;在步骤s50中即为将加密数据与待加密明文数据进行异或运算,生成第三密文子数据。同样以上述50字节长度的剩余待加密明文数据或者待加密明文数据为例,将64字节长度的加密数据中前50个字节的加密数据与待加密明文数据或者剩余待加密明文数据进行异或运算,进而,加密数据中的最后一个加密分组数据中还存在14个字节的数据未使用。

步骤s605:将所述步骤s601中的所述当前初始化向量更新为所述步骤s603中的所述加密数据中的最后一个加密分组数据,供下一组所述剩余待加密明文数据或所述加密明文数据进行所述密码分组链接模式加密。具体来说,以上述50字节长度的剩余待加密明文数据或者待加密明文数据为例,即为将步骤s601中的当前初始化向量更新为加密数据中的最后一个16个字节长度的加密分组数据,该最后一个16个字节长度的加密分组数据包括14个字节的未使用数据的加密数据的一个加密分组数据。需要说明的是,在本发明实施例中,步骤s604与步骤s605的执行顺序是可以互换的,在此不予赘述。

进一步地,在图3所示的实施例中,所述s605完成后包括如下步骤:

步骤s606:判断最后一个加密分组数据中是否存在未使用的加密数据,若是,则执行步骤s607。具体来说,当所述步骤s50中的待加密明文数据的长度为加密数据的长度的整数倍或者所述步骤s40中的剩余待加密明文数据的长度为加密数据的长度的整数倍时,该步骤中判断结果为最后一个加密分组数据中不存在未使用的加密数据,否则,所述步骤s606中判断结果为最后一个加密分组数据中存在未使用的加密数据。以上述实施例来说,由于密钥加密为16字节长度的数据加密,因此,若当剩余待加密明文数据或者待加密明文数据的长度为32字节时,则加密数据的长度是按照16字节的2倍扩充,即加密数据包括2个16字节的加密分组数据;若当剩余待加密明文数据或者待加密明文数据的长度为30字节时,则加密数据的长度是按照16字节的2倍扩充,即加密数据包括2个16字节的加密分组数据,但加密数据的最后一个加密分组数据中存在2个未使用的加密数据。

步骤s607:将该最后一个加密分组数据保存为缓存数据enc_data。具体来说,若以上述剩余待加密明文数据或者待加密明文数据的长度为30字节为例,由于加密数据包括2个16字节的加密分组数据,但加密数据的最后一个加密分组数据中存在2个未使用的加密数据,因此,存在2个未使用的加密数据的后一个加密分组数据保存为缓存数据enc_data。

进一步地,对后续每一次待加密明文数据进行加密均可以通过执行上述步骤s10至步骤s50来实现,在此不予赘述。

下面以两组具体的待加密明文数据为例结合上述图1至图4所示步骤来对本发明实施例的分组加密的方法进行说明。

具体来说,以上述密钥加密为16字节长度的数据加密为例,假设接收到的一组待加密明文数据为第一组待加密明文数据(即之前并未对其他待加密明文数据进行过加密或者之前对其他待加密明文数据进行过加密的记录被清空)、该第一组待加密明文数据的长度为28字节长度的数据,则加密数据按照上述图1至图4所示的步骤、根据16字节进行2倍扩充后形成的长度为32字节,即包括两个16字节长度的加密分组数据。其中,32个字节中的前28个字节的数据与待加密明文数据进行异或运算后得到与第一组待加密明文数据对应的密文数据,而后一组加密分组数据中则存在4个未使用的加密数据。进而,根据步骤s606所述,将最后一个加密分组数据、即上述存在4个未使用的加密数据的后一组加密分组数据进行缓存。

进一步地,假设接收到的第二组待加密明文数据的长度为20字节,则根据步骤s20的判断执行步骤s30,即将上述第一组待加密明文数据加密后缓存的缓存数据(即第一组待加密明文数据加密过程中步骤s603中得到的加密数据中的最后一个加密分组数据)中4个字节长度的未使用加密数据与第二组待加密明文数据中的4个字节长度的待加密明文数据进行异或运算,得到4个字节长度的第一密文子数据,进而,剩余待加密明文数据为16个字节使用上述步骤s601至步骤s607进行密码分组链接模式加密。由于此次密码分组链接模式加密后的16个字节的加密数据均被使用,因此,无需缓存数据;并且第一组待加密明文数据加密后存在4个字节长度的未使用加密数据也均使用,因此,缓存数据中也不存在未使用的加密数据。

进一步地,在上述举例的基础上,若假设第一组待加密明文数据的长度为32个字节,则不存在未使用的加密数据,进而,后续接收到第二组待加密明文数据时,根据步骤s20的判断、直接执行步骤s50。

若假设举例中的第一组待加密明文数据的长度为仍然为28个字节,而第二组待加密明文数据的长度为也为28个字节,则根据图1所示的步骤加密后,仍然存在未使用的加密数据,未使用的加密数据仍用于后续例如第三组待加密明文数据中。

进一步地,在本发明的一个实施例中,所述分组加密的方法中,在步骤s10之前还包括如下步骤:创建输出反馈模式(ofb模式)加密的上下文。所述输出反馈模式(ofb模式)加密的上下文用于储存密码分组链接模式加密的密钥key、当前初始化向量iv、缓存数据enc_data以及未使用的加密数据。

进一步地,本发明还提供一种分组加密的系统,用于实现上述的分组加密的方法。具体来说,请一并参见图5和图6,其示出了本发明的一个实施例的分组加密系统的模块示意图以及分组加密系统中密码分组链接模式加密单元的模块示意图。如图5所示,所述分组加密的系统至少包括明文数据获取模块1、第一判断模块2、第一运算模块3、第一加密模块4以及第二加密模块5。

具体来说,明文数据获取模块1用于获取待加密明文数据。

第一判断模块2用于判断是否存在未使用的加密数据。

第一运算模块3用于当第一判断模块2判断结果为是时,将未使用的加密数据与待加密明文数据中部分数据进行异或运算,得到第一密文子数据。

第一加密模块4用于对第一运算模块3中未进行异或运算的剩余待加密明文数据进行密码分组链接模式加密,得到第二密文子数据,将所述第一密文子数据和所述第二密文子数据结合得到一密文数据。

第二加密模块5用于当第一判断模块2判断结果为否时,对所述明文数据获取模块获取的待加密明文数据进行密码分组链接模式加密,得到所述第三密文子数据,将所述第三密文子数据作为密文数据。

进一步地,第一加密模块4以及第二加密模块5均包括密码分组链接模式加密单元。所述密码分组链接模式加密单元用于对所述剩余待加密明文数据或所述待加密明文数据进行密码分组链接模式加密,如图6所示,密码分组链接模式加密单元包括:第一数据获取模块61、第二运算模块62、第三加密模块63、第三运算模块64和数据更新模块65。

第一数据获取模块61用于获取当前初始化向量,构建虚拟明文数据。

第二运算模块62用于对所述当前初始化向量和所述虚拟明文数据进行异或运算。

第三加密模块63将第二运算模块62中异或运算的值进行密钥加密,得到一组加密数据。其中,所述加密数据包括多个长度相同的加密分组数据,每个所述加密分组数据的长度与所述密钥加密的长度相同,且所述加密数据的长度为大于等于所述待加密明文数据或者所述剩余待加密明文数据的长度的最小值。

第三运算模块64用于将所述加密数据与所述待加密明文数据或者所述剩余待加密明文数据进行异或运算,生成所述第二密文子数据或者所述第三密文子数据。

数据更新模块65用于将第一数据获取模块61获取的当前初始化向量更新为第三加密模块63得到所述加密数据中的最后一个加密分组数据,供下一组所述剩余待加密明文数据或所述加密明文数据进行所述密码分组链接模式加密。

进一步地,本发明还提供一种分组解密的方法,与上述的分组加密方法相对应,用于对上述分组加密的密文数据进行解密。该解密方法与上述图1所示的加密方法类似,因此,具体的运算或执行的步骤不再详细赘述。具体来说,所述分组解密的方法包括如下步骤:

步骤s100:获取一组待解密密文数据。

步骤s200:判断是否存在未使用的解密数据,若是,则执行步骤s300和步骤s400,若否则执行步骤s500。

步骤s300:将所述未使用的解密数据与所述待解密密文数据中部分数据进行异或运算,得到第一明文子数据。

步骤s400:对所述步骤s300中未进行异或运算的剩余待解密密文数据进行密码分组链接模式解密,得到第二明文子数据,将所述第一明文子数据和所述第二明文子数据结合得到一明文数据。

步骤s500:对所述步骤s100中的待解密密文数据进行密码分组链接模式解密,得到所述第三明文子数据,将所述第三明文子数据作为明文数据。

进一步地,对所述剩余待解密密文数据或所述待解密密文数据进行所述密码分组链接模式解密包括如下步骤:

步骤s6010:获取当前初始化向量,构建虚拟密文数据。需要说明的是,对第一组待解密密文数据进行解密时,该步骤中获取的当前初始化向量为上述分组加密方法中对最后一组待加密明文数据加密过程中步骤s605完成后更新的当前初始化向量。

步骤s6020:对所述当前初始化向量和所述虚拟密文数据进行异或运算。

步骤s6030:将所述步骤s6020中异或运算的值进行密钥解密,得到一组解密数据。其中,所述解密数据包括多个长度相同的解密分组数据,每个所述解密分组数据的长度与所述密钥解密的长度相同,且所述解密数据的长度为大于等于所述待解密密文数据或者所述剩余待解密密文数据的长度的最小值。

步骤s6040:将所述解密数据与所述待解密密文数据或者所述剩余待解密密文数据进行异或运算,生成所述第二明文子数据或者所述第三明文子数据。

步骤s6050:将所述步骤s6010中的所述当前初始化向量更新为所述步骤s6030中的所述解密数据中的最后一个解密分组数据,供下一组所述剩余待解密密文数据或所述解密密文数据进行所述密码分组链接模式解密。

综上所述,本发明实施例提供的分组加密的方法及其系统以及与该分组加密的方法相对应的分组解密的方法中,分组加密的方法通过密码分组链接模式来实现输出反馈模式,使得输出反馈模式加密方法中的所有分组可以一次性加密处理,对于大数据块来说,大大降低了密码卡的开销。

虽然本发明已以可选实施例揭示如上,然而其并非用以限定本发明。本发明所属技术领域的技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与修改。因此,本发明的保护范围当视权利要求书所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1