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

技术编号:31376822 阅读:27 留言:0更新日期:2021-12-15 11:14
本发明专利技术是关于一种长报文数据的等长分组加密方法及密文解密方法。其中的加密方法包括:当长报文的数据长度N不是分组长度L的整数倍时,将长报文的数据进行分组,得到部分分组和标准分组;对标准分组进行加密运算,得到第一密文;对部分分组进行加密运算,得到第二密文;将第一密文和第二密文组合,得到长度为N的密文。本发明专利技术提供的技术方案中的加解密方法,其密文、明文等长,无需填充,适合更多模式分组密码算法,并且适合于如E1内容加密、SDH帧净载荷加密等长度不能更改的应用环境及其它长度变化但不是标准分组整数倍的应用场景,使得很多分组密码模式应的用不再受数据长度限制。多分组密码模式应的用不再受数据长度限制。多分组密码模式应的用不再受数据长度限制。

【技术实现步骤摘要】
一种长报文数据的等长分组加密方法及密文解密方法


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

技术介绍

[0002]分组加密,是对称加密算法的主要密码算法,包括常见的国密SM1、SM4、SM6及国际AES128和AES256等等,其主要特点是加解密过程是按照算法要求将数据分成固定长度的组,并根据加解密模式一组一组地进行加解密运算。其中多种模式(ECB/CBC/CFB等)均需要明文长度是分组长度的整倍数,如果不是整倍数,需要填充(Padding)至分组长的整倍数才能进行分组加密。其结果是,当数据长度不是分组的整倍数时,密文由于加密时的数据填充,使得密文长度大于明文长度,即:此时密文长度与明文长度不相等,且大于明文长度。
[0003]解密也是一样,先对分组的整倍数长度的密文进行解密,如果有填充,还需要去掉填充,以获取明文。
[0004]OFB(输出反馈)模式和CTR(计数器)模式是一种流媒体应用模式,可以实现等长加密,即使明文长度不是分组长度的整数倍,密文长度也可以等于明文长度。但是OFB及CTR模式使用的前提是辅助参数需要变化,即:OFB算法的IV或CTR模式counter值是变量,而不是常量,且最好不重复。这样的使用要求在很多应用场合并不适合,特别是通信双方进行密文通信的场合,通信双方除密钥一致外,需要每次同步辅助参数,即:需要额外的通道去通知对方辅助参数的数值。这样的要求使得很多应用无法使用OFB或CTR模式进行等长报文加密。

技术实现思路

[0005]为克服相关技术中存在的问题,本专利技术提供一种长报文数据的等长分组加密方法及密文解密方法。
[0006]根据本专利技术实施例的第一方面,提供一种长报文数据的等长分组加密方法,包括:
[0007]当长报文的数据长度N不是分组长度L的整数倍时,将所述长报文的数据进行分组,得到1个长度为L

的部分分组和k个长度为L的标准分组,其中,k为正整数,所述部分分组为第i组数据,1<i≤k+1,L

<L;
[0008]对k个所述标准分组进行加密运算,得到k个长度为L的第一密文;
[0009]对所述部分分组进行加密运算,得到1个长度为L

的第二密文;
[0010]将k个第一密文和1个第二密文组合,得到长度为N的密文。
[0011]进一步,所述对所述部分分组进行加密运算,得到1个长度为L

的第二密文,具体包括:
[0012]以预设的长度为L的数值作为第一明文数据,对所述第一明文数据进行加密,得到第一密钥流;
[0013]所述第一密钥流中预定的L

个数据和所述部分分组的数据进行按比特异或运算,
得到第三密文;
[0014]所述预定的L

个数据,可以是前L

个数据,可以是后L

个数据,也可以是事先约定的中间L

个数据。
[0015]提取所述第三密文中预定的L

个数据,得到第二密文。
[0016]进一步,所述对所述部分分组进行加密运算,得到1个长度为L

的第二密文,具体包括:
[0017]以第i

1组数据加密得到的第一密文作为第二明文数据,对所述第二明文数据进行加密,得到第二密钥流;
[0018]对所述第二密钥流中预定的L

个数据和所述部分分组的数据进行按比特异或运算,得到第四密文;
[0019]提取所述第四密文中预定的L

个数据,得到第二密文。
[0020]进一步,所述对所述部分分组进行加密运算,得到1个长度为L

的第二密文,具体包括:
[0021]对第i

1组数据加密得到的第一密文和预设的长度为L的数值进行按比特异或运算,将运算结果作为第三明文数据;
[0022]对所述第三明文数据进行加密,得到第三密钥流;
[0023]对所述第三密钥流中预定的L

个数据和所述部分分组的数据进行按比特异或运算,得到第五密文;
[0024]提取所述第五密文预定的L

个数据,得到第二密文。
[0025]进一步,所述对k个所述标准分组进行加密运算,得到k个长度为L的第一密文,具体步骤为:
[0026]对前i

1组标准分组数据进行加密运算,得到i

1个长度为L的第一密文;
[0027]对后k

i+1组标准分组数据进行加密运算,得到k

i+1个长度为L的第一密文。其中,第i+1组标准分组数据根据加密算法模式规定的反馈参数(如果有的话),从第i组部分分组数据的加密算法中获取。
[0028]进一步,还包括:
[0029]当长报文的数据长度N是分组长度L的整数倍时,将所述长报文的数据进行分组,得到m个标准分组,m=L/N;
[0030]对所述m个标准分组进行加密运算,得到m个长度为L的第六密文;
[0031]将m个第六密文进行组合,得到长度为N的密文。
[0032]根据本专利技术实施例的第二方面,提供一种密文解密方法,包括:
[0033]当密文的数据长度N不是分组长度L的整数倍时,将所述密文的数据进行分组,得到1个长度为L

的部分分组和k个长度为L的标准分组,其中,k为正整数,所述部分分组为第i组数据,1<i≤k+1,L

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

的第二明文;
[0036]将k个第一明文和1个第二明文组合,得到长度为N的明文。
[0037]进一步,所述对所述部分分组进行解密运算,得到1个长度为L

的第二明文,具体包括:
[0038]以预设的长度为L的数值作为第四明文数据,对所述第四明文数据进行加密,得到第四密钥流;
[0039]所述第四密钥流中预定的L

个数据和所述部分分组的数据进行按比特异或运算,得到第三明文;
[0040]提取所述第三明文中预定的L

个数据,得到第二明文。
[0041]所述预定的L

个数据,可以是前L

个数据,可以是后L

个数据,也可以是事先约定的中间L

个数据。
[0042]进一步,所述对所述部分分组进行解密运算,得到1个长本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种长报文数据的等长分组加密方法,其特征在于,包括:当长报文的数据长度N不是分组长度L的整数倍时,将所述长报文的数据进行分组,得到1个长度为L

的部分分组和k个长度为L的标准分组,其中,k为正整数,所述部分分组为第i组数据,1<i≤k+1,L

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

的第二密文;将k个第一密文和1个第二密文组合,得到长度为N的密文。2.根据权利要求1所述的方法,其特征在于,所述对所述部分分组进行加密运算,得到1个长度为L

的第二密文,具体包括:以预设的长度为L的数值作为第一明文数据,对所述第一明文数据进行加密,得到第一密钥流;所述第一密钥流中预定的L

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

个数据,得到第二密文。3.根据权利要求1所述的方法,其特征在于,所述对所述部分分组进行加密运算,得到1个长度为L

的第二密文,具体包括:以第i

1组数据加密得到的第一密文作为第二明文数据,对所述第二明文数据进行加密,得到第二密钥流;对所述第二密钥流中预定的L

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

个数据,得到第二密文。4.根据权利要求1所述的方法,其特征在于,所述对所述部分分组进行加密运算,得到1个长度为L

的第二密文,具体包括:对第i

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

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

个数据,得到第二密文。5.根据权利要求1至4任一项所述的方法,其特征在于,还包括:当长报文的数据长度N是分组长度L的整数倍时,将所述长报文的数据进行分组,得到m个标准分组,m=L/N;对所述m个标准分组进行加密运算,得到m个长度为L的第六密文;将m个第六密文进行组合,得到长度为N...

【专利技术属性】
技术研发人员:闫鸣生王金贵李国马晓艳王冠
申请(专利权)人:北京江南天安科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1