一种长报文数据的等长分组加密方法及密文解密方法

文档序号:1965846 发布日期:2021-12-14 浏览:11次 >En<

阅读说明:本技术 一种长报文数据的等长分组加密方法及密文解密方法 (Equal-length block encryption method and ciphertext decryption method for long message data ) 是由 闫鸣生 王金贵 李国� 马晓艳 王冠 于 2021-09-13 设计创作,主要内容包括:本发明是关于一种长报文数据的等长分组加密方法及密文解密方法。其中的加密方法包括:当长报文的数据长度N不是分组长度L的整数倍时,将长报文的数据进行分组,得到部分分组和标准分组;对标准分组进行加密运算,得到第一密文;对部分分组进行加密运算,得到第二密文;将第一密文和第二密文组合,得到长度为N的密文。本发明提供的技术方案中的加解密方法,其密文、明文等长,无需填充,适合更多模式分组密码算法,并且适合于如E1内容加密、SDH帧净载荷加密等长度不能更改的应用环境及其它长度变化但不是标准分组整数倍的应用场景,使得很多分组密码模式应的用不再受数据长度限制。(The invention relates to an equal-length block encryption method and a ciphertext decryption method for long message data. The encryption method comprises the following steps: when the data length N of the long message is not an integral multiple of the packet length L, the data of the long message is grouped to obtain a partial packet and a standard packet; carrying out encryption operation on the standard packet to obtain a first ciphertext; performing encryption operation on part of the packets to obtain a second ciphertext; and combining the first ciphertext and the second ciphertext to obtain the ciphertext with the length of N. The encryption and decryption method in the technical scheme provided by the invention has the advantages that the ciphertext and the plaintext are equal in length, the method is free from filling, and the method is suitable for block cipher algorithms with more modes, is suitable for application environments with unchangeable lengths such as E1 content encryption and SDH frame payload encryption and other application scenes with variable lengths but not integral multiples of standard blocks, so that the application of a plurality of block cipher modes is not limited by data length any more.)

一种长报文数据的等长分组加密方法及密文解密方法

技术领域

本发明属于数据安全领域,该技术及设备可用于计算机应用的系统设计、安全架构设计及密码运算应用,尤其涉及一种长报文数据的等长分组加密方法及密文解密方法。

背景技术

分组加密,是对称加密算法的主要密码算法,包括常见的国密SM1、SM4、SM6及国际AES128和AES256等等,其主要特点是加解密过程是按照算法要求将数据分成固定长度的组,并根据加解密模式一组一组地进行加解密运算。其中多种模式(ECB/CBC/CFB等)均需要明文长度是分组长度的整倍数,如果不是整倍数,需要填充(Padding)至分组长的整倍数才能进行分组加密。其结果是,当数据长度不是分组的整倍数时,密文由于加密时的数据填充,使得密文长度大于明文长度,即:此时密文长度与明文长度不相等,且大于明文长度。

解密也是一样,先对分组的整倍数长度的密文进行解密,如果有填充,还需要去掉填充,以获取明文。

OFB(输出反馈)模式和CTR(计数器)模式是一种流媒体应用模式,可以实现等长加密,即使明文长度不是分组长度的整数倍,密文长度也可以等于明文长度。但是OFB及CTR模式使用的前提是辅助参数需要变化,即:OFB算法的IV或CTR模式counter值是变量,而不是常量,且最好不重复。这样的使用要求在很多应用场合并不适合,特别是通信双方进行密文通信的场合,通信双方除密钥一致外,需要每次同步辅助参数,即:需要额外的通道去通知对方辅助参数的数值。这样的要求使得很多应用无法使用OFB或CTR模式进行等长报文加密。

发明内容

为克服相关技术中存在的问题,本发明提供一种长报文数据的等长分组加密方法及密文解密方法。

根据本发明实施例的第一方面,提供一种长报文数据的等长分组加密方法,包括:

当长报文的数据长度N不是分组长度L的整数倍时,将所述长报文的数据进行分组,得到1个长度为L’的部分分组和k个长度为L的标准分组,其中,k为正整数,所述部分分组为第i组数据,1<i≤k+1,L’<L;

对k个所述标准分组进行加密运算,得到k个长度为L的第一密文;

对所述部分分组进行加密运算,得到1个长度为L’的第二密文;

将k个第一密文和1个第二密文组合,得到长度为N的密文。

进一步,所述对所述部分分组进行加密运算,得到1个长度为L’的第二密文,具体包括:

以预设的长度为L的数值作为第一明文数据,对所述第一明文数据进行加密,得到第一密钥流;

所述第一密钥流中预定的L’个数据和所述部分分组的数据进行按比特异或运算,得到第三密文;

所述预定的L’个数据,可以是前L’个数据,可以是后L’个数据,也可以是事先约定的中间L’个数据。

提取所述第三密文中预定的L’个数据,得到第二密文。

进一步,所述对所述部分分组进行加密运算,得到1个长度为L’的第二密文,具体包括:

以第i-1组数据加密得到的第一密文作为第二明文数据,对所述第二明文数据进行加密,得到第二密钥流;

对所述第二密钥流中预定的L’个数据和所述部分分组的数据进行按比特异或运算,得到第四密文;

提取所述第四密文中预定的L’个数据,得到第二密文。

进一步,所述对所述部分分组进行加密运算,得到1个长度为L’的第二密文,具体包括:

对第i-1组数据加密得到的第一密文和预设的长度为L的数值进行按比特异或运算,将运算结果作为第三明文数据;

对所述第三明文数据进行加密,得到第三密钥流;

对所述第三密钥流中预定的L’个数据和所述部分分组的数据进行按比特异或运算,得到第五密文;

提取所述第五密文预定的L’个数据,得到第二密文。

进一步,所述对k个所述标准分组进行加密运算,得到k个长度为L的第一密文,具体步骤为:

对前i-1组标准分组数据进行加密运算,得到i-1个长度为L的第一密文;

对后k-i+1组标准分组数据进行加密运算,得到k-i+1个长度为L的第一密文。其中,第i+1组标准分组数据根据加密算法模式规定的反馈参数(如果有的话),从第i组部分分组数据的加密算法中获取。

进一步,还包括:

当长报文的数据长度N是分组长度L的整数倍时,将所述长报文的数据进行分组,得到m个标准分组,m=L/N;

对所述m个标准分组进行加密运算,得到m个长度为L的第六密文;

将m个第六密文进行组合,得到长度为N的密文。

根据本发明实施例的第二方面,提供一种密文解密方法,包括:

当密文的数据长度N不是分组长度L的整数倍时,将所述密文的数据进行分组,得到1个长度为L’的部分分组和k个长度为L的标准分组,其中,k为正整数,所述部分分组为第i组数据,1<i≤k+1,L’<L;

对k个所述标准分组进行解密运算,得到k个长度为L的第一明文;

对所述部分分组进行部分分组解密运算,得到1个长度为L’的第二明文;

将k个第一明文和1个第二明文组合,得到长度为N的明文。

进一步,所述对所述部分分组进行解密运算,得到1个长度为L’的第二明文,具体包括:

以预设的长度为L的数值作为第四明文数据,对所述第四明文数据进行加密,得到第四密钥流;

所述第四密钥流中预定的L’个数据和所述部分分组的数据进行按比特异或运算,得到第三明文;

提取所述第三明文中预定的L’个数据,得到第二明文。

所述预定的L’个数据,可以是前L’个数据,可以是后L’个数据,也可以是事先约定的中间L’个数据。

进一步,所述对所述部分分组进行解密运算,得到1个长度为L’的第二明文,具体包括:

以第i-1组密文数据作为第五明文数据,对所述第五明文数据进行加密,得到第五密钥流;

对所述第五密钥流中预定的L’个数据和所述部分分组的数据进行按比特异或运算,得到第四明文;

提取所述第四明文预定的L’个数据,得到第二明文。

进一步,所述对所述部分分组进行解密运算,得到1个长度为L’的第二明文,具体包括:

对第i-1组密文数据和预设的长度为L的数值进行按比特异或运算,将异或结果作为第六明文数据;

对所述第六明文数据进行加密,得到第六密钥流;

对所述第六密钥流中预定的L’个数据和所述部分分组的数据进行按比特异或运算,得到第五明文;

提取所述第五明文中预定的L’个数据,得到第二明文。

进一步,还包括:

当密文的数据长度N是分组长度L的整数倍时,将所述密文的数据进行分组,得到m个标准分组,m=L/N;

对所述m个标准分组进行解密运算,得到m个长度为L的第六明文;

将m个第六明文进行组合,得到长度为N的明文。

本发明的实施例提供的技术方案可以包括以下有益效果:

本发明提供的加密及解密方法,其密文、明文等长,无需填充,适合更多模式分组密码算法,并且适合于如E1内容加密、SDH帧净载荷加密等长度不能更改的应用环境及其它长度变化但不是标准分组整数倍的应用场景,使得很多分组密码模式应的用不再受数据长度限制,拓展了应用场景。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施方式中,相同的参考标号通常代表相同部件。

图1是根据本发明一示例性实施例示出的一种长报文数据的等长分组加密方法的流程示意图;

图2是本发明实施例中标准分组及部分分组加密及合并的流程图;

图3是本发明实施例中标准分组及部分分组加密的示意图;

图4是根据本发明一示例性实施例示出的一种密文解密方法的流程示意图;

图5是E1传输数据的SM4-CBC模式加密的流程图;

图6SDH-VC4帧静载荷AES-BC模式加密的流程图。

具体实施方式

下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

本专利针对于长报文的加密及解密,本专利中所定义的长报文,是指明文数据的长度大于所用分组密码算法的分组长度L。如SM4及AES128密码算法的分组长度为128比特,即L=16字节。在使用SM4或AES128分组密码进行数据加密时,大于16字节的数据(如17字节,100字节等)均在本专利里定义为长报文。而AES256的分组长度是256比特,即:32字节,则对于AES256算法,大于32字节(33字节,500字节)的报文为长报文。

当使用ECB,CBC,CFB等密码算法时,如果报文长度N不是分组长度L的整倍数,即:N≠k*L,其中k=int(N/L),函数int(x)为x的整数值,如int(4.85)=4,则传统的分组加密方法需要将数据填充至k+1分组;

如:N=67字节的明文C,使用16字节分组密码算法进行加密,需要填充13字节内容,使数据长度增加至67+13=80字节,80字节是5个分组,通过标准分组加密算法,获得长度为N’=80字节的密文C。其结果是,密文C的长度N’=80,而明文M的长度N=67。可以看出,传统分组密码算法在数据长度N不是分组长度L的整倍数时,无法获得等长的密文C。

而本发明则不需要填充数据,亦能够实现长报文数据的等长分组加密,即,一个长报文,长度为N,经过本专利的分组加密运算后,密文数据的长度N’与明文数据长度相同,即:N=N’。

以下结合附图详细描述本发明实施例的技术方案。

图1是根据本发明一示例性实施例示出的一种长报文数据的等长分组加密方法的流程示意图。

参见图1,该方法包括:

110、当长报文的数据长度N不是分组长度L的整数倍时,将所述长报文的数据进行分组,得到1个长度为L’的部分分组和k个长度为L的标准分组,其中,k为正整数,所述部分分组为第i组数据,1<i≤k+1,L’<L。

具体的,当长报文的数据长度N不是分组长度L的整数倍时,对长报文的加密分为整分组加密及部分分组加密;其中,整分组加密即标准分组加密,部分分组加密用于实现报文数据小于分组长度的报文加密;

长度为N的长报文(称明文M),k=int(N/L),函数int(x)输出为x的整数部分。在进行加密前,先进行明文数据分组,具体分以下两种情况:

如果N=k*L,即数据长度恰好为分组的整数倍,则加密过程则符合标准分组加密规则,即进行k组标准分组加密即可。

如果N≠k*L,即:长度不是分组的整数倍,即除了k组长度为L的数据外,剩余的数据长度为:L’=N-k*L。共分k+1个分组,包括k个整分组数据和1组小于分组长度的部分分组。如下表所示:

M<sub>1</sub> M<sub>2</sub> M<sub>3</sub> …… M<sub>i-1</sub> M<sub>i</sub> M<sub>i+1</sub> …… M<sub>k</sub> M<sub>k+1</sub>

图中,第i分组为部分分组,数据长度为L’,其它k个分组,包括第1至第i-1分组和第i+1至第k+1分组为标准分组,数据长度为L,其中,i为加解密双方事前约定的数值,1<i≤k+1。

120、对k个所述标准分组进行加密运算,得到k个长度为L的第一密文。

130、对所述部分分组进行加密运算,得到1个长度为L’的第二密文。

具体的,如图2及图3所示,以上步骤执行对长报文的分组数据加密,包括标准分组数据的标准数据加密和部分分组数据的部分分组加密。加密过程如下:

1.先对第1组至i-1组进行指定模式的分组加密计算,获得C1,C2,…,Ci-1

2.对第i组部分分组数据进行部分分组加密计算,获得Ci’。

3.对第i+1组至k+1组进行指定模式的分组加密计算,获得Ci+1,…,Ck+1

140、将k个第一密文和1个第二密文组合,得到长度为N的密文。

具体的,该步骤中,对步骤120和步骤130对各分组加密得到的密文数据进行整理与合并,具体过程是,提取Ci’密文数据中预定的L’个数据为第i组密文为Ci,最后合并数据C=C1||C2||,…,||Ci||,…,||Ck||Ck+1,密文长度为N’=k*L+L’=N。

本发明实施例提供的一种长报文数据的等长分组加密方法,其生成的密文与长报文的明文等长,无需填充,适合更多模式分组密码算法,并且适合于E1内容加密、SDH帧载荷加密等,内容长度不能更改的应用环境,拓展了应用场景。

可选地,在该实施例中,步骤120具体包括:

1201、对前i-1组标准分组数据进行加密运算,得到i-1个长度为L的第一密文;

1202、对后k-i+1组标准分组数据进行加密运算,得到k-i+1个长度为L的第一密文。其中,第i+1组标准分组数据根据加密算法模式规定的反馈参数(如果有的话),从第i组部分分组数据的加密算法中获取。

本实施例中,对部分分组数据进行分组加密,加密运算的明文可使用约定数值TAG进行加密运算,获取密钥流,或者,加密运算的明文可使用上一组密文或上一组密文与约定数值TAG进行异或操作,并对异或结果进行加密运算,获取密钥流。密钥流中预定的L’个数据对明文按比特异或,获取密文。密文长度等于明文长度。分别具体说明如下。

可选地,在该实施例中,步骤130中对部分分组的数据进行加密运算的过程,具体包括:

1301、以预设的长度为L的数值作为第一明文数据,对所述第一明文数据进行加密,得到第一密钥流;

1302、所述第一密钥流中预定的L’个数据和所述部分分组的数据进行按比特异或运算,得到第三密文;

1303、提取所述第三密文中预定的L’个数据,得到第二密文。

所述预定的L’个数据,可以是前L’个数据,可以是后L’个数据,也可以是事先约定的中间L’个数据。

具体的,本实施例提供的第一种部分分组的加密运算方法,以设定为事先约定长度为L的数值TAG,其中TAG可以是任意双方约定的固定数值、双方密钥校验值(密钥校验值:对固定数值加密运算的密文值)等内容。以TAG为明文数据M’,IV(初始化向量)为加密模式规定的第i组加密所确定的IV,并使用密钥k对M’进行加密,得到密文C’,则部分分组数据的密文C’i为:C’i=C’⊕Mi,其中Mi为第i组部分分组的数据,⊕为按比特异或运算,下同。

上述方式的特点是,部分分组通过标准分组长度而进行的标准分组加密运算,其加密模式可以保持原有的加密模式,只不过输出密文为密钥流,密钥流与包含部分分组数据Mi进行异或获得部分分组加密的密文C’i

本实施例中,通过增加约定值TAG,进一步加大攻击者的破解难度,提高密文数据的安全性。

可选地,在该实施例中,步骤130中对部分分组的数据进行加密运算的过程,具体包括:

1304、以第i-1组数据加密得到的第一密文作为第二明文数据,对所述第二明文数据进行加密,得到第二密钥流;

1305、对所述第二密钥流中预定的L’个数据和所述部分分组中预定的的数据进行按比特异或运算,得到第四密文;

1306、提取所述第四密文中预定的L’个数据,得到第二密文。

具体的,本实施例提供的第二种部分分组的加密运算方法,使用上一组密文作为M’,即:M’=Ci-1,使用密钥k对M’进行加密,得到密文C’,则部分分组数据的密文Ci为:Ci=C’⊕Mi

上述方式的优点是,随着上一组密文Ci-1的不同,部分分组的密钥流C’也不同,因此安全性更高。

可选地,在该实施例中,步骤130中对部分分组的数据进行加密运算的过程,具体包括:

1307、对第i-1组数据加密得到的密文和预设的长度为L的数值进行按比特异或运算,将运算结果作为第三明文数据;

1308、对所述第三明文数据进行加密,得到第三密钥流;

1309、对所述第三密钥流中预定的L’个数据和所述部分分组的数据进行按比特异或运算,得到第五密文;

1310、提取所述第五密文中预定的L’个数据,得到第二密文。

具体的,本实施例提供的第三种部分分组的加密运算方法,设定为事先约定的数值TAG,令M’=Ci-1⊕TAG,对M’进行加密运算,获得密文C’,则部分分组数据Mi的密文Ci为:Ci=C’⊕Mi

上述方式的优点是,密钥流C’与上一组密文Ci-1及事先约定参数TAG两者都有关系,进一步提高最后一组的密钥流C’的安全性。

可选地,在该实施例中,该方法还包括:

150、当长报文的数据长度N是分组长度L的整数倍时,将所述长报文的数据进行分组,得到m个标准分组,m=L/N;

160、对所述m个标准分组进行加密运算,得到m个长度为L的第六密文;

170、将m个第六密文进行组合,得到长度为N的密文。

具体的,若长报文的数据长度恰好为分组的整数倍,则加密过程符合标准分组加密规则,即进行m组标准分组加密即可。

与上述的加密方法相对应地,本发明实施例提供一种密文解密方法,如图4所示,该方法包括:

410、当密文的数据长度N不是分组长度L的整数倍时,将所述密文的数据进行分组,得到1个长度为L’的部分分组和k个长度为L的标准分组,其中,k为正整数,所述部分分组为第i组数据,1<i≤k+1,L’<L;

420、对k个所述标准分组进行解密运算,得到k个长度为L的第一明文;

430、对所述部分分组进行解密运算,得到1个长度为L’的第二明文;

440、将k个第一明文和1个第二明文组合,得到长度为N的明文。

该实施例中对标准分组加密的密文数据,按照标准模式的分组解密方法进行解密运算即可。对第i组部分分组加密的密文进行解密运算,与部分分组加密过程一样,加密运算明文M’使用约定数值TAG进行加密运算,获取密钥流,或使用前一组密文Ci-1为M’,或M’为前一组密文Ci-1与约定值TAG异或结果,并对M’进行加密获取密钥流。密钥流对密文按比特异或,获取明文;明文长度等于密文长度。

步骤430中对部分分组进行解密运算有三种方法,分别说明如下。

可选地,在该实施例中,步骤430具体包括:

4301、以预设的长度为L的数值TAG作为第四明文数据,对所述第四明文数据进行加密,得到第四密钥流;

4302、所述第四密钥流中预定的L’个数据和所述部分分组的数据进行按比特异或运算,得到第三明文;

4303、提取所述第三明文中预定的L’个数据,得到第二明文。

所述预定的L’个数据,可以是前L’个数据,可以是后L’个数据,也可以是事先约定的中间L’个数据。

可选地,在该实施例中,步骤430具体包括:

4304、以第i-1组密文数据作为第五明文数据,对所述第五明文数据进行加密,得到第五密钥流;

4305、对所述第五密钥流中预定的L’个数据和所述部分分组的数据进行按比特异或运算,得到第四明文;

4306、提取所述第四明文中预定的L’个数据,得到第二明文。

可选地,在该实施例中,步骤430具体包括:

4307、对第i-1组密文数据和预设的长度为L的数值进行按比特异或运算,将运算结果作为第六明文数据;

4308、对所述第六明文数据进行加密,得到第六密钥流;

4309、对所述第六密钥流中预定的L’个数据和所述部分分组的数据进行按比特异或运算,得到第五明文;

4310、提取所述第五明文中预定的L’个数据,得到第二明文。

可选地,在该实施例中,该方法还包括:

450、当密文的数据长度N是分组长度L的整数倍时,将所述密文的数据进行分组,得到m个标准分组,m=L/N;

460、对所述m个标准分组进行解密运算,得到m个长度为L的第六明文;

470、将m个第六明文进行组合,得到长度为N的明文。

具体的,若密文的数据长度恰好为分组的整数倍,则解密过程符合标准分组解密规则,即进行m组标准分组解密即可。

下面举出两个实例,以便更好地理解本发明:

【实例1】E1传输数据的SM4-CBC(Cipher Block Chaining)模式加密

E1是一种2.048Mbps传输带宽的时分复用传输通道,每帧共32个时隙,每时隙1个字节(8比特),帧周期125uS(8000帧/秒)。32个时隙中,0时隙为同步时隙,其它31个时隙为静载荷,即E1线路每帧静载荷为31字节。本实例使用长报文等长加解密算法,实现对每帧静载荷内容31字节的加密运算,每秒进行8000次加密。SM4是一种分组长度为16字节的分组密码算法,由于31字节的报文数据大于一个分组长度(16字节),因此E1线路每帧静载荷的31字节报文属于长报文。

本实例使用SM4分组密码算法的CBC模式完成E1数据静载荷的加密,框图如图5所示。

图中模块Ek是以密钥为k的一个标准的分组加密运算。

每帧31字节静载荷数据密文分为M1和M2,其中M1为载荷前16字节,M2为载荷后15字节,合计31字节。加密过程为:

1.首先对M1进行SM4-CBC加密,密文为C1

2.将C1与TAG值进行异或运算,并对异或结果再次做SM4加密运算,输出为C’。将C’的前7字节与M2的7字节按比特进行异或,结果为7字节密文C2

本实例约定TAG值为密钥k的校验值,即对数据0的加密结果数值,TAG=Ek(0x00)。

最终得到31字节静载荷密文C=C1||C2,长度31字节。

上述过程的有益效果是:

1.对于报文长度为31字节的报文,进行数据加密时,可以完成等长数据加密;

2.保持CBC模式的安全性,即做到报文与密文一一对应,不同报文,密文不同,也具有前面报文内容的变化会导致后面密文跟随变化的特点,具有良好的防破解强度。

本实例是实现对L=31字节数据进行SM4-CBC模式的加解密运算例子。事实上,报文也可以是任何长报文,如L=97,1431等等,均可以使用本专利完成SM4-CBC模式的等长加密和解密。

【实例2】SDH-VC4帧静载荷AES-BC模式加密

本实例是对SDH中VC4内容/载荷加密的一种应用,使用AES256密码算法,并采用BC(block chaining)模式。

SDH(Synchronous Digital Hierarchy)是一种同步传输网络,逐帧传输,每秒8000帧。虚容器VC4由长度固定为9行x270列=2430字节组成,去除SOH、AU-Ptr、POH(合计9x10=90字节)等管理数据外,虚容器VC4的静载荷为2430-90=2340字节。

AES256是一种分组长度为256比特(32字节)分组密码算法,BC(block chaining)模式是一种输出反馈的加解密模式。

一帧数据的静载荷2340=73x32+4,即使用分组长度为32字节的AES256算法,共73个整分组(32字节长度)和1个4字节的部分分组。本实例选定i=2,即:部分分组数据M2为第二分组,长度L’为4字节,第1分组M1和其它72个分组Mi(i=3,4,…,74)为整分组,数据长度为32字节。

加密过程如图6所示。

其中,TAG为双方约定的任意固定值,本实例规定

TAG=0x000102030405060708090A0B0C0D0E0FF0E0D0C0B0A090807060504030201000。

IV是双方约定初始向量,本实例约定IV=Ek(0x00),即数据0的密钥分散值;

VC4内容加密的过程为:

1.使用密钥k和初始向量IV对密文数据M1进行1个AES256的BC模式分组加密运算,分别获得密文C1

2.将密文C1与IV及TAG进行异或运算,M’=C1⊕IV⊕TAG,并将结果M’进行一个分组的加密,获得密文C’2。将C’2的32字节中5~8字节,共4个字节与明文M2的4个字节进行异或运算,得到4字节密文数据C2

3.将C’2与C1异或值作为第三分组的IV,继续进行3至74组BC模式的分组密码算法,获得密文Ci(i=3,4,…,74)。

密文Ci(i=1,2,…,74)即为VC4静载荷的密文数据。密文数据长度为2340字节,正好是VC4容器的静载荷尺寸。

解密过程与BC模式的分组解密过程类似,只是第2分组的解密使用部分分加密的方法进行解密,并获取部分分组明文M2

上述过程的有益效果是:

1.对于VC4载荷2340字节进行AES256分组密码算法的BC模式加密,可以实现等长加密/解密运算,即密文长度仍然是2340字节,在不需要内容更改(如减少4字节内容)或VC4部分内容加密(如最后4字节不加密)的情况下,完成VC4静载荷的全部加密和解密。

2.保持BC模式的安全性,即可以做到密文与当前报相关,也与前面的密文及IV相关,具有前面报文内容的变化会导致后面密文跟随变化的特点,具有良好的防破解强度。

3.增加了TAG,由于TAG是双方约定的密码数值,且与密钥k相关,当密钥k更换时,TAG值也同步改变。用于攻击者很难获得TAG值,进一步增加了破解难度,提高安全性和私密性。

4.本实例选定i=2,即第二级为部分分组数据,长度为4字节,其它分组为整分组,长度为32字节。实际上,部分分组数据可以是除第1分组以外的任何一组,这进一步提高加解密的安全性。

综合来说,本专利对于任何大于一个分组的长报文,都可以实现等长数据加密和解密运算,与OFB和CTR模式的等长加密模式不同,不需要每次更换IV或counter值就可以实现安全加密。这对于很多应用受限的场景(如实例所示E1及SDH VC4内容加密)非常合适。

事实上,本专利的等长加密也不限于长度是字节(8比特)的整倍数,比特数也可以是任意长度,即只要数据的比特长度大于1个分组的长度即可实现等长加解密运算。

上文中已经参考附图详细描述了本发明的方案。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。本领域技术人员也应该知悉,说明书中所涉及的动作和模块并不一定是本发明所必须的。另外,可以理解,本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,本发明实施例装置中的模块可以根据实际需要进行合并、划分和删减。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于SIMD的SM3并行数据加密运算方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!