CN112866288B - 一种双明文传输的数据对称加密方法 - Google Patents

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

Info

Publication number
CN112866288B
CN112866288B CN202110226088.9A CN202110226088A CN112866288B CN 112866288 B CN112866288 B CN 112866288B CN 202110226088 A CN202110226088 A CN 202110226088A CN 112866288 B CN112866288 B CN 112866288B
Authority
CN
China
Prior art keywords
plaintext
mhp
ciphertext
value
new
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110226088.9A
Other languages
English (en)
Other versions
CN112866288A (zh
Inventor
邓飞
杨智应
宋丹阳
方奕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai High Flying Electronics Technology Co ltd
Original Assignee
Shanghai Maritime University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Maritime University filed Critical Shanghai Maritime University
Priority to CN202110226088.9A priority Critical patent/CN112866288B/zh
Publication of CN112866288A publication Critical patent/CN112866288A/zh
Application granted granted Critical
Publication of CN112866288B publication Critical patent/CN112866288B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

一种双明文传输的数据对称加密方法
技术领域
本发明涉及信息加密技术领域,尤其涉及一种基于三轮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对应的所述第二组合值mhp2分解为所述第二散列值mh2和所述第二填充值mp2;以及
对每一所述密文c对应的所述第一填充值mp1和所述第二填充值mp2分别进行逆填充,以得到每一所述密文c对应的所述第一新明文m1和所述第二新明文m2
优选地,所述基于所述Feistel结构并利用若干个所述密钥k对每一所述密文c进行解密的步骤还包括:
对每一所述密文c对应的所述第一新明文m1和所述第二新明文m2分别进行散列,以得到第三散列值mh1'和第四散列值mh2';
将每一所述密文c对应的所述第三散列值mh1'与所述第一散列值mh1进行对比以及所述第四散列值mh2'与所述第二散列值mh2进行对比,以验证每一所述密文c的解密成功性。
优选地,所述采用CBC模式对每一所述密文c对应的所述第一新明文m1和所述第二新明文m2进行逆处理的步骤包括:
将每一所述密文c对应的所述第一新明文m1与其前一所述密文进行异或运算,以得到每一所述密文c对应的所述第一原明文M1
将每一所述密文c对应的所述第二新明文m2与所述第一原明文M1进行异或运算,以得到每一所述密文c对应的所述第二原明文M2
优选地,首个所述密文c对应的所述第一新明文m1与所述预设初始化向量进行异或运算,以得到首个所述密文c对应的所述第一原明文M1
首个所述密文c对应的所述第二新明文m2与所述第一原明文M1进行异或运算,以得到首个所述密文c对应的所述第二原明文M2
本发明与现有技术相比至少具有以下优点之一:
本发明基于Feistel结构可以对具有双明文特征的原始数据进行双明文加密传输,使得双明文传输的数据对称加密方法具有可行性;同时还可以有效增加传输量,从而能够对原始数据进行高效且具有针对性的加密传输。
本发明中采用的三轮Feistel结构能够触发雪崩效应,即明文和密钥的微小变化也会使得密文发生巨大改变,从而可以增强每一明文组对应的密文的安全性,进而增强原始数据传输过程中的安全性。
本发明采用CBC模式对将每一明文组中的第一原明文和第二原明文进行处理,可以使每一明文组加密后得到密文均与前一明文组对应的密文相关,从而防止数据相同的明文组加密后产生相同的密文,进而可以抵抗选择明文攻击。
本发明利用MD5散列算法的强抗碰撞性,将MD5散列算法作为散列函数对明文进行散列,可以防止任意两个具有不同数据的明文对应的散列值相等,从而可以保证每一明文对应的散列值的独一性。
本发明在解密过程中采用验证算法将每一密文对应的第三散列值与第一散列值进行对比以及第四散列值与第二散列值进行对比,可以保证述原始数据在传输过程中的完整性,即具有防篡改功能。
附图说明
图1是本发明一实施例提供的一种双明文传输的数据对称加密方法的加密流程图;
图2是本发明一实施例提供的一种双明文传输的数据对称加密方法的采用CBC模式的处理流程图;
图3是本发明一实施例提供的一种双明文传输的数据对称加密方法的基于Feistel结构每一明文组的加密流程图;
图4是本发明一实施例提供的一种双明文传输的数据对称加密方法的解密流程图;
图5是本发明一实施例提供的一种双明文传输的数据对称加密方法的采用CBC模式的逆处理流程图;
图6是本发明一实施例提供的一种双明文传输的数据对称加密方法的基于Feistel结构每一密文的解密流程图。
具体实施方式
以下结合附图和具体实施方式对本发明提出的一种双明文传输的数据对称加密方法作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需要说明的是,附图采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施方式的目的。为了使本发明的目的、特征和优点能够更加明显易懂,请参阅附图。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合附图1~6所示,本实施例提供一种双明文传输的数据对称加密方法,包括:步骤S101、将原始数据分割为若干个明文组;步骤S102、将若干个所述明文组按序进行排列;步骤S103、将每一所述明文组分割为第一原明文M1和第二原明文M2;步骤S104、采用CBC模式对每一所述明文组中的所述第一原明文M1和所述第二原明文M2进行处理,以得到第一新明文m1和第二新明文m2;步骤S105、基于Feistel结构并利用若干个密钥k对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2进行加密,以得到与每一所述明文组对应的密文c;以及步骤S106、将所有所述明文组对应的所述密文c传输至预设终端,以对所述原始数据进行双明文加密传输。
具体的,在本实施例中,所述步骤S101至所述步骤S106可以定义为对所述原始数据的加密过程;在步骤S101中可以以256bit为第一分割单位将所述原始数据分割为若干个长度为256bit的所述明文组;步骤S103中可以以128bit为第二分割单位将每一所述明文组分割为所述第一原明文M1和所述第二原明文M2。优选地,所述原始数据可以为具有双明文特征的数据(例如坐标数据和轨迹数据等),但本发明不以此为限。
请继续参考图1和图2,所述步骤S104包括:将每一所述明文组中的所述第一原明文M1与其前一所述明文组对应的所述密文进行异或运算,以得到每一所述明文组对应的所述第一新明文m1;将每一所述明文组中的所述第二原明文M2与每一所述明文组对应的所述第一新明文m1进行异或运算,以得到每一所述明文组对应的所述第二新明文m2
可以理解的是,在一些其他的实施例中,首个所述明文组中的所述第一原明文M1与预设初始化向量进行异或运算,以得到首个所述明文组对应的所述第一新明文m1;首个所述明文组中的所述第二原明文M2与首个所述明文组对应的所述第一新明文m1进行异或运算,以得到首个所述明文组对应的所述第二新明文m2
具体的,基于CBC模式,在对每一所述明文组中的所述第一原明文M1和所述第二原明文M2进行加密之前,需要先将每一所述明文组中的所述第一原明文M1与前一所述明文组对应的所述密文进行异或运算并得到所述第一新明文m1,随后将得到的所述第一新明文m1与所述第二原明文M2进行异或运算并得到所述第二新明文m2,后续则可以对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2进行加密处理,这样可以使每一所述明文组加密后得到所述密文c均与前一所述明文组对应的所述密文相关,从而防止数据相同的所述明文组加密后产生相同的所述密文,进而可以抵抗选择明文攻击。更具体的,对于首个所述明文组来说并不存在前一所述明文组,也不存在前一所述明文组对应的所述密文,因此需要引入所述预设初始化向量,并将其与首个所述明文组中的所述第一原明文M1进行异或运算,但本发明不以此为限。
在本实施例中,采用CBC模式对每一所述明文组中的所述第一原明文M1和所述第二原明文M2进行处理,以得到第一新明文m1和第二新明文m2的具体执行过程如表1中伪代码所示:
表1基于CBC模式获取每一明文组对应的第一新明文和第二新明文
Figure GDA0003711801670000081
请继续参考图1和图3,执行所述步骤S105之前还包括:对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2分别进行散列,以得到第一散列值mh1和第二散列值mh2;对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2分别进行填充,以得到第一填充值mp1和第二填充值mp2;将每一所述明文组对应的所述第一散列值mh1和所述第一填充值mp1进行组合,以得到每一所述明文组对应的第一组合值mhp1;以及将每一所述明文组对应的所述第二散列值mh2和所述第二填充值mp2进行组合,以得到每一所述明文组对应的第二组合值mhp2
具体的,在本实施例中,可以将MD5散列算法作为散列函数对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2分别进行散列,并可以得到长度皆为128bit的所述第一散列值mh1和所述第二散列值mh2;由于MD5散列算法具有强抗碰撞性,即通过MD5散列算法可以防止任意两个具有不同数据的所述明文组对应的所述散列值相等,从而可以保证每一所述明文组对应的所述散列值的独一性。同时,还可以对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2分别进行PKCS7Padding填充操作,并得到长度皆为128bit的所述第一填充值mp1和所述第二填充值mp2;随后再将每一所述明文组对应的所述第一散列值mh1和所述第一填充值mp1进行组合即可得到长度为256bit的所述第一组合值mhp1,以及所述第二散列值mh2和所述第二填充值mp2进行组合即可得到长度为256bit的所述第二组合值mhp2,此时则完成了对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2进行加密前的预处理工作,后续则可以对预处理后得到的每一所述明文组对应的所述第一组合值mhp1和所述第二组合值mhp2进行加密处理,但本发明不以此为限。
请继续参考图1和图3,所述步骤S105包括:通过所述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。
具体的,在本实施例中,基于所述Feistel结构可以使所述双明文传输的数据对称加密方法具有可行性,从而能够对每一所述明文组对应的所述第一组合值mhp1和所述第二组合值mhp2进行成功加密并得到对应的所述密文c,进而可以将所述原始数据以若干个所述密文c形式传输至所述预设终端。更具体的,三轮及以上的所述Feistel结构则能够触发雪崩效应,也就是说每一所述明文组对应的所述第一组合值mhp1和所述第二组合值mhp2及每一所述密钥k的微小变化均会使得每一所述明文组对应的所述密文c发生巨大改变,因此三轮及以上的所述Feistel结构可以增强每一所述明文组对应的所述密文c的安全性,从而增强所述原始数据传输过程中的安全性,但本发明不以此为限。
在本实施例中,所述Feistel结构的轮数可以与所述密钥k的数量的相同;且所述Feistel结构的轮数可以为三轮;所述密钥k的数量可以为三个,分别为所述第一密钥k1、所述第二密钥k2和所述第三密钥k3。基于三轮Feistel结构并利用三个所述密钥k对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2进行加密,以得到与每一所述明文组对应的密文c的具体执行过程如表2中伪代码所示:
表2基于Feistel结构和密钥对每一明文组加密
Figure GDA0003711801670000101
请继续参考图1和图4,所述双明文传输的数据对称加密方法,还包括:步骤S201、将所述预设终端接收的所有所述密文c按序排列;步骤S202、基于所述Feistel结构并利用若干个所述密钥k对每一所述密文c进行解密,以得到与每一所述密文c对应的所述第一新明文m1和所述第二新明文m2;步骤S203、采用CBC模式对每一所述密文c对应的所述第一新明文m1和所述第二新明文m2进行逆处理,以得到所述第一原明文M1和所述第二原明文M2;步骤S204、对每一所述密文c对应的所述第一原明文M1和所述第二原明文M2进行组合,以得到每一所述密文c对应的所述明文组;以及步骤S205、对所有所述密文c对应的所述明文组进行组合,以得到所述原始数据。
具体的,在本实施例中,当所述原始数据以若干个所述密文c的形式传输至所述预设终端后,需要对所述预设终端接收的所有所述密文c进行解密才能得到传输至所述预设终端的所述原始数据,此时则才完成对所述原始数据的传输。因此,所述步骤S201至所述步骤S205则可以定义为对所述原始数据的解密过程,即为所述原始数据的加密过程的逆运算过程,但本发明不以此为限。
请继续参考图5,所述步骤S202包括:将每一所述密文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对应的所述第二组合值mhp2分解为所述第二散列值mh2和所述第二填充值mp2;以及对每一所述密文c对应的所述第一填充值mp1和所述第二填充值mp2分别进行逆填充,以得到每一所述密文c对应的所述第一新明文m1和所述第二新明文m2
可以理解的是,在一些其他的实施例中,所述步骤S202还包括:对每一所述密文c对应的所述第一新明文m1和所述第二新明文m2分别进行散列,以得到第三散列值mh1'和第四散列值mh2';将每一所述密文c对应的所述第三散列值mh1'与所述第一散列值mh1进行对比以及所述第四散列值mh2'与所述第二散列值mh2进行对比,以验证每一所述密文c的解密成功性。
具体的,在本实施例中,可以采用验证算法将每一所述密文c对应的所述第三散列值mh1'与所述第一散列值mh1进行对比以及所述第四散列值mh2'与所述第二散列值mh2进行对比,以保证所述原始数据在传输过程中的完整性,即具有防篡改功能。更具体的,若每一所述密文c对应的所述第三散列值mh1'与所述第一散列值mh1相等且所述第四散列值mh2'与所述二散列值mh2相等,则表示对所述原始数据解密成功,此时解密后得到的所述原始数据未被篡改且解密后得到的每一所述密文c对应的所述第一新明文m1和所述第二新明文m2可以进行后续运算;若将每一所述密文c对应的所述第三散列值mh1'与所述第一散列值mh1不相等和/或所述第四散列值mh2'与所述二散列值mh2不相等,则表示对所述原始数据解密不成功,此时解密后得到的所述原始数据可能已被篡改且解密后得到的每一所述密文c对应的所述第一新明文m1和所述第二新明文m2无法进行后续运算,但本发明不以此为限。
在本实施例中,基于三轮Feistel结构并利用三个所述密钥k对每一所述密文c进行解密,以得到与每一所述密文c对应的所述第一新明文m1和所述第二新明文m2的具体执行过程如表3中伪代码所示:
表3基于Feistel结构和密钥对每一密文解密
Figure GDA0003711801670000121
Figure GDA0003711801670000131
请继续参考图6,所述步骤S203包括:将每一所述密文c对应的所述第一新明文m1与其前一所述密文进行异或运算,以得到每一所述密文c对应的所述第一原明文M1;将每一所述密文c对应的所述第二新明文m2与所述第一原明文M1进行异或运算,以得到每一所述密文c对应的所述第二原明文M2
可以理解的是,在一些其他的实施例中,首个所述密文c对应的所述第一新明文m1与所述预设初始化向量进行异或运算,以得到首个所述密文c对应的所述第一原明文M1;首个所述密文c对应的所述第二新明文m2与首个所述密文c对应的所述第一原明文M1进行异或运算,以得到首个所述密文c对应的所述第二原明文M2
具体的,在本实施例中,由于所述原始数据的解密过程是所述原始数据的加密过程的逆运算过程,基于CBC模式,将每一所述密文c对应的所述第一新明文m1与其前一所述密文进行异或运算便可以得到所述第一原明文M1;随后将所述第一原明文M1与所述第二新明文m2进行异或运算便可以得到所述第二原明文M2,后续则可以对每一所述密文c对应的所述第一原明文M1和所述第二原明文M2进行组合得到每一所述密文c对应的所述明文组,进而得到所述原始数据。更具体的,对于首个所述密文c来说并不存在前一所述密文,因此同样需要引入所述预设初始化向量,并将其与首个所述密文c对应的所述第一新明文m1进行异或运算,且解密过程中的所述预设初始化向量与加密过程中的所述预设初始化向量相同,但本发明不以此为限。
在本实施例中,采用CBC模式对每一所述密文c对应的所述第一新明文m1和所述第二新明文m2进行逆处理,以得到所述第一原明文M1和所述第二原明文M2的具体执行过程如表4中伪代码所示:
表4基于CBC模式获取每一密文对应的第一原明文和第二原明文
Figure GDA0003711801670000132
Figure GDA0003711801670000141
综上所述,本实施例提供的一种双明文传输的数据对称加密方法,采用CBC模式对将每一明文组中的第一原明文和第二原明文进行处理,可以使每一明文组加密后得到密文均与前一明文组对应的密文相关,从而防止数据相同的明文组加密后产生相同的密文,进而可以抵抗选择明文攻击;基于三轮Feistel结构可以对具有双明文特征的原始数据进行双明文加密传输,使得双明文传输的数据对称加密方法具有可行性,同时还可以增强原始数据传输过程中的安全性以及有效增加传输量,从而能够对原始数据进行高效且具有针对性的加密传输。本实施例提供的一种双明文传输的数据对称加密方法,在解密过程中采用验证算法将每一密文对应的第三散列值与第一散列值进行对比以及第四散列值与第二散列值进行对比,可以保证述原始数据在传输过程中的完整性,即具有防篡改功能。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

Claims (8)

1.一种双明文传输的数据对称加密方法,其特征在于,包括:
将原始数据分割为若干个明文组;
将若干个所述明文组按序进行排列;
将每一所述明文组分割为第一原明文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
2.如权利要求1所述的双明文传输的数据对称加密方法,其特征在于,执行基于Feistel结构并利用若干个密钥k对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2进行加密的步骤之前还包括:
对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2分别进行散列,以得到第一散列值mh1和第二散列值mh2
对每一所述明文组对应的所述第一新明文m1和所述第二新明文m2分别进行填充,以得到第一填充值mp1和第二填充值mp2
将每一所述明文组对应的所述第一散列值mh1和所述第一填充值mp1进行组合,以得到每一所述明文组对应的第一组合值mhp1;以及
将每一所述明文组对应的所述第二散列值mh2和所述第二填充值mp2进行组合,以得到每一所述明文组对应的第二组合值mhp2
3.如权利要求2所述的双明文传输的数据对称加密方法,其特征在于,所述基于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。
4.如权利要求3所述的双明文传输的数据对称加密方法,其特征在于,还包括:
将所述预设终端接收的所有所述密文c按序排列;
基于所述Feistel结构并利用若干个所述密钥k对每一所述密文c进行解密,以得到与每一所述密文c对应的所述第一新明文m1和所述第二新明文m2
采用CBC模式对每一所述密文c对应的所述第一新明文m1和所述第二新明文m2进行逆处理,以得到所述第一原明文M1和所述第二原明文M2
对每一所述密文c对应的所述第一原明文M1和所述第二原明文M2进行组合,以得到每一所述密文c对应的所述明文组;以及
对所有所述密文c对应的所述明文组进行组合,以得到所述原始数据。
5.如权利要求4所述的双明文传输的数据对称加密方法,其特征在于,所述基于所述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对应的所述第二组合值mhp2分解为所述第二散列值mh2和所述第二填充值mp2;以及
对每一所述密文c对应的所述第一填充值mp1和所述第二填充值mp2分别进行逆填充,以得到每一所述密文c对应的所述第一新明文m1和所述第二新明文m2
6.如权利要求5所述的双明文传输的数据对称加密方法,其特征在于,所述基于所述Feistel结构并利用若干个所述密钥k对每一所述密文c进行解密的步骤还包括:
对每一所述密文c对应的所述第一新明文m1和所述第二新明文m2分别进行散列,以得到第三散列值mh1'和第四散列值mh2';
将每一所述密文c对应的所述第三散列值mh1'与所述第一散列值mh1进行对比以及所述第四散列值mh2'与所述第二散列值mh2进行对比,以验证每一所述密文c的解密成功性。
7.如权利要求5所述的双明文传输的数据对称加密方法,其特征在于,所述采用CBC模式对每一所述密文c对应的所述第一新明文m1和所述第二新明文m2进行逆处理的步骤包括:
将每一所述密文c对应的所述第一新明文m1与其前一所述密文进行异或运算,以得到每一所述密文c对应的所述第一原明文M1
将每一所述密文c对应的所述第二新明文m2与所述第一原明文M1进行异或运算,以得到每一所述密文c对应的所述第二原明文M2
8.如权利要求7所述的双明文传输的数据对称加密方法,其特征在于,
首个所述密文c对应的所述第一新明文m1与所述预设初始化向量进行异或运算,以得到首个所述密文c对应的所述第一原明文M1
首个所述密文c对应的所述第二新明文m2与所述第一原明文M1进行异或运算,以得到首个所述密文c对应的所述第二原明文M2
CN202110226088.9A 2021-03-01 2021-03-01 一种双明文传输的数据对称加密方法 Active CN112866288B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110226088.9A CN112866288B (zh) 2021-03-01 2021-03-01 一种双明文传输的数据对称加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110226088.9A CN112866288B (zh) 2021-03-01 2021-03-01 一种双明文传输的数据对称加密方法

Publications (2)

Publication Number Publication Date
CN112866288A CN112866288A (zh) 2021-05-28
CN112866288B true CN112866288B (zh) 2022-09-06

Family

ID=75990676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110226088.9A Active CN112866288B (zh) 2021-03-01 2021-03-01 一种双明文传输的数据对称加密方法

Country Status (1)

Country Link
CN (1) CN112866288B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115333868B (zh) * 2022-10-14 2022-12-23 安徽华云安科技有限公司 基于奇偶轮循的对称加密方法、解密方法、装置、设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801693A (zh) * 2005-06-28 2006-07-12 华为技术有限公司 分组加密算法中对短分组的处理方法
CN101753292A (zh) * 2008-12-15 2010-06-23 汤姆森许可贸易公司 用于链接式加密模式的方法和设备
CN102594566A (zh) * 2012-03-12 2012-07-18 浙江工业大学 一种面向无线传感器网络的混沌消息认证码实现方法
CN104618092A (zh) * 2015-01-05 2015-05-13 浪潮(北京)电子信息产业有限公司 一种信息加密方法及系统
CN105453482A (zh) * 2013-08-02 2016-03-30 日本电气株式会社 认证加密设备、认证加密方法以及用于认证加密的程序
CN108063760A (zh) * 2017-12-11 2018-05-22 苏州科达科技股份有限公司 一种分组加密的方法及其系统、分组解密的方法
CN108429613A (zh) * 2018-03-09 2018-08-21 国网陕西省电力公司电力科学研究院 一种基于en-present算法的电网信息加密方法
CN108494554A (zh) * 2018-03-22 2018-09-04 武汉大学 一种基于双明文的数据对称加密方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004325677A (ja) * 2003-04-23 2004-11-18 Sony Corp 暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム
CN109525388B (zh) * 2017-09-19 2022-07-15 中兴通讯股份有限公司 一种密钥分离的组合加密方法及系统
CN109660555B (zh) * 2019-01-09 2020-07-14 上海交通大学 基于代理重加密的内容安全分享方法和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801693A (zh) * 2005-06-28 2006-07-12 华为技术有限公司 分组加密算法中对短分组的处理方法
CN101753292A (zh) * 2008-12-15 2010-06-23 汤姆森许可贸易公司 用于链接式加密模式的方法和设备
CN102594566A (zh) * 2012-03-12 2012-07-18 浙江工业大学 一种面向无线传感器网络的混沌消息认证码实现方法
CN105453482A (zh) * 2013-08-02 2016-03-30 日本电气株式会社 认证加密设备、认证加密方法以及用于认证加密的程序
CN104618092A (zh) * 2015-01-05 2015-05-13 浪潮(北京)电子信息产业有限公司 一种信息加密方法及系统
CN108063760A (zh) * 2017-12-11 2018-05-22 苏州科达科技股份有限公司 一种分组加密的方法及其系统、分组解密的方法
CN108429613A (zh) * 2018-03-09 2018-08-21 国网陕西省电力公司电力科学研究院 一种基于en-present算法的电网信息加密方法
CN108494554A (zh) * 2018-03-22 2018-09-04 武汉大学 一种基于双明文的数据对称加密方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Double Chaining Algorithm: A secure symmetric-key encryption algorithm;Daniar Heri Kurniawan等;《IEEE》;20170102;全文 *
一种基于双明文的数据对称加密算法;向永谦等;《信息网络安全》;20180710(第07期);全文 *
数据加密基本方法;王晓英;《赤峰学院学报(自然科学版)》;20100725(第07期);全文 *
面向网络应用层安全的分析与设计;谷铮;《电子技术与软件工程》;20161115(第22期);全文 *

Also Published As

Publication number Publication date
CN112866288A (zh) 2021-05-28

Similar Documents

Publication Publication Date Title
US10009171B2 (en) Construction and uses of variable-input-length tweakable ciphers
US7260215B2 (en) Method for encryption in an un-trusted environment
CN101753292B (zh) 用于链接式加密模式的方法和设备
CN108023724B (zh) 数据传输方法及装置
EP2829010B1 (en) Updating key information
JP4712017B2 (ja) ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
KR101516574B1 (ko) 형태보존 암호화를 위한 가변길이 블록암호 장치 및 방법
US8942371B2 (en) Method and system for a symmetric block cipher using a plurality of symmetric algorithms
CN101202623B (zh) 消息验证码产生方法、验证/加密和验证/解密方法
JP2010500630A (ja) メッセージ認証のための暗号化方法
EP2137856A1 (en) A simple and efficient one-pass authenticated encryyption scheme
JP2004325677A (ja) 暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム
CN113595717A (zh) Ecb模式分组加密方法和解密方法及控制装置和车辆
EP2904731B1 (en) Method and device for digital data blocks encryption and decryption
CN112866288B (zh) 一种双明文传输的数据对称加密方法
CN106789053A (zh) 随机密文生成方法及系统、解密方法及系统
US20170041133A1 (en) Encryption method, program, and system
KR100551992B1 (ko) 어플리케이션 데이터의 암호화 및 복호화 방법
JP2005114870A (ja) 暗号通信システム
CN103634113B (zh) 一种带用户/设备身份认证的加解密方法及装置
CN114070549A (zh) 一种密钥生成方法、装置、设备和存储介质
Charru et al. Improved Cryptography Algorithm to Enhanced Data Security
CN117725605B (zh) 一种远端自动编制电子档案文件信息保密的方法和系统
US11502818B2 (en) System to secure encoding and mapping on elliptic curve cryptography (ECC)
Soni et al. Comparative Analysis of Cryptographic Algorithms in Computer Network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230315

Address after: Building 17, No. 1500, Zuchongzhi Road, Pudong New Area Pilot Free Trade Zone, Shanghai, 201210

Patentee after: SHANGHAI HIGH-FLYING ELECTRONICS TECHNOLOGY Co.,Ltd.

Address before: 201306 1550 Harbour Road, Lingang New Town, Pudong New Area, Shanghai

Patentee before: Shanghai Maritime University

TR01 Transfer of patent right