一种双明文传输的数据对称加密方法技术

技术编号:28632493 阅读:27 留言:0更新日期:2021-05-28 16:29
本发明专利技术公开了一种双明文传输的数据对称加密方法,包括:将原始数据分割为若干个明文组;将若干个所述明文组按序进行排列;将每一所述明文组分割为第一原明文和第二原明文;采用CBC模式对每一所述明文组中的所述第一原明文和所述第二原明文进行处理,以得到第一新明文和第二新明文;基于Feistel结构并利用若干个密钥对每一所述明文组对应的所述第一新明文和所述第二新明文进行加密,以得到与每一所述明文组对应的密文;以及将所有所述明文组对应的所述密文传输至预设终端,以对所述原始数据进行双明文加密传输。本发明专利技术基于三轮Feistel结构可以对具有双明文特征的原始数据进行双明文加密传输,不仅具有可行性,还可以增强原始数据传输过程中的安全性。

【技术实现步骤摘要】
一种双明文传输的数据对称加密方法
本专利技术涉及信息加密
,尤其涉及一种基于三轮Feistel结构的双明文传输的数据对称加密方法。
技术介绍
对称加密方法是密码学中常用的信息加密方法,对称加密方法中采用的对称密钥保证了加密消息的安全性。比较著名的对称密钥标准有DES、3DES、AES等,其中3DES是在DES的基础上增加了两轮加密过程,也就是进行三轮基于DES标准的对称加密,从而增加了加密的强度。同时DES和AES也属于分组密码的范畴,分组密码同样可以分为多种模式,例如ECB、CBC、CFB等。虽然目前新老加密方法众多,但对于一些具有独有特征的数据却缺少具有针对性的方法。2018年,国内一研究小组提出了双明文对称加密方法(简称Bicycle方法)。Bicycle方法的主要思想是:通过同时对两组明文使用对应的两组密钥进行加密后传输,以提高消息的传输量,并提升了穷举攻击的难度。然而经实际应用发现,Bicycle方法中由于其加解密方式的本质是基于一次函数进行的,在实际计算过程中会出现误差,从而影响解密的成功性,致使Bicycle方法不可行。
技术实现思路
本专利技术的目的在于提供一种双明文传输的数据对称加密方法,以基于Feistel结构对具有双明文特征的原始数据进行高效且具有针对性的双明文加密传输。为了达到上述目的,本专利技术通过以下技术实现:一种双明文传输的数据对称加密方法,包括:将原始数据分割为若干个明文组;将若干个所述明文组按序进行排列;将每一所述明文组分割为第一原明文M1和第二原明文M2;采用CBC模式对每一所述明文组中的所述第一原明文M1和所述第二原明文M2进行处理,以得到第一新明文m1和第二新明文m2;基于Feistel结构并利用若干个密钥k对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2进行加密,以得到与每一所述明文组对应的密文c;以及将所有所述明文组对应的所述密文c传输至预设终端,以对所述原始数据进行双明文加密传输。优选地,所述采用CBC模式对每一所述明文组中的所述第一原明文M1和所述第二原明文M2进行处理的步骤包括:将每一所述明文组中的所述第一原明文M1与其前一所述明文组对应的所述密文进行异或运算,以得到每一所述明文组对应的所述第一新明文m1;将每一所述明文组中的所述第二原明文M2与每一所述明文组对应的所述第一新明文m1进行异或运算,以得到每一所述明文组对应的所述第二新明文m2。优选地,首个所述明文组中的所述第一原明文M1与预设初始化向量进行异或运算,以得到首个所述明文组对应的所述第一新明文m1;首个所述明文组中的所述第二原明文M2与首个所述明文组对应的所述第一新明文m1进行异或运算,以得到首个所述明文组对应的所述第二新明文m2。优选地,执行基于Feistel结构并利用若干个密钥k对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2进行加密的步骤之前还包括:对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2分别进行散列,以得到第一散列值mh1和第二散列值mh2;对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2分别进行填充,以得到第一填充值mp1和第二填充值mp2;将每一所述明文组对应的所述第一散列值mh1和所述第一填充值mp1进行组合,以得到每一所述明文组对应的第一组合值mhp1;以及将每一所述明文组对应的所述第二散列值mh2和所述第二填充值mp2进行组合,以得到每一所述明文组对应的第二组合值mhp2。优选地,所述基于Feistel结构并利用若干个密钥k对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2进行加密的步骤包括:通过所述Feistel结构中的轮函数F对每一所述明文组对应的所述第二组合值mhp2和第一密钥k1进行运算,并得到第一轮运算结果F(mhp2,k1);将所述第一轮运算结果F(mhp2,k1)对应与每一所述明文组对应的所述第一组合值mhp1进行异或运算,以得到第一异或值mhp1';通过所述轮函数F对所述第一异或值mhp1'与第二密钥k2进行运算,并得到第二轮运算结果F(mhp1',k2);将所述第二轮运算结果F(mhp1',k2)对应与所述第二组合值mhp2进行异或运算,以得到第二异或值mhp2';通过所述轮函数F对所述第二异或值mhp2'与第三密钥k3进行运算,并得到第三轮运算结果F(mhp2',k3);将所述第三轮运算结果F(mhp2',k3)与所述第一异或值mhp1'进行异或运算,以得到第三异或值mhp3';以及将所述第三异或值mhp3'与所述第二异或值mhp2'进行组合,以得到每一所述明文组对应的所述密文c。优选地,所述双明文传输的数据对称加密方法,还包括:将所述预设终端接收的所有所述密文c按序排列;基于所述Feistel结构并利用若干个所述密钥k对每一所述密文c进行解密,以得到与每一所述密文c对应的所述第一新明文m1和所述第二新明文m2;采用CBC模式对每一所述密文c对应的所述第一新明文m1和所述第二新明文m2进行逆处理,以得到所述第一原明文M1和所述第二原明文M2;对每一所述密文c对应的所述第一原明文M1和所述第二原明文M2进行组合,以得到每一所述密文c对应的所述明文组;以及对所有所述密文c对应的所述明文组进行组合,以得到所述原始数据。优选地,所述基于所述Feistel结构并利用若干个所述密钥k对每一所述密文c进行解密的步骤包括:将每一所述密文c分解为所述第三异或值mhp3'和所述第二异或值mhp2';通过所述轮函数F对所述第二异或值mhp2'与所述第三密钥k3进行运算,并得到所述第三轮运算结果F(mhp2',k3);将所述第三轮运算结果F(mhp2',k3)与所述第三异或值mhp3'进行异或运算,以得到所述第一异或值mhp1';通过所述轮函数F对所述第一异或值mhp1'与所述第二密钥k2进行运算,并得到所述第二轮运算结果F(mhp1',k2);将所述第二轮运算结果F(mhp1',k2)与所述第二异或值mhp2'进行异或运算,以得到每一所述密文c对应的所述第二组合值mhp2;通过所述轮函数F对所述第二组合值mhp2与所述第一密钥k1进行运算,并得到所述第一轮运算结果F(mhp2,k1);将所述第一轮运算结果F(mhp2,k1)与所述第一异或值mhp1'进行异或运算,以得到每一所述密文c对应的所述第一组合值mhp1;将每一所述密文c对应的所述第一组合值mhp1分解为所述第一散列值mh1和所述第一填充值mp1;将每一所述密文c对应的所述第二组合值mp2分解为所述第二散列值mh2和所述第二填充值mp2;以及对每一所述密文c对应的所述第一填充值mp1和所述第二填充值mp2分别进行逆填充,以得到每一所述密文c对本文档来自技高网...

【技术保护点】
1.一种双明文传输的数据对称加密方法,其特征在于,包括:/n将原始数据分割为若干个明文组;/n将若干个所述明文组按序进行排列;/n将每一所述明文组分割为第一原明文M

【技术特征摘要】
1.一种双明文传输的数据对称加密方法,其特征在于,包括:
将原始数据分割为若干个明文组;
将若干个所述明文组按序进行排列;
将每一所述明文组分割为第一原明文M1和第二原明文M2;
采用CBC模式对每一所述明文组中的所述第一原明文M1和所述第二原明文M2进行处理,以得到第一新明文m1和第二新明文m2;
基于Feistel结构并利用若干个密钥k对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2进行加密,以得到与每一所述明文组对应的密文c;以及
将所有所述明文组对应的所述密文c传输至预设终端,以对所述原始数据进行双明文加密传输。


2.如权利要求1所述的双明文传输的数据对称加密方法,其特征在于,所述采用CBC模式对每一所述明文组中的所述第一原明文M1和所述第二原明文M2进行处理的步骤包括:
将每一所述明文组中的所述第一原明文M1与其前一所述明文组对应的所述密文进行异或运算,以得到每一所述明文组对应的所述第一新明文m1;
将每一所述明文组中的所述第二原明文M2与每一所述明文组对应的所述第一新明文m1进行异或运算,以得到每一所述明文组对应的所述第二新明文m2。


3.如权利要求2所述的双明文传输的数据对称加密方法,其特征在于,
首个所述明文组中的所述第一原明文M1与预设初始化向量进行异或运算,以得到首个所述明文组对应的所述第一新明文m1;
首个所述明文组中的所述第二原明文M2与首个所述明文组对应的所述第一新明文m1进行异或运算,以得到首个所述明文组对应的所述第二新明文m2。


4.如权利要求1所述的双明文传输的数据对称加密方法,其特征在于,执行基于Feistel结构并利用若干个密钥k对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2进行加密的步骤之前还包括:
对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2分别进行散列,以得到第一散列值mh1和第二散列值mh2;
对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2分别进行填充,以得到第一填充值mp1和第二填充值mp2;
将每一所述明文组对应的所述第一散列值mh1和所述第一填充值mp1进行组合,以得到每一所述明文组对应的第一组合值mhp1;以及
将每一所述明文组对应的所述第二散列值mh2和所述第二填充值mp2进行组合,以得到每一所述明文组对应的第二组合值mhp2。


5.如权利要求4所述的双明文传输的数据对称加密方法,其特征在于,所述基于Feistel结构并利用若干个密钥k对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2进行加密的步骤包括:
通过所述Feistel结构中的轮函数F对每一所述明文组对应的所述第二组合值mhp2和第一密钥k1进行运算,并得到第一轮运算结果F(mhp2,k1);
将所述第一轮运算结果F(mhp2,k1)对应与每一所述明文组对应的所述第一组合值mhp1进行异或运算,以得到第一异或值mhp1';
通过所述轮函数F对所述第一异或值mhp1'与第二密钥k2进行运算,并得到第二轮运算结果F(mhp1',k2);
将所述第二轮运算结果F(mhp1',k2)对应与所述第二组合值mhp2进行异或运算,以得到第二异或值mhp2';
通过所述轮函数F对所述第二异或值mhp2'与第三密钥k3进行运算,并得到第三轮运算结果F(mhp2',k3);
将所述第三轮运算结果F(mhp2',k3)与所述第一异或值mhp1'进行异或运算,以得到第三异或值mhp3';以及
将所述第三异或值mhp3'与所述第二异或值mhp2'进行组合,以得到每一所述明文组对应的所述密文c。


6.如权利...

【专利技术属性】
技术研发人员:邓飞杨智应宋丹阳方奕
申请(专利权)人:上海海事大学
类型:发明
国别省市:上海;31

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

1