CN112948867A - 加密报文的生成与解密方法、装置及电子设备 - Google Patents

加密报文的生成与解密方法、装置及电子设备 Download PDF

Info

Publication number
CN112948867A
CN112948867A CN202110336634.4A CN202110336634A CN112948867A CN 112948867 A CN112948867 A CN 112948867A CN 202110336634 A CN202110336634 A CN 202110336634A CN 112948867 A CN112948867 A CN 112948867A
Authority
CN
China
Prior art keywords
encrypted data
encrypted
subdata
message
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.)
Pending
Application number
CN202110336634.4A
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.)
China Construction Bank Corp
Original Assignee
CCB Finetech 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 CCB Finetech Co Ltd filed Critical CCB Finetech Co Ltd
Priority to CN202110336634.4A priority Critical patent/CN112948867A/zh
Publication of CN112948867A publication Critical patent/CN112948867A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

本申请涉及密码学技术领域,具体而言,本申请实施例提供了一种加密报文的生成与解密方法、装置及电子设备。该方法包括:基于随机密钥对待加密报文进行加密,得到第一加密数据;基于公钥对随机密钥进行加密,得到第二加密数据;将第一加密数据以及第二加密数据进行组合,得到加密报文。本方案中,由于是基于随机密钥以及公钥进行加密,并基于加密数据的组合得到加密报文,能够提升加密报文的安全性,避免数据泄露。

Description

加密报文的生成与解密方法、装置及电子设备
技术领域
本申请涉及密码学技术领域,具体而言,本申请涉及一种加密报文的生成与解密方法、装置及电子设备。
背景技术
目前,很多Web应用系统在客户端大部分是采用对称加密算法对敏感数据进行加密后,再进行传输。这种方案的关键就是客户端和服务端约定了通信密钥(对称密钥),客户端对上送服务端的需要加密的数据进行加密,服务端对数据进行解密。
由于客户端程序是暴漏在外的,约定的通信密钥存在被泄露的风险,一旦通信密钥被泄露,被加密的数据则有可能被解密,从而造成数据泄露,因此,数据安全性亟需进一步加强。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例提供了一种加密报文的生成方法,该方法包括:
基于随机密钥对待加密报文进行加密,得到第一加密数据;
基于公钥对随机密钥进行加密,得到第二加密数据;
将第一加密数据以及第二加密数据进行组合,得到加密报文。
可选地,上述方法还包括:
将加密报文发送给对应的服务器,以使服务器基于公钥对应的私钥对加密报文进行解密。
可选地,将第一加密数据以及第二加密数据进行组合,包括以下任一项:
将第一加密数据整体插入第二加密数据,或者,将第二加密数据整体插入第一加密数据;
将第一加密数据拆分为至少两个第一子数据,将各第一子数据分别插入第二加密数据;或者,将第二加密数据拆分为至少两个第二子数据,将各第二子数据分别插入第一加密数据。
可选地,若将第一加密数据以及第二加密数据进行组合包括将第一加密数据整体插入第二加密数据,则将第一加密数据整体插入第二加密数据,包括:
将第一加密数据插入第二加密数据中的第一指定字符位置;
若将第一加密数据以及第二加密数据进行组合包括将第二加密数据整体插入第一加密数据,则将第二加密数据整体插入第一加密数据,包括:
将第二加密数据插入第一加密数据中的第二指定字符位置。
可选地,若将第一加密数据以及第二加密数据进行组合包括将第一加密数据插入第二加密数据中的第一指定字符位置,则上述方法还包括:
将第一指定字符位置以及第二加密数据的字符长度发送至服务器,以使服务器基于第一指定字符位置以及第二加密数据的字符长度进行对加密报文的拆分;
若将第一加密数据以及第二加密数据进行组合包括将第二加密数据插入第一加密数据中的第二指定字符位置,则上述方法还包括:
将第二指定字符位置以及第一加密数据的字符长度发送至服务器,以使服务器基于第二指定字符位置以及第一加密数据的字符长度进行对加密报文的拆分。
可选地,若将第一加密数据以及第二加密数据进行组合包括将第一加密数据拆分为至少两个第一子数据,将各第一子数据分别插入第二加密数据,则将各第一子数据分别插入第二加密数据,包括:
确定各第一子数据在第二加密数据中的第三指定字符位置,将各第一子数据分别插入对应的第三字符位置;
若将第一加密数据以及第二加密数据进行组合包括将第二加密数据拆分为至少两个第二子数据,将各第二子数据分别插入第一加密数据,则将各第二子数据分别插入第一加密数据,包括:
确定各二子数据在第一加密数据中的第四指定字符位置,将各第二子数据分别插入对应的第四字符位置。
可选地,若将第一加密数据以及第二加密数据进行组合包括确定各第一子数据在第二加密数据中的第三指定字符位置,将各第一子数据分别插入对应的第三字符位置,则上述方法还包括:
将各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置发送至服务器,以使服务器基于各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置进行对加密报文的拆分;
若将第一加密数据以及第二加密数据进行组合包括确定各二子数据在第一加密数据中的第四指定字符位置,将各第二子数据分别插入对应的第四字符位置,则上述方法还包括:
将各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置发送至服务器,以使服务器基于各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置进行对加密报文的拆分。
可选地,上述方法还包括:
生成与待加密报文对应的随机密钥。
第二方面,本申请实施例提供了一种加密报文的解密方法,该方法包括:
当接收到终端设备发送的加密报文时,对加密报文进行拆分,得到拆分后报文;
基于私钥对拆分后报文进行解密。
可选地,拆分后报文包括第一加密数据以及第二加密数据,第一加密数据为基于随机密钥对待加密报文进行加密得到的,第二加密数据为基于私钥对应的公钥对随机密钥进行加密得到的。
可选地,基于私钥对拆分后报文进行解密,包括:
基于私钥对第二加密数据进行解密得到随机密钥;
基于随机密钥对第一加密数据进行解密得到目标报文。
可选地,上述方法还包括:
接收终端设备发送的以下任一项:
第一指定字符位置以及第二加密数据的字符长度;
第二指定字符位置以及第一加密数据的字符长度;
各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置;
各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置;
若接收到终端设备发送的第一指定字符位置以及第二加密数据的字符长度,则对加密报文进行拆分,包括:
基于第一指定字符位置以及第二加密数据的字符长度对加密报文进行拆分,其中,加密报文是通过将第一加密数据插入第二加密数据中的第一指定字符位置得到的;
若接收到终端设备发送的第二指定字符位置以及第一加密数据的字符长度,则对加密报文进行拆分,包括:
基于第二指定字符位置以及第一加密数据的字符长度对加密报文进行拆分,其中,加密报文是通过将第二加密数据插入第一加密数据中的第二指定字符位置得到的;
若接收到终端设备发送的各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置,则对加密报文进行拆分,包括:
基于各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置对加密报文进行拆分,其中,第一子数据是由第一加密数据拆分得到的,加密报文是通过将各第一子数据分别插入第二加密数据中对应的第三字符位置得到的;
若接收到终端设备发送的各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置,则对加密报文进行拆分,包括:
基于各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置对加密报文进行拆分,其中,第二子数据是由第二加密数据拆分得到的,加密报文是通过将各第二子数据分别插入第一加密数据中对应的第四字符位置得到的。
第三方面,本申请实施例提供了一种加密报文的生成装置,该装置包括:
第一加密模块,用于基于随机密钥对待加密报文进行加密,得到第一加密数据;
第二加密模块,用于基于公钥对随机密钥进行加密,得到第二加密数据;
组合模块,用于将第一加密数据以及第二加密数据进行组合,得到加密报文。
可选地,上述装置还包括:
报文发送模块,用于将加密报文发送给对应的服务器,以使服务器基于公钥对应的私钥对加密报文进行解密。
可选地,组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于以下任一项::
将第一加密数据整体插入第二加密数据,或者,将第二加密数据整体插入第一加密数据;
将第一加密数据拆分为至少两个第一子数据,将各第一子数据分别插入第二加密数据;或者,将第二加密数据拆分为至少两个第二子数据,将各第二子数据分别插入第一加密数据。
可选地,若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于将第一加密数据整体插入第二加密数据,则组合模块在将第一加密数据整体插入第二加密数据时,具体用于:
将第一加密数据插入第二加密数据中的第一指定字符位置;
若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于将第二加密数据整体插入第一加密数据,则组合模块在将第二加密数据整体插入第一加密数据时,具体用于:
将第二加密数据插入第一加密数据中的第二指定字符位置。
可选地,若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于将第一加密数据插入第二加密数据中的第一指定字符位置,则上述装置还包括:
第一数据发送模块,用于将第一指定字符位置以及第二加密数据的字符长度发送至服务器,以使服务器基于第一指定字符位置以及第二加密数据的字符长度进行对加密报文的拆分;
可选地,若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于将第二加密数据插入第一加密数据中的第二指定字符位置,则上述装置还包括:
第一数据发送模块,用于将第二指定字符位置以及第一加密数据的字符长度发送至服务器,以使服务器基于第二指定字符位置以及第一加密数据的字符长度进行对加密报文的拆分。
可选地,若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于将第一加密数据拆分为至少两个第一子数据,将各第一子数据分别插入第二加密数据,则组合模块在将各第一子数据分别插入第二加密数据时具体用于:
确定各第一子数据在第二加密数据中的第三指定字符位置,将各第一子数据分别插入对应的第三字符位置;
若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于将第二加密数据拆分为至少两个第二子数据,将各第二子数据分别插入第一加密数据,则组合模块在将各第二子数据分别插入第一加密数据时具体用于:
确定各二子数据在第一加密数据中的第四指定字符位置,将各第二子数据分别插入对应的第四字符位置。
可选地,若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于确定各第一子数据在第二加密数据中的第三指定字符位置,将各第一子数据分别插入对应的第三字符位置,则上述装置还包括:
第三数据发送模块,用于将各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置发送至服务器,以使服务器基于各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置进行对加密报文的拆分;
可选地,若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于确定各二子数据在第一加密数据中的第四指定字符位置,将各第二子数据分别插入对应的第四字符位置,则上述装置还包括:
第四数据发送模块,用于将各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置发送至服务器,以使服务器基于各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置进行对加密报文的拆分。
可选地,上述装置还包括:
密钥生成模块,用于生成与待加密报文对应的随机密钥。
第四方面,本申请实施例提供了一种加密报文的解密装置,该装置包括:
报文拆分模块,用于在接收到终端设备发送的加密报文时,对加密报文进行拆分,得到拆分后报文;
报文解密模块,用于基于私钥对拆分后报文进行解密。
可选地,拆分后报文包括第一加密数据以及第二加密数据,第一加密数据为基于随机密钥对待加密报文进行加密得到的,第二加密数据为基于私钥对应的公钥对随机密钥进行加密得到的。
可选地,报文解密模块具体用于:
基于私钥对第二加密数据进行解密得到随机密钥;
基于随机密钥对第一加密数据进行解密得到目标报文。
可选地,上述装置还包括:数据接收模块;
数据接收模块用于接收所述终端设备发送的以下任一项:
第一指定字符位置以及所述第二加密数据的字符长度;
第二指定字符位置以及所述第一加密数据的字符长度;
各第一子数据的字符长度以及各所述第一子数据对应的第三指定字符位置;
各第二子数据的字符长度以及各所述第二子数据对应的第四指定字符位置;
若接收到终端设备发送的第一指定字符位置以及所述第二加密数据的字符长度,则报文拆分模块在所述对所述加密报文进行拆分时,具体用于:
基于所述第一指定字符位置以及所述第二加密数据的字符长度对所述加密报文进行拆分,其中,所述加密报文是通过将所述第一加密数据插入所述第二加密数据中的所述第一指定字符位置得到的;
若接收到终端设备发送的第二指定字符位置以及所述第一加密数据的字符长度,则报文拆分模块在所述对所述加密报文进行拆分时,具体用于:
基于所述第二指定字符位置以及所述第一加密数据的字符长度对所述加密报文进行拆分,其中,所述加密报文是通过将所述第二加密数据插入所述第一加密数据中的所述第二指定字符位置得到的;
若接收到终端设备发送的各第一子数据的字符长度以及各所述第一子数据对应的第三指定字符位置,则报文拆分模块在所述对所述加密报文进行拆分时,具体用于:
基于各第一子数据的字符长度以及各所述第一子数据对应的第三指定字符位置对所述加密报文进行拆分,其中,所述第一子数据是由所述第一加密数据拆分得到的,所述加密报文是通过将各所述第一子数据分别插入所述第二加密数据中对应的第三字符位置得到的;
若接收到终端设备发送的各第二子数据的字符长度以及各所述第二子数据对应的第四指定字符位置,则报文拆分模块在所述对所述加密报文进行拆分时,具体用于:
基于各第二子数据的字符长度以及各所述第二子数据对应的第四指定字符位置对所述加密报文进行拆分,其中,所述第二子数据是由所述第二加密数据拆分得到的,所述加密报文是通过将各所述第二子数据分别插入所述第一加密数据中对应的第四字符位置得到的。
第五方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行如本申请的第一方面的任一实施方式或者第二方面的任一实施方式中所示的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面的任一实施方式或者第二方面的任一实施方式中所示的方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的方案,基于随机密钥对待加密报文进行加密,得到第一加密数据,基于公钥对随机密钥进行加密,得到第二加密数据,从而对第一加密数据以及第二加密数据进行组合,得到加密报文。本方案中,由于是基于随机密钥以及公钥进行加密,并基于加密数据的组合得到加密报文,能够提升加密报文的安全性,避免数据泄露。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种加密报文的生成方法的流程示意图;
图2为本申请实施例提供的一种加密报文的解密方法的流程示意图;
图3为本申请实施例提供的一种加密报文的生成与解密方法的流程示意图;
图4为本申请实施例提供的一种加密报文的生成装置的结构示意图;
图5为本申请实施例提供的一种加密报文的解密装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
非对称加密,又称非对称加密算法,需要两个密钥:公开密钥(publickey,简称公钥)和私有密钥(privatekey,简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
对称加密:需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。
国密算法:国家密码局制定标准的一系列算法。其中包括了对称加密算法,椭圆曲线非对称加密算法,杂凑算法。具体包括SM1,SM2,SM3及SM4等,其中:
SM1,对称加密算法,加密强度为128位,采用硬件实现;
SM2为国家密码管理局公布的公钥算法(非对称加密算法),其加密强度为256位;
SM3,密码杂凑算法,杂凑值长度为32字节,和SM2算法同期公布;
SMS4,对称加密算法,随WAPI标准一起公布,可使用软件实现,加密强度为128位。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的一种加密报文的生成方法的流程示意图,如图1所示,该方法主要可以包括:
步骤S110:基于随机密钥对待加密报文进行加密,得到第一加密数据;
步骤S120:基于公钥对随机密钥进行加密,得到第二加密数据;
步骤S130:将第一加密数据以及第二加密数据进行组合,得到加密报文。
本申请实施例中,随机密钥可以为通过国密对称加密算法SM4生成的通讯密钥,可以在每次对通讯报文进行加密时分别生成对应的随机密钥。
本申请实施例中,可以预生成非对称国密SM2密钥对,密钥对中的公钥可以通过混淆加密的方式植入客户端javascript的SDK包里面,密钥对中的私钥可以存储于服务端的加密机。
本申请实施例中,可以通过随机密钥对待加密报文进行加密,得到第一加密数据,通过公钥对随机密钥进行加密,得到第二加密数据,进而将第一加密数据以及第二加密数据进行组合,得到加密报文。
加密报文中,第一加密数据是基于随机密钥对待加密报文进行加密得到的,第二加密数据是通过公钥对随机密钥进行加密得到的。由于公钥对应的私钥一般存储在服务端,不易丢失,因此通过公钥加密随机密钥,能够保证随机密钥的安全性,避免随机密钥的丢失,从而保证报文的安全性。并且由于是将第一加密数据以及第二加密数据组合得到加密报文,因此,在第三方未能获知第一加密数据以及第二加密数据组合的组合方式的情况下,也无法将加密报文拆分,也就无法加密报文进行解密。
本申请实施例提供的方法,基于随机密钥对待加密报文进行加密,得到第一加密数据,基于公钥对随机密钥进行加密,得到第二加密数据,从而将第一加密数据以及第二加密数据进行组合,得到加密报文。本方案中,由于是基于随机密钥以及公钥进行加密,并基于加密数据的组合得到加密报文,能够提升加密报文的安全性,避免数据泄露。
本申请实施例的一种可选方式中,上述方法还包括:
将加密报文发送给对应的服务器,以使服务器基于公钥对应的私钥对加密报文进行解密。
本申请实施例中,在生成加密报文之后,可以将加密报文发送给对应的服务器。服务器在接收到加密报文后,可以对加密报文进行解密,从而获取报文数据。
本申请实施例的一种可选方式中,将第一加密数据整体插入第二加密数据,或者,将第二加密数据整体插入第一加密数据;
将第一加密数据拆分为至少两个第一子数据,将各第一子数据分别插入第二加密数据;或者,将第二加密数据拆分为至少两个第二子数据,将各第二子数据分别插入第一加密数据。
本申请实施例中,在进行加密报文的组装时,可以将第一加密数据与第二加密数据中的一个,整体插入另一个之中,得到加密报文。也可以将第一加密数据与第二加密数据中的一个先进行拆分,将拆分得到后子数据,分别插入未拆分的数据之中。
本申请实施例的一种可选方式中,将第一加密数据以及第二加密数据进行组合包括将第一加密数据整体插入第二加密数据,则将第一加密数据整体插入第二加密数据,包括:
将第一加密数据插入第二加密数据中的第一指定字符位置;
若将第一加密数据以及第二加密数据进行组合包括将第二加密数据整体插入第一加密数据,则将第二加密数据整体插入第一加密数据,包括:
将第二加密数据插入第一加密数据中的第二指定字符位置。
本申请实施例中,在将第一加密数据整体插入第二加密数据时,可以在第二加密数据中指定插入位置,即第一指定字符位置,例如,可以为第二加密数据的字符中的正序第N位,或者倒序第N位。
相应地,在将第二加密数据整体插入第一加密数据时,可以在第一加密数据中指定插入位置,即第二指定字符位置,例如,可以为第一加密数据的字符中的正序第M位,或者倒序第M位。
本申请实施例的一种可选方式中,若将第一加密数据以及第二加密数据进行组合包括将第一加密数据插入第二加密数据中的第一指定字符位置,则上述方法还包括:
将第一指定字符位置以及第二加密数据的字符长度发送至服务器,以使服务器基于第一指定字符位置以及第二加密数据的字符长度进行对加密报文的拆分;
若将第一加密数据以及第二加密数据进行组合包括将第二加密数据插入第一加密数据中的第二指定字符位置,则上述方法还包括:
将第二指定字符位置以及第一加密数据的字符长度发送至服务器,以使服务器基于第二指定字符位置以及第一加密数据的字符长度进行对加密报文的拆分。
本申请实施例中,在加密报文的组合方式为将第一加密数据插入第二加密数据中的第一指定字符位置时,可以将第一指定字符位置以及第二加密数据的字符长度发送至服务器,服务器可以从第一指定字符位置起,从加密报文中抽取第二加密数据的字符长度的数据,所抽取的数据即第二加密数据,而加密报文中的剩余数据在第一指定字符位置进行拼接,能够得到第一加密数据。
相应地,在加密报文的组合方式为将第二加密数据插入第一加密数据中的第二指定字符位置时,可以将第一指定字符位置以及第二加密数据的字符长度发送至服务器,服务器可以从第二指定字符位置起,从加密报文中抽取第一加密数据的字符长度的数据,所抽取的数据即第一加密数据,而加密报文中的剩余数据在第二指定字符位置进行拼接,能够得到第二加密数据。
本申请实施例的一种可选方式中,若将第一加密数据以及第二加密数据进行组合包括将第一加密数据拆分为至少两个第一子数据,将各第一子数据分别插入第二加密数据,则将各第一子数据分别插入第二加密数据,包括:
确定各第一子数据在第二加密数据中的第三指定字符位置,将各第一子数据分别插入对应的第三字符位置;
若将第一加密数据以及第二加密数据进行组合包括将第二加密数据拆分为至少两个第二子数据,将各第二子数据分别插入第一加密数据,则将各第二子数据分别插入第一加密数据,包括:
确定各二子数据在第一加密数据中的第四指定字符位置,将各第二子数据分别插入对应的第四字符位置。
本申请实施例中,加密报文的组合方式可以为对第一加密数据进行拆分得到至少两个第一子数据,而后将各第一子数据分别插入第二加密数据,得到加密报文。
作为一个示例,可以通过指定第一子数据的数量的方式对第一加密数据进行拆分,如指定第一子数据的数量为a1个,并将第一加密数据拆分为a1个字符长度大小相等的第一子数据;也可以通过指定各第一子数据的字符长度的方式对第一加密数据进行拆分,如将各第一子数据的字符长度分别指定为b1、b2、b3以及b4,各第一子数据的字符长度之和等于第一加密数据的字符长度,而后可以按照第一子数据的字符顺序,依次提取前b1位的字符、从第b1+1位起b2位的字符,从第b1+b2+1位起b3位的字符以及从第b1+b2+b3+1位起b4位的字符分别作为第一子数据。
作为一个示例,可以依照第二加密数据的字符顺序对各字符位进行编号,而后通过指定编号的方式指定各第一子数据在第二加密数据中的第三指定字符位置。
相应地,加密报文的组合方式可以为对第二加密数据进行拆分得到至少两个第二子数据,而后将各第二子数据分别插入第一加密数据,得到加密报文。
作为一个示例,可以通过指定第二子数据的数量的方式对第一加密数据进行拆分,如指定第二子数据的数量为a2个,并将第二加密数据拆分为a2个字符长度大小相等的第一子数据;也可以通过指定各第一子数据的字符长度的方式对第一加密数据进行拆分,如将各第一子数据的字符长度分别指定为c1、c2、c3以及c4,各第一子数据的字符长度之和等于第一加密数据的字符长度,而后可以按照第一子数据的字符顺序,依次提取前c1位的字符、从第c1+1位起c2位的字符,从第c1+c2+1位起c3位的字符以及从第c1+c2+c3+1位起c4位的字符分别作为第一子数据。
作为一个示例,可以依照第一加密数据的字符顺序对各字符位进行编号,而后通过指定编号的方式指定各第二子数据在第一加密数据中的第三指定字符位置。
本申请实施例的一种可选方式中,若将第一加密数据以及第二加密数据进行组合包括确定各第一子数据在第二加密数据中的第三指定字符位置,将各第一子数据分别插入对应的第三字符位置,则上述方法还包括:
将各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置发送至服务器,以使服务器基于各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置进行对加密报文的拆分;
若将第一加密数据以及第二加密数据进行组合包括确定各二子数据在第一加密数据中的第四指定字符位置,将各第二子数据分别插入对应的第四字符位置,则上述方法还包括:
将各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置发送至服务器,以使服务器基于各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置进行对加密报文的拆分。
本申请实施例中,在加密报文的组合方式为确定各第一子数据在第二加密数据中的第三指定字符位置,将各第一子数据分别插入对应的第三字符位置时,可以将各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置发送至服务器,服务器可以分别从各第一子数据对应的第三指定字符位置起,从加密报文中抽取该第一子数据对应的字符长度的数据,从而抽到各第一子数据,再根据拆分方式将第一子数据进行组合,得到第一加密数据,而加密报文中的剩余数据在各第三指定字符位置进行拼接,能够得到第二加密数据。
相应地,在加密报文的组合方式为确定各第二子数据在第一加密数据中的第四指定字符位置,将各第二子数据分别插入对应的第四字符位置时,可以将各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置发送至服务器,服务器可以分别从各第二子数据对应的第四指定字符位置起,从加密报文中抽取该第二子数据对应的字符长度的数据,从而抽到各第二子数据,再根据拆分方式将各第二子数据进行组合,得到第二加密数据,而加密报文中的剩余数据在各第四指定字符位置进行拼接,能够得到第一加密数据。
作为一个示例,组合方式可以为将第二加密数据拆分为字符长度为1的第二子数据,而后在第一加密数据抽取字符串,使得该字符串的字符长度比第二加密数据的字符长度多一位,各第四指定字符位置分别位于该字符串的相邻字符之间,即依照第二加密数据的字符顺序,在该字符串的相邻字符之间依次插入第二加密数据中的各字符。在实际使用中,第二加密数据的字符串长度可能会不小于第一加密数据的字符串长度,这时可以在第一加密数据的末位之后进行补位,从补位后的第一加密数据中提取字符串,使得该字符串的字符长度比第二加密数据的字符长度多一位,在服务器进行加密报文的拆分时,字符串中的补位数据可以被删除。
在实际使用中,可以针对不同业务渠道,分别配置不同的加密报文组合方式。
本申请实施例的一种可选方式中,上述方法还包括:
生成与待加密报文对应的随机密钥。
本申请实施例中,可以在每次对待加密报文进行加密之前,生成随机密钥,使得每个待加密报文与随机密钥相对应。
图2示出了本申请实施例提供的一种加密报文的解密方法的流程示意图,如图2所示,该方法主要可以包括:
步骤S210:当接收到终端设备发送的加密报文时,对加密报文进行拆分,得到拆分后报文;
步骤S220:基于私钥对拆分后报文进行解密。
本申请实施例中,终端设备在生成加密报文时,可以通过随机密钥对待加密报文进行加密,得到第一加密数据,通过公钥对随机密钥进行加密,得到第二加密数据,进而对第一加密数据以及第二加密数据进行组合,得到加密报文。
本申请实施例中,服务器在接收到终端设备发送的加密报文时,可以对加密报文进行拆分,得到拆分后报文,而后根据私钥对拆分后报文进行解密。
加密报文中,第一加密数据是基于随机密钥对待加密报文进行加密得到的,第二加密数据是通过公钥对随机密钥进行加密得到的。由于公钥对应的私钥一般存储在服务端,不易丢失,因此通过公钥加密随机密钥,能够保证随机密钥的安全性,避免随机密钥的丢失,从而保证报文的安全性。并且由于是将第一加密数据以及第二加密数据进行组合得到加密报文,因此,在第三方未能获知组合方式的情况下,就无法将加密报文拆分,也就无法对加密报文进行解密。
本申请实施例提供的方法,在接收到终端设备发送的加密报文时,对加密报文进行拆分,得到拆分后报文,从而基于私钥对拆分后报文进行解密。本方案中,由于需要先对加密报文进行拆分,而后再根据私钥进行解密,提升了加密报文的安全性,有效避免数据泄露。
本申请实施例的一种可选方式中,拆分后报文包括第一加密数据以及第二加密数据,第一加密数据为基于随机密钥对待加密报文进行加密得到的,第二加密数据为基于私钥对应的公钥对随机密钥进行加密得到的。
本申请实施例的一种可选方式中,基于私钥对拆分后报文进行解密,包括:
基于私钥对第二加密数据进行解密得到随机密钥;
基于随机密钥对第一加密数据进行解密得到目标报文。
本申请实施例中,服务器在将加密报文拆分为第一加密数据以及第二加密数据之后,可以对先通过私钥对第二加密数据进行解密得到随机密钥,而后通过随机密钥对第一加密数据进行解密得到目标报文,即原报文。
本申请实施例的一种可选方式中,上述方法还包括:
接收终端设备发送的以下任一项:
第一指定字符位置以及第二加密数据的字符长度;
第二指定字符位置以及第一加密数据的字符长度;
各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置;
各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置;
若接收到终端设备发送的第一指定字符位置以及第二加密数据的字符长度,则对加密报文进行拆分,包括:
基于第一指定字符位置以及第二加密数据的字符长度对加密报文进行拆分,其中,加密报文是通过将第一加密数据插入第二加密数据中的第一指定字符位置得到的;
若接收到终端设备发送的第二指定字符位置以及第一加密数据的字符长度,则对加密报文进行拆分,包括:
基于第二指定字符位置以及第一加密数据的字符长度对加密报文进行拆分,其中,加密报文是通过将第二加密数据插入第一加密数据中的第二指定字符位置得到的;
若接收到终端设备发送的各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置,则对加密报文进行拆分,包括:
基于各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置对加密报文进行拆分,其中,第一子数据是由第一加密数据拆分得到的,加密报文是通过将各第一子数据分别插入第二加密数据中对应的第三字符位置得到的;
若接收到终端设备发送的各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置,则对加密报文进行拆分,包括:
基于各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置对加密报文进行拆分,其中,第二子数据是由第二加密数据拆分得到的,加密报文是通过将各第二子数据分别插入第一加密数据中对应的第四字符位置得到的。
本申请实施例中,在加密报文的组合方式为将第一加密数据插入第二加密数据中的第一指定字符位置时,可以将第一指定字符位置以及第二加密数据的字符长度发送至服务器,服务器可以从第一指定字符位置起,从加密报文中抽取第二加密数据的字符长度的数据,所抽取的数据即第二加密数据,而加密报文中的剩余数据在第一指定字符位置进行拼接,能够得到第一加密数据。
相应地,在加密报文的组合方式为将第二加密数据插入第一加密数据中的第二指定字符位置时,可以将第一指定字符位置以及第二加密数据的字符长度发送至服务器,服务器可以从第二指定字符位置起,从加密报文中抽取第一加密数据的字符长度的数据,所抽取的数据即第一加密数据,而加密报文中的剩余数据在第二指定字符位置进行拼接,能够得到第二加密数据。
本申请实施例中,在加密报文的组合方式为确定各第一子数据在第二加密数据中的第三指定字符位置,将各第一子数据分别插入对应的第三字符位置时,可以将各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置发送至服务器,服务器可以分别从各第一子数据对应的第三指定字符位置起,从加密报文中抽取该第一子数据对应的字符长度的数据,从而抽到各第一子数据,再根据拆分方式将第一子数据进行组合,得到第一加密数据,而加密报文中的剩余数据在各第三指定字符位置进行拼接,能够得到第二加密数据。
相应地,在加密报文的组合方式为确定各第二子数据在第一加密数据中的第四指定字符位置,将各第二子数据分别插入对应的第四字符位置时,可以将各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置发送至服务器,服务器可以分别从各第二子数据对应的第四指定字符位置起,从加密报文中抽取该第二子数据对应的字符长度的数据,从而抽到各第二子数据,再根据拆分方式将各第二子数据进行组合,得到第二加密数据,而加密报文中的剩余数据在各第四指定字符位置进行拼接,能够得到第一加密数据。
在实际使用中,可以开发前端Javascript的SDK包,使用Javascript实现各种国密算法接口。封装Javascript的密码信封封包接口,把生成随机通信密钥、加密通信密文、加密随机通信密钥、对通信密文和通信密钥密文进行密码信封封包4个步骤封装在一个Javascript接口中。对于前端使用Javascript的SDK包的项目组而言,密码信封的打包逻辑是透明的,只需要调用此接口传入需要参数即可完成密码信封的封包。开发服务端的JAVA的jar包,封装服务端的各种国密算法的接口。
作为一个示例,图3中示出了本申请提供的报文生成与解密方法的流程示意图,其中,前端即客户端,终端设备一端,服务端即服务器。
预生成非对称国密SM2密钥对,公钥PubKey通过混淆加密的方式植入客户端javascript的SDK包里面,私钥PriKey存储于服务端的加密机。
客户端在每次进行通信请求前生成随机通信密钥Key。
客户端用国密对称加密算法SM4和通信密钥Key对需要加密传输的通信数据Data进行加密,生成通信密文SecurityData。
客户端使用国密非对称加密算法SM2和非对称公钥PubKey(已经植入到SDK包)对通信密钥Key进行加密,生成密文SecurityKey。
客户端使用特定的密码信封封包规则,对SecurityData和SecurityKey进行密码信封打包,并发送给服务端。
基于与图1中所示的方法相同的原理,图4示出了本申请实施例提供的一种加密报文的生成装置的结构示意图,如图4所示,该加密报文的生成装置30可以包括:
第一加密模块310,用于基于随机密钥对待加密报文进行加密,得到第一加密数据;
第二加密模块320,用于基于公钥对随机密钥进行加密,得到第二加密数据;
组合模块330,用于对第一加密数据以及第二加密数据进行组合,得到加密报文。
本申请实施例提供的装置,基于随机密钥对待加密报文进行加密,得到第一加密数据,基于公钥对随机密钥进行加密,得到第二加密数据,从而对第一加密数据以及第二加密数据进行组合,得到加密报文。本方案中,由于是基于随机密钥以及公钥进行加密,并基于加密数据的组合得到加密报文,能够提升加密报文的安全性,避免数据泄露。
可选地,上述装置还包括:
报文发送模块,用于将加密报文发送给对应的服务器,以使服务器基于公钥对应的私钥对加密报文进行解密。
可选地,组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于以下任一项::
将第一加密数据整体插入第二加密数据,或者,将第二加密数据整体插入第一加密数据;
将第一加密数据拆分为至少两个第一子数据,将各第一子数据分别插入第二加密数据;或者,将第二加密数据拆分为至少两个第二子数据,将各第二子数据分别插入第一加密数据。
可选地,若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于将第一加密数据整体插入第二加密数据,则组合模块在将第一加密数据整体插入第二加密数据时,具体用于:
将第一加密数据插入第二加密数据中的第一指定字符位置;
若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于将第二加密数据整体插入第一加密数据,则组合模块在将第二加密数据整体插入第一加密数据时,具体用于:
将第二加密数据插入第一加密数据中的第二指定字符位置。
可选地,若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于将第一加密数据插入第二加密数据中的第一指定字符位置,则上述装置还包括:
第一数据发送模块,用于将第一指定字符位置以及第二加密数据的字符长度发送至服务器,以使服务器基于第一指定字符位置以及第二加密数据的字符长度进行对加密报文的拆分;
可选地,若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于将第二加密数据插入第一加密数据中的第二指定字符位置,则上述装置还包括:
第一数据发送模块,用于将第二指定字符位置以及第一加密数据的字符长度发送至服务器,以使服务器基于第二指定字符位置以及第一加密数据的字符长度进行对加密报文的拆分。
可选地,若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于将第一加密数据拆分为至少两个第一子数据,将各第一子数据分别插入第二加密数据,则组合模块在将各第一子数据分别插入第二加密数据时具体用于:
确定各第一子数据在第二加密数据中的第三指定字符位置,将各第一子数据分别插入对应的第三字符位置;
若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于将第二加密数据拆分为至少两个第二子数据,将各第二子数据分别插入第一加密数据,则组合模块在将各第二子数据分别插入第一加密数据时具体用于:
确定各二子数据在第一加密数据中的第四指定字符位置,将各第二子数据分别插入对应的第四字符位置。
可选地,若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于确定各第一子数据在第二加密数据中的第三指定字符位置,将各第一子数据分别插入对应的第三字符位置,则上述装置还包括:
第三数据发送模块,用于将各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置发送至服务器,以使服务器基于各第一子数据的字符长度以及各第一子数据对应的第三指定字符位置进行对加密报文的拆分;
可选地,若组合模块在将第一加密数据以及第二加密数据进行组合时,具体用于确定各二子数据在第一加密数据中的第四指定字符位置,将各第二子数据分别插入对应的第四字符位置,则上述装置还包括:
第四数据发送模块,用于将各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置发送至服务器,以使服务器基于各第二子数据的字符长度以及各第二子数据对应的第四指定字符位置进行对加密报文的拆分。
可选地,上述装置还包括:
密钥生成模块,用于生成与待加密报文对应的随机密钥。
可以理解的是,本实施例中的加密报文的生成装置的上述各模块具有实现图1中所示的实施例中的加密报文的生成方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述加密报文的生成装置的各模块的功能描述具体可以参见图1中所示实施例中的加密报文的生成方法的对应描述,在此不再赘述。
基于与图2中所示的方法相同的原理,图5示出了本申请实施例提供的一种加密报文的解密装置的结构示意图,如图5所示,该加密报文的解密装置40可以包括:
报文拆分模块410,用于在接收到终端设备发送的加密报文时,对加密报文进行拆分,得到拆分后报文;
报文解密模块420,用于基于私钥对拆分后报文进行解密。
本申请实施例提供的装置,在接收到终端设备发送的加密报文时,对加密报文进行拆分,得到拆分后报文,从而基于私钥对拆分后报文进行解密。本方案中,由于需要先对加密报文进行拆分,而后再根据私钥进行解密,提升了加密报文的安全性,有效避免数据泄露。
可选地,拆分后报文包括第一加密数据以及第二加密数据,第一加密数据为基于随机密钥对待加密报文进行加密得到的,第二加密数据为基于私钥对应的公钥对随机密钥进行加密得到的。
可选地,报文解密模块具体用于:
基于私钥对第二加密数据进行解密得到随机密钥;
基于随机密钥对第一加密数据进行解密得到目标报文。
可选地,上述装置还包括:数据接收模块;
数据接收模块用于接收所述终端设备发送的以下任一项:
第一指定字符位置以及所述第二加密数据的字符长度;
第二指定字符位置以及所述第一加密数据的字符长度;
各第一子数据的字符长度以及各所述第一子数据对应的第三指定字符位置;
各第二子数据的字符长度以及各所述第二子数据对应的第四指定字符位置;
若接收到终端设备发送的第一指定字符位置以及所述第二加密数据的字符长度,则报文拆分模块在所述对所述加密报文进行拆分时,具体用于:
基于所述第一指定字符位置以及所述第二加密数据的字符长度对所述加密报文进行拆分,其中,所述加密报文是通过将所述第一加密数据插入所述第二加密数据中的所述第一指定字符位置得到的;
若接收到终端设备发送的第二指定字符位置以及所述第一加密数据的字符长度,则报文拆分模块在所述对所述加密报文进行拆分时,具体用于:
基于所述第二指定字符位置以及所述第一加密数据的字符长度对所述加密报文进行拆分,其中,所述加密报文是通过将所述第二加密数据插入所述第一加密数据中的所述第二指定字符位置得到的;
若接收到终端设备发送的各第一子数据的字符长度以及各所述第一子数据对应的第三指定字符位置,则报文拆分模块在所述对所述加密报文进行拆分时,具体用于:
基于各第一子数据的字符长度以及各所述第一子数据对应的第三指定字符位置对所述加密报文进行拆分,其中,所述第一子数据是由所述第一加密数据拆分得到的,所述加密报文是通过将各所述第一子数据分别插入所述第二加密数据中对应的第三字符位置得到的;
若接收到终端设备发送的各第二子数据的字符长度以及各所述第二子数据对应的第四指定字符位置,则报文拆分模块在所述对所述加密报文进行拆分时,具体用于:
基于各第二子数据的字符长度以及各所述第二子数据对应的第四指定字符位置对所述加密报文进行拆分,其中,所述第二子数据是由所述第二加密数据拆分得到的,所述加密报文是通过将各所述第二子数据分别插入所述第一加密数据中对应的第四字符位置得到的。
可以理解的是,本实施例中的加密报文的解密装置的上述各模块具有实现图2中所示的实施例中的加密报文的解密方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述加密报文的解密装置的各模块的功能描述具体可以参见图2中所示实施例中的加密报文的解密方法的对应描述,在此不再赘述。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的方法。
作为一个示例,图6示出了本申请实施例所适用的一种电子设备的结构示意图,如图6所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器2001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的方法。
本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种电子设备,与现有技术相比,基于随机密钥对待加密报文进行加密,得到第一加密数据,基于公钥对随机密钥进行加密,得到第二加密数据,从而对第一加密数据以及第二加密数据进行组合,得到加密报文。本方案中,由于是基于随机密钥以及公钥进行加密,并基于将加密数据的组合得到加密报文,能够提升加密报文的安全性,避免数据泄露。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,与现有技术相比,基于随机密钥对待加密报文进行加密,得到第一加密数据,基于公钥对随机密钥进行加密,得到第二加密数据,从而对第一加密数据以及第二加密数据进行组合,得到加密报文。本方案中,由于是基于随机密钥以及公钥进行加密,并基于将加密数据的组合得到加密报文,能够提升加密报文的安全性,避免数据泄露。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (16)

1.一种加密报文的生成方法,其特征在于,包括:
基于随机密钥对待加密报文进行加密,得到第一加密数据;
基于公钥对所述随机密钥进行加密,得到第二加密数据;
将所述第一加密数据以及所述第二加密数据进行组合,得到加密报文。
2.根据权利要求1所述的方法,其特征在于,还包括:
将所述加密报文发送给对应的服务器,以使所述服务器基于所述公钥对应的私钥对所述加密报文进行解密。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一加密数据以及所述第二加密数据进行组合,包括以下任一项:
将所述第一加密数据整体插入所述第二加密数据,或者,将所述第二加密数据整体插入所述第一加密数据;
将所述第一加密数据拆分为至少两个第一子数据,将各所述第一子数据分别插入所述第二加密数据;或者,将所述第二加密数据拆分为至少两个第二子数据,将各所述第二子数据分别插入所述第一加密数据。
4.根据权利要求3所述的方法,其特征在于,若所述将所述第一加密数据以及所述第二加密数据进行组合包括所述将所述第一加密数据整体插入所述第二加密数据,则所述将所述第一加密数据整体插入所述第二加密数据,包括:
将所述第一加密数据插入所述第二加密数据中的第一指定字符位置;
若所述将所述第一加密数据以及所述第二加密数据进行组合包括将所述第二加密数据整体插入所述第一加密数据,则所述将所述第二加密数据整体插入所述第一加密数据,包括:
将所述第二加密数据插入所述第一加密数据中的第二指定字符位置。
5.根据权利要求4所述的方法,其特征在于,若所述将所述第一加密数据以及所述第二加密数据进行组合包括将所述第一加密数据插入所述第二加密数据中的第一指定字符位置,则所述方法还包括:
将所述第一指定字符位置以及所述第二加密数据的字符长度发送至服务器,以使所述服务器基于所述第一指定字符位置以及所述第二加密数据的字符长度进行对所述加密报文的拆分;
若所述将所述第一加密数据以及所述第二加密数据进行组合包括将所述第二加密数据插入所述第一加密数据中的第二指定字符位置,则所述方法还包括:
将所述第二指定字符位置以及所述第一加密数据的字符长度发送至服务器,以使所述服务器基于所述第二指定字符位置以及所述第一加密数据的字符长度进行对所述加密报文的拆分。
6.根据权利要求3所述的方法,其特征在于,若所述将所述第一加密数据以及所述第二加密数据进行组合包括将所述第一加密数据拆分为至少两个第一子数据,将各所述第一子数据分别插入所述第二加密数据,则所述将各所述第一子数据分别插入所述第二加密数据,包括:
确定各所述第一子数据在所述第二加密数据中的第三指定字符位置,将各所述第一子数据分别插入对应的第三字符位置;
若所述将所述第一加密数据以及所述第二加密数据进行组合包括将所述第二加密数据拆分为至少两个第二子数据,将各所述第二子数据分别插入所述第一加密数据,则所述将各所述第二子数据分别插入所述第一加密数据,包括:
确定各所述二子数据在所述第一加密数据中的第四指定字符位置,将各所述第二子数据分别插入对应的第四字符位置。
7.根据权利要求6所述的方法,其特征在于,若所述将所述第一加密数据以及所述第二加密数据进行组合包括确定各所述第一子数据在所述第二加密数据中的第三指定字符位置,将各所述第一子数据分别插入对应的第三字符位置,则所述方法还包括:
将各所述第一子数据的字符长度以及各所述第一子数据对应的第三指定字符位置发送至服务器,以使所述服务器基于各所述第一子数据的字符长度以及各所述第一子数据对应的第三指定字符位置进行对所述加密报文的拆分;
若所述将所述第一加密数据以及所述第二加密数据进行组合包括确定各所述二子数据在所述第一加密数据中的第四指定字符位置,将各所述第二子数据分别插入对应的第四字符位置,则所述方法还包括:
将各所述第二子数据的字符长度以及各所述第二子数据对应的第四指定字符位置发送至服务器,以使所述服务器基于各所述第二子数据的字符长度以及各所述第二子数据对应的第四指定字符位置进行对所述加密报文的拆分。
8.根据权利要求1-7中任一项所述的方法,其特征在于,还包括:
生成与所述待加密报文对应的随机密钥。
9.一种加密报文的解密方法,其特征在于,包括:
当接收到终端设备发送的加密报文时,对所述加密报文进行拆分,得到拆分后报文;
基于私钥对所述拆分后报文进行解密。
10.根据权利要求9所述的方法,其特征在于,所述拆分后报文包括第一加密数据以及第二加密数据,所述第一加密数据为基于随机密钥对待加密报文进行加密得到的,所述第二加密数据为基于所述私钥对应的公钥对所述随机密钥进行加密得到的。
11.根据权利要求10所述的方法,其特征在于,所述基于私钥对所述拆分后报文进行解密,包括:
基于私钥对所述第二加密数据进行解密得到随机密钥;
基于所述随机密钥对所述第一加密数据进行解密得到目标报文。
12.根据权利要求9-11中任一项所述的方法,其特征在于,还包括:
接收所述终端设备发送的以下任一项:
第一指定字符位置以及所述第二加密数据的字符长度;
第二指定字符位置以及所述第一加密数据的字符长度;
各第一子数据的字符长度以及各所述第一子数据对应的第三指定字符位置;
各第二子数据的字符长度以及各所述第二子数据对应的第四指定字符位置;
若接收到终端设备发送的第一指定字符位置以及所述第二加密数据的字符长度,则所述对所述加密报文进行拆分,包括:
基于所述第一指定字符位置以及所述第二加密数据的字符长度对所述加密报文进行拆分,其中,所述加密报文是通过将所述第一加密数据插入所述第二加密数据中的所述第一指定字符位置得到的;
若接收到终端设备发送的第二指定字符位置以及所述第一加密数据的字符长度,则所述对所述加密报文进行拆分,包括:
基于所述第二指定字符位置以及所述第一加密数据的字符长度对所述加密报文进行拆分,其中,所述加密报文是通过将所述第二加密数据插入所述第一加密数据中的所述第二指定字符位置得到的;
若接收到终端设备发送的各第一子数据的字符长度以及各所述第一子数据对应的第三指定字符位置,则所述对所述加密报文进行拆分,包括:
基于各第一子数据的字符长度以及各所述第一子数据对应的第三指定字符位置对所述加密报文进行拆分,其中,所述第一子数据是由所述第一加密数据拆分得到的,所述加密报文是通过将各所述第一子数据分别插入所述第二加密数据中对应的第三字符位置得到的;
若接收到终端设备发送的各第二子数据的字符长度以及各所述第二子数据对应的第四指定字符位置,则所述对所述加密报文进行拆分,包括:
基于各第二子数据的字符长度以及各所述第二子数据对应的第四指定字符位置对所述加密报文进行拆分,其中,所述第二子数据是由所述第二加密数据拆分得到的,所述加密报文是通过将各所述第二子数据分别插入所述第一加密数据中对应的第四字符位置得到的。
13.一种加密报文的生成装置,其特征在于,包括:
第一加密模块,用于基于随机密钥对待加密报文进行加密,得到第一加密数据;
第二加密模块,用于基于公钥对所述随机密钥进行加密,得到第二加密数据;
组合模块,将所述第一加密数据以及所述第二加密数据进行组合,得到加密报文。
14.一种加密报文的解密装置,其特征在于,包括:
报文拆分模块,用于在接收到终端设备发送的加密报文时,对所述加密报文进行拆分,得到拆分后报文;
报文解密模块,用于基于私钥对所述拆分后报文进行解密。
15.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-12中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-12中任一项所述的方法。
CN202110336634.4A 2021-03-29 2021-03-29 加密报文的生成与解密方法、装置及电子设备 Pending CN112948867A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110336634.4A CN112948867A (zh) 2021-03-29 2021-03-29 加密报文的生成与解密方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110336634.4A CN112948867A (zh) 2021-03-29 2021-03-29 加密报文的生成与解密方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN112948867A true CN112948867A (zh) 2021-06-11

Family

ID=76227821

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110336634.4A Pending CN112948867A (zh) 2021-03-29 2021-03-29 加密报文的生成与解密方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112948867A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114499978A (zh) * 2021-12-28 2022-05-13 安徽航天信息科技有限公司 一种基于密码学替换交换实现的加解密方法、装置及系统
CN114499837A (zh) * 2021-12-29 2022-05-13 广州蚁比特区块链科技有限公司 一种报文防泄露方法、装置、系统和设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114499978A (zh) * 2021-12-28 2022-05-13 安徽航天信息科技有限公司 一种基于密码学替换交换实现的加解密方法、装置及系统
CN114499978B (zh) * 2021-12-28 2023-07-21 安徽航天信息科技有限公司 一种基于密码学替换交换实现的加解密方法、装置及系统
CN114499837A (zh) * 2021-12-29 2022-05-13 广州蚁比特区块链科技有限公司 一种报文防泄露方法、装置、系统和设备
CN114499837B (zh) * 2021-12-29 2023-09-26 广州蚁比特区块链科技有限公司 一种报文防泄露方法、装置、系统和设备

Similar Documents

Publication Publication Date Title
US9973334B2 (en) Homomorphically-created symmetric key
US11431498B2 (en) Quantum-augmentable hybrid encryption system and method
CN110391900B (zh) 基于sm2算法的私钥处理方法、终端及密钥中心
RU2752697C1 (ru) Криптографическое устройство с изменяемой конфигурацией
US11824999B2 (en) Chosen-plaintext secure cryptosystem and authentication
US20180054301A1 (en) Method and device for data encryption
EP3086585B1 (en) Method and system for securing data communicated in a network
US10686587B2 (en) Method for safeguarding the information security of data transmitted via a data bus and data bus system
US7894608B2 (en) Secure approach to send data from one system to another
CN112165443A (zh) 一种多密钥信息加密解密方法、装置及存储介质
CN112948867A (zh) 加密报文的生成与解密方法、装置及电子设备
CN114697095A (zh) 一种混合加解密方法、系统、装置及介质
CN114095170A (zh) 数据处理方法、装置、系统及计算机可读存储介质
CA2639649A1 (en) Cryptography method and system
Goyal et al. Cryptographic security using various encryption and decryption method
KR102315632B1 (ko) 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템
EP2571192A1 (en) Hybrid encryption schemes
CN115499118A (zh) 报文密钥生成、文件加密、解密方法、装置、设备和介质
EP1456997B1 (en) System and method for symmetrical cryptography
CN112713989B (zh) 一种解密方法及装置
JP2005114870A (ja) 暗号通信システム
Dodmane A new hybrid symmetric-key technique to enhance data security of textual information using random number generator
WO2022237440A1 (en) Authenticated encryption apparatus with initialization-vector misuse resistance and method therefor
Soman Lightweight Elliptical Curve Cryptography (ECC) for Data Integrity and User Authentication in Smart Transportation IoT System
Brisson Deterministic random number generation for one time pads: Creating a Whitenoise super key

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220919

Address after: 25 Financial Street, Xicheng District, Beijing 100033

Applicant after: CHINA CONSTRUCTION BANK Corp.

Address before: 12 / F, 15 / F, 99 Yincheng Road, Pudong New Area pilot Free Trade Zone, Shanghai, 200120

Applicant before: Jianxin Financial Science and Technology Co.,Ltd.