CN115277064B - 数据加密、数据解密方法、装置、电子设备和介质 - Google Patents

数据加密、数据解密方法、装置、电子设备和介质 Download PDF

Info

Publication number
CN115277064B
CN115277064B CN202210671045.6A CN202210671045A CN115277064B CN 115277064 B CN115277064 B CN 115277064B CN 202210671045 A CN202210671045 A CN 202210671045A CN 115277064 B CN115277064 B CN 115277064B
Authority
CN
China
Prior art keywords
data
encrypted
confusion
decrypted
packet data
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
CN202210671045.6A
Other languages
English (en)
Other versions
CN115277064A (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.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp Ltd
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 China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202210671045.6A priority Critical patent/CN115277064B/zh
Publication of CN115277064A publication Critical patent/CN115277064A/zh
Application granted granted Critical
Publication of CN115277064B publication Critical patent/CN115277064B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0442Network 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 asymmetric encryption, i.e. different keys 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
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种数据加密、数据解密方法、装置、电子设备和介质,涉及数据安全技术领域。该方法包括:对待加密数据进行分组,得到多组待加密分组数据;对于每个待加密分组数据,确定待加密分组数据对应的第一目标向量;利用第一目标向量对待加密分组数据进行异或混淆,得到待加密分组数据对应的第一混淆数据;利用加密密钥对第一混淆数据进行加密,得到第一中间数据;利用第一目标向量对第一中间数据进行异或混淆,得到待加密分组数据对应的第二混淆数据;对多组待加密分组数据对应的第二混淆数据进行拼接,得到待加密数据对应的加密数据。该方法解决了字节反转漏洞,提高了加密数据的安全性,极大增加了数据破解的难度。

Description

数据加密、数据解密方法、装置、电子设备和介质
技术领域
本发明涉及数据安全技术领域,尤其涉及一种数据加密、数据解密方法、装置、电子设备和介质。
背景技术
数据的加密安全是保证互联网信息传输数据安全的一种可靠的办法,数据通过加密算法和加密密钥、向量将明文转化为密文,从而起到保护数据安全的作用。
AES(Advanced Encryption Standard,高级加密标准)是对称加密算法的最经典算法之一。它是一种分组加密标准,分组的长度只能是128位,密钥的长度可以使用128位、192位或256位。AES算法主要包括ECB(Electronic Code Book,电子密码本)、CBC(CipherBlock Chaining,密码分组链接)、CFB(Cipher FeedBack Mode,密文反馈)和OFB(CipherFeedBack Mode,输出反馈)四种模式,其中,CBC模式应用最为广泛。
现有的CBC模式在向量可控的情况下,存在字节反转的漏洞,攻击者可以通过改变前组加密的密文控制后组解密明文。
发明内容
为解决上述技术问题或至少部分地解决上述技术问题,本发明实施例提供一种数据加密、数据解密方法、装置、电子设备和介质。
第一方面,本发明实施例提供了一种数据加密方法,包括:对待加密数据进行分组,得到多组待加密分组数据;确定加密密钥;对于每组所述待加密分组数据,确定所述待加密分组数据对应的第一目标向量;利用所述第一目标向量对所述待加密分组数据进行异或混淆,得到所述待加密分组数据对应的第一混淆数据;利用加密密钥对所述第一混淆数据进行加密,得到第一中间数据;利用所述第一目标向量对所述第一中间数据进行异或混淆,得到所述待加密分组数据对应的第二混淆数据;对所述多组待加密分组数据对应的所述第二混淆数据进行拼接,得到所述待加密数据对应的加密数据。
可选地,所述方法还包括:确定初始化向量;确定所述待加密分组数据对应的第一目标向量包括:确定所述多组待加密分组数据中的第一组待加密分组数据对应的第一目标向量为所述初始化向量;确定第i组待加密分组数据对应的第一目标向量为第(i-1)组待加密分组数据对应的第二混淆数据,其中,i为大于或等于2的整数。
可选地,对待加密数据进行分组,包括:对所述待加密数据按照字节数为N进行分组,N正整数;
所述方法还包括:确定所述多组待加密分组数据中的最后一组待加密分组数据的字节数K是否等于N;在K小于N的情况下,对所述最后一组待加密分组数据进行填充,使所述最后一组待加密分组数据的字节数等于N;在K等于N的情况下,生成字节数等于N的填充数据,将所述填充数据作为所述待加密数据的待加密分组数据。
可选地,对所述最后一组待加密分组数据进行填充包括:对所述最后一组待加密分组数据填充M个M,其中,M=N-K。
可选地,生成字节数等于N的填充数据包括:生成字节数等于N,并且每一字节的值均为0或N的填充数据。
可选地,利用加密密钥对所述第一混淆数据进行加密,得到第一中间数据,包括:利用所述加密密钥对所述第一混淆数据进行字节替换操作、行移位操作、列混淆操作和轮密钥加操作,得到所述第一中间数据。
第二方面,本发明实施例提供了一种数据解密方法,包括:对待解密数据进行分组,得到多组待解密分组数据;确定解密密钥;对于每组所述待解密分组数据,确定所述待解密分组数据对应的第二目标向量;利用所述第二目标向量对所述待解密分组数据进行异或混淆,得到所述待解密分组数据对应的第三混淆数据;利用解密密钥对所述第三混淆数据进行解密,得到第二中间数据;利用所述第二目标向量对所述第二中间数据进行异或混淆,得到所述待解密分组数据对应的第四混淆数据;对所述多组待解密分组数据对应的所述第四混淆数据进行拼接,得到所述待解密数据对应的解密数据。
可选地,所述方法还包括:确定初始化向量;确定所述多组待解密分组数据中的第一组待解密分组数据对应的第二目标向量为所述初始化向量;确定所述多组待解密分组数据中的第i组待解密分组数据对应的第二目标向量为第(i-1)组待解密分组数据,其中,i为大于或等于2的整数。
可选地,对待解密数据进行分组,包括:对所述待解密数据按照字节数为N进行分组,N正整数;
对所述多组待解密分组数据对应的所述第四混淆数据进行拼接,包括:将所述多组待解密分组数据中最后一组待解密分组数据对应的第四混淆数据作为目标混淆数据,确定所述目标混淆数据的后M个字节的值是否均为M;若是,则在拼接所述多组待解密分组数据对应的所述第四混淆数据时删除所述目标混淆数据的后M个字节。
可选地,在确定所述目标混淆数据的后M个字节的值不是均为M的情况下,所述方法还包括:确定所述目标混淆数据的每一字节的值是否为0或N;若是,则确定所述目标混淆数据为填充数据,在拼接所述多组待解密分组数据对应的所述第四混淆数据时删除所述目标混淆数据。
可选地,利用解密密钥对所述第三混淆数据进行解密,得到第二中间数据;利用所述解密密钥对所述第三混淆数据进行轮密钥加操作、列混淆操作、行移位操作和字节替换操作,得到所述第二中间数据。
第三方面,本发明实施例提供了一种数据加密装置,包括:第一分组模块,用于对待加密数据进行分组,得到多组待加密分组数据;第一确定模块,用于对于每组所述待加密分组数据,确定所述待加密分组数据对应的第一目标向量;第一混淆模块,用于利用所述第一目标向量对所述待加密分组数据进行异或混淆,得到所述待加密分组数据对应的第一混淆数据;加密模块,用于利用加密密钥对所述第一混淆数据进行加密,得到第一中间数据;第二混淆模块,用于利用所述第一目标向量对所述第一中间数据进行异或混淆,得到所述待加密分组数据对应的第二混淆数据;第一拼接模块,用于对所述多组待加密分组数据对应的所述第二混淆数据进行拼接,得到所述待加密数据对应的加密数据。
可选地,第一确定模块还用于确定初始化向量;确定所述多组待加密分组数据中的第一组待加密分组数据对应的第一目标向量为所述初始化向量,以及确定第i组待加密分组数据对应的第一目标向量为第(i-1)组待加密分组数据对应的第二混淆数据,其中,i为大于或等于2的整数。
可选地,第一分组模块还用于:对所述待加密数据按照字节数为N进行分组,N正整数;
所述数据加密装置还包括填充模块,用于确定所述多组待加密分组数据中的最后一组待加密分组数据的字节数K是否等于N;在K小于N的情况下,对所述最后一组待加密分组数据进行填充,使所述最后一组待加密分组数据的字节数等于N;在K等于N的情况下,生成字节数等于N的填充数据,将所述填充数据作为所述待加密数据的待加密分组数据。
可选地,填充模块还用于对所述最后一组待加密分组数据填充M个M,其中,M=N-K。
可选地,填充模块还用于生成字节数等于N,并且每一字节的值均为0或N的填充数据。
可选地,加密模块还用于:利用所述加密密钥对所述第一混淆数据进行字节替换操作、行移位操作、列混淆操作和轮密钥加操作,得到所述第一中间数据。
第四方面,本发明实施例提供了一种数据解密装置,包括:第二分组模块,用于对待解密数据进行分组,得到多组待解密分组数据;第二确定模块,用于对于每组所述待解密分组数据,确定所述待解密分组数据对应的第二目标向量;第三混淆模块,用于利用所述第二目标向量对所述待解密分组数据进行异或混淆,得到所述待解密分组数据对应的第三混淆数据;解密模块,用于利用解密密钥对所述第三混淆数据进行解密,得到第二中间数据;第四混淆模块,用于利用所述第二目标向量对所述第二中间数据进行异或混淆,得到所述待解密分组数据对应的第四混淆数据;第二拼接模块,用于对所述多组待解密分组数据对应的所述第四混淆数据进行拼接,得到所述待解密数据对应的解密数据。
可选地,第二确定模块还用于确定初始化向量;确定所述多个待解密分组数据中的第一个待解密分组数据对应的第二目标向量为所述初始化向量,以及确定所述多个待解密分组数据中的第i个待解密分组数据对应的第二目标向量为第(i-1)个待解密分组数据,其中,i为大于或等于2的整数。
可选地,第二分组模块还用于:对所述待解密数据按照N个字节进行分组,N正整数;
所述第二拼接模块还用于:将所述多个待解密分组数据中最后一个待解密分组数据对应的第四混淆数据作为目标混淆数据,确定所述目标混淆数据的后M个字节的值是否均为M;若是,则在拼接所述多个待解密分组数据对应的所述第四混淆数据时删除所述目标混淆数据的后M个字节。
可选地,所述第二拼接模块还用于:确定所述目标混淆数据的每一字节的值是否为0或N;若是,则确定所述目标混淆数据为填充数据,在拼接所述多个待解密分组数据对应的所述第四混淆数据时删除所述目标混淆数据。
可选地,解密模块还用于;利用所述解密密钥对所述第三混淆数据进行轮密钥加操作、列混淆操作、行移位操作和字节替换操作,得到所述第二中间数据。
第五方面,本发明实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的数据加密方法或数据解密方法。
第六方面,本发明实施例提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的数据加密方法或数据解密方法。
上述发明中的一个实施例具有如下优点或有益效果:
本发明实施例的数据加密方法,对每一待加密分组数据,分别在该待加密分组数据加密之前和加密之后,利用前一个待加密分组数据对应的密文数据进行一次异或混淆,从而得到该待加密分组数据对应的密文数据,拼接多组待加密分组数据的密文数据得到待加密数据对应的加密数据,即本发明实施例对待加密数据进行了二次混淆,从而提高了加密数据的安全性,极大增加了数据破解的难度。
本发明实施例的数据解密方法,对每一待解密分组数据,分别在该待解密分组数据解密之前和之后,利用前一个待解密分组数据进行一次异或混淆,由于前一个待解密分组数据参与了下一个待解密分组数据的解密,若前一个待解密分组数据被修改,则会导致明文混乱,解决了前一个待解密分组数据控制下一个待解密分组数据的风险,解决了字节反转攻击的风险。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1示出了相关技术中CBC加密方法的示意图;
图2示出了相关技术中CBC加密方法字节反转攻击的示意图;
图3示出了本发明实施例的数据加密方法的流程图;
图4示出了本发明实施例的数据加密方法的示意图;
图5示出了本发明实施例的数据解密方法的流程图;
图6示出了本发明实施例的数据解密方法的示意图;
图7示出了本发明实施例的数据加密装置的示意图;
图8示出了本发明实施例的数据解密装置的示意图;
图9示出了本发明实施例的电子设备的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为方便理解本发明的数据加密方法,下面先对传统的AES-CBC加密算法的过程以及存在的技术问题进行描述。
参考图1,传统的AES-CBC加密算法包括如下步骤:
(1)将明文按16个字节分组,位数不足的使用特殊字符进行填充,得到多组明文;
(2)生成随机的16位初始化向量IV和密钥;
(3)将IV和第一组明文异或;
(4)利用密钥对第(3)步中异或后的第一组明文进行加密,得到第一组明文对应的密文;
(5)利用第(4)步产生的密文对第二组明文进行异或混淆;
(6)利用密钥对第(5)步中异或后的第二组明文进行加密,得到第二组明文对应的密文;
(7)重复第(4)-(6)步,直到最后一组明文;
(8)将加密后的密文拼接在一起,得到最终的密文。
根据上述步骤,可知AES-CBC加密算法的公式如下式(1)所示:
其中,Pi表示第i组明文,Ci表示第i组明文对应的密文。
参考图2,AES-CBC加密算法的字节反转攻击场景:已知明文、初始化向量和对应密文,通过修改密文和初始化向量达到篡改明文的目的,具体包括如下过程:
(1)将密文按照16个字节分组,密钥未知;
(2)将第一组密文进行字节反转;
(3)将字节反转后的第一组密文进行解密,得到的结果与初始化向量IV进行异或处理,由于解密之前对第一组密文进行了字节反转,所以得到了第一组错误的明文;
(4)对第二组密文进行解密,得到的结果与字节反转后的第一组密文进行异或处理,得到攻击者想要伪造的第二组明文;
(5)构造新的初始化向量=第一组明文⊕第一组错误的明文⊕已知的初始化向量;
(6)将第一组密文再次进行解密,得到的结果与新向量进行异或处理,得到攻击者想要的第一组明文;
(7)通过字节反转后的密文、新向量,攻击者就可以篡改解密后的明文,达到越权的目的。
其中,以第0个字节为例,字节反转公式如下所示:
构造前一组密文Ci-1[0]为就会得到Pi[0]为Pnew
验证如下:
字节反转公式(修改向量):
字节反转后的密文:C′
错误的明文:P′
新向量:IVnew
新向量推导公式:
由上述内容可知,传统的AES-CBC加密算法在初始化向量可控的情况下,存在字节反转的漏洞。攻击者可以通过改变前组加密的密文控制后组解密明文。
有鉴于此,本发明实施例的数据加密方法和解密方法,对于每一待加密分组数据,分别在该待加密分组数据加密之前和加密之后,利用前一个待加密分组数据进行一次异或混淆,得到了该待加密分组数据对应的密文数据;在对待解密分组数据进行解密时,需要在该待解密分组数据解密之前和之后分别利用前一个待解密分组数据进行异或混淆,由于前一个待解密分组数据参与了下一个待解密分组数据的解密,若前一个待解密分组数据被修改,则会导致明文混乱,解决了前一个待解密分组数据控制下一个待解密分组数据的风险,解决了字节反转攻击的风险,提高了加密数据的安全性,极大增加了数据破解的难度。
图3示意性示出了本发明实施例的数据加密方法的流程图。如图3所示,该数据加密方法包括:
步骤301:对待加密数据进行分组,得到多组待加密分组数据。
在本步骤中,可以按照固定字节的模式对待加密数据分组,例如,对待加密数据按照字节数为N进行分组,其中,N为正整数。作为示例,N=8,或者N=16。
在对待加密数据按照字节数为N进行分组时,存在待加密数据的字节数不是N的整数倍的情况,即最后一组待加密分组数据的字节数K小于N。因此,该方法还可以包括:在最后一组待加密分组数据的字节数K小于N的情况下,对所述最后一组待加密分组数据进行填充,使所述最后一组待加密分组数据的字节数等于N。为了在数据解密时能够准确分割出填充的数据,在对最后一组待加密数据进行填充时,可以填充M个M,其中,M=N-K。例如,N=16,K=10,则M=5,对最后一组待加密数据填充5个5。
在待加密数据的字节数为N的整数倍的情况下,即最后一组待加密分组数据的字节数K=N的情况下,若最后一组待加密分组数据的最后两个字节均为2,那么在解密之后不确定最后两个字节是填充数据还是待加密数据本身的数据。为避免发生错误,本发明实施例还可以在最后一组待加密分组数据的字节数K=N的情况下,生成节数等于N的填充数据,并将该填充数据作为最后一组待加密分组数据,其中,填充数据的每一字节为0或者N。
步骤302:对于每组所述待加密分组数据,确定所述待加密分组数据对应的第一目标向量。
其中,第一目标向量用于与待加密分组数据进行异或混淆。对于多组待加密分组数据中的第i组待加密分组数据,其对应的第一目标向量为第(i-1)组待加密分组数据对应的第二混淆数据,其中,i为大于或等于2的整数。对于第一组待加密分组数据,可以生成一个随机的初始化向量,将该初始化向量作为第一组待加密分组数据的第一目标向量。其中,初始化向量的字节数与待加密分组数据的字节数相同。
步骤303:利用所述第一目标向量对所述待加密分组数据进行异或混淆,得到所述待加密分组数据对应的第一混淆数据。
步骤304:利用加密密钥对所述第一混淆数据进行加密,得到第一中间数据。
步骤305:利用所述第一目标向量对所述第一中间数据进行异或混淆,得到所述待加密分组数据对应的第二混淆数据,该第二混淆数据即为所述分组数据对应的密文数据。
对于步骤303-305,参考图4,以Pi表示第i组待加密分组数据,Di表示第i组待加密分组数据对应的第一目标向量,IV表示初始化向量,以Si表示第i组待加密分组数据对应的第一混淆数据,以E()表示加密,以Zi表示第i组待加密分组数据对应的第一中间数据,以Ci表示第i组待加密分组数据对应的第二混淆数据,则:
Di=Ci-1
D1=C0=IV
对上式进行简化后可得:
对比式(2)与式(1),可知本发明相对于相关技术的数据加密方法,去除了前组密文数据与后组待加密分组数据的对应关系,提升了加密数据的安全性。
步骤306:对所述多组待加密分组数据对应的所述第二混淆数据进行拼接,得到所述待加密数据对应的加密数据。
在本实施例中,待加密分组数据对应的第二混淆数据即为该待加密分组数据对应的密文数据,将待加密分组数据的密文数据进行拼接,得到待加密数据对应的加密数据。
对于步骤304,可以生成一个随机数加密密钥,也可以利用其他密钥生成算法生成加密密钥,本发明在此不做限制。加密密钥的字节数可以与待加密分组数据的字节数相同,也可以不同。
在可选的实施例中,可以利用对称加密算法例如AES算法对第一混淆数据进行加密。即利用加密密钥对第一混淆数据进行字节替换操作、行移位操作、列混淆操作和轮密钥加操作,得到第一中间数据。在利用AES算法对第一混淆数据进行加密的情况下,本发明实施例的数据加密方法可以使用原有的AES加密参数,开发人员只需更新工具包即可完成加密算法的升级,方便高效,简化了开发人员的流程,提升了效率。
在其他可选的实施例中,也可以利用其他对称加密算法例如DES(Data EncrytionStandard)算法,也可以利用非对称加密算法对第一混淆数据进行加密,本发明在此不做限制。在利用非对称加密算法对第一混淆数据进行加密的情况下,加密密钥为公钥,解密密钥为私钥。
本发明实施例的数据加密方法,对每一待加密分组数据,分别在该待加密分组数据加密之前和加密之后,利用前一个待加密分组数据对应的密文数据进行一次异或混淆,从而得到该待加密分组数据对应的密文数据,拼接多组待加密分组数据的密文数据得到待加密数据对应的加密数据,实现了对待加密数据进行了二次混淆,去除了各个待加密分组数据之间加密的关联性,即前一组的密文数据和后一组的待加密数据不再按字节一一对应,从而提升了加密数据的安全性。
图5示意性示出了本发明实施例的数据解密方法的流程图,如图5所示,该方法包括:
步骤501:对待解密数据进行分组,得到多个待解密分组数据。
在本步骤中,对待解密数据的分组方式与对待加密数据的分组方式相同,即对待解密数据按照字节数为N进行分组。
步骤502:对于每组所述待解密分组数据,确定所述待解密分组数据对应的第二目标向量。
其中,第二目标向量用于与待解密分组数据进行异或混淆。对于第i组待解密分组数据,其对应的第二目标向量为第(i-1)组待解密分组数据,其中,i为大于或等于2的整数。对于第一组待解密分组数据,其对应的第二目标向量为初始化向量。
步骤503:利用所述第二目标向量对所述待解密分组数据进行异或混淆,得到所述待解密分组数据对应的第三混淆数据。
步骤504:利用解密密钥对所述第三混淆数据进行解密,得到第二中间数据。若在对待加密数据进行加密时利用的是对称加密算法,则该解密密钥与加密密钥相同。若在对待加密数据进行加密时利用的是非对称加密算法,则该解密密钥为加密密钥(公钥)对应的私钥。
步骤505:利用所述第二目标向量对所述第二中间数据进行异或混淆,得到所述待解密分组数据对应的第四混淆数据,其中,第四混淆数据为该待解密分组数据对应的明文数据。
对于步骤503-505,参考图6,以Ci表示第i组待解密分组数据,Pi表示第i组待解密分组数据对应的第四混淆数据,D()表示解密,则:
步骤506:对所述多个待解密分组数据对应的所述第四混淆数据进行拼接,得到所述待解密数据对应的解密数据。
在本实施例中,待解密分组数据对应的第四混淆数据即为该待解密分组数据对应的明文数据,将待解密分组数据的明文数据进行拼接,得到待解密数据对应的解密数据。
本发明实施例的数据解密方法中,待解密分组数据在解密前会采用前一组的待解密分组数据进行异或混淆,再进行解密,然后再次采用前一组的待解密分组数据进行异或混淆,若是前一组的待解密分组数据被修改,由于前一组的待解密分组数据参与了解密,则会导致后一组的明文数据混乱,解决了前一组的待解密分组数据控制后一组明文数据的风险。
在本发明实施例中各待解密分组数据的长度一致,解密密钥固定,没有增加算法复杂度,支持并行解密,提升了算法的安全性,而且内存需求地,节省了资源。
由于在对待加密数据进行分组时进行了填充,则在得到待解密数据对应的解密数据之后,还需确定解密数据中填充的数据。因此,在步骤506中,对多个待解密分组数据对应的第四混淆数据进行拼接时,还包括:
将多个待解密分组数据中最后一个待解密分组数据对应的第四混淆数据作为目标混淆数据,确定目标混淆数据的后M个字节的值是否均为M;
若是,在拼接多个待解密分组数据对应的第四混淆数据时删除目标混淆数据的后M个字节。
若否,确定目标混淆数据的每一字节的值是否为0或N;
若是,则确定目标混淆数据为填充数据,在拼接多个待解密分组数据对应的第四混淆数据时删除目标混淆数据。
例如,目标混淆数据的后5个字节的值均为5,则说明该5个字节是填充的数据,需要删除。若目标混淆数据的所有字节的值都为0或N,则说明该目标混淆数据是生成的填充数据,在拼接待解密分组数据对应的第四混淆数据时应删除该目标混淆数据。
对于步骤504,若在数据加密时利用的是AES加密算法,即利用加密密钥对待加密分组数据进行字节替换操作、行移位操作、列混淆操作和轮密钥加操,则在数据解密时需要利用解密密钥对第三混淆数据进行轮密钥加操作、列混淆操作、行移位操作和字节替换操作,得到第二中间数据。
本发明实施例的数据加、解密算法,通过不依赖于某种具体的保密规则或逻辑,适用范围广泛,可以应用于任何具有数据加密需求的场景。例如可以应用于通讯、无线网络、单点登录等场景。
下面以线上办卡的场景为例说明本发明实施例的数据加密算法和数据解密算法。
在线上办卡场景中,用户线上办理号卡后,由快递员将号卡实体送到用户手中,并由快递员面对面协助用户激活号卡,推荐用户进行首充,用户扫码即完成了从物流商系统到电信运营商系统的操作,用户的信息进行加密传输,保障了系统安全的同时,提升了用户的体验。由物流商、电信系统双方商定共同的密钥和初始化向量IV。在激活号卡进行首充时,需要将用户的信息发送到电信运营商系统,物流商作为发送者,首先根据本实施例的数据加密方法对用户的信息进行加密,以参数的形式拼装到电信运营商系统的接收地址,然后将拼装地址转为单点二维码,供用户扫码参与。电信运营商系统作为接收者,接收用户的扫码请求,根据本发明实施例的数据解密方法解密参数,获得用户的信息,从而完成后续的业务逻辑。
图7示意性示出了本发明实施例的数据加密装置700的结构示意图,如图7所示,该数据加密装置700包括:
第一分组模块701,用于对待加密数据进行分组,得到多组待加密分组数据;
第一确定模块702,对于每组所述待加密分组数据,确定所述待加密分组数据对应的第一目标向量;
第一混淆模块703,用于利用所述第一目标向量对所述待加密分组数据进行异或混淆,得到所述待加密分组数据对应的第一混淆数据;
加密模块704,用于利用加密密钥对所述第一混淆数据进行加密,得到第一中间数据;
第二混淆模块705,用于利用所述第一目标向量对所述第一中间数据进行异或混淆,得到所述待加密分组数据对应的第二混淆数据;
第一拼接模块706,用于对所述多组待加密分组数据对应的所述第二混淆数据进行拼接,得到所述待加密数据对应的加密数据。
可选地,第一确定模块702还用于确定初始化向量;确定所述多组待加密分组数据中的第一组待加密分组数据对应的第一目标向量为所述初始化向量,以及确定所述多组待加密分组数据中的第i组待加密分组数据对应的第一目标向量为第(i-1)组待加密分组数据对应的第二混淆数据,其中,i为大于或等于2的整数。
可选地,第一分组模块701还用于:对所述待加密数据按照字节数为N进行分组,N正整数;
所述数据加密装置700还包括填充模块,用于确定所述多组待加密分组数据中的最后一组待加密分组数据的字节数K是否等于N;在K小于N的情况下,对所述最后一组待加密分组数据进行填充,使所述最后一组待加密分组数据的字节数等于N;在K等于N的情况下,生成字节数等于N的填充数据,将所述填充数据作为所述待加密数据的待加密分组数据。
可选地,填充模块还用于:对所述最后一组待加密分组数据填充M个M,其中,M=N-K。
可选地,填充数据的每一字节的值均为0或N。
可选地,加密模块704还用于:利用所述加密密钥对所述第一混淆数据进行字节替换操作、行移位操作、列混淆操作和轮密钥加操作,得到所述第一中间数据。
上述装置可执行本发明实施例所提供的数据加密方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的数据加密方法。
图8示意性示出了本发明实施例的数据解密装置800的结构示意图,如图8所示,该数据解密装置800包括:
第二分组模块801,用于对待解密数据进行分组,得到多个待解密分组数据;
第二确定模块802,用于对于每组所述待解密分组数据,确定所述待解密分组数据对应的第二目标向量;
第三混淆模块803,用于利用所述第二目标向量对所述待解密分组数据进行异或混淆,得到所述待解密分组数据对应的第三混淆数据;
解密模块804,用于利用解密密钥对所述第三混淆数据进行解密,得到第二中间数据;
第四混淆模块805,用于利用所述第二目标向量对所述第二中间数据进行异或混淆,得到所述待解密分组数据对应的第四混淆数据;
第二拼接模块806,用于对所述多个待解密分组数据对应的所述第四混淆数据进行拼接,得到所述待解密数据对应的解密数据。
可选地,第二确定模块802还用于确定初始化向量;确定所述多个待解密分组数据中的第一个待解密分组数据对应的第二目标向量为所述初始化向量,以及确定所述多个待解密分组数据中的第i个待解密分组数据对应的第二目标向量为第(i-1)个待解密分组数据,其中,i为大于或等于2的整数。
可选地,第二分组模块801还用于:对所述待解密数据按照N个字节进行分组,N正整数;
所述第二拼接模块806还用于:将所述多个待解密分组数据中最后一个待解密分组数据对应的第四混淆数据作为目标混淆数据,确定所述目标混淆数据的后M个字节的值是否均为M,K为小于N的正整数;若是,则在拼接所述多个待解密分组数据对应的所述第四混淆数据时删除所述目标混淆数据的后M个字节。
可选地,所述第二拼接模块806还用于:确定所述目标混淆数据的每一字节的值是否为0或N;若是,则确定所述目标混淆数据为填充数据,在拼接所述多个待解密分组数据对应的所述第四混淆数据时删除所述目标混淆数据。
可选地,解密模块还用于;利用所述解密密钥对所述第三混淆数据进行轮密钥加操作、列混淆操作、行移位操作和字节替换操作,得到所述第二中间数据。
上述装置可执行本发明实施例所提供的数据解密方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的数据解密方法。
图9示意性示出了本发明实施例的电子设备的结构图。如图9所示,该电子设备包括:处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,实现本发明实施例的数据加密方法或数据解密方法。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据加密方法或数据解密方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据加密方法或数据解密方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括发送模块、获取模块、确定模块和第一处理模块。其中,这些模块的名称在某种情况下并不构成对该单元本身的限定,例如,发送模块还可以被描述为“向所连接的服务端发送图片获取请求的模块”。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (15)

1.一种数据加密方法,其特征在于,包括:
对待加密数据进行分组,得到多组待加密分组数据;
对于每组所述待加密分组数据,确定所述待加密分组数据对应的第一目标向量;
利用所述第一目标向量对所述待加密分组数据进行异或混淆,得到所述待加密分组数据对应的第一混淆数据;
利用加密密钥对所述第一混淆数据进行加密,得到第一中间数据;
利用所述第一目标向量对所述第一中间数据进行异或混淆,得到所述待加密分组数据对应的第二混淆数据;
对所述多组待加密分组数据对应的所述第二混淆数据进行拼接,得到所述待加密数据对应的加密数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:确定初始化向量;
确定所述待加密分组数据对应的第一目标向量,包括:
确定所述多组待加密分组数据中的第一组待加密分组数据对应的第一目标向量为所述初始化向量;
确定第i组待加密分组数据对应的第一目标向量为第(i-1)组待加密分组数据对应的第二混淆数据,其中,i为大于或等于2的整数。
3.根据权利要求1或2所述的方法,其特征在于,对待加密数据进行分组,包括:对所述待加密数据按照字节数为N进行分组,N为正整数;
所述方法还包括:
确定所述多组待加密分组数据中的最后一组待加密分组数据的字节数K是否等于N;
在K小于N的情况下,对所述最后一组待加密分组数据进行填充,使所述最后一组待加密分组数据的字节数等于N;
在K等于N的情况下,生成字节数等于N的填充数据,将所述填充数据作为所述待加密数据的待加密分组数据。
4.根据权利要求3所述的方法,其特征在于,对所述最后一组待加密分组数据进行填充,包括:
对所述最后一组待加密分组数据填充M个M,其中,M=N-K。
5.根据权利要求3所述的方法,其特征在于,生成字节数等于N的填充数据包括:生成字节数等于N,并且每一字节的值均为0或N的填充数据。
6.根据权利要求1所述的方法,其特征在于,利用加密密钥对所述第一混淆数据进行加密,得到第一中间数据,包括:
利用所述加密密钥对所述第一混淆数据进行字节替换操作、行移位操作、列混淆操作和轮密钥加操作,得到所述第一中间数据。
7.一种数据解密方法,其特征在于,包括:
对待解密数据进行分组,得到多组待解密分组数据;
对于每组所述待解密分组数据,确定所述待解密分组数据对应的第二目标向量;
利用所述第二目标向量对所述待解密分组数据进行异或混淆,得到所述待解密分组数据对应的第三混淆数据;
利用解密密钥对所述第三混淆数据进行解密,得到第二中间数据;
利用所述第二目标向量对所述第二中间数据进行异或混淆,得到所述待解密分组数据对应的第四混淆数据;
对所述多组待解密分组数据对应的所述第四混淆数据进行拼接,得到所述待解密数据对应的解密数据。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:确定初始化向量;
确定所述待解密分组数据对应的第二目标向量包括:确定所述多组待解密分组数据中的第一组待解密分组数据对应的第二目标向量为所述初始化向量;
确定第i组待解密分组数据对应的第二目标向量为第(i-1)组待解密分组数据,其中,i为大于或等于2的整数。
9.根据权利要求7或8所述的方法,其特征在于,对待解密数据进行分组,包括:对所述待解密数据按照字节数为N进行分组,N为正整数;
对所述多组待解密分组数据对应的所述第四混淆数据进行拼接,包括:
将所述多组待解密分组数据中最后一组待解密分组数据对应的第四混淆数据作为目标混淆数据,确定所述目标混淆数据的后M个字节的值是否均为M;
若是,则在拼接所述多组待解密分组数据对应的所述第四混淆数据时删除所述目标混淆数据的后M个字节。
10.根据权利要求9所述的方法,其特征在于,在确定所述目标混淆数据的后M个字节的值不是均为M的情况下,所述方法还包括:
确定所述目标混淆数据的每一字节的值是否为0或N;
若是,则确定所述目标混淆数据为填充数据,在拼接所述多组待解密分组数据对应的所述第四混淆数据时删除所述目标混淆数据。
11.根据权利要求7所述的方法,其特征在于,利用解密密钥对所述第三混淆数据进行解密,得到第二中间数据,包括:
利用所述解密密钥对所述第三混淆数据进行轮密钥加操作、列混淆操作、行移位操作和字节替换操作,得到所述第二中间数据。
12.一种数据加密装置,其特征在于,包括:
第一分组模块,用于对待加密数据进行分组,得到多组待加密分组数据;
第一确定模块,用于对于每组所述待加密分组数据,确定所述待加密分组数据对应的第一目标向量;
第一混淆模块,用于利用所述第一目标向量对所述待加密分组数据进行异或混淆,得到所述待加密分组数据对应的第一混淆数据;
加密模块,用于利用加密密钥对所述第一混淆数据进行加密,得到第一中间数据;
第二混淆模块,用于利用所述第一目标向量对所述第一中间数据进行异或混淆,得到所述待加密分组数据对应的第二混淆数据;
第一拼接模块,用于对所述多组待加密分组数据对应的所述第二混淆数据进行拼接,得到所述待加密数据对应的加密数据。
13.一种数据解密装置,其特征在于,包括:
第二分组模块,用于对待解密数据进行分组,得到多组待解密分组数据;
第二确定模块,用于对于每组所述待解密分组数据,确定所述待解密分组数据对应的第二目标向量;
第三混淆模块,用于利用所述第二目标向量对所述待解密分组数据进行异或混淆,得到所述待解密分组数据对应的第三混淆数据;
解密模块,用于利用解密密钥对所述第三混淆数据进行解密,得到第二中间数据;
第四混淆模块,用于利用所述第二目标向量对所述第二中间数据进行异或混淆,得到所述待解密分组数据对应的第四混淆数据;
第二拼接模块,用于对所述多组待解密分组数据对应的所述第四混淆数据进行拼接,得到所述待解密数据对应的解密数据。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-6或7-11中任一所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6或7-11中任一所述的方法。
CN202210671045.6A 2022-06-14 2022-06-14 数据加密、数据解密方法、装置、电子设备和介质 Active CN115277064B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210671045.6A CN115277064B (zh) 2022-06-14 2022-06-14 数据加密、数据解密方法、装置、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210671045.6A CN115277064B (zh) 2022-06-14 2022-06-14 数据加密、数据解密方法、装置、电子设备和介质

Publications (2)

Publication Number Publication Date
CN115277064A CN115277064A (zh) 2022-11-01
CN115277064B true CN115277064B (zh) 2024-05-10

Family

ID=83760239

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210671045.6A Active CN115277064B (zh) 2022-06-14 2022-06-14 数据加密、数据解密方法、装置、电子设备和介质

Country Status (1)

Country Link
CN (1) CN115277064B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116633677B (zh) * 2023-07-06 2023-09-19 深圳迅策科技有限公司 一种批量交易数据的关联加密方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660542A (zh) * 2018-12-25 2019-04-19 百度在线网络技术(北京)有限公司 数据处理方法、装置及终端
CN112115461A (zh) * 2020-11-20 2020-12-22 腾讯科技(深圳)有限公司 设备认证方法、装置、计算机设备和存储介质
WO2022068742A1 (zh) * 2020-09-30 2022-04-07 深圳前海微众银行股份有限公司 漏洞检测方法、装置、电子设备及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11301153B2 (en) * 2020-06-12 2022-04-12 Western Digital Technologies, Inc. High-throughput out-of-order cipher text stealing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660542A (zh) * 2018-12-25 2019-04-19 百度在线网络技术(北京)有限公司 数据处理方法、装置及终端
WO2022068742A1 (zh) * 2020-09-30 2022-04-07 深圳前海微众银行股份有限公司 漏洞检测方法、装置、电子设备及计算机可读存储介质
CN112115461A (zh) * 2020-11-20 2020-12-22 腾讯科技(深圳)有限公司 设备认证方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN115277064A (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
CN108377189B (zh) 区块链上用户通信加密方法、装置、终端设备及存储介质
US8744078B2 (en) System and method for securing multiple data segments having different lengths using pattern keys having multiple different strengths
RU2636109C2 (ru) Использующее общий ключ сетевое устройство и его конфигурирование
WO2015013412A1 (en) Media client device authentication using hardware root of trust
CN112003696B (zh) Sm9密钥生成方法、系统、电子设备、装置及存储介质
WO2014136386A1 (ja) タグ生成装置、タグ生成方法およびタグ生成プログラム
CN108696518B (zh) 区块链上用户通信加密方法、装置、终端设备及存储介质
US7894608B2 (en) Secure approach to send data from one system to another
CN106789087B (zh) 确定消息的数据摘要、基于多方的数字签名的方法及系统
CN112784284B (zh) 加密处理系统、加密处理方法以及记录介质
KR20200040248A (ko) 매우 안전한, 데이터의 고속 암호화 및 전송을 위한 컴퓨터-구현 시스템 및 방법
CN114095170A (zh) 数据处理方法、装置、系统及计算机可读存储介质
CN114443718A (zh) 一种数据查询方法及系统
CN115277064B (zh) 数据加密、数据解密方法、装置、电子设备和介质
CN117640256A (zh) 一种无线网卡的数据加密方法、推荐装置和存储介质
CN106534077B (zh) 一种基于对称密码的可认证的代理重加密系统及方法
US11165758B2 (en) Keystream generation using media data
CN113518244B (zh) 基于替代文组合的数字电视信号数据发送方法和装置
JP2012050075A (ja) 暗号化通信システム及び暗号化通信方法
RU2697696C1 (ru) Способ передачи сообщения через вычислительную сеть с применением аппаратуры квантового распределения ключей
CN113645022A (zh) 一种确定隐私集合交集方法、装置、电子设备及存储介质
CN116866029B (zh) 随机数加密数据传输方法、装置、计算机设备及存储介质
CN113923029B (zh) 基于ecc混合算法的物联网信息加密方法
CN115879136B (zh) 云端数据保护方法
CN113381854B (zh) 数据传输方法、装置、设备和存储介质

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