CN116455560B - 数据加密方法、数据解密方法、装置、设备及介质 - Google Patents
数据加密方法、数据解密方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116455560B CN116455560B CN202310716766.9A CN202310716766A CN116455560B CN 116455560 B CN116455560 B CN 116455560B CN 202310716766 A CN202310716766 A CN 202310716766A CN 116455560 B CN116455560 B CN 116455560B
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- encrypted
- decrypted
- nth
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 131
- 230000006870 function Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 14
- 230000006854 communication Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 125000004122 cyclic group Chemical group 0.000 description 2
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/0435—Network 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
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)
- Storage Device Security (AREA)
Abstract
本公开实施例公开了一种数据加密方法、数据解密方法、装置、设备及介质,涉及数据处理技术领域。该方法包括:获取并以128bit长度将待加密数据分为n个待加密子数据;获取待加密子数据的第一子参数组;根据第一子参数组和共享密钥,基于SM4算法得到第二子参数组;将前n‑1个待加密子数据与前n‑1个第二子参数组进行异或运算得到n‑1个加密子数据;当第n个待加密子数据不足128bit时,在第n个第二子参数组中截取与第n个待加密子数据同长度的第三子参数组;将第n个待加密子数据与第三子参数组进行异或运算得到第n个加密子数据;将n个加密子数据拼接后发送。通过截取方式防止冗余数据的填充,避免带宽被冗余数据占用。
Description
技术领域
本公开涉及数据处理技术领域,具体涉及一种数据加密方法、数据解密方法、装置、设备及介质。
背景技术
为了保证两个通信设备之间数据传输的安全性,通常对数据进行加密后再发送,以保证数据传输的安全。
目前,可采用SM4国密算法对数据进行加密,SM4国密算法严格要求数据的分组长度为128比特(binary digit,BIT)。但在两个通信设备的通信过程中,数据的长度并不一定恰好是128bit的整数倍,导致将数据分组为多个子数据时,最后一个子数据的数据长度达不到128bit。此时,采用SM4国密算法时,就需要对最后一个子数据进行数据填充,使该子数据的数据长度达到128bit。虽然该方式使得每个子数据的数据长度满足了SM4国密算法对分组长度的要求,但由于填充的数据同样需要被加密后发送,造成无用的填充数据对带宽的额外占用。
因此,如何在保证数据安全传输的同时,避免冗余的填充数据对带宽的占用,成成为一项亟待解决的技术问题。
发明内容
为了解决相关技术中的问题,本公开实施例提供一种数据加密方法、数据解密方法、装置、设备及介质。
第一方面,本公开实施例中提供了一种数据加密方法。
具体地,所述数据加密方法,应用于发送端,所述方法包括:
获取待加密数据,并将所述待加密数据分割为n个待加密子数据,其中n≥1,且至少前n-1个待加密子数据中每个待加密子数据的数据长度为128bit;
获取每个待加密子数据对应的第一子参数组,所述第一子参数组的数据长度为128bit;
根据每个待加密子数据对应的第一子参数组和共享密钥,基于预设的SM4算法,得到每个待加密子数据对应的第二子参数组;
将所述n个待加密子数据中前n-1个待加密子数据中的每个待加密子数据,与所述前n-1个待加密子数据中的每个待加密子数据对应的第二子参数组进行异或运算,得到n-1个加密子数据;
当第n个待加密子数据的数据长度小于128bit时,在所述第n个待加密子数据对应的第二子参数组中进行数据截取,以获取第三子参数组,所述第三子参数组的数据长度等于所述第n个待加密子数据的数据长度;
将所述第n个待加密子数据与所述第三子参数组进行异或运算,得到第n个加密子数据;
将第1个加密子数据至第n个加密子数据依次拼接,得到加密数据,并向接收端发送所述加密数据。
在本公开的一种实现方式中,所述方法还包括:
当第n个待加密子数据的数据长度等于128bit时,将所述第n个待加密子数据与所述第n个待加密子数据对应的第二子参数组进行异或运算,得到第n个加密子数据。
在本公开的一种实现方式中,所述第一子参数组包括:帧计数器的计数值、方向位、初始化向量和所述第一子参数组的标识。
在本公开的一种实现方式中,所述方法还包括:
获取所述待加密数据的消息认证码,以及所述消息认证码对应的第四子参数组,所述第四子参数组的数据长度为128bit;
根据所述第四子参数组和所述共享密钥,基于预设的SM4算法,得到所述消息认证码对应的第五子参数组;
当所述消息认证码的数据长度小于128bit时,在所述第五子参数组中进行数据截取,以获取第六子参数组,所述第六子参数组的数据长度等于所述消息认证码的数据长度;
将所述消息认证码与所述第六子参数组进行异或运算,得到加密消息认证码;
所述将第1个加密子数据至第n个加密子数据依次拼接,得到加密数据,包括:
将第1个加密子数据至第n个加密子数据、以及所述加密消息认证码依次拼接,得到所述加密数据。
在本公开的一种实现方式中,所述第四子参数组包括:所述帧计数器的计数值、所述方向位和所述初始化向量。
在本公开的一种实现方式中,在所述待加密数据的数据长度大于128bit时,所述获取所述待加密数据的消息认证码,包括:
将所述待加密数据对应的第二参数组与第1个待加密子数据进行异或运算,得到第1加密混淆结果;
根据所述第1加密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第1加密混淆结果;
将加密后的第j-1加密混淆结果与第j个待加密子数据进行异或运算,得到第j加密混淆结果,其中2≤j<n,且j依次取[2,n)中的每一个值;
根据所述第j加密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第j加密混淆结果;
当第n个待加密子数据的数据长度小于128bit时,对所述第n个待加密子数据进行冗余数据填充,得到第n'个待加密子数据,所述第n'个待加密子数据的数据长度为128bit;
将加密后的第n-1加密混淆结果和所述第n'个待加密子数据进行异或运算,得到第n加密混淆结果;
根据所述第n加密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第n加密混淆结果;
在所述加密后的第n加密混淆结果中进行预设长度的数据截取,以获取所述消息认证码。
在本公开的一种实现方式中,在所述待加密数据的数据长度等于128bit时,所述获取所述待加密数据的消息认证码,包括:
将所述待加密数据对应的第二参数组与第1个待加密子数据进行异或运算,得到第1加密混淆结果;
根据所述第1加密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第1加密混淆结果;
在所述加密后的第1加密混淆结果中进行预设长度的数据截取,以获取所述消息认证码。
在本公开的一种实现方式中,在所述待加密数据的数据长度小于128bit时,所述获取所述待加密数据的消息认证码,包括:
对所述第1个待加密子数据进行冗余数据填充,得到第1'个待加密子数据,所述第1'个待加密子数据的数据长度为128bit;
将所述待加密数据对应的第二参数组与第1'个待加密子数据进行异或运算,得到第1加密混淆结果;
根据所述第1加密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第1加密混淆结果;
在所述加密后的第1加密混淆结果中进行预设长度的数据截取,以获取所述消息认证码。
在本公开的一种实现方式中,所述方法还包括:
获取所述待加密数据对应的第一参数组,所述第一参数组的数据长度为128bit;
根据所述第一参数组和所述共享密钥,基于预设的SM4算法,得到所述待加密数据对应的所述第二参数组。
在本公开的一种实现方式中,所述第一参数组包括:所述待加密数据的数据长度、所述帧计数器的计数值、所述方向位、所述初始化向量和认证标识。
在本公开的一种实现方式中,所述第一参数组还包括:附加认证数据,所述附加认证数据的数据长度为128bit。
在本公开的一种实现方式中,所述方法还包括:
将所述第二参数组与所述附加认证数据进行异或运算,得到附加认证混淆结果;
根据所述附加认证混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的附加认证混淆结果;
将所述加密后的附加认证混淆结果作为所述待加密数据对应的第二参数组。
第二方面,本公开实施例中提供了一种数据解密方法。
具体地,所述数据解密方法,应用于接收端,所述方法包括:
接收发送端的待解密数据,并将所述待解密数据分割为n个待解密子数据,其中n≥1,且至少前n-1个待解密子数据中每个待解密子数据的数据长度为128bit;
获取每个待解密子数据对应的第一子参数组,所述第一子参数组的数据长度为128bit;
根据每个待解密子数据对应的第一子参数组和共享密钥,基于预设的SM4算法,得到每个待解密子数据对应的第二子参数组;
将所述n个待解密子数据中前n-1个待解密子数据中的每个待解密子数据,与所述前n-1个待解密子数据中的每个待解密子数据对应的第二子参数组进行异或运算,得到n-1个解密子数据;
当第n个待解密子数据的数据长度小于128bit时,在所述第n个待解密子数据对应的第二子参数组中进行数据截取,以获取第三子参数组,所述第三子参数组的数据长度等于所述第n个待解密子数据的数据长度;
将所述第n个待解密子数据与所述第三子参数组进行异或运算,得到第n个解密子数据;
将第1个解密子数据至第n个解密子数据依次拼接,得到解密数据。
在本公开的一种实现方式中,所述方法还包括:
当第n个待解密子数据的数据长度等于128bit时,将所述第n个待解密子数据与所述第n个待解密子数据对应的第二子参数组进行异或运算,得到第n个解密子数据。
在本公开的一种实现方式中,所述第一子参数组包括:帧计数器的计数值、方向位、初始化向量和所述第一子参数组的标识。
在本公开的一种实现方式中,所述方法还包括:
获取所述待解密数据的待解密消息认证码,以及获取所述待解密消息认证码对应的第四子参数组,所述第四子参数组的数据长度为128bit;
根据所述第四子参数组和所述共享密钥,基于预设的SM4算法,得到所述待解密消息认证码对应的第五子参数组;
当所述待解密消息认证码的数据长度小于128bit时,在所述第五子参数组中进行数据截取,以获取第六子参数组,所述第六子参数组的数据长度等于所述待解密消息认证码的数据长度;
将所述待解密消息认证码与所述第六子参数组进行异或运算,得到解密消息认证码。
在本公开的一种实现方式中,所述第四子参数组包括:所述帧计数器的计数值、所述方向位和所述初始化向量。
在本公开的一种实现方式中,所述将所述待解密消息认证码与所述第六子参数组进行异或运算,得到解密消息认证码之后,所述方法还包括:
根据所述解密子数据、所述共享密钥和所述待解密数据对应的第二参数组,基于预设的SM4算法和异或运算,获取本地消息认证码;
在所述解密消息认证码与所述本地消息认证码不同时,生成告警信息,所述告警信息用于指示数据完整性校验失败。
在本公开的一种实现方式中,在所述待解密数据的数据长度大于128bit时,所述根据所述解密子数据、所述共享密钥和所述待解密数据对应的第二参数组,基于预设的SM4算法和异或运算,获取本地消息认证码,包括:
将所述待解密数据对应的第二参数组与第1个解密子数据进行异或运算,得到第1解密混淆结果;
根据所述第1解密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第1解密混淆结果;
将加密后的第j-1解密混淆结果与第j个解密子数据进行异或运算,得到第j解密混淆结果,其中2≤j<n,且j依次取[2,n)中的每一个值;
根据所述第j解密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第j解密混淆结果;
当第n个解密子数据的数据长度小于128bit时,对所述第n个解密子数据进行冗余数据填充,得到第n'个解密子数据,所述第n'个解密子数据的数据长度为128bit;
将加密后的第n-1解密混淆结果和所述第n'个解密子数据进行异或运算,得到第n解密混淆结果;
根据所述第n解密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第n解密混淆结果;
在所述加密后的第n解密混淆结果中进行预设长度的数据截取,以获取所述本地消息认证码。
在本公开的一种实现方式中,在所述待解密数据的数据长度等于128bit时,所述根据所述解密子数据、所述共享密钥和所述待解密数据对应的第二参数组,基于预设的SM4算法和异或运算,获取本地消息认证码,包括:
将所述待解密数据对应的第二参数组与第1个解密子数据进行异或运算,得到第1解密混淆结果;
根据所述第1解密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第1解密混淆结果;
在所述加密后的第1解密混淆结果中进行预设长度的数据截取,以获取所述本地消息认证码。
在本公开的一种实现方式中,在所述待解密数据的数据长度小于128bit时,所述根据所述解密子数据、所述共享密钥和所述待解密数据对应的第二参数组,基于预设的SM4算法和异或运算,获取本地消息认证码,包括:
对所述第1个解密子数据进行冗余数据填充,得到第1'个解密子数据,所述第1'个解密子数据的数据长度为128bit;
将所述待解密数据对应的第二参数组和所述第1'个解密子数据进行异或运算,得到第1解密混淆结果;
根据所述第1解密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第1解密混淆结果;
在所述加密后的第1解密混淆结果中进行预设长度的数据截取,以获取所述本地消息认证码。
在本公开的一种实现方式中,所述方法还包括:
获取所述待解密数据对应的第一参数组,所述第一参数组的数据长度为128bit;
根据所述第一参数组和所述共享密钥,基于预设的SM4算法,得到所述待解密数据对应的所述第二参数组。
在本公开的一种实现方式中,所述第一参数组包括:所述待解密数据的数据长度、所述帧计数器的计数值、所述方向位、所述初始化向量和认证标识。
在本公开的一种实现方式中,所述第一参数组还包括:附加认证数据,所述附加认证数据的数据长度为128bit。
在本公开的一种实现方式中,所述方法还包括:
将所述第二参数组与所述附加认证数据进行异或运算,得到附加认证混淆结果;
根据所述附加认证混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的附加认证混淆结果;
将所述加密后的附加认证混淆结果作为所述待解密数据对应的第二参数组。
第三方面,本公开实施例中提供了一种数据加密装置。
具体地,所述数据加密装置,应用于发送端,所述装置包括:
获取模块,被配置为获取待加密数据,并将所述待加密数据分割为n个待加密子数据,其中n≥1,且至少前n-1个待加密子数据中每个待加密子数据的数据长度为128bit;获取每个待加密子数据对应的第一子参数组,所述第一子参数组的数据长度为128bit;
处理模块,被配置为根据每个待加密子数据对应的第一子参数组和共享密钥,基于预设的SM4算法,得到每个待加密子数据对应的第二子参数组;将所述n个待加密子数据中前n-1个待加密子数据中的每个待加密子数据,与所述前n-1个待加密子数据中的每个待加密子数据对应的第二子参数组进行异或运算,得到n-1个加密子数据;
当第n个待加密子数据的数据长度小于128bit时,在所述第n个待加密子数据对应的第二子参数组中进行数据截取,以获取第三子参数组,所述第三子参数组的数据长度等于所述第n个待加密子数据的数据长度;将所述第n个待加密子数据与所述第三子参数组进行异或运算,得到第n个加密子数据;
发送模块,被配置为将第1个加密子数据至第n个加密子数据依次拼接,得到加密数据,并向接收端发送所述加密数据。
第四方面,本公开实施例中提供了一种数据解密装置。
具体地,所述数据解密装置,应用于接收端,所述装置包括:
接收模块,被配置为接收发送端的待解密数据,并将所述待解密数据分割为n个待解密子数据,其中n≥1,且至少前n-1个待解密子数据中每个待解密子数据的数据长度为128bit;
获取模块,被配置为获取每个待解密子数据对应的第一子参数组,所述第一子参数组的数据长度为128bit;
处理模块,被配置为根据每个待解密子数据对应的第一子参数组和共享密钥,基于预设的SM4算法,得到每个待解密子数据对应的第二子参数组;将所述n个待解密子数据中前n-1个待解密子数据中的每个待解密子数据,与所述前n-1个待解密子数据中的每个待解密子数据对应的第二子参数组进行异或运算,得到n-1个解密子数据;
当第n个待解密子数据的数据长度小于128bit时,在所述第n个待解密子数据对应的第二子参数组中进行数据截取,以获取第三子参数组,所述第三子参数组的数据长度等于所述第n个待解密子数据的数据长度;将所述第n个待解密子数据与所述第三子参数组进行异或运算,得到第n个解密子数据;将第1个解密子数据至第n个解密子数据依次拼接,得到解密数据。
第五方面,本公开实施例提供了一种芯片,芯片包括处理器,该处理器用于调用存储器中的计算机程序,以执行上述数据加密方法或数据解密方法的方法步骤。
第六方面,本公开实施例提供了一种电子设备,包括存储器和至少一个处理器,其中,所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令被所述处理器执行,以实现上述第一方面或第二方面,以及第一方面或第二方面任一种可能实现方式中的方法。
第七方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现第一方面或第二方面,以及第一方面或第二方面任一种可能实现方式中的方法。
第八方面,本公开实施例提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现第一方面或第二方面,以及第一方面或第二方面任一种可能实现方式中的方法。
本公开实施例提供的技术效果可以包括以下有益效果:
上述技术方案通过对待加密数据进行加密时,将待加密数据以128bit的数据长度分割为n个待加密子数据。针对每个待加密子数据,将待加密子数据对应的第一子参数组和共享密钥作为SM4算法的输入,通过SM4算法输出加密的第一子参数组。若存在第一子参数组对应的待加密子数据的数据长度不足128bit,只需要从加密的第一子参数组中截取出与待加密子数据同样数据长度的第三子参数组,再将该第三子参数组与对应的待加密数据通过异或运算即可得到加密子数据,无需对不足128bit的待加密子数据额外填充冗余数据,避免了带宽被冗余数据的占用。并且,由于SM4算法和异或运算均对输入的数据进行了加密,也保证了数据传输的安全性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中。
图1示出根据本公开一实施方式的数据加密方法的流程图。
图2示出根据本公开一实施方式的数据加密方法的示例图。
图3示出根据本公开一实施方式的数据解密方法的流程图。
图4示出根据本公开一实施方式的数据解密方法的示例图。
图5示出根据本公开一实施方式的数据加密装置或数据解密装置的结构框图。
图6示出根据本公开一实施方式的电子设备的结构框图。
图7是适于用来实现根据本公开一实施方式的数据加密方法或数据解密方法的计算机***的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施例,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施例无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
上文提及,目前,可采用SM4国密算法对数据进行加密,SM4国密算法严格要求数据的分组长度为128比特(binary digit,BIT)。但在两个通信设备的通信过程中,数据的长度并不一定恰好是128bit的整数倍,导致将数据分组为多个子数据时,最后一个子数据的数据长度达不到128bit。此时,采用SM4国密算法时,就需要对最后一个子数据进行数据填充,使该子数据的数据长度达到128bit。虽然该方式使得每个子数据的数据长度满足了SM4国密算法对分组长度的要求,但由于填充的数据同样需要被加密后发送,造成无用的填充数据对带宽的额外占用。
考虑到上述缺陷,本公开在对待加密数据进行加密时,将待加密数据以128bit的数据长度分割为n个待加密子数据。针对每个待加密子数据,将待加密子数据对应的第一子参数组和共享密钥作为SM4算法的输入,通过SM4算法输出加密的第一子参数组。若存在第一子参数组对应的待加密子数据的数据长度不足128bit,只需要从加密的第一子参数组中截取出与待加密子数据同样数据长度的第三子参数组,再将该第三子参数组与对应的待加密数据通过异或运算即可得到加密子数据,无需对不足128bit的待加密子数据额外填充冗余数据,避免了带宽被冗余数据的占用。并且,由于SM4算法和异或运算均对输入的数据进行了加密,也保证了数据传输的安全性。
图1示出根据本公开一实施方式的数据加密方法的流程图。
如图1所示,该方法100可以包括步骤101至步骤107,其可以由发送端实现,也可以由能够提供发送端功能的物理设备来执行,或者也可以由配置在物理设备中的部件(如芯片等)来执行,或者还可以是能够实现部分或全部发送端功能的模块来执行等等,本申请对此不作限定。
为了便于理解,本公开以发送端为例来描述本公开提供的方法。下面对方法100中的各个步骤做详细说明。
在步骤101中,获取待加密数据,并将待加密数据分割为n个待加密子数据,其中n≥1,且至少前n-1个待加密子数据中每个待加密子数据的数据长度为128bit。
在步骤102中,获取每个待加密子数据对应的第一子参数组,该第一子参数组的数据长度为128bit。
在步骤103中,根据每个待加密子数据对应的第一子参数组和共享密钥,基于预设的SM4算法,得到每个待加密子数据对应的第二子参数组。
在步骤104中,将n个待加密子数据中前n-1个待加密子数据中的每个待加密子数据,与前n-1个待加密子数据中的每个待加密子数据对应的第二子参数组进行异或运算,得到n-1个加密子数据。
在步骤105中,当第n个待加密子数据的数据长度小于128bit时,在第n个待加密子数据对应的第二子参数组中进行数据截取,以获取第三子参数组,该第三子参数组的数据长度等于第n个待加密子数据的数据长度。
在步骤106中,将第n个待加密子数据与第三子参数组进行异或运算,得到第n个加密子数据。
在步骤107中,将第1个加密子数据至第n个加密子数据依次拼接,得到加密数据,并向接收端发送加密数据。
在本公开一实施方式中,待加密数据可以为发送端将要发送给接收端的、且需要进行加密的待传输的数据。
待加密子数据可以为发送端以预设的数据分割长度对待加密数据进行分割,所得到的待传输的子数据。其中,该数据分割长度与发送端所采用的加密算法相关。例如,采用SM4国密算法时,数据分割长度可以为128bit。
在上述步骤101中,发送端分割得到的前n-1个待加密子数据中每个待加密子数据的数据长度等于128bit,第n个待加密子数据的数据长度可以等于128bit,也可以小于128bit。
在本公开一实施方式中,第一子参数组可以包括:帧计数器的计数值、方向位、初始化向量和第一子参数组的标识。
其中,帧计数器的计数值可以为:截止目前,发送端的帧计数器所统计的发送端向接收端发送的数据次数。其中,第一子参数组的标识可以与该第一子参数组对应的待加密子数据的标识对应。例如,第1个待加密子数据对应的第一子参数组的标识可以为A1,第2个待加密子数据对应的第一子参数组的标识可以为A2,...,第n个待加密子数据对应的第一子参数组的标识可以为An。
在本公开一实施方式中,第一子参数组的数据长度和所包含的参数类型可以是发送端和接收端预先协商好的,该第一子参数组的数据长度指第一子参数组中所包含的所有参数的数据长度之和。例如,帧计数器的计数值对应的数据长度、方向位对应的数据长度、初始化向量对应的数据长度和第一子参数组的标识对应的数据长度之和为128bit。
在上述步骤102中,发送端可获取到n个数据长度均为128bit的第一子参数组,且多个第一子参数组之间互不相同。
在本公开一实施方式中,共享密钥可以为发送端和接收端预先协商好的、专属于该发送端和该接收端之间的密钥。第二子参数组为加密后的第一子参数组。
在上述步骤103中,通过SM4算法,发送端可得到n个加密后的第一子参数组。
上述步骤104中的异或运算可以理解为:将待加密子数据与加密后的第一子参数组进行加密,得到加密子数据的运算。
在上述步骤104中,由于前n-1个待加密子数据的数据长度均为128bit,且前n-1个第二子参数组的数据长度也均为128bit。因此,通过异或运算,可得到n-1个数据长度为128bit的加密子数据。
在本公开一实施方式中,在第n个待加密子数据对应的第二子参数组中截取第三子参数组时,可通过截取第二子参数组的头部数据、中部数据或尾部数据来获取第三子参数组。第三子参数组的数据长度由第n个待加密子数据的数据长度决定。
应理解,本领域技术人员可根据实际需求设置截取位置,本公开对此不作限定。
在上述步骤105中,由于第n个待加密子数据的数据长度小于128bit,而第n个待加密子数据对应的第二子参数组的数据长度为128bit。因此,发送端从第n个加密子数据对应的第二子参数组中截取出与第n个待加密数据的数据长度相同的第三子参数组。
上述步骤106中异或运算可以理解为:将第n个待加密子数据与第三子参数组进行加密,得到第n个加密子数据的运算。
在上述步骤106中,由于第n个待加密子数据的数据长度与第三子参数组的数据长度相同,且均小于128bit。因此,通过异或运算,可得到第n个数据长度小于128bit的加密子数据。
为了便于理解,下面结合图2进行示例性说明。
图2示出根据本公开一实施方式的数据加密方法的示例图。
如图2中的(a)所示,其示例性给出了发送端对待加密数据进行加密的过程。
发送端获取到待加密数据时,可将待加密数据分割为n个待加密子数据,分别为D1,D2,...,Dn。其中,D1至Dn-1的数据长度均为128bit,假设Dn的数据长度小于128bit。
发送端也可获取到每个待加密子数据对应的第一子参数组,分别为A1,A2,...,An,其中,A1至An的数据长度均为128bit。
从第1个待加密子数据得到第1个加密子数据的过程为:将第1个待加密子数据D1对应的第一子参数组A1和共享密码SK作为SM4算法的输入,通过SM4算法输出第1个加密后的第一子参数组(也就是第1个第二子参数组),即eA1。再将第1个加密后的第一子参数组eA1和第1个待加密子数据D1进行异或运算,得到第1个加密子数据eD1。
从第2个待加密子数据得到第2个加密子数据的过程为:将第2个待加密子数据D2对应的第一子参数组A2和共享密码SK作为SM4算法的输入,通过SM4算法输出第2个加密后的第一子参数组(也就是第2个第二子参数组),即eA2。再将第2个加密后的第一子参数组eA2和第2个待加密子数据D2进行异或运算,得到第2个加密子数据eD2。
从第n个待加密子数据得到第n个加密子数据的过程为:将第n个待加密子数据Dn对应的第一子参数组An和共享密码SK作为SM4算法的输入,通过SM4算法输出第n个加密后的第一子参数组(也就是第n个第二子参数组),即eAn。由于第n个加密后的第一子参数组eAn的数据长度为128bit,而第n个待加密子数据Dn的数据长度小于128bit,则对第n个加密后的第一子参数组eAn进行数据截取,得到与第n个待加密子数据Dn的数据长度相同的第三子参数组eBn,再将第三子参数组eBn和第n个待加密子数据Dn进行异或运算,得到第n个加密子数据eDn。
之后,发送端将eD1,eD2,...,eDn依次拼接,即可得到加密数据。
在上述实施方式中,发送端对待加密数据进行加密时,可将待加密数据以128bit的数据长度分割为n个待加密子数据。针对每个待加密子数据,将待加密子数据对应的第一子参数组和共享密钥作为SM4算法的输入,通过SM4算法输出加密的第一子参数组。若存在第一子参数组对应的待加密子数据的数据长度不足128bit,只需要从加密的第一子参数组中截取出与待加密子数据同样数据长度的第三子参数组,再将该第三子参数组与对应的待加密数据通过异或运算即可得到加密子数据,无需对不足128bit的待加密子数据额外填充冗余数据,避免了带宽被冗余数据的占用。并且,由于SM4算法和异或运算均对输入的数据进行了加密,也保证了数据传输的安全性。
在本公开一实施方式中,上述方法100还可以包括:
当第n个待加密子数据的数据长度等于128bit时,将第n个待加密子数据与第n个待加密子数据对应的第二子参数组进行异或运算,得到第n个加密子数据。
在该实施方式中,在第n个待加密子数据的数据长度等于128bit时,由于与第n个待加密子数据对应的第二子参数组的数据长度也为128bit,则发送端无需对该第二子参数组进行数据截取,直接将第n个待加密子数据与第n个待加密子数据对应的第二子参数组进行异或运算,即可得到第n个加密子数据。换言之,在第n个待加密子数据的数据长度等于128bit时,发送端不执行前述步骤105和步骤106,而是依照步骤104的处理方式得到第n个加密子数据。
在本公开一实施方式中,上述方法100还可以包括:
获取待加密数据的消息认证码,以及消息认证码对应的第四子参数组,该第四子参数组的数据长度为128bit;
根据第四子参数组和共享密钥,基于预设的SM4算法,得到消息认证码对应的第五子参数组;
当消息认证码的数据长度小于128bit时,在第五子参数组中进行数据截取,以获取第六子参数组,该第六子参数组的数据长度等于消息认证码的数据长度;
将消息认证码与第六子参数组进行异或运算,得到加密消息认证码;
此时,步骤107,可以包括:
将第1个加密子数据至第n个加密子数据、以及加密消息认证码依次拼接,得到加密数据。
在本公开中,消息认证码(message authentication code,MAC)可用于保证通信数据的完整性,该MAC具有对应的第四子参数组。
在本公开一实施方式中,第四子参数组包括:帧计数器的计数值、方向位和初始化向量。
其中,帧计数器的计数值为:截止目前,发送端的帧计数器所统计的发送端向接收端发送的数据次数。
在本公开一实施方式中,第四子参数组的数据长度和所包含的参数类型是发送端和接收端预先协商好的,该第四子参数组的数据长度指第四子参数组中所包含的所有参数的数据长度之和。
在本公开一实施方式中,第五子参数组为加密后的第四子参数组。
应理解,在该实施方式中,对第五子参数组进行数据截取时,截取位置的选取方式与前述步骤105中截取位置的选取方式相同,不再赘述。
示例性地,如图2中的(a)中的虚线框中所示的内容,其示出了从消息认证码得到加密消息认证码的过程。
具体地,将消息认证码MAC对应的第四子参数组A0和共享密码SK作为SM4算法的输入,通过SM4算法输出加密后的第四子参数组(也就是第五子参数组),即eA0。假设消息认证码MAC的数据长度小于128bit,而第五子参数组eA0的数据长度等于128bit,则对第五子参数组eA0进行数据截取,得到与消息认证码MAC的数据长度相同的第六子参数组eA0',再将第六子参数组eA0'和消息认证码MAC进行异或运算,得到加密消息认证码eMAC。之后,可将eD1,...,eDi,...,eDn,eMAC依次拼接,从而得到加密数据。
在该实施方式中,发送端可通过上述方式,可得到加密消息认证码,由于在加密数据中携带了加密消息认证码,确保了加密数据的完整性。同时,在消息认证码的数据长度不足128bit时,对消息认证码对应的加密后的第四子参数组进行数据截取,得到与消息认证码数据长度相同的第六子参数组后,再通过异或运算得到加密消息认证码的过程中,未填充额外的无用数据,也避免了无用数据对带宽的占用。
在本公开一实施方式中,在得到加密消息认证码的过程中,方法100还可以包括:
当消息认证码的数据长度等于128bit时,将消息认证码与消息认证码对应的第五子参数组进行异或运算,得到加密消息认证码。
在该实施方式中,在消息认证码的数据长度等于128bit时,发送端无需对第五子参数组进行数据截取,直接将消息认证码与消息认证码对应的第五子参数组进行异或运算,即可得到加密消息认证码。
下面,根据待加密数据的不同数据长度,对消息认证码的获取方式进行分别介绍。
在本公开一实施方式中,在待加密数据的数据长度大于128bit时,发送端可通过如下方式获取消息认证码:
将待加密数据对应的第二参数组与第1个待加密子数据进行异或运算,得到第1加密混淆结果;
根据第1加密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第1加密混淆结果;
将加密后的第j-1加密混淆结果与第j个待加密子数据进行异或运算,得到第j加密混淆结果,其中2≤j<n,且j依次取[2,n)中的每一个值;
根据第j加密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第j加密混淆结果;
当第n个待加密子数据的数据长度小于128bit时,对第n个待加密子数据进行冗余数据填充,得到第n'个待加密子数据,该第n'个待加密子数据的数据长度为128bit;
将加密后的第n-1加密混淆结果和第n'个待加密子数据进行异或运算,得到第n加密混淆结果;
根据第n加密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第n加密混淆结果;
在加密后的第n加密混淆结果中进行预设长度的数据截取,以获取消息认证码。
在本公开中,待加密数据具有对应的第二参数组,第二参数组的数据长度为128bit。需要说明的是,第二参数组的获取方式可见后文介绍,在此暂不赘述。
该处的异或运算可以理解为:在发送端,对输入的数据进行混淆运算,经过混淆运算所输出的结果可以称为加密混淆结果。
在待加密数据的数据长度大于128bit时,发送端可将第二参数组和第1个待加密子数据作为初始输入参数,通过异或运算对其进行混淆,以得到第1加密混淆结果。
发送端继续将第1加密混淆结果和共享密钥作为SM4算法的输入参数,通过SM4算法输出加密后的第1加密混淆结果。
之后,发送端可执行循环运算,从第2个待加密子数据一直依次迭代混淆和加密至第n-1个待加密子数据。
具体地,发送端将加密后的第1加密混淆和第2个待加密子数据进行混淆运算,得到第2加密混淆结果,再将第2加密混淆结果和共享密钥作为SM4算法的输入,通过SM4算法得到加密后的第2加密混淆结果;发送端继续将加密后的第2加密混淆结果和第3个待加密子数据进行混淆运算,得到第3加密混淆结果,再将第3加密混淆结果和共享密钥作为SM4算法的输入,通过SM4算法得到加密后的第3加密混淆结果;…;发送端继续将加密后的第n-2加密混淆结果和第n-1个待加密子数据进行混淆运算,得到第n-1加密混淆结果,再将第n-1加密混淆结果和共享密钥作为SM4算法的输入,通过SM4算法可得到数据长度为128bit的加密后的第n-1加密混淆结果。
由于加密后的第n-1加密混淆结果的数据长度为128bit,若第n个待加密子数据的数据长度不足128bit,就无法保证后续正常的迭代混淆。因此,在第n个待加密子数据的数据长度小于128bit时,可采用冗余数据对第n个待加密数据进行填充,使得第n个待加密子数据的数据长度达到128bit。例如,可使用数字“0”来填充第n个待加密子数据中的空缺的比特位,填充后的第n个待加密数据可以记为第n'个待加密子数据。
之后,发送端可将加密后的第n-1加密混淆结果和第n'个待加密子数据进行混淆运算,得到第n加密混淆结果,再将第n加密混淆结果和共享密钥作为SM4算法的输入,通过SM4算法输出加密后的第n加密混淆结果。至此,整个迭代混淆和加密过程结束。
应理解,整个迭代混淆和加密过程结束后,所得到的加密后的第n加密混淆结果的数据长度为128bit。
之后,发送端可对加密后的第n加密混淆结果进行数据截取,将截取得到的数据段作为消息认证码。其中,截取的数据段的数据长度≤128bit。
在本公开一实施方式中,在上述获取消息认证码的过程中,当第n个待加密子数据的数据长度等于128bit时,将加密后的第n-1加密混淆结果和第n个待加密子数据进行异或运算,得到第n加密混淆结果,进而根据第n加密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第n加密混淆结果,并在加密后的第n加密混淆结果中进行预设长度的数据截取,以得到消息认证码。
由于发送端所生成的加密数据在传输过程中,可能出现被危险的第三方设备截取加密数据的情况。若第三方设备的解密功能强大,就可能出现数据被窃取、篡改、重放攻击等攻击手段,就无法保证接收端接收到的是完整的数据。并且,对于接收端而言,由于其并不知道发送端发送的数据内容,即使接收到的数据不完整,发送端也无法获知,导致出现错误的数据通信。因此,在该实施方式中,发送端在获取消息认证码时,可通过异或运算,将待加密数据的参数组和待加密子数据进行循环地、迭代混淆运算,并结合加密算法,在保证数据安全性的同时,实现了对数据的完整性保护。
在本公开一实施方式中,在待加密数据的数据长度等于128bit时,发送端也可通过如下方式,来获取消息认证码:
将待加密数据对应的第二参数组与第1个待加密子数据进行异或运算,得到第1加密混淆结果;
根据第1加密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第1加密混淆结果;
在加密后的第1加密混淆结果中进行预设长度的数据截取,以获取消息认证码。
在该实施方式中,若待加密数据的数据长度等于128bit,则该待加密数据只可分割到一个数据长度为128bit的待加密子数据。因此,在获取消息认证码时,发送端无需执行迭代混淆和循环的加密运算,也无需进行冗余数据的填充,直接对该待加密子数据执行一次异或运算、SM4算法以及数据截取,就可得到消息认证码。
在本公开一实施方式中,在待加密数据的数据长度小于128bit时,发送端还可通过如下方式,来获取消息认证码:
对第1个待加密子数据进行冗余数据填充,得到第1'个待加密子数据,该第1'个待加密子数据的数据长度为128bit;
将待加密数据对应的第二参数组与第1'个待加密子数据进行异或运算,得到第1加密混淆结果;
根据第1加密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第1加密混淆结果;
在加密后的第1加密混淆结果中进行预设长度的数据截取,以获取消息认证码。
在该实施方式中,若待加密数据的数据长度小于128bit,则该待加密数据只可分割到一个数据长度小于128bit的待加密子数据。因此,在获取消息认证码时,发送端无需执行迭代混淆和循环的加密运算,但需要进行冗余数据的填充。即,先对该待加密子数据进行冗余数据的填充,将其数据长度填充到128bit,再基于填充后的该待加密子数据,执行一次异或运算、SM4算法以及数据截取,从而得到消息认证码。
在本公开一实施方式中,上述待加密数据对应的第二参数组可通过如下方式得到:
获取待加密数据对应的第一参数组,该第一参数组的数据长度为128bit;
根据第一参数组和共享密钥,基于预设的SM4算法,得到待加密数据对应的第二参数组。
在本公开一实施方式中,第一参数组包括:待加密数据的数据长度、帧计数器的计数值、方向位、初始化向量和认证标识。
其中,帧计数器的计数值仍旧为:截止目前,发送端的帧计数器所统计的发送端向接收端发送的数据次数。
在本公开一实施方式中,第一参数组的数据长度和所包含的参数类型也是发送端和接收端预先协商好的,该第一参数组的数据长度指第一参数组中所包含的所有参数的数据长度之和。
在本公开中,第二参数组为加密后的第一参数组,第二参数组的数据长度也为128bit。
在该实施方式中,发送端可根据与接收端预先协商好的共享密钥和第一参数组,基于SM4算法,可得到加密的第一参数组
为了对消息认证码的获取方式更好的理解,下面结合图2进行示例性说明。
如图2中的(b)所示,其示出了消息认证码的获取过程。
发送端将待加密数据对应的第一参数组B0和共享密钥SK作为SM4算法的输入,通过SM4算法输出加密后的第一参数组(也就是第二参数组)eB0。
假设待加密数据的数据长度大于128bit,则发送端继续将第二参数组eB0和第1个待加密子数据D1通过异或运算进行混淆,得到第1加密混淆结果X1,再将第1加密混淆结果X1和共享密钥SK作为SM4算法的输入,通过SM4算法输出加密后的第1加密混淆结果,即eX1。
发送端继续将加密后的第1加密混淆eX1和第2个待加密子数据D2通过混淆运算进行混淆,得到第2加密混淆结果X2,再将第2加密混淆结果X2和共享密钥SK作为SM4算法的输入,通过SM4算法得到加密后的第2加密混淆结果eX2。
假设第n个待加密子数据Dn的数据长度小于128bit,则发送端对第n个待加密子数据Dn填充冗余数据,得到第n'个待加密子数据Dn'。之后,发送端继续将加密后的第n-1加密混淆结果 eXn-1和第n'个待加密子数据Dn'通过混淆运算进行混淆,得到第n加密混淆结果Xn,再将第n加密混淆结果Xn和共享密钥SK作为SM4算法的输入,通过SM4算法得到加密后的第n加密混淆结果eXn。最后,可从加密后的第n加密混淆结果eXn中截取一定长度的数据(例如,截取32bit的数据),作为如图2中的(a)中所示的消息认证码。
在本公开一实施方式中,第一参数组还包括:附加认证数据,该附加认证数据的数据长度为128bit。例如,附加认证数据可以为帧头部部分信息。
在本公开一实施方式中,发送端在得到待加密数据对应的第二参数组之后,以及将待加密数据对应的第二参数组与第1个待加密子数据进行异或运算之前,还可以包括如下过程:
将第二参数组与附加认证数据进行异或运算,得到附加认证混淆结果;
根据附加认证混淆结果和共享密钥,基于预设的SM4算法,得到加密后的附加认证混淆结果;
将加密后的附加认证混淆结果作为待加密数据对应的第二参数组。
在该实施方式中,发送端还可以将附加认证数据加入前述的循环过程,进行迭代混淆和加密,以进一步提高对数据完整性的保护。
示例性地,如图2中的(b)中虚线框所示的内容,发送端在得到第二参数组eB0后,继续将该第二参数组eB0和附加认证数据C0通过异或运算进行混淆,得到附加认证混淆结果X0,再将附加认证混淆结果X0和共享密钥SK作为SM4算法的输入,通过SM4算法输出加密后的附加认证混淆结果,即eX0。此时,将加密后的附加认证混淆结果eX0作为新的第二参数组,继续进入后续的迭代循环过程。
图3示出根据本公开一实施方式的数据解密方法的流程图。
如图3所示,该方法300可以包括步骤301至步骤307,其可以由接收端实现,也可以由能够提供接收端功能的物理设备来执行,或者也可以由配置在物理设备中的部件(如芯片等)来执行,或者还可以是能够实现部分或全部接收端功能的模块来执行等等,本申请对此不作限定。
为了便于理解,本公开以接收端为例来描述本公开提供的方法。下面对方法300中的各个步骤做详细说明。
在步骤301中,接收发送端的待解密数据,并将待解密数据分割为n个待解密子数据,其中n≥1,且至少前n-1个待解密子数据中每个待解密子数据的数据长度为128bit。
在步骤302中,获取每个待解密子数据对应的第一子参数组,该第一子参数组的数据长度为128bit。
在步骤303中,根据每个待解密子数据对应的第一子参数组和共享密钥,基于预设的SM4算法,得到每个待解密子数据对应的第二子参数组。
在步骤304中,将n个待解密子数据中前n-1个待解密子数据中的每个待解密子数据,与前n-1个待解密子数据中的每个待解密子数据对应的第二子参数组进行异或运算,得到n-1个解密子数据。
在步骤305中,当第n个待解密子数据的数据长度小于128bit时,在第n个待解密子数据对应的第二子参数组中进行数据截取,以获取第三子参数组,该第三子参数组的数据长度等于第n个待解密子数据的数据长度。
在步骤306中,将第n个待解密子数据与第三子参数组进行异或运算,得到第n个解密子数据。
在步骤307中,将第1个解密子数据至第n个解密子数据依次拼接,得到解密数据。
在本公开中,待解密数据为接收端从发送端接收到的加密数据。待解密子数据为接收端以预设的数据分割长度对待解密数据进行分割得到的多个数据段。
在本公开一实施方式中,接收端对待解密数据数据进行分割的数据分割长度与发送端对待加密数据进行分割的数据分割长度是预先协商好的。例如,发送端以128bit的数据分割长度来分割待加密数据时,接收端也以128bit的数据分割长度来分割待解密数据。
在上述步骤301中,接收端分割得到的前n-1个待解密子数据中每个待解密子数据的数据长度等于128bit,第n个待解密子数据的数据长度可以等于128bit,也可以小于128bit。
在本公开一实施方式中,第一子参数组包括:帧计数器的计数值、方向位、初始化向量和第一子参数组的标识。
其中,帧计数器的计数值可以为:截止目前,接收端的帧计数器所统计的接收端从发送端接收到的数据次数。
如方法100中的介绍可知,第一子参数组的数据长度和所包含的参数类型是发送端和接收端预先协商好的。因此,在本公开一实施方式中,发送端的待加密子数据对应的第一子参数组的标识和接收端的待解密子数据对应的第一子参数组的标识可以相同。
在上述步骤302中,接收端同样可获取到n个数据长度均为128bit的第一子参数组,且多个第一子参数组之间互不相同。
在本公开中,待解密子数据对应的第二子参数组也为加密后的第一子参数组。该第二子参数组的数据长度与第一子参数组的数据长度相同。
在上述步骤303中,通过SM4算法,接收端同样可得到n个加密后的第一子参数组。
上述步骤304中的异或运算可以理解为:将待解密子数据与加密后的第一子参数组进行解密,得到解密子数据的运算。
在上述步骤304中,由于前n-1个待解密子数据的数据长度均为128bit,且前n-1个第二子参数组的数据长度也均为128bit。因此,通过异或运算,可得到n-1个数据长度为128bit的解密子数据。
在上述步骤305中,由于第n个待解密子数据的数据长度小于128bit,而第n个待解密子数据对应的第二子参数组的数据长度为128bit。因此,接收端可从第n个第二子参数组中截取出与第n个待解密数据的数据长度相同的第三子参数组。
上述步骤306中异或运算可以理解为:将待解密子数据与第三子参数组进行解密,得到解密子数据的运算。
在上述步骤306中,由于第n个待解密子数据的数据长度与第三子参数组的数据长度相同,且均小于128bit。因此,通过异或运算,可得到第n个数据长度小于128bit的解密子数据。
为了便于理解,下面结合图4进行示例性说明。
图4示出根据本公开一实施方式的数据解密方法的示例图。
如图4中的(a)所示,其示例性给出了接收端对待解密数据进行解密的过程。
接收端接收到待解密数据时,可将待解密数据分割为n个待解密子数据,分别为eD1,eD2,...,eDn。其中,eD1至eDn-1的数据长度均为128bit,假设eDn的数据长度小于128bit。
接收端也可获取到每个待解密子数据对应的第一子参数组,分别为A1,A2,...,An,其中,A1至An的数据长度均为128bit。
从第1个待解密子数据得到第1个解密子数据的过程为:将第1个待解密子数据eD1对应的第一子参数组A1和共享密码SK作为SM4算法的输入,通过SM4算法输出第1个第二子参数组eA1。再将第1个第二子参数组eA1和第1个待解密子数据eD1进行异或运算,得到第1个解密子数据D1。
从第2个待解密子数据得到第2个解密子数据的过程为:将第2个待解密子数据eD2对应的第一子参数组A2和共享密码SK作为SM4算法的输入,通过SM4算法输出第2个第二子参数组eA2。再将第2个第二子参数组eA2和第2个待解密子数据eD2进行异或运算,得到第2个解密子数据D2。
从第n个待解密子数据得到第n个解密子数据的过程为:将第n个待解密子数据eDn对应的第一子参数组An和共享密码SK作为SM4算法的输入,通过SM4算法输出第n个第二子参数组eAn。由于第n个第二子参数组eAn的数据长度为128bit,而第n个待解密子数据eDn的数据长度小于128bit,则对第n个第二子参数组eAn截取,得到与第n个待解密子数据eDn的数据长度相同的第三子参数组eBn,再将第三子参数组eBn和第n个待解密子数据eDn进行异或运算,得到第n个解密子数据Dn。
之后,接收端将D1,D2,...,Dn依次拼接,即可得到解密数据。
在上述实施方式中,接收端对待解密数据进行解密时,可将待解密数据以128bit的数据长度分割为n个待解密子数据。针对每个待解密子数据,将待解密子数据对应的第一子参数组和共享密钥作为SM4算法的输入,通过SM4算法输出加密的第一子参数组。若存在第一子参数组对应的待解密子数据的数据长度不足128bit,只需要从加密的第一子参数组中截取与待解密子数据同等数据长度的第三子参数组,再将该第三子参数组与对应的待解密子数据通过异或运算即可得到解密子数据。
在本公开一实施方式中,接收端在得到第n个解密子数据时,还可存在如下情况:
当第n个待解密子数据的数据长度等于128bit时,将第n个待解密子数据与第n个待解密子数据对应的第二子参数组进行异或运算,得到第n个解密子数据。
在该实施方式中,在第n个待解密子数据的数据长度等于128bit时,接收端不执行步骤305和步骤306,而是可依照步骤304的处理方式得到第n个解密子数据。
在本公开一实施方式中,上述方法300还可以包括:
获取待解密数据的待解密消息认证码,以及获取待解密消息认证码对应的第四子参数组,该第四子参数组的数据长度为128bit;
根据第四子参数组和共享密钥,基于预设的SM4算法,得到待解密消息认证码对应的第五子参数组;
当待解密消息认证码的数据长度小于128bit时,在第五子参数组中进行数据截取,以获取第六子参数组,该第六子参数组的数据长度等于待解密消息认证码的数据长度;
将待解密消息认证码与第六子参数组进行异或运算,得到解密消息认证码。
在本公开中,发送端和接收端可预先协商好待解密消息认证码在待解密数据中的位置,接收端可基于协商好的位置,从待解密数据中对应的位置分割得到待解密消息认证码。
在本公开一实施方式中,第四子参数组包括:帧计数器的计数值、方向位和初始化向量。
其中,帧计数器的计数值为:截止目前,接收端的帧计数器所统计的接收端从发送端接收到的数据的次数。
需要说明的是,由于第四子参数组的数据长度和所包含的参数类型是发送端和接收端预先协商好的。因此,在本公开一实施方式中,接收端的待解密消息认证码对应的第四子参数组的标识与发送端的消息认证码对应的第四子参数组的标识相同。
在本公开一实施方式中,第五子参数组为加密后的第四子参数组,该第五子参数的数据长度为128bit。
在本公开一实施方式中,接收端在得到解密消息认证码时,还可存在如下情况:
当待解密消息认证码的数据长度等于128bit时,将待解密消息认证码与待解密消息认证码对应的第五子参数组进行异或运算,得到解密消息认证码。
示例性地,如图4中的(a)中的虚线框中所示的内容,其示出了从待解密消息认证码得到解密消息认证码的过程。
具体地,将待解密消息认证码eMAC对应的第四子参数组A0和共享密码SK作为SM4算法的输入,通过SM4算法输出第五子参数组eA0。假设待解密消息认证码eMAC的数据长度小于128bit,而第五子参数组eA0的数据长度等于128bit,则对第五子参数组eA0截取,得到与待解密消息认证码eMAC的数据长度相同的第六子参数组eA0',再将第六子参数组eA0'和待解密消息认证码eMAC进行异或运算,从而得到解密消息认证码MAC。
在该实施方式中,在待解密消息认证码的数据长度不足128bit,且第五子参数组的数据长度为128bit时,接收端无需对待解密消息认证码填充冗余数据,而是从第五子参数组截取出与待解密消息认证码的数据长度相同的第六子参数组,再对待解密消息认证码进行解密,从而得到解密消息认证码。
在本公开一实施方式中,接收端在得到解密消息认证码之后,还可以包括如下过程:
根据解密子数据、共享密钥和待解密数据对应的第二参数组,基于预设的SM4算法和异或运算,获取本地消息认证码;
在解密消息认证码与本地消息认证码不同时,生成告警信息,该告警信息用于指示数据完整性校验失败。
由于发送端向接收端发送的数据在传输过程中经常被危险的第三方设备截取,在第三方设备的解密功能强大时,可能对数据进行篡改或重放攻击,无法保证接收端接收到的是完整的数据。因此,在该实施方式中,接收端从待解密数据中解密出消息认证码后,可在本地生成一个新的消息认证码。由于解密出的消息认证码表征了发送端在发送数据之前,该数据的数据情况,而本地新生成的消息认证码表征了接收端在接收到待解密数据之后,当前待解密数据的情况。若解密出的消息认证码与本地生成的消息认证码相同,说明待解密数据未被第三方设备篡改或重放攻击,认为待解密数据完整;若解密出的消息认证码与本地生成的消息认证码不同,说明待解密数据被第三方设备进行了篡改或重放攻击,认为待解密数据不完整,则接收端可生成告警信息,以指示数据完整性校验失败。
下面,根据待解密数据的不同数据长度,对本地消息认证码的获取方式进行分别介绍。
在本公开一实施方式中,在待解密数据的数据长度大于128bit时,接收端可通过如下方式获取本地消息认证码:
将待解密数据对应的第二参数组与第1个解密子数据进行异或运算,得到第1解密混淆结果;
根据第1解密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第1解密混淆结果;
将加密后的第j-1解密混淆结果与第j个解密子数据进行异或运算,得到第j解密混淆结果,其中2≤j<n,且j依次取[2,n)中的每一个值;
根据第j解密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第j解密混淆结果;
当第n个解密子数据的数据长度小于128bit时,对第n个解密子数据进行冗余数据填充,得到第n'个解密子数据,该第n'个解密子数据的数据长度为128bit;
将加密后的第n-1解密混淆结果和第n'个解密子数据进行异或运算,得到第n解密混淆结果;
根据第n解密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第n解密混淆结果;
在加密后的第n解密混淆结果中进行预设长度的数据截取,以获取本地消息认证码。
在本公开中,该处的异或运算可以理解为:在接收端,对输入的数据进行混淆运算,经过混淆运算所输出的结果可以称为解密混淆结果。
在本公开中,接收端的解密子数据也就是发送端的待加密子数据,因此,两者可采用相同的标识。类似地,接收端的解密混淆结果与发送端的加密混淆结果可采用相同的标识,接收端的加密后的解密混淆结果与发送端的加密后的加密混淆结果可采用相同的标识。
在本公开一实施方式中,在获取本地消息认证码的过程中,还可以存在如下情况:
当第n个解密子数据的数据长度等于128bit时,将加密后的第n-1解密混淆结果和第n个解密子数据进行异或运算,得到第n解密混淆结果,进而根据第n解密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第n解密混淆结果,并在加密后的第n解密混淆结果中进行预设长度的数据截取,以获取本地消息认证码。
在该实施方式中,接收端在确定本地消息认证码时,同样可通过异或运算,将每个解密子数据和参数组进行循环地、迭代混淆运算。由于接收端和发送端生成消息认证码的方式相同,从而使得接收端本地生成的消息认证码与解密出的消息认证码可更加准确的比较。
在本公开一实施方式中,在待解密数据的数据长度等于128bit时,接收端可通过如下方式获取本地消息认证码:
将待解密数据对应的第二参数组与第1个解密子数据进行异或运算,得到第1解密混淆结果;
根据第1解密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第1解密混淆结果;
在加密后的第1解密混淆结果中进行预设长度的数据截取,以获取本地消息认证码。
在该实施方式中,若待解密数据的数据长度等于128bit,则该待解密数据只可分割到一个数据长度为128bit的待解密子数据。因此,在获取本地消息认证码时,接收端无需执行迭代循环运算,也无需进行冗余数据的填充,直接对该待解密子数据执行一次异或运算、SM4算法以及数据截取,就可得到本地消息认证码。
在本公开一实施方式中,在待解密数据的数据长度小于128bit时,接收端可通过如下方式获取本地消息认证码:
对第1个解密子数据进行冗余数据填充,得到第1'个解密子数据,该第1'个解密子数据的数据长度为128bit;
将待解密数据对应的第二参数组和第1'个解密子数据进行异或运算,得到第1解密混淆结果;
根据第1解密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第1解密混淆结果;
在加密后的第1解密混淆结果中进行预设长度的数据截取,以获取本地消息认证码。
在该实施方式中,若待解密数据的数据长度小于128bit,则该待解密数据只可分割到一个数据长度小于128bit的待解密子数据。因此,在获取本地消息认证码时,接收端无需执行迭代循环运算,但需要进行冗余数据的填充。即,先对该待解密子数据进行冗余数据的填充,将其数据长度填充到128bit,再基于填充后的待解密子数据,执行一次异或运算、SM4算法以及数据截取,从而得到本地消息认证码。
在本公开一实施方式中,待加密数据对应的第二参数组可通过如下过程得到:
获取待解密数据对应的第一参数组,该第一参数组的数据长度为128bit;
根据第一参数组和共享密钥,基于预设的SM4算法,得到待解密数据对应的第二参数组。
在本公开一实施方式中,该第一参数组包括:待解密数据的数据长度、帧计数器的计数值、方向位、初始化向量和认证标识。其中,帧计数器的计数值仍旧为:截止目前,接收端的帧计数器所统计的接收端从发送端接收到的数据的次数。
由于第一参数组的数据长度和所包含的参数类型也是发送端和接收端预先协商好的。因此,在本公开一实施方式中,发送端的第一参数组的标识和接收端的第一参数组的标识可以相同。
在本公开中,该第二参数组同样为加密后的第一参数组。相应地,接收端的第二参数组和发送端的第二参数组的标识可以相同。
在该实施方式中,接收端也可采取与发送端相同的方式来获取待解密数据对应的第二参数组,从而使得接收端本地生成的消息认证码与解密出的消息认证码可进一步精准的比较。
为了对本地消息认证码的获取方式更好的理解,下面结合图4进行示例性说明。
如图4中的(b)所示,其示出了本地消息认证码的获取过程。
接收端将待解密数据对应的第一参数组B0和共享密钥SK作为SM4算法的输入,通过SM4算法输出第二参数组eB0。
接收端继续将第二参数组eB0和第1个解密子数据D1通过异或运算进行混淆,得到第1解密混淆结果X1,再将第1解密混淆结果X1和共享密钥SK作为SM4算法的输入,通过SM4算法输出加密后的第1解密混淆结果,即eX1。
接收端继续将加密后的第1解密混淆eX1和第2个解密子数据D2通过混淆运算进行混淆,得到第2解密混淆结果X2,再将第2解密混淆结果X2和共享密钥SK作为SM4算法的输入,通过SM4算法得到加密后的第2解密混淆结果eX2。
在第n个解密子数据Dn的数据长度小于128bit时,接收端对其填充冗余数据,得到第n'个解密子数据Dn'。之后,接收端继续将加密后的第n-1解密混淆结果 eXn-1和第n'个解密子数据Dn'通过混淆运算进行混淆,得到第n解密混淆结果Xn,再将第n解密混淆结果Xn和共享密钥SK作为SM4算法的输入,通过SM4算法得到加密后的第n解密混淆结果eXn。最后,从加密后的第n解密混淆结果eXn中截取与解密消息认证码的数据长度相同的数据,作为本地消息认证码mac。之后,通过比较本地消息认证码mac和解密消息认证码MAC是否相同,就可确定接收到的待解密数据是否完整。
在本公开一实施方式中,第一参数组还包括:附加认证数据,该附加认证数据的数据长度为128bit。
由于第一参数组的数据长度和所包含的参数类型也是发送端和接收端预先协商好的。因此,发送端的附加认证数据和接收端的附加认证数据的标识可以相同。
在本公开一实施方式中,接收端在得到待解密数据对应的第二参数组之后,以及将待解密数据对应的第二参数组与第1个待解密子数据进行异或运算之前,还可以包括如下过程:
将第二参数组与附加认证数据进行异或运算,得到附加认证混淆结果;
根据附加认证混淆结果和共享密钥,基于预设的SM4算法,得到加密后的附加认证混淆结果;
将加密后的附加认证混淆结果作为待解密数据对应的第二参数组。
示例性地,可见如图4中的(b)中虚线框所示的内容,具体可参照前述方法100中的相关描述,在此不再赘述。
在该实施方式中,接收端还可以将附加认证数据加入前述的循环过程,进行迭代混淆和加密,使生成的本地消息认证码更契合解密出的消息认证码。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图5示出根据本公开一实施方式的数据加密装置或数据解密装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。
如图5所示,在装置500为数据加密装置时,该装置500可应用于发送端,该装置500包括:
获取模块510,被配置为获取待加密数据,并将待加密数据分割为n个待加密子数据,其中n≥1,且至少前n-1个待加密子数据中每个待加密子数据的数据长度为128bit;获取每个待加密子数据对应的第一子参数组,第一子参数组的数据长度为128bit;
处理模块520,被配置为根据每个待加密子数据对应的第一子参数组和共享密钥,基于预设的SM4算法,得到每个待加密子数据对应的第二子参数组;将n个待加密子数据中前n-1个待加密子数据中的每个待加密子数据,与前n-1个待加密子数据中的每个待加密子数据对应的第二子参数组进行异或运算,得到n-1个加密子数据;当第n个待加密子数据的数据长度小于128bit时,在第n个待加密子数据对应的第二子参数组中进行数据截取,以获取第三子参数组,第三子参数组的数据长度等于第n个待加密子数据的数据长度;将第n个待加密子数据与第三子参数组进行异或运算,得到第n个加密子数据;
发送模块530,被配置为将第1个加密子数据至第n个加密子数据依次拼接,得到加密数据,并向接收端发送加密数据。
在本公开一实施方式中,处理模块520,还被配置为当第n个待加密子数据的数据长度等于128bit时,将第n个待加密子数据与第n个待加密子数据对应的第二子参数组进行异或运算,得到第n个加密子数据。
在本公开一实施方式中,第一子参数组包括:帧计数器的计数值、方向位、初始化向量和第一子参数组的标识。
在本公开一实施方式中,获取模块510,还被配置为获取待加密数据的消息认证码,以及消息认证码对应的第四子参数组,第四子参数组的数据长度为128bit;
处理模块520,还被配置为根据第四子参数组和共享密钥,基于预设的SM4算法,得到消息认证码对应的第五子参数组;当消息认证码的数据长度小于128bit时,在第五子参数组中进行数据截取,以获取第六子参数组,第六子参数组的数据长度等于消息认证码的数据长度;将消息认证码与第六子参数组进行异或运算,得到加密消息认证码;将第1个加密子数据至第n个加密子数据依次拼接,得到加密数据,包括:将第1个加密子数据至第n个加密子数据、以及加密消息认证码依次拼接,得到加密数据。
在本公开一实施方式中,第四子参数组包括:帧计数器的计数值、方向位和初始化向量。
在本公开一实施方式中,在待加密数据的数据长度大于128bit时,处理模块520,还被配置为将待加密数据对应的第二参数组与第1个待加密子数据进行异或运算,得到第1加密混淆结果;根据第1加密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第1加密混淆结果;将加密后的第j-1加密混淆结果与第j个待加密子数据进行异或运算,得到第j加密混淆结果,其中2≤j<n,且j依次取[2,n)中的每一个值;根据第j加密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第j加密混淆结果;当第n个待加密子数据的数据长度小于128bit时,对第n个待加密子数据进行冗余数据填充,得到第n'个待加密子数据,第n'个待加密子数据的数据长度为128bit;将加密后的第n-1加密混淆结果和第n'个待加密子数据进行异或运算,得到第n加密混淆结果;根据第n加密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第n加密混淆结果;
获取模块510,还被配置为在加密后的第n加密混淆结果中进行预设长度的数据截取,以获取消息认证码。
在本公开一实施方式中,在待加密数据的数据长度等于128bit时,处理模块520,还被配置为将待加密数据对应的第二参数组与第1个待加密子数据进行异或运算,得到第1加密混淆结果;根据第1加密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第1加密混淆结果;
获取模块510,还被配置为在加密后的第1加密混淆结果中进行预设长度的数据截取,以获取消息认证码。
在本公开一实施方式中,在待加密数据的数据长度小于128bit时,处理模块520,还被配置为对第1个待加密子数据进行冗余数据填充,得到第1'个待加密子数据,第1'个待加密子数据的数据长度为128bit;将待加密数据对应的第二参数组与第1'个待加密子数据进行异或运算,得到第1加密混淆结果;根据第1加密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第1加密混淆结果;
获取模块510,还被配置为在加密后的第1加密混淆结果中进行预设长度的数据截取,以获取消息认证码。
在本公开一实施方式中,获取模块510,还被配置为获取待加密数据对应的第一参数组,第一参数组的数据长度为128bit;
处理模块520,还被配置为根据第一参数组和共享密钥,基于预设的SM4算法,得到待加密数据对应的第二参数组。
在本公开一实施方式中,第一参数组包括:待加密数据的数据长度、帧计数器的计数值、方向位、初始化向量和认证标识。
在本公开一实施方式中,第一参数组还包括:附加认证数据,附加认证数据的数据长度为128bit。
在本公开一实施方式中,处理模块520,还被配置为将第二参数组与附加认证数据进行异或运算,得到附加认证混淆结果;根据附加认证混淆结果和共享密钥,基于预设的SM4算法,得到加密后的附加认证混淆结果;将加密后的附加认证混淆结果作为待加密数据对应的第二参数组。
如图5所示,在装置500为数据解密装置时,该装置500可应用于接收端,该装置500包括:
接收模块530,被配置为接收发送端的待解密数据,并将待解密数据分割为n个待解密子数据,其中n≥1,且至少前n-1个待解密子数据中每个待解密子数据的数据长度为128bit;
获取模块510,被配置为获取每个待解密子数据对应的第一子参数组,第一子参数组的数据长度为128bit;
处理模块520,被配置为根据每个待解密子数据对应的第一子参数组和共享密钥,基于预设的SM4算法,得到每个待解密子数据对应的第二子参数组;将n个待解密子数据中前n-1个待解密子数据中的每个待解密子数据,与前n-1个待解密子数据中的每个待解密子数据对应的第二子参数组进行异或运算,得到n-1个解密子数据; 当第n个待解密子数据的数据长度小于128bit时,在第n个待解密子数据对应的第二子参数组中进行数据截取,以获取第三子参数组,第三子参数组的数据长度等于第n个待解密子数据的数据长度;将第n个待解密子数据与第三子参数组进行异或运算,得到第n个解密子数据;将第1个解密子数据至第n个解密子数据依次拼接,得到解密数据。
在本公开一实施方式中,处理模块520,还被配置为当第n个待解密子数据的数据长度等于128bit时,将第n个待解密子数据与第n个待解密子数据对应的第二子参数组进行异或运算,得到第n个解密子数据。
在本公开一实施方式中,第一子参数组包括:帧计数器的计数值、方向位、初始化向量和第一子参数组的标识。
在本公开一实施方式中,获取模块510,还被配置为获取待解密数据的待解密消息认证码,以及获取待解密消息认证码对应的第四子参数组,第四子参数组的数据长度为128bit;
处理模块520,还被配置为根据第四子参数组和共享密钥,基于预设的SM4算法,得到待解密消息认证码对应的第五子参数组;当待解密消息认证码的数据长度小于128bit时,在第五子参数组中进行数据截取,以获取第六子参数组,第六子参数组的数据长度等于待解密消息认证码的数据长度;将待解密消息认证码与第六子参数组进行异或运算,得到解密消息认证码。
在本公开一实施方式中,第四子参数组包括:帧计数器的计数值、方向位和初始化向量。
在本公开一实施方式中,处理模块520,还被配置为根据解密子数据、共享密钥和待解密数据对应的第二参数组,基于预设的SM4算法和异或运算,获取本地消息认证码;在解密消息认证码与本地消息认证码不同时,生成告警信息,告警信息用于指示数据完整性校验失败。
在本公开一实施方式中,在待解密数据的数据长度大于128bit时,处理模块520,还被配置为将待解密数据对应的第二参数组与第1个解密子数据进行异或运算,得到第1解密混淆结果;根据第1解密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第1解密混淆结果;将加密后的第j-1解密混淆结果与第j个解密子数据进行异或运算,得到第j解密混淆结果,其中2≤j<n,且j依次取[2,n)中的每一个值;根据第j解密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第j解密混淆结果;当第n个解密子数据的数据长度小于128bit时,对第n个解密子数据进行冗余数据填充,得到第n'个解密子数据,第n'个解密子数据的数据长度为128bit;将加密后的第n-1解密混淆结果和第n'个解密子数据进行异或运算,得到第n解密混淆结果;根据第n解密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第n解密混淆结果;
获取模块510,还被配置为在加密后的第n解密混淆结果中进行预设长度的数据截取,以获取本地消息认证码。
在本公开一实施方式中,在待解密数据的数据长度等于128bit时,处理模块520,还被配置为将待解密数据对应的第二参数组与第1个解密子数据进行异或运算,得到第1解密混淆结果;根据第1解密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第1解密混淆结果;
获取模块510,还被配置为在加密后的第1解密混淆结果中进行预设长度的数据截取,以获取本地消息认证码。
在本公开一实施方式中,在待解密数据的数据长度小于128bit时,处理模块520,还被配置为对第1个解密子数据进行冗余数据填充,得到第1'个解密子数据,第1'个解密子数据的数据长度为128bit;将待解密数据对应的第二参数组和第1'个解密子数据进行异或运算,得到第1解密混淆结果;根据第1解密混淆结果和共享密钥,基于预设的SM4算法,得到加密后的第1解密混淆结果;
获取模块510,还被配置为在加密后的第1解密混淆结果中进行预设长度的数据截取,以获取本地消息认证码。
在本公开一实施方式中,获取模块510,还被配置为获取待解密数据对应的第一参数组,第一参数组的数据长度为128bit;
处理模块520,还被配置为根据第一参数组和共享密钥,基于预设的SM4算法,得到待解密数据对应的第二参数组。
在本公开一实施方式中,第一参数组包括:待解密数据的数据长度、帧计数器的计数值、方向位、初始化向量和认证标识。
在本公开一实施方式中,第一参数组还包括:附加认证数据,附加认证数据的数据长度为128bit。
在本公开一实施方式中,处理模块520,还被配置为将第二参数组与附加认证数据进行异或运算,得到附加认证混淆结果;根据附加认证混淆结果和共享密钥,基于预设的SM4算法,得到加密后的附加认证混淆结果;将加密后的附加认证混淆结果作为待解密数据对应的第二参数组。
本公开还公开了一种电子设备,图6示出根据本公开一实施方式的电子设备的结构框图,如图6所示,该电子设备600包括存储器601和处理器602;其中,
该存储器601用于存储一条或多条计算机指令,其中,该一条或多条计算机指令被处理器602执行以实现上述方法步骤。
图7是适于用来实现根据本公开一实施方式的数据加密方法或数据解密方法的计算机***的结构示意图。
如图7所示,计算机***700包括处理单元701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行上述实施方式中的各种处理。在RAM 703中,还存储有计算机***700操作所需的各种程序和数据。处理单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。其中,处理单元701可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
附图中的流程图和框图,图示了按照本公开各种实施方式的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种芯片,该芯片包括至少一个处理器,可用于实现上述方法实施例中发送端或接收端所涉及的功能。
在一种可能的设计中,该芯片还包括存储器,该存储器用于保存程序指令和数据,存储器位于处理器之内或处理器之外。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
作为另一方面,本公开还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被允许时,实现数据加密方法或数据解密方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (30)
1.一种数据加密方法,其特征在于,所述方法应用于发送端,所述方法包括:
获取待加密数据,并将所述待加密数据分割为n个待加密子数据,其中n≥1,且至少前n-1个待加密子数据中每个待加密子数据的数据长度为128bit;
获取每个待加密子数据对应的第一子参数组,所述第一子参数组的数据长度为128bit;
根据每个待加密子数据对应的第一子参数组和共享密钥,基于预设的SM4算法,得到每个待加密子数据对应的第二子参数组;
将所述n个待加密子数据中前n-1个待加密子数据中的每个待加密子数据,与所述前n-1个待加密子数据中的每个待加密子数据对应的第二子参数组进行异或运算,得到n-1个加密子数据;
当第n个待加密子数据的数据长度小于128bit时,在所述第n个待加密子数据对应的第二子参数组中进行数据截取,以获取第三子参数组,所述第三子参数组的数据长度等于所述第n个待加密子数据的数据长度;
将所述第n个待加密子数据与所述第三子参数组进行异或运算,得到第n个加密子数据;
将第1个加密子数据至第n个加密子数据依次拼接,得到加密数据,并向接收端发送所述加密数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当第n个待加密子数据的数据长度等于128bit时,将所述第n个待加密子数据与所述第n个待加密子数据对应的第二子参数组进行异或运算,得到第n个加密子数据。
3.根据权利要求1所述的方法,其特征在于,所述第一子参数组包括:帧计数器的计数值、方向位、初始化向量和所述第一子参数组的标识。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取所述待加密数据的消息认证码,以及所述消息认证码对应的第四子参数组,所述第四子参数组的数据长度为128bit;
根据所述第四子参数组和所述共享密钥,基于预设的SM4算法,得到所述消息认证码对应的第五子参数组;
当所述消息认证码的数据长度小于128bit时,在所述第五子参数组中进行数据截取,以获取第六子参数组,所述第六子参数组的数据长度等于所述消息认证码的数据长度;
将所述消息认证码与所述第六子参数组进行异或运算,得到加密消息认证码;
所述将第1个加密子数据至第n个加密子数据依次拼接,得到加密数据,包括:
将第1个加密子数据至第n个加密子数据、以及所述加密消息认证码依次拼接,得到所述加密数据。
5.根据权利要求4所述的方法,其特征在于,所述第四子参数组包括:所述帧计数器的计数值、所述方向位和所述初始化向量。
6.根据权利要求5所述的方法,其特征在于,在所述待加密数据的数据长度大于128bit时,所述获取所述待加密数据的消息认证码,包括:
将所述待加密数据对应的第二参数组与第1个待加密子数据进行异或运算,得到第1加密混淆结果;
根据所述第1加密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第1加密混淆结果;
将加密后的第j-1加密混淆结果与第j个待加密子数据进行异或运算,得到第j加密混淆结果,其中2≤j<n,且j依次取[2,n)中的每一个值;
根据所述第j加密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第j加密混淆结果;
当第n个待加密子数据的数据长度小于128bit时,对所述第n个待加密子数据进行冗余数据填充,得到第n'个待加密子数据,所述第n'个待加密子数据的数据长度为128bit;
将加密后的第n-1加密混淆结果和所述第n'个待加密子数据进行异或运算,得到第n加密混淆结果;
根据所述第n加密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第n加密混淆结果;
在所述加密后的第n加密混淆结果中进行预设长度的数据截取,以获取所述消息认证码。
7.根据权利要求5所述的方法,其特征在于,在所述待加密数据的数据长度等于128bit时,所述获取所述待加密数据的消息认证码,包括:
将所述待加密数据对应的第二参数组与第1个待加密子数据进行异或运算,得到第1加密混淆结果;
根据所述第1加密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第1加密混淆结果;
在所述加密后的第1加密混淆结果中进行预设长度的数据截取,以获取所述消息认证码。
8.根据权利要求5所述的方法,其特征在于,在所述待加密数据的数据长度小于128bit时,所述获取所述待加密数据的消息认证码,包括:
对所述第1个待加密子数据进行冗余数据填充,得到第1'个待加密子数据,所述第1'个待加密子数据的数据长度为128bit;
将所述待加密数据对应的第二参数组与第1'个待加密子数据进行异或运算,得到第1加密混淆结果;
根据所述第1加密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第1加密混淆结果;
在所述加密后的第1加密混淆结果中进行预设长度的数据截取,以获取所述消息认证码。
9.根据权利要求6至8中任一项所述的方法,其特征在于,所述方法还包括:
获取所述待加密数据对应的第一参数组,所述第一参数组的数据长度为128bit;
根据所述第一参数组和所述共享密钥,基于预设的SM4算法,得到所述待加密数据对应的所述第二参数组。
10.根据权利要求9所述的方法,其特征在于,所述第一参数组包括:所述待加密数据的数据长度、所述帧计数器的计数值、所述方向位、所述初始化向量和认证标识。
11.根据权利要求10所述的方法,其特征在于,所述第一参数组还包括:附加认证数据,所述附加认证数据的数据长度为128bit。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
将所述第二参数组与所述附加认证数据进行异或运算,得到附加认证混淆结果;
根据所述附加认证混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的附加认证混淆结果;
将所述加密后的附加认证混淆结果作为所述待加密数据对应的第二参数组。
13.一种数据解密方法,其特征在于,所述方法应用于接收端,所述方法包括:
接收发送端的待解密数据,并将所述待解密数据分割为n个待解密子数据,其中n≥1,且至少前n-1个待解密子数据中每个待解密子数据的数据长度为128bit;
获取每个待解密子数据对应的第一子参数组,所述第一子参数组的数据长度为128bit;
根据每个待解密子数据对应的第一子参数组和共享密钥,基于预设的SM4算法,得到每个待解密子数据对应的第二子参数组;
将所述n个待解密子数据中前n-1个待解密子数据中的每个待解密子数据,与所述前n-1个待解密子数据中的每个待解密子数据对应的第二子参数组进行异或运算,得到n-1个解密子数据;
当第n个待解密子数据的数据长度小于128bit时,在所述第n个待解密子数据对应的第二子参数组中进行数据截取,以获取第三子参数组,所述第三子参数组的数据长度等于所述第n个待解密子数据的数据长度;
将所述第n个待解密子数据与所述第三子参数组进行异或运算,得到第n个解密子数据;
将第1个解密子数据至第n个解密子数据依次拼接,得到解密数据。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
当第n个待解密子数据的数据长度等于128bit时,将所述第n个待解密子数据与所述第n个待解密子数据对应的第二子参数组进行异或运算,得到第n个解密子数据。
15.根据权利要求13所述的方法,其特征在于,所述第一子参数组包括:帧计数器的计数值、方向位、初始化向量和所述第一子参数组的标识。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
获取所述待解密数据的待解密消息认证码,以及获取所述待解密消息认证码对应的第四子参数组,所述第四子参数组的数据长度为128bit;
根据所述第四子参数组和所述共享密钥,基于预设的SM4算法,得到所述待解密消息认证码对应的第五子参数组;
当所述待解密消息认证码的数据长度小于128bit时,在所述第五子参数组中进行数据截取,以获取第六子参数组,所述第六子参数组的数据长度等于所述待解密消息认证码的数据长度;
将所述待解密消息认证码与所述第六子参数组进行异或运算,得到解密消息认证码。
17.根据权利要求16所述的方法,其特征在于,所述第四子参数组包括:所述帧计数器的计数值、所述方向位和所述初始化向量。
18.根据权利要求16所述的方法,其特征在于,所述将所述待解密消息认证码与所述第六子参数组进行异或运算,得到解密消息认证码之后,所述方法还包括:
根据所述解密子数据、所述共享密钥和所述待解密数据对应的第二参数组,基于预设的SM4算法和异或运算,获取本地消息认证码;
在所述解密消息认证码与所述本地消息认证码不同时,生成告警信息,所述告警信息用于指示数据完整性校验失败。
19.根据权利要求18所述的方法,其特征在于,在所述待解密数据的数据长度大于128bit时,所述根据所述解密子数据、所述共享密钥和所述待解密数据对应的第二参数组,基于预设的SM4算法和异或运算,获取本地消息认证码,包括:
将所述待解密数据对应的第二参数组与第1个解密子数据进行异或运算,得到第1解密混淆结果;
根据所述第1解密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第1解密混淆结果;
将加密后的第j-1解密混淆结果与第j个解密子数据进行异或运算,得到第j解密混淆结果,其中2≤j<n,且j依次取[2,n)中的每一个值;
根据所述第j解密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第j解密混淆结果;
当第n个解密子数据的数据长度小于128bit时,对所述第n个解密子数据进行冗余数据填充,得到第n'个解密子数据,所述第n'个解密子数据的数据长度为128bit;
将加密后的第n-1解密混淆结果和所述第n'个解密子数据进行异或运算,得到第n解密混淆结果;
根据所述第n解密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第n解密混淆结果;
在所述加密后的第n解密混淆结果中进行预设长度的数据截取,以获取所述本地消息认证码。
20.根据权利要求18所述的方法,其特征在于,在所述待解密数据的数据长度等于128bit时,所述根据所述解密子数据、所述共享密钥和所述待解密数据对应的第二参数组,基于预设的SM4算法和异或运算,获取本地消息认证码,包括:
将所述待解密数据对应的第二参数组与第1个解密子数据进行异或运算,得到第1解密混淆结果;
根据所述第1解密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第1解密混淆结果;
在所述加密后的第1解密混淆结果中进行预设长度的数据截取,以获取所述本地消息认证码。
21.根据权利要求18所述的方法,其特征在于,在所述待解密数据的数据长度小于128bit时,所述根据所述解密子数据、所述共享密钥和所述待解密数据对应的第二参数组,基于预设的SM4算法和异或运算,获取本地消息认证码,包括:
对所述第1个解密子数据进行冗余数据填充,得到第1'个解密子数据,所述第1'个解密子数据的数据长度为128bit;
将所述待解密数据对应的第二参数组和所述第1'个解密子数据进行异或运算,得到第1解密混淆结果;
根据所述第1解密混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的第1解密混淆结果;
在所述加密后的第1解密混淆结果中进行预设长度的数据截取,以获取所述本地消息认证码。
22.根据权利要求19至21中任一项所述的方法,其特征在于,所述方法还包括:
获取所述待解密数据对应的第一参数组,所述第一参数组的数据长度为128bit;
根据所述第一参数组和所述共享密钥,基于预设的SM4算法,得到所述待解密数据对应的所述第二参数组。
23.根据权利要求22所述的方法,其特征在于,所述第一参数组包括:所述待解密数据的数据长度、所述帧计数器的计数值、所述方向位、所述初始化向量和认证标识。
24.根据权利要求23所述的方法,其特征在于,所述第一参数组还包括:附加认证数据,所述附加认证数据的数据长度为128bit。
25.根据权利要求24所述的方法,其特征在于,所述方法还包括:
将所述第二参数组与所述附加认证数据进行异或运算,得到附加认证混淆结果;
根据所述附加认证混淆结果和所述共享密钥,基于预设的SM4算法,得到加密后的附加认证混淆结果;
将所述加密后的附加认证混淆结果作为所述待解密数据对应的第二参数组。
26.一种数据加密装置,其特征在于,所述装置应用于发送端,所述装置包括:
获取模块,被配置为获取待加密数据,并将所述待加密数据分割为n个待加密子数据,其中n≥1,且至少前n-1个待加密子数据中每个待加密子数据的数据长度为128bit;获取每个待加密子数据对应的第一子参数组,所述第一子参数组的数据长度为128bit;
处理模块,被配置为根据每个待加密子数据对应的第一子参数组和共享密钥,基于预设的SM4算法,得到每个待加密子数据对应的第二子参数组;将所述n个待加密子数据中前n-1个待加密子数据中的每个待加密子数据,与所述前n-1个待加密子数据中的每个待加密子数据对应的第二子参数组进行异或运算,得到n-1个加密子数据;
当第n个待加密子数据的数据长度小于128bit时,在所述第n个待加密子数据对应的第二子参数组中进行数据截取,以获取第三子参数组,所述第三子参数组的数据长度等于所述第n个待加密子数据的数据长度;将所述第n个待加密子数据与所述第三子参数组进行异或运算,得到第n个加密子数据;
发送模块,被配置为将第1个加密子数据至第n个加密子数据依次拼接,得到加密数据,并向接收端发送所述加密数据。
27.一种数据解密装置,其特征在于,所述装置应用于接收端,所述装置包括:
接收模块,被配置为接收发送端的待解密数据,并将所述待解密数据分割为n个待解密子数据,其中n≥1,且至少前n-1个待解密子数据中每个待解密子数据的数据长度为128bit;
获取模块,被配置为获取每个待解密子数据对应的第一子参数组,所述第一子参数组的数据长度为128bit;
处理模块,被配置为根据每个待解密子数据对应的第一子参数组和共享密钥,基于预设的SM4算法,得到每个待解密子数据对应的第二子参数组;将所述n个待解密子数据中前n-1个待解密子数据中的每个待解密子数据,与所述前n-1个待解密子数据中的每个待解密子数据对应的第二子参数组进行异或运算,得到n-1个解密子数据;
当第n个待解密子数据的数据长度小于128bit时,在所述第n个待解密子数据对应的第二子参数组中进行数据截取,以获取第三子参数组,所述第三子参数组的数据长度等于所述第n个待解密子数据的数据长度;将所述第n个待解密子数据与所述第三子参数组进行异或运算,得到第n个解密子数据;将第1个解密子数据至第n个解密子数据依次拼接,得到解密数据。
28.一种电子设备,其特征在于,包括:存储器和至少一个处理器;其中,所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令被所述处理器执行,以实现如权利要求1至25中任一项所述的方法步骤。
29.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令被处理器执行时实现如权利要求1至25中任一项所述的方法步骤。
30.一种芯片,其特征在于,包括:至少一个处理器,用于实现如权利要求1至25中任一项所述的方法中所涉及的功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310716766.9A CN116455560B (zh) | 2023-06-16 | 2023-06-16 | 数据加密方法、数据解密方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310716766.9A CN116455560B (zh) | 2023-06-16 | 2023-06-16 | 数据加密方法、数据解密方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116455560A CN116455560A (zh) | 2023-07-18 |
CN116455560B true CN116455560B (zh) | 2023-08-29 |
Family
ID=87132476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310716766.9A Active CN116455560B (zh) | 2023-06-16 | 2023-06-16 | 数据加密方法、数据解密方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116455560B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108023724A (zh) * | 2016-11-04 | 2018-05-11 | 北京展讯高科通信技术有限公司 | 数据传输方法及装置 |
CN109346092A (zh) * | 2018-10-29 | 2019-02-15 | 王秉玉 | 一种通信终端间进行语音加密通信的***及方法 |
CN109495459A (zh) * | 2018-10-31 | 2019-03-19 | 苏州科达科技股份有限公司 | 媒体数据加密方法、***、设备及存储介质 |
CN114499825A (zh) * | 2022-02-11 | 2022-05-13 | 上海商米科技集团股份有限公司 | 一种双控密钥管理方法、***、加密机和存储介质 |
CN115696322A (zh) * | 2021-07-31 | 2023-02-03 | 华为技术有限公司 | 一种北斗通信***中密钥更新方法、***及相关装置 |
CN115696237A (zh) * | 2021-07-31 | 2023-02-03 | 华为技术有限公司 | 一种北斗通信***中加密方法、***及相关装置 |
CN115766064A (zh) * | 2022-09-26 | 2023-03-07 | 成都卫士通信息产业股份有限公司 | 一种密码应用方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3097348B1 (fr) * | 2019-06-17 | 2021-07-16 | St Microelectronics Rousset | Protection d’exécution d’algorithmes de chiffrement |
-
2023
- 2023-06-16 CN CN202310716766.9A patent/CN116455560B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108023724A (zh) * | 2016-11-04 | 2018-05-11 | 北京展讯高科通信技术有限公司 | 数据传输方法及装置 |
CN109346092A (zh) * | 2018-10-29 | 2019-02-15 | 王秉玉 | 一种通信终端间进行语音加密通信的***及方法 |
CN109495459A (zh) * | 2018-10-31 | 2019-03-19 | 苏州科达科技股份有限公司 | 媒体数据加密方法、***、设备及存储介质 |
CN115696322A (zh) * | 2021-07-31 | 2023-02-03 | 华为技术有限公司 | 一种北斗通信***中密钥更新方法、***及相关装置 |
CN115696237A (zh) * | 2021-07-31 | 2023-02-03 | 华为技术有限公司 | 一种北斗通信***中加密方法、***及相关装置 |
WO2023011376A1 (zh) * | 2021-07-31 | 2023-02-09 | 华为技术有限公司 | 一种北斗通信***中密钥更新方法、***及相关装置 |
CN114499825A (zh) * | 2022-02-11 | 2022-05-13 | 上海商米科技集团股份有限公司 | 一种双控密钥管理方法、***、加密机和存储介质 |
CN115766064A (zh) * | 2022-09-26 | 2023-03-07 | 成都卫士通信息产业股份有限公司 | 一种密码应用方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于SM4的航空旅客敏感信息加密研究;姜朋 等;民航学报;第5卷(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116455560A (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8396218B2 (en) | Cryptographic module distribution system, apparatus, and program | |
CN112702318A (zh) | 一种通讯加密方法、解密方法、客户端及服务端 | |
CN113904808B (zh) | 一种私钥分发、解密方法、装置、设备及介质 | |
CN110611670A (zh) | 一种api请求的加密方法及装置 | |
WO2020155622A1 (zh) | 提高影像数据传输安全的方法、装置、***及存储介质 | |
CN103368975B (zh) | 一种批量数据安全传输的方法及*** | |
KR20210124368A (ko) | 에폭 키 교환을 이용한 종단간 이중 래칫 암호화 | |
CN105897748B (zh) | 一种对称密钥的传输方法及设备 | |
CN112272314B (zh) | 一种在视联网中视频的安全传输方法、装置、设备及介质 | |
KR101572935B1 (ko) | 메시지 인증 코드 혼합을 통한 can 패킷 인증 방법 및 그 장치 | |
CN115150821A (zh) | 离线包的传输、存储方法及装置 | |
CN112948867A (zh) | 加密报文的生成与解密方法、装置及电子设备 | |
CN114154174A (zh) | 后量子签名设施的状态同步 | |
US20190294417A1 (en) | Method and system for deriving deterministic prime number | |
CN101542962A (zh) | 容许消息数据非顺序到达的情况下消息完整性的处理方法 | |
CN113704789A (zh) | 一种车载通讯安全处理方法、装置、设备及存储介质 | |
EP3131230B1 (en) | Encryption method, program, and system | |
US20170070481A1 (en) | Communication channel security against packet sniffing | |
US12021968B2 (en) | Method for data processing in a computing environment with distributed computers and railway application | |
CN116455560B (zh) | 数据加密方法、数据解密方法、装置、设备及介质 | |
CN112383522A (zh) | 函数参数数据传输加密方法、***、装置及可读存储介质 | |
CN106487761B (zh) | 一种消息传输方法和网络设备 | |
CN114785527B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN116488919A (zh) | 一种数据处理方法、通信节点及存储介质 | |
CN115277064B (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 |