CN114978699A - 一种数据加密和数据解密方法、装置、设备以及存储介质 - Google Patents

一种数据加密和数据解密方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN114978699A
CN114978699A CN202210569768.5A CN202210569768A CN114978699A CN 114978699 A CN114978699 A CN 114978699A CN 202210569768 A CN202210569768 A CN 202210569768A CN 114978699 A CN114978699 A CN 114978699A
Authority
CN
China
Prior art keywords
data
original
length
packet
original text
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.)
Pending
Application number
CN202210569768.5A
Other languages
English (en)
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 Shr Automation Co ltd
Original Assignee
Shanghai Shr Automation Co 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 Shanghai Shr Automation Co ltd filed Critical Shanghai Shr Automation Co ltd
Priority to CN202210569768.5A priority Critical patent/CN114978699A/zh
Publication of CN114978699A publication Critical patent/CN114978699A/zh
Pending legal-status Critical Current

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

Abstract

本发明公开一种数据加密和数据解密方法、装置、设备以及存储介质,属于数据安全技术领域。该方法包括:根据第一待加密数据和分组长度,确定原始填充长度;生成所述原始填充长度个填充数据,并将所述填充数据添加至所述第一待加密数据的首部,得到第二待加密数据;根据所述原始填充长度和所述第一待加密数据的长度,依次对所述第二待加密数据进行分组,得到首个原文分组和其他原文分组;采用对称密钥,根据所述原始填充长度,对所述首个原文分组进行加密,得到首个密文分组;采用对称密钥,基于首个密文分组,对所述其他原文分组进行加密。通过本发明提供的技术方案,在保证数据传输安全性的同时可提高数据传输的效率。

Description

一种数据加密和数据解密方法、装置、设备以及存储介质
技术领域
本发明实施例涉及计算机领域,尤其涉及一种数据加密和数据解密方法、装置、设备以及存储介质。
背景技术
在数据处理领域,为保证相同的数据加密后生成不同的密文,在常用加密模式中,要先对待加密数据进行分组,在加密待加密数据的首个分组时,常用加密模式都引入了初始化向量用于加密/解密首个分组。对应的,在应用协议中,需要约定初始化向量的生成方式,以保证加密方和解密方生成的初始化向量一致;或直接在数据中携带初始化向量给解密方,这种方式使得数据发送方和数据接收方在进行数据加密和解密时需要更多的参数。因此,亟需改进。
发明内容
本发明提供了一种数据加密和数据解密方法、装置、设备以及存储介质,以在保证数据传输安全性的同时提高数据传输的效率。
第一方面,本发明实施例提供了一种数据加密方法,该方法包括:
根据第一待加密数据的数据长度和分组长度,确定原始填充长度;
生成所述原始填充长度个填充数据,并将所述填充数据添加至所述第一待加密数据的首部,得到第二待加密数据;
依次对所述第二待加密数据进行分组,得到首个原文分组和其他原文分组;
根据所述原始填充长度和所述填充数据中的第一字节,确定更新填充长度;
将所述首个原文分组中的原始有效数据,与所述填充数据中除第一字节之外的其他数据进行异或,得到更新有效数据;
采用所述更新有效数据,对所述首个原文分组进行更新;
将所述更新填充长度添加至更新后的首个原文分组的首部,得到第一原文分组;
采用分组对称加密算法,对所述第一原文分组进行加密,得到第一密文分组,并将所述第一密文分组,作为首个密文分组;
采用分组对称加密算法,基于首个密文分组,对所述其他原文分组进行加密。
第二方面,本发明实施例提供了一种数据解密方法,该方法包括:
采用对称解密算法,对待解密数据中的首个密文分组进行解密,得到第一原文分组;
从所述第一原文分组的第一字节获取更新填充长度;
采用所述更新填充长度对所述第一原文分组的第二字节进行异或,得到原始填充长度;
根据所述更新填充长度和所述第一原文分组,确定首个原文分组;
根据所述原始填充长度,确定所述首个原文分组中的原始有效数据;
采用对称解密算法,根据所述首个原文分组,对所述待解密数据中的其他密文分组进行解密,得到其他原文分组;
确定所述其他原文分组中的原始有效数据。
第三方面,本发明实施例还提供了一种数据加密装置,包括:
原始填充长度确定模块,用于根据第一待加密数据的数据长度和分组长度,确定原始填充长度;
第二待加密数据获取模块,用于生成所述原始填充长度个填充数据,并将所述填充数据添加至所述第一待加密数据的首部,得到第二待加密数据;
原文分组获取模块,用于依次对所述第二待加密数据进行分组,得到首个原文分组和其他原文分组;
更新填充长度确定模块,用于根据所述原始填充长度和所述填充数据中的第一字节,确定更新填充长度;
更新有效数据获取模块,用于将所述首个原文分组中的原始有效数据,与所述填充数据中除第一字节之外的其他数据进行异或,得到更新有效数据;
更新模块,用于采用所述更新有效数据,对所述首个原文分组进行更新;
第一原文分组获取模块,用于将所述更新填充长度添加至更新后的首个原文分组的首部,得到第一原文分组;
首个密文分组确定模块,用于采用分组对称加密算法,对所述第一原文分组进行加密,得到第一密文分组,并将所述第一密文分组,作为首个密文分组;
加密模块,用于采用分组对称加密算法,基于首个密文分组,对所述其他原文分组进行加密。
第四方面,本发明实施例还提供了一种数据解密装置,包括:
解密模块,用于采用对称解密算法,对待解密数据中的首个密文分组进行解密,得到第一原文分组;
更新填充长度获取模块,用于从所述第一原文分组的第一字节获取更新填充长度;
原始填充长度获取模块,用于采用所述更新填充长度对所述第一原文分组的第二字节进行异或,得到原始填充长度;
首个原文分组获取模块,用于根据所述更新填充长度和所述第一原文分组,确定首个原文分组;
原始有效数据获取模块,用于根据所述原始填充长度,确定所述首个原文分组中的原始有效数据;
其他原文分组获取模块,用于采用对称解密算法,根据所述首个原文分组,对所述待解密数据中的其他密文分组进行解密,得到其他原文分组;
原始有效数据计算模块,用于确定所述其他原文分组中的原始有效数据。
第五方面,本发明实施例还提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的数据加密或数据解密方法。
第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的一种数据加密方法或数据解密方法。
本发明实施例提供的技术方案,通过根据第一待加密数据长度和分组长度确定原始填充长度,并将填充数据填充在第一待加密数据的首部,得到第二待加密数据;对得到的第二待加密数据进行分组,可得到首个原文分组和其他原文分组;之后采用分组对称加密算法,根据原始填充长度,对首个原文分组进行加密,得到首个密文分组,以及基于首个密文分组对其他原文分组进行加密。通过上述技术方案,解决了在对数据进行加密时,需要根据数据发送方和数据接收方之间的应用协议和约定的初始化向量的生成方式,在数据中添加初始化向量进行数据传输,导致应用协议过于复杂,数据发送方和数据接收方在进行数据加密和解密时效率低的问题,本方案具有简化数据发送方和数据接收方之间的应用协议,在保证数据传输安全性的同时提高数据传输效率的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本发明实施例一提供的一种数据加密方法的流程图;
图1B为本发明实施例一提供的一种数据加密方法的示例图;
图1C为本发明实施例一提供的一种数据加密方法的示例图;
图1D为本发明实施例一提供的一种数据加密方法的示例图;
图2为本发明实施例二提供的一种数据解密方法的流程图;
图3为本发明实施例三提供的一种数据加密装置的结构示意图;
图4为本发明实施例四提供的一种数据解密装置的结构示意图;
图5为本发明实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1A为本发明实施例一提供的一种数据加密方法的流程图,本实施例可适用于如何对数据进行加密的情况,尤其适用于采用分组对称加密算法对数据进行加密的情况。其中,对称加密是指加密和解密使用相同密钥的加密算法。在对称加密算法中,数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。数据接收方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。可选的,在一定情况下,数据发送方也可以作为数据接收方,数据接收方也可以作为数据发送方。
本实施例所提供的数据加密方法应用于数据发送方中,该方法可以由本发明实施例提供的数据加密装置来执行,该装置可以采用软件和/或硬件的方式来实现,并可以集成于承载数据加密功能的电子设备中。结合图1A,该方法具体包括:
S110、根据第一待加密数据的数据长度和分组长度,确定原始填充长度。
本实施例中,第一待加密数据为数据发送方想要向数据接收方传输的数据。分组长度是指对第一待加密数据进行分组后,每一个分组的数据长度。原始填充长度是指为满足第一待加密数据的分组需求,需要在第一待加密数据中加入的填充数据的数据长度,原始填充长度占一个字节。其中,填充数据为随机数。
具体的,当数据发送方需要采用分组对称加密算法对第一待加密数据进行数据加密时,由于分组对称加密算法要求待加密数据的总长度为待加密数据的分组长度的整数倍,因此需要先确定第一待加密数据的数据长度,并确定第一加待加密数据的分组长度,根据第一待加密数据的数据长度和第一待加密数据的分组长度,确定原始填充长度。其中,分组长度可以根据数据发送方和数据接收方的实际需求进行预设,需要注意的是,第一待加密数据的总长度需要为分组长度的整数倍。
优选的,在确定原始填充长度时,可以将第一待加密数据的数据长度与分组长度之间的模值,作为原始填充长度。
其中,模值是指对第一待加密数据的数据长度和分组长度相除得到的余数。
具体的,计算第一待加密数据的数据长度与分组长度之间的模值;根据分组长度计算半个分组长度。将模值与半个分组长度进行比较。若模值大于半个分组长度,则将模值作为原始填充长度;若模值小于或等于半个分组长度,则将模值与一个分组的分组长度相加,相加后的结果作为原始填充长度。
例如,数据长度采用data_len来表示,以及分组长度采用block_len来表示,原始填充长度padding_len的计算方法可以是:
padding_len=data_len%block_len
If(padding_len<=block_len/2)
Padding_len+=block_len
S120、生成原始填充长度个填充数据,并将填充数据添加至第一待加密数据的首部,得到第二待加密数据。
具体的,可以采用设定的随机数据生成逻辑,随机生成原始填充长度个随机数,作为填充数据;将原始填充长度个填充数据添加至第一待加密数据的首部,将首部添加了填充数据的第一待加密数据作为第二待加密数据。
S130、依次对第二待加密数据进行分组,得到首个原文分组和其他原文分组。
其中,依次对第二待加密数据进行分组是指按照第二待加密数据的数据排列顺序,对第二待加密数据进行分组。可选的,首个原文分组中包括部分或全部填充数据。其他原文分组是指第二待加密数据中,除去首个原文分组中包含的数据以外的其他数据的分组;可选的,其他原文分组的数量可以是一个或多个。
具体的,可以根据分组长度,依照第二待加密数据中的数据排列顺序,对第二待加密数据进行分组,得到首个原文分组和其他原文分组。其中,第二待加密数据的数据长度为分组长度的整数倍。
进一步的,将填充数据的原始填充长度和第一待加密数据的数据长度进行数据处理,数据处理结果即为第二待加密数据的数据长度,其中,数据处理是异或处理。采用第二待加密数据的数据长度除以分组长度,可得到分组的数量。
S140、根据原始填充长度和填充数据中的第一字节,确定更新填充长度。
具体的,将原始填充长度与填充数据中的第一字节进行数据处理,得到更新填充长度。
例如,可以将原始填充长度与填充数据中的第一字节进行异或处理,得到更新填充长度。
S150、将首个原文分组中的原始有效数据,与填充数据中除第一字节之外的其他数据进行异或,得到更新有效数据。
具体的,将填充数据中除第一字节之外的其他数据与首个原文分组中原始有效数据都进行异或处理,将异或处理后的数据作为更新有效数据。
可选的,若首个原文分组中存在原始有效数据,则可以采用填充数据对首个原文分组中的原始有效数据进行数据处理,将首个原文分组中的有效数据转换为更新有效数据,更新有效数据的和原始有效数据不一致。如图1B所示。
S160、采用更新有效数据,对首个原文分组进行更新。
具体的,采用更新有效数据替换首个原文分组中的原始有效数据,可得到更新后的首个原文分组。
S170、将更新填充长度添加至更新后的首个原文分组的首部,得到第一原文分组。
结合图1B,具体的,将更新填充长度添加至更新后的首个原文分组的首部,得到第一原文分组。其中,第一原文分组从首部开始依次包括:更新填充长度、填充数据和更新有效数据。
可以理解的是,本实施例中采用填充数据对首个原文分组中的原始有效数据进行处理,可以提高数据的安全性,避免数据在传输过程中被黑客截取后直接读取到真实的数据内容。
S180、采用分组对称加密算法,对第一原文分组进行加密,得到第一密文分组,并将第一密文分组,作为首个密文分组。
其中,对称加密算法用于对第二待加密数据进行加密和解密。
可选的,对第二待加密数据进行分组,得到首个原文分组和其他原文分组后,可以将原始填充长度添加至首个原文分组的首部,再采用分组对称加密算法,在ECB(Electronic Codebook,电码本)模式下对首部添加了原始填充长度的首个原文分组进行加密,得到首个密文分组。
S190、采用分组对称加密算法,基于首个密文分组,对其他原文分组进行加密。
具体的,获得首个密文分组后,可以基于设定的加密逻辑,对其他原文分组进行加密。例如,图1C所示,其他原文分组包括原文分组2、原文分组3和原文分组4,可以将首个密文分组,与原文分组2进行异或,并采用分组对称加密算法,对异或后的结果进行加密,得到原文分组2对应的密文分组2。之后,可以采用密文分组2与原文分组3进行异或,并采用分组对称加密算法,对异或后的结果进行加密,得到原文分组3对应的密文分组3。同理,采用密文分组3与原文分组4进行异或,并采用分组对称加密算法,对异或后的结果进行加密,得到原文分组4对应的密文分组4。分组对称加密算法为CBC加密算法、CFB加密算法和OFB加密算法中的一种。
之后,数据发送方可以将首个密文分组和加密后的其他原文分组发送给数据接收方。
需要说明的是,数据发送方将首个密文分组和加密后的其他原文分组发送给数据接收方之前,还可以按照第二待加密数据的排列顺序,对首个密文分组和加密后的其他原文分组依次排列。
本发明实施例提供的技术方案,通过根据第一待加密数据的数据长度和分组长度确定原始填充长度,并将填充数据填充在第一待加密数据的首部,得到第二待加密数据;对得到的第二待加密数据进行分组,可得到首个原文分组和其他原文分组;之后采用分组对称加密算法,根据原始填充长度,对首个原文分组进行加密,得到首个密文分组,以及基于首个密文分组对其他原文分组进行加密。通过上述技术方案,解决了在对数据进行加密时,需要根据数据发送方和数据接收方之间的应用协议和约定的初始化向量的生成方式,在数据中添加初始化向量进行数据传输,导致应用协议需要约定初始化向量,数据发送方和数据接收方在进行数据加密和解密时效率低的问题,这种问题在传输小报文时尤为明显。本方案具有简化数据发送方和数据接收方之间的应用协议,在保证数据传输安全性的同时提高数据传输效率的效果。
可选的,若首个原文分组中不存在原始有效数据,则结合图1D,对首个原文分组进行加密的过程如下:
将原始填充长度与填充数据中的第一字节进行异或处理,得到更新填充长度;将更新填充长度添加至首个原文分组的首部,将首部添加了更新填充长度的首个原文分组作为第一原文分组;采用分组对称加密算法,对第一原文分组进行加密,得到第一密文分组,并将第一密文分组,作为首个密文分组。
实施例二
图2为本发明实施例三提供的一种数据解密方法的流程图,本实施例可适用于如何对数据进行解密的情况。尤其适用于对待解密数据进行解密的情况,其中,待解密数据通过采用上述实施例所提供的数据加密方法对待加密数据进行加密处理得到。
本实施例所提供的数据解密方法应用于数据接收方中,该方法可以由本发明实施例提供的数据解密装置来执行,该装置可以采用软件和/或硬件的方式来实现,并可以集成于承载数据解密功能的电子设备中,如图2所示,该方法具体包括:
S210、采用对称解密算法,对待解密数据中的首个密文分组进行解密,得到第一原文分组。
其中,对称解密算法和对称加密算法一致。待解密数据是指数据接收方接收到的采用分组对称加密算法加密后的数据。数据接收方接收到的待解密数据中包含有首个密文分组和至少一个其他密文分组。
具体的,数据接收方获得待解密数据后,将首个密文分组和其他原文分组依次排列,将首个密文分组排列在其他密文分组之前。再采用对称解密算法对待解密数据的首个密文分组进行解密,可以获得第一原文分组,第一原文分组中包括更新填充长度和填充数据等。
S220、从第一原文分组的第一字节获取更新填充长度。
其中,更新填充长度是原始填充长度与填充数据中的第一字节进行异或处理得到的。
具体的,第一原文分组的首部携带的数据为更新填充长度,即第一原文分组的第一字节为更新填充长度。
S230、采用更新填充长度对第一原文分组的第二字节进行异或,得到原始填充长度。
其中,第一原文分组中包括更新填充长度和填充数据等。进而,第一原文分组的第二字节即为填充数据的第一字节。
具体的,更新填充长度是将原始填充长度与填充数据中的第一字节进行异或处理后获得的。因此,对更新填充长度和填充数据中的第一字节进行异或处理,可以获得原始填充长度。
S240、根据更新填充长度和第一原文分组,确定首个原文分组。
一种可选方式,第一原文分组为首部添加了更新填充长度的首个原文分组。更新填充长度为第一原文分组的第一个字节,因此去除第一原文分组的第一个字节,可以获得首个原文分组。
另一种可选方式,本步骤可以根据原始填充长度、更新填充长度和第一原文分组确定填充数据和更新有效数据,根据填充数据和更新有效数据获得原始有效数据,进而根据填充数据和原始有效数据,确定首个原文分组。具体的,可以通过如下子步骤实现:
S2401、根据原始填充长度、更新填充长度和第一原文分组,确定第一原文分组中的填充数据和更新有效数据。
具体的,第一原文分组去除第一原文分组首部的更新填充长度,可以获得更新后的首个原文分组。更新的首个原文分组中包含填充数据和更新有效数据。将更新后的首个原文分组的数据长度和原始填充长度相减,可以获得更新有效数据在更新后的首个原文分组的位置信息。例如,若更新后的首个原文分组的数据长度和原始填充长度相减的结果为n,且n>0,则更新后的首个原文分组的第n个字节和第n个字节之后的数据均为更新有效数据;更新后的首个原文分组的第n个字节之前的数据为填充数据。
S2402、将填充数据中除第一字节之外的其他数据,与更新有效数据进行异或,得到原始有效数据。
具体的,更新有效数据是将原始有效数据和填充数据中除第一个字节之外的其他数据进行异或获得的数据。因此将填充数据中除第一字节之外的其他数据,与更新有效数据进行异或,可以得到原始有效数据。
S2403、根据填充数据和原始有效数据,确定首个原文分组。
具体的,首个原文分组中包含有填充数据和原始有效数据,因此根据填充数据和原始有效数据,可以确定首个原文分组。
S250、根据原始填充长度,确定首个原文分组中的原始有效数据。
可选的,根据原始填充长度确定首个原文分组中是否存在原始有效数据。若原始填充长度小于首个原文分组的分组长度,则确定首个原文分组中存在原始有效数据;若原始填充长度大于或等于首个原文分组的分组长度,则确定首个原文分组中不存在原始有效数据。
进一步的,若首个原文分组中存在原始有效数据,则根据原始填充长度和首个原文分组的分组长度,确定原始有效数据的起始位置,进而确定首个原文分组中的原始有效数据。例如,若首个原文分组中存在原始有效数据,可以将首个原文分组的分组长度与原始填充长度相减,相减得到的数值即为原始有效数据的起始位置,原始有效数据起始位置以及起始位置之后的数据均为原始有效数据。
示例性的,根据填充数据的原始填充长度,可以确定原始有效数据在首个原文分组中的位置信息,并根据原始有效数据的位置信息获得原始有效数据。例如,若首个原文分组的数据长度和原始填充长度相减的结果为n,且n>0,则首个原文分组的第n个字节和第n个字节之后的数据均为原始有效数据;首个原文分组的第n个字节之前的数据为填充数据。
S260、采用对称解密算法,根据首个原文分组,对待解密数据中的其他密文分组进行解密,得到其他原文分组。
例如,其他密文分组包括密文分组2和密文分组3;对于密文分组2,采用对称解密算法,对密文分组2进行解密,并对首个原文分组和解密后的密文分组2进行异或处理,得到密文分组2对应的原文分组2。
进一步的,采用分组对称加密算法,对密文分组3进行解密,并对原文分组2和解密后的密文分组3进行异或处理,得到密文分组3对应的原文分组3。
S270、确定其他原文分组中的原始有效数据。
可选的,通过原始填充长度、首个原文分组以及其他原文分组确定其他原文分组中原始有效数据的起始位置,并根据原始有效数据的起始位置进一步确定其他原文分组中的原始有效数据。可选的,若首个原文分组中包含原始有效数据,则其他原文分组中的所有数据均为原始有效数据;若首个原文分组中不包含原始有效数据,则将原始填充长度与首个原文分组的分组长度相减,获得长度差值,再用其他原文分组的总分组长度减去长度差值,相减得到的数据即为其他原文分组中的原始有效数据的起始位置,其他原文分组中的原始有效数据起始位置以及起始位置之后的数据均为原始有效数据。
本实施例提供的技术方案,先采用对称解密算法,对首个密文分组进行解密,得到原始填充长度和首个原文分组,进一步的获得首个原文分组中的原始有效数据;再采用对称解密算法对待解密数据中的其他密文分组进行解密,根据解密结果确定其他原文分组中的原始有效数据。通过上述技术方案,解决了在对数据进行解密时,需要根据数据发送方和数据接收方之间的应用协议和约定的初始化向量的生成方式,在数据中添加初始化向量进行数据传输,导致应用协议过于复杂,数据接收方在进行数据解密时效率低的问题,同时解决了在仅通过填充数据的填充长度对数据进行解密时,可能由于解密步骤较少导致加密后的数据被黑客截取并破解的问题。本方案具有简化数据发送方和数据接收方之间的应用协议,在保证数据传输安全性的同时提高数据传输效率的效果。同时进一步提高了数据在传输过程中的安全性。
实施例三
图3为本发明实施例三提供的一种数据加密装置的结构示意图,本实施例提供的数据加密装置应用于数据发送方,本实施例可适用于对数据进行加密的情况,如图3所示,该数据加密装置包括:原始填充长度确定模块310、第二待加密数据获取模块320、原文分组获取模块330、更新填充长度确定模块340、更新有效数据获取模块350、更新模块360、第一原文分组获取模块370、首个密文分组确定模块380、和加密模块390。
其中,原始填充长度确定模块310,用于根据第一待加密数据的数据长度和分组长度,确定原始填充长度;
第二待加密数据获取模块320,用于生成原始填充长度个填充数据,并将填充数据添加至所述第一待加密数据的首部,得到第二待加密数据;
原文分组获取模块330,用于依次对第二待加密数据进行分组,得到首个原文分组和其他原文分组;
更新填充长度确定模块340,用于根据原始填充长度和所述填充数据中的第一字节,确定更新填充长度;
更新有效数据获取模块350,用于将首个原文分组中的原始有效数据,与填充数据中除第一字节之外的其他数据进行异或,得到更新有效数据;
更新模块360,用于采用更新有效数据,对首个原文分组进行更新;
第一原文分组获取模块370,用于将更新填充长度添加至更新后的首个原文分组的首部,得到第一原文分组;
首个密文分组确定模块380,用于采用分组对称加密算法,对第一原文分组进行加密,得到第一密文分组,并将第一密文分组,作为首个密文分组;
加密模块390,用于采用分组对称加密算法,基于首个密文分组,对其他原文分组进行加密。
本实施例提供的技术方案,本发明实施例提供的技术方案,通过根据第一待加密数据长度和分组长度确定原始填充长度,并将填充数据填充在第一待加密数据的首部,得到第二待加密数据;对得到的第二待加密数据进行分组,可得到首个原文分组和其他原文分组;之后采用分组对称加密算法,根据原始填充长度,对首个原文分组进行加密,得到首个密文分组,以及基于首个密文分组对其他原文分组进行加密。通过上述技术方案,解决了在对数据进行加密时,需要根据数据发送方和数据接收方之间的应用协议和约定的初始化向量的生成方式,在数据中添加初始化向量进行数据传输,导致应用协议过于复杂,数据发送方和数据接收方在进行数据加密和解密时效率低的问题,本方案具有简化数据发送方和数据接收方之间的应用协议,在保证数据传输安全性的同时提高数据传输效率的效果。
其中,原始填充长度确定模块310包括:
原始填充长度计算单元,用于将第一待加密数据的数据长度与分组长度之间的模值,作为原始填充长度;或,
将所述模值与分组长度之和,作为原始填充长度。
本实施例提供的数据加密装置可适用于上述实施例一提供的数据加密方法,具备相应的功能和有益效果。
实施例四
图4为本发明实施例四提供的一种数据解密装置的结构示意图,本实施例提供的数据解密装置应用于数据接收方,本实施例可适用于对加密后的数据进行解密的情况,如图4所示,该数据解密装置包括:解密模块410、更新填充长度获取模块420、原始填充长度获取模块430、首个原文分组获取模块440、原始有效数据获取模块450、其他原文分组获取模块460和原始有效数据计算模块470。
其中,解密模块410,用于采用对称解密算法,对待解密数据中的首个密文分组进行解密,得到第一原文分组;
更新填充长度获取模块420,用于从第一原文分组的第一字节获取更新填充长度;
原始填充长度获取模块430,用于采用所述更新填充长度对所述第一原文分组的第二字节进行异或,得到原始填充长度;
首个原文分组获取模块440,用于根据更新填充长度和所述第一原文分组,确定首个原文分组;
原始有效数据获取模块450,用于根据原始填充长度,确定首个原文分组中的原始有效数据;
其他原文分组获取模块460,用于采用对称解密算法,根据首个原文分组,对待解密数据中的其他密文分组进行解密,得到其他原文分组;
原始有效数据计算模块470,用于确定其他原文分组中的原始有效数据。
本实施例提供的技术方案,先采用对称解密算法,对首个密文分组进行解密,得到原始填充长度和首个原文分组,进一步的获得首个原文分组中的原始有效数据;再采用对称解密算法对待解密数据中的其他密文分组进行解密,根据解密结果确定其他原文分组中的原始有效数据。通过上述技术方案,解决了在对数据进行解密时,需要根据数据发送方和数据接收方之间的应用协议和约定的初始化向量的生成方式,在数据中添加初始化向量进行数据传输,导致应用协议过于复杂,数据接收方在进行数据解密时效率低的问题,同时解决了在仅通过填充数据的填充长度对数据进行解密时,可能由于解密步骤较少导致加密后的数据被黑客截取并破解的问题。本方案具有简化数据发送方和数据接收方之间的应用协议,在保证数据传输安全性的同时提高数据传输效率的效果。同时进一步提高了数据在传输过程中的安全性。
其中,首个原文分组获取模块440包括:
更新有效数据确定单元,用于根据原始填充长度、更新填充长度和第一原文分组,确定第一原文分组中的填充数据和更新有效数据;
原始有效数据计算单元,用于将填充数据中除第一字节之外的其他数据,与更新有效数据进行异或,得到原始有效数据;
首个原文分组确定单元,用于根据填充数据和原始有效数据,确定首个原文分组。
本实施例提供的数据解密装置可适用于上述实施例二提供的数据解密方法,具备相应的功能和有益效果。
实施例五
图5为本发明实施例五提供的一种电子设备的结构示意图,如图5所示,该电子设备包括处理器50、存储器51、输入装置52和输出装置53;电子设备中处理器50的数量可以是一个或多个,图5中以一个处理器50为例;电子设备中的处理器50、存储器51、输入装置52和输出装置53可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器51作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据加密方法和数据解密方法对应的程序指令/模块。处理器50通过运行存储在存储器51中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的数据加密方法和数据解密方法。
存储器51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器51可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器51可进一步包括相对于处理器50远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置52可用于接收第一待加密数据和待解密数据,以及产生与设备的用户设置以及功能控制有关的第一待加密数据和待解密数据相关参数输入。输出装置53可包括显示屏等显示设备。
本实施例提供的电子设备可适用于上述任意实施例提供的数据加密或数据解密方法,具备相应的功能和有益效果。
实施例六
本发明实施例六还提供一种包含计算机可执行指令的存储介质,上述计算机可执行指令在由计算机处理器执行时用于执行一种数据加密和数据解密方法,该方法包括:
根据第一待加密数据的数据长度和分组长度,确定原始填充长度;生成原始填充长度个填充数据,并将填充数据添加至第一待加密数据的首部,得到第二待加密数据;依次对第二待加密数据进行分组,得到首个原文分组和其他原文分组;根据原始填充长度和填充数据中的第一字节,确定更新填充长度;将首个原文分组中的原始有效数据,与填充数据中除第一字节之外的其他数据进行异或,得到更新有效数据;采用更新有效数据,对首个原文分组进行更新;将更新填充长度添加至更新后的首个原文分组的首部,得到第一原文分组;采用分组对称加密算法,对第一原文分组进行加密,得到第一密文分组,并将第一密文分组,作为首个密文分组;采用分组对称加密算法,基于首个密文分组,对其他原文分组进行加密。
或者,该方法还包括:
采用对称解密算法,对待解密数据中的首个密文分组进行解密,得到第一原文分组;从第一原文分组的第一字节获取更新填充长度;采用更新填充长度对所述第一原文分组的第二字节进行异或,得到原始填充长度;根据更新填充长度和第一原文分组,确定首个原文分组;根据原始填充长度,确定首个原文分组中的原始有效数据;采用对称解密算法,根据首个原文分组,对待解密数据中的其他密文分组进行解密,得到其他原文分组;确定其他原文分组中的原始有效数据。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述数据加密方法和数据解密方法的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种数据加密方法,其特征在于,包括:
根据第一待加密数据的数据长度和分组长度,确定原始填充长度;
生成所述原始填充长度个填充数据,并将所述填充数据添加至所述第一待加密数据的首部,得到第二待加密数据;
依次对所述第二待加密数据进行分组,得到首个原文分组和其他原文分组;
根据所述原始填充长度和所述填充数据中的第一字节,确定更新填充长度;
将所述首个原文分组中的原始有效数据,与所述填充数据中除第一字节之外的其他数据进行异或,得到更新有效数据;
采用所述更新有效数据,对所述首个原文分组进行更新;
将所述更新填充长度添加至更新后的首个原文分组的首部,得到第一原文分组;
采用分组对称加密算法,对所述第一原文分组进行加密,得到第一密文分组,并将所述第一密文分组,作为首个密文分组;
采用分组对称加密算法,基于首个密文分组,对所述其他原文分组进行加密。
2.根据权利要求1所述的方法,其特征在于,所述根据第一待加密数据的数据长度和分组长度,确定原始填充长度,包括:
将第一待加密数据的数据长度与分组长度之间的模值,作为原始填充长度;或,
将所述模值与所述分组长度之和,作为所述原始填充长度。
3.一种数据解密方法,其特征在于,包括:
采用对称解密算法,对待解密数据中的首个密文分组进行解密,得到第一原文分组;
从所述第一原文分组的第一字节获取更新填充长度;
采用所述更新填充长度对所述第一原文分组的第二字节进行异或,得到原始填充长度;
根据所述更新填充长度和所述第一原文分组,确定首个原文分组;
根据所述原始填充长度,确定所述首个原文分组中的原始有效数据;
采用对称解密算法,根据所述首个原文分组,对所述待解密数据中的其他密文分组进行解密,得到其他原文分组;
确定所述其他原文分组中的原始有效数据。
4.根据权利要求3所述的方法,其特征在于,所述根据所述更新填充长度和所述第一原文分组,确定首个原文分组,包括:
根据所述原始填充长度、所述更新填充长度和所述第一原文分组,确定所述第一原文分组中的填充数据和更新有效数据;
将所述填充数据中除第一字节之外的其他数据,与所述更新有效数据进行异或,得到原始有效数据;
根据所述填充数据和所述原始有效数据,确定首个原文分组。
5.一种数据加密装置,其特征在于,包括:
原始填充长度确定模块,用于根据第一待加密数据的数据长度和分组长度,确定原始填充长度;
第二待加密数据获取模块,用于生成所述原始填充长度个填充数据,并将所述填充数据添加至所述第一待加密数据的首部,得到第二待加密数据;
原文分组获取模块,用于依次对所述第二待加密数据进行分组,得到首个原文分组和其他原文分组;
更新填充长度确定模块,用于根据所述原始填充长度和所述填充数据中的第一字节,确定更新填充长度;
更新有效数据获取模块,用于将所述首个原文分组中的原始有效数据,与所述填充数据中除第一字节之外的其他数据进行异或,得到更新有效数据;
更新模块,用于采用所述更新有效数据,对所述首个原文分组进行更新;
第一原文分组获取模块,用于将所述更新填充长度添加至更新后的首个原文分组的首部,得到第一原文分组;
首个密文分组确定模块,用于采用分组对称加密算法,对所述第一原文分组进行加密,得到第一密文分组,并将所述第一密文分组,作为首个密文分组;
加密模块,用于采用分组对称加密算法,基于首个密文分组,对所述其他原文分组进行加密。
6.根据权利要求5所述的装置,其特征在于,所述原始填充长度确定模块,包括:
原始填充长度计算单元,用于将第一待加密数据的数据长度与分组长度之间的模值,作为原始填充长度;或,
将所述模值与所述分组长度之和,作为所述原始填充长度。
7.一种数据解密装置,其特征在于,包括:
解密模块,用于采用对称解密算法,对待解密数据中的首个密文分组进行解密,得到第一原文分组;
更新填充长度获取模块,用于从所述第一原文分组的第一字节获取更新填充长度;
原始填充长度获取模块,用于采用所述更新填充长度对所述第一原文分组的第二字节进行异或,得到原始填充长度;
首个原文分组获取模块,用于根据所述更新填充长度和所述第一原文分组,确定首个原文分组;
原始有效数据获取模块,用于根据所述原始填充长度,确定所述首个原文分组中的原始有效数据;
其他原文分组获取模块,用于采用对称解密算法,根据所述首个原文分组,对所述待解密数据中的其他密文分组进行解密,得到其他原文分组;
原始有效数据计算模块,用于确定所述其他原文分组中的原始有效数据。
8.根据权利要求7所述的装置,其特征在于,所述首个原文分组获取模块,包括:
更新有效数据确定单元,用于根据所述原始填充长度、所述更新填充长度和所述第一原文分组,确定所述第一原文分组中的填充数据和更新有效数据;
原始有效数据计算单元,用于将所述填充数据中除第一字节之外的其他数据,与所述更新有效数据进行异或,得到原始有效数据;
首个原文分组确定单元,用于根据所述填充数据和所述原始有效数据,确定首个原文分组。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-2中任一项所述的数据加密方法,或者权利要求3-4中任一项所述的数据解密方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-2中任一项所述的数据加密方法,或者权利要求3-4中任一项所述的数据解密方法。
CN202210569768.5A 2022-05-24 2022-05-24 一种数据加密和数据解密方法、装置、设备以及存储介质 Pending CN114978699A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210569768.5A CN114978699A (zh) 2022-05-24 2022-05-24 一种数据加密和数据解密方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210569768.5A CN114978699A (zh) 2022-05-24 2022-05-24 一种数据加密和数据解密方法、装置、设备以及存储介质

Publications (1)

Publication Number Publication Date
CN114978699A true CN114978699A (zh) 2022-08-30

Family

ID=82956375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210569768.5A Pending CN114978699A (zh) 2022-05-24 2022-05-24 一种数据加密和数据解密方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN114978699A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210367771A1 (en) * 2020-05-19 2021-11-25 International Business Machines Corporation Padding oracle elimination in rsa encryption
CN113794551A (zh) * 2021-09-13 2021-12-14 北京江南天安科技有限公司 一种长报文数据的等长分组加密方法及密文解密方法
CN114386049A (zh) * 2020-10-20 2022-04-22 Oppo广东移动通信有限公司 加密方法、解密方法、装置及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210367771A1 (en) * 2020-05-19 2021-11-25 International Business Machines Corporation Padding oracle elimination in rsa encryption
CN114386049A (zh) * 2020-10-20 2022-04-22 Oppo广东移动通信有限公司 加密方法、解密方法、装置及设备
WO2022083448A1 (zh) * 2020-10-20 2022-04-28 Oppo广东移动通信有限公司 加密方法、解密方法、装置及设备
CN113794551A (zh) * 2021-09-13 2021-12-14 北京江南天安科技有限公司 一种长报文数据的等长分组加密方法及密文解密方法

Similar Documents

Publication Publication Date Title
US9172529B2 (en) Hybrid encryption schemes
US7110545B2 (en) Method and apparatus for symmetric-key encryption
US20010046292A1 (en) Authentication method and schemes for data integrity protection
CN112637836A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN111654511A (zh) 一种链式数据加密方法、链式数据解密方法及相应的系统
CN112165443A (zh) 一种多密钥信息加密解密方法、装置及存储介质
WO2000057595A1 (en) Method and apparatus for encrypting and decrypting data
CN111404952B (zh) 变电站数据加密传输方法、装置、计算机设备和存储介质
CN111585759A (zh) 一种高效的基于sm9公钥加密算法的线上线下加密方法
CN113726725A (zh) 一种数据加解密方法、装置、电子设备及存储介质
CN116321129A (zh) 一种轻量级的基于动态密钥的电力交易专网通信加密方法
CN114172651B (zh) 一种sm9公钥加密算法、解密算法的gpu加速实现方法
US7406595B1 (en) Method of packet encryption that allows for pipelining
CN107147626B (zh) 一种AES算法与ElGamal算法相结合的加密文件传输方法
CN112948867A (zh) 加密报文的生成与解密方法、装置及电子设备
EP2571192A1 (en) Hybrid encryption schemes
CN114499857B (zh) 一种实现大数据量子加解密中数据正确性与一致性的方法
EP1456997B1 (en) System and method for symmetrical cryptography
CN114978699A (zh) 一种数据加密和数据解密方法、装置、设备以及存储介质
CN112861164A (zh) 一种加密方法、解密方法、数据处理方法、终端及加密机
CN112532637A (zh) 一种基于区块链技术的新能源汽车联网信息加密传输方法
CN111654854A (zh) 基于云计算系统的远程数据优化传输方法及系统
CN111131158A (zh) 单字节对称加密解密方法、装置及可读介质
NO322321B1 (no) Fremgangsmate ved kryptering og dekryptering
KR20020051597A (ko) 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법

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