【技术实现步骤摘要】
一种长报文数据的等长分组加密方法及密文解密方法
[0001]本专利技术属于数据安全领域,该技术及设备可用于计算机应用的系统设计、安全架构设计及密码运算应用,尤其涉及一种长报文数据的等长分组加密方法及密文解密方法。
技术介绍
[0002]分组加密,是对称加密算法的主要密码算法,包括常见的国密SM1、SM4、SM6及国际AES128和AES256等等,其主要特点是加解密过程是按照算法要求将数据分成固定长度的组,并根据加解密模式一组一组地进行加解密运算。其中多种模式(ECB/CBC/CFB等)均需要明文长度是分组长度的整倍数,如果不是整倍数,需要填充(Padding)至分组长的整倍数才能进行分组加密。其结果是,当数据长度不是分组的整倍数时,密文由于加密时的数据填充,使得密文长度大于明文长度,即:此时密文长度与明文长度不相等,且大于明文长度。
[0003]解密也是一样,先对分组的整倍数长度的密文进行解密,如果有填充,还需要去掉填充,以获取明文。
[0004]OFB(输出反馈)模式和CTR(计数器)模式是一种流媒体应用模式,可以实现等长加密,即使明文长度不是分组长度的整数倍,密文长度也可以等于明文长度。但是OFB及CTR模式使用的前提是辅助参数需要变化,即:OFB算法的IV或CTR模式counter值是变量,而不是常量,且最好不重复。这样的使用要求在很多应用场合并不适合,特别是通信双方进行密文通信的场合,通信双方除密钥一致外,需要每次同步辅助参数,即:需要额外的通道去通知对方辅助参数的数值。这样的要求使得很多应 ...
【技术保护点】
【技术特征摘要】
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...
【专利技术属性】
技术研发人员:闫鸣生,王金贵,李国,马晓艳,王冠,
申请(专利权)人:北京江南天安科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。