数据传输方法、装置、设备及存储介质转让专利

申请号 : CN202210683471.1

文献号 : CN114785527B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蔡豪荣杨向民赵凯刘芳芳陈龙芳

申请人 : 深圳市深圳通有限公司

摘要 :

本发明公开了一种数据传输方法、装置、设备及存储介质,属于数据处理技术领域。本发明通过在接收到数据加密请求时,根据数据加密请求获取待加密数据;基于待加密数据得到数据接收方的椭圆公钥和本地椭圆临时公私钥对;通过椭圆公钥和本地椭圆临时私钥生成初始随机密钥;对初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量;通过第一目标随机密钥和初始偏移量对待加密数据进行加密,得到加密数据和第一校验值;将加密数据、第一校验值和本地椭圆临时公私钥对中的本地椭圆临时公钥进行组合得到报文数据,并进行传输,通过初始随机密钥对数据进行加密,且初始偏移量由随机密钥得到,随机密钥时效性短,破解难度大,提高数据传输的安全性。

权利要求 :

1.一种数据传输方法,其特征在于,所述数据传输方法包括:在接收到数据加密请求时,根据所述数据加密请求获取待加密数据;

基于所述待加密数据得到数据接收方的椭圆公钥和本地椭圆临时公私钥对;

通过所述数据接收方的椭圆公钥和所述本地椭圆临时公私钥对中的本地椭圆临时私钥生成第一初始随机密钥,其中,所述第一初始随机密钥包括第一会话密钥;

对所述第一初始随机密钥进行计算,得到第一目标随机密钥和第一初始偏移量;

通过所述第一目标随机密钥和所述第一初始偏移量对所述待加密数据进行加密处理,得到加密数据和第一校验值;

将所述加密数据、所述第一校验值和所述本地椭圆临时公私钥对中的本地椭圆临时公钥进行组合得到报文数据,将所述报文数据进行传输。

2.如权利要求1所述的数据传输方法,其特征在于,所述基于所述待加密数据得到数据接收方的椭圆公钥和本地椭圆临时公私钥对,包括:基于所述待加密数据得到对应的数据接收方;

基于所述数据接收方获取数据接收方的椭圆公钥;

对所述待加密数据进行椭圆加密,生成本地椭圆临时公钥和本地椭圆临时私钥;

将所述本地椭圆临时公钥和所述本地椭圆临时私钥作为本地椭圆临时公私钥对。

3.如权利要求1所述的数据传输方法,其特征在于,所述对所述第一初始随机密钥进行计算,得到第一目标随机密钥和第一初始偏移量,包括:对所述第一初始随机密钥进行哈希计算,得到第一参考随机密钥;

对所述第一参考随机密钥进行划分,得到第二参考随机密钥和第三参考随机密钥;

将所述第二参考随机密钥和所述第三参考随机密钥进行异或计算,得到第一目标随机密钥;

对所述第三参考随机密钥中的前8字节的随机密钥和后8字节的随机密钥进行异或计算,得到第一初始偏移量。

4.如权利要求3所述的数据传输方法,其特征在于,所述通过所述第一目标随机密钥和所述第一初始偏移量对所述待加密数据进行加密处理,得到加密数据和第一校验值,包括:基于所述第一初始偏移量对所述待加密数据通过数据加密算法和密码分组链接模式进行数据加密,得到加密数据;

通过所述第二参考随机密钥和所述第一初始偏移量对所述加密数据进行校验值计算,得到第一校验值。

5.如权利要求1‑4中任一项所述的数据传输方法,其特征在于,所述将所述加密数据、所述第一校验值和所述本地椭圆临时公私钥对中的本地椭圆临时公钥进行组合得到报文数据,将所述报文数据进行传输之后,还包括:在接收到数据解密请求时,基于所述数据解密请求获取所述报文数据;

基于所述报文数据中的加密数据生成本地椭圆私钥;

获取所述报文数据中的数据发送方的椭圆临时公钥、加密数据以及第一校验值;

基于所述本地椭圆私钥和所述数据发送方的椭圆临时公钥生成第二初始随机密钥,其中,所述第二初始随机密钥包括第二会话密钥;

对所述第二初始随机密钥进行计算,得到第二目标随机密钥和第二初始偏移量;

对所述第二目标随机密钥和所述第二初始偏移量对所述加密数据进行校验值计算,得到第二校验值;

将所述第二校验值与所述第一校验值进行比对;

在所述第二校验值与所述第一校验值比对一致时,通过所述第二目标随机密钥和所述第二初始偏移量对所述加密数据进行解密。

6.如权利要求5所述的数据传输方法,其特征在于,所述对所述第二初始随机密钥进行计算,得到第二目标随机密钥和第二初始偏移量,包括:对所述第二初始随机密钥进行哈希计算,得到第四参考随机密钥;

对所述第四参考随机密钥进行划分,得到第五参考随机密钥和第六参考随机密钥;

将所述第五参考随机密钥和所述第六参考随机密钥进行异或计算,得到第二目标随机密钥;

对所述第六参考随机密钥中的前8字节的随机密钥和后8字节的随机密钥进行异或计算,得到第二初始偏移量。

7.如权利要求6所述的数据传输方法,其特征在于,所述将所述第二校验值与所述第一校验值进行比对之后,还包括:在所述第二校验值与所述第一校验值比对不一致时,停止对所述加密数据的解密。

8.一种数据传输装置,其特征在于,所述数据传输装置包括:获取模块,用于在接收到数据加密请求时,根据所述数据加密请求获取待加密数据;

所述获取模块,还用于基于所述待加密数据得到数据接收方的椭圆公钥和本地椭圆临时公私钥对;

生成模块,用于通过所述数据接收方的椭圆公钥和所述本地椭圆临时公私钥对中的本地椭圆临时私钥生成第一初始随机密钥,其中,所述第一初始随机密钥包括第一会话密钥;

计算模块,用于对所述第一初始随机密钥进行计算,得到第一目标随机密钥和第一初始偏移量;

加密模块,用于通过所述第一目标随机密钥和所述第一初始偏移量对所述待加密数据进行加密处理,得到加密数据和第一校验值;

传输模块,用于将所述加密数据、所述第一校验值和所述本地椭圆临时公私钥对中的本地椭圆临时公钥进行组合得到报文数据,将所述报文数据进行传输。

9.一种数据传输设备,其特征在于,所述数据传输设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据传输程序,所述数据传输程序配置为实现如权利要求1至7中任一项所述的数据传输方法。

10.一种存储介质,其特征在于,所述存储介质上存储有数据传输程序,所述数据传输程序被处理器执行时实现如权利要求1至7中任一项所述的数据传输方法。

说明书 :

数据传输方法、装置、设备及存储介质

技术领域

[0001] 本发明涉及数据处理技术领域,尤其涉及一种数据传输方法、装置、设备及存储介质。

背景技术

[0002] 目前在市面上,对于数据传输过程中的数据加密,有3DES(Triple Data Encryption Algorithm,三重数据加密算法)、RSA加密算法等数据加密算法,破解难度低,数据安全方面得不到保障。

发明内容

[0003] 本发明的主要目的在于提供一种数据传输方法、装置、设备及存储介质,旨在解决现有技术数据传输安全性低的技术问题。
[0004] 为实现上述目的,本发明提供了一种数据传输方法,所述方法包括以下步骤:
[0005] 在接收到数据加密请求时,根据所述数据加密请求获取待加密数据;
[0006] 基于所述待加密数据得到数据接收方的椭圆公钥和本地椭圆临时公私钥对;
[0007] 通过所述数据接收方的椭圆公钥和所述本地椭圆临时公私钥对中的本地椭圆临时私钥生成初始随机密钥;
[0008] 对所述初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量;
[0009] 通过所述第一目标随机密钥和所述初始偏移量对所述待加密数据进行加密处理,得到加密数据和第一校验值;
[0010] 将所述加密数据、所述第一校验值和所述本地椭圆临时公私钥对中的本地椭圆临时公钥进行组合得到报文数据,将所述报文数据进行传输。
[0011] 可选地,所述基于所述待加密数据得到数据接收方的椭圆公钥和本地椭圆临时公私钥对,包括:
[0012] 基于所述待加密数据得到对应的数据接收方;
[0013] 基于所述数据接收方获取数据接收方的椭圆公钥;
[0014] 对所述待加密数据进行椭圆加密,生成本地椭圆临时公钥和本地椭圆临时私钥;
[0015] 将所述本地椭圆临时公钥和所述本地椭圆临时私钥作为本地椭圆临时公私钥对。
[0016] 可选地,所述对所述初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量,包括:
[0017] 对所述初始随机密钥进行哈希计算,得到参考随机密钥;
[0018] 对所述参考随机密钥进行划分,得到第一参考随机密钥和第二参考随机密钥;
[0019] 将所述第一参考随机密钥和所述第二参考随机密钥进行异或计算,得到第一目标随机密钥;
[0020] 对所述第二参考随机密钥中的前8字节的随机密钥和后8字节的随机密钥进行异或计算,得到初始偏移量。
[0021] 可选地,所述通过所述第一目标随机密钥和所述初始偏移量对所述待加密数据进行加密处理,得到加密数据和第一校验值,包括:
[0022] 基于所述初始偏移量对所述待加密数据通过数据加密算法和密码分组链接模式进行数据加密,得到加密数据;
[0023] 通过所述第一参考随机密钥和所述初始偏移量对所述加密数据进行校验值计算,得到第一校验值。
[0024] 可选地,所述将所述加密数据、所述第一校验值和所述本地椭圆临时公私钥对中的本地椭圆临时公钥进行组合得到报文数据,将所述报文数据进行传输之后,还包括:
[0025] 在接收到数据解密请求时,基于所述数据解密请求获取所述报文数据;
[0026] 基于所述报文数据中的加密数据生成本地椭圆私钥;
[0027] 获取所述报文数据中的数据发送方的椭圆临时公钥、加密数据以及第一校验值;
[0028] 基于所述本地椭圆私钥和所述数据发送方的椭圆临时公钥生成初始随机密钥;
[0029] 对所述初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量;
[0030] 对所述第一目标随机密钥和所述初始偏移量对所述加密数据进行校验值计算,得到第二校验值;
[0031] 将所述第二校验值与所述第一校验值进行比对;
[0032] 在所述第二校验值与所述第一校验值比对一致时,通过所述第一目标随机密钥和所述初始偏移量对所述加密数据进行解密。
[0033] 可选地,所述对所述初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量,包括:
[0034] 对所述初始随机密钥进行哈希计算,得到参考随机密钥;
[0035] 对所述参考随机密钥进行划分,得到第一参考随机密钥和第二参考随机密钥;
[0036] 将所述第一参考随机密钥和所述第二参考随机密钥进行异或计算,得到第一目标随机密钥;
[0037] 对所述第二参考随机密钥中的前8字节的随机密钥和后8字节的随机密钥进行异或计算,得到初始偏移量。
[0038] 可选地,所述将所述第二校验值与所述第一校验值进行比对之后,还包括:
[0039] 在所述第二校验值与所述第一校验值比对不一致时,停止对所述加密数据的解密。
[0040] 此外,为实现上述目的,本发明还提出一种数据传输装置,所述数据传输装置包括:
[0041] 获取模块,用于在接收到数据加密请求时,根据所述数据加密请求获取待加密数据;
[0042] 所述获取模块,还用于基于所述待加密数据得到数据接收方的椭圆公钥和本地椭圆临时公私钥对;
[0043] 生成模块,用于通过所述数据接收方的椭圆公钥和所述本地椭圆临时公私钥对中的本地椭圆临时私钥生成初始随机密钥;
[0044] 计算模块,用于对所述初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量;
[0045] 加密模块,用于通过所述第一目标随机密钥和所述初始偏移量对所述待加密数据进行加密处理,得到加密数据和第一校验值;
[0046] 传输模块,用于将所述加密数据、所述第一校验值和所述本地椭圆临时公私钥对中的本地椭圆临时公钥进行组合得到报文数据,将所述报文数据进行传输。
[0047] 此外,为实现上述目的,本发明还提出一种数据传输设备,所述数据传输设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据传输程序,所述数据传输程序配置为实现如上文所述的数据传输方法的步骤。
[0048] 此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有数据传输程序,所述数据传输程序被处理器执行时实现如上文所述的数据传输方法的步骤。
[0049] 本发明在接收到数据加密请求时,根据所述数据加密请求获取待加密数据;基于所述待加密数据得到数据接收方的椭圆公钥和本地椭圆临时公私钥对;通过所述数据接收方的椭圆公钥和所述本地椭圆临时公私钥对中的本地椭圆临时私钥生成初始随机密钥;对所述初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量;通过所述第一目标随机密钥和所述初始偏移量对所述待加密数据进行加密处理,得到加密数据和第一校验值;将所述加密数据、所述第一校验值和所述本地椭圆临时公私钥对中的本地椭圆临时公钥进行组合得到报文数据,将所述报文数据进行传输。通过生成的初始随机密钥对数据进行加密,且初始偏移量由随机密钥得到,随机密钥时效性短,破解难度大,提高数据传输的安全性。

附图说明

[0050] 图1是本发明实施例方案涉及的硬件运行环境的数据传输设备的结构示意图;
[0051] 图2为本发明数据传输方法第一实施例的流程示意图;
[0052] 图3为本发明数据传输方法一实施例的总体流程示意图;
[0053] 图4为本发明数据传输方法第二实施例的流程示意图;
[0054] 图5本发明数据传输方法一实施例中现有技术数据加密解密实现流程图;
[0055] 图6本发明数据传输方法一实施例中现有技术数据加密解密另一种方式实现流程图;
[0056] 图7为本发明数据传输方法第三实施例的流程示意图;
[0057] 图8为本发明数据传输方法第四实施例的流程示意图;
[0058] 图9为本发明数据传输装置第一实施例的结构框图。
[0059] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0060] 应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0061] 参照图1,图1为本发明实施例方案涉及的硬件运行环境的数据传输设备结构示意图。
[0062] 如图1所示,该数据传输设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless‑Fidelity,Wi‑Fi)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non‑Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0063] 本领域技术人员可以理解,图1中示出的结构并不构成对数据传输设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0064] 如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据传输程序。
[0065] 在图1所示的数据传输设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明数据传输设备中的处理器1001、存储器1005可以设置在数据传输设备中,所述数据传输设备通过处理器1001调用存储器1005中存储的数据传输程序,并执行本发明实施例提供的数据传输方法。
[0066] 本发明实施例提供了一种数据传输方法,参照图2,图2为本发明数据传输方法第一实施例的流程示意图。
[0067] 本实施例中,所述数据传输方法包括以下步骤:
[0068] 步骤S10:在接收到数据加密请求时,根据所述数据加密请求获取待加密数据。
[0069] 需要说明的是,本实施例的执行主体为数据传输设备,例如数据传输服务器等,还可为其它可实现相同或者相似功能的设备,本实施例对此不做限制,本实施例以数据传输设备为例进行说明。
[0070] 在具体实施中,数据加密请求指的是用户需要对传输的数据进行数据加密的请求,当数据需要进行传输时,用户可上传需要传输的数据至数据传输设备,当数据传输设备接收到需要传输的数据时,生成数据加密请求,对需要传输的数据进行数据加密,即将需要传输的数据作为待加密数据进行数据加密。当接收到用户发送的数据加密请求时,对数据加密请求进行解析,得到待加密数据。
[0071] 步骤S20:基于所述待加密数据得到数据接收方的椭圆公钥和本地椭圆临时公私钥对。
[0072] 在本实例中,进行数据加密之前,数据加密方和数据接收方都根据需要传输的待加密数据生成自身的公钥,本实施例使用椭圆算法生成数据加密方的椭圆临时公钥和数据加密方的椭圆临时私钥,将数据加密方的椭圆临时公钥和椭圆临时私钥作为本地椭圆临时公私钥对。数据接收方通过椭圆算法生成自身的椭圆公钥和椭圆私钥,将自身的椭圆公钥作为数据接收方的椭圆公钥发送给数据加密方,以便进行数据加密,将自身的椭圆私钥存储在本地,方便后续进行数据解密。
[0073] 应理解的是,可根据待加密数据得到数据接收方发送的数据接收方的椭圆公钥和存储在数据加密方本地的本地椭圆公私钥对。
[0074] 步骤S30:通过所述数据接收方的椭圆公钥和所述本地椭圆临时公私钥对中的本地椭圆临时私钥生成初始随机密钥。
[0075] 需要说明的是,当得到数据接收方的椭圆公钥后,可通过本地椭圆临时公私钥对中的本地椭圆临时私钥以及数据接收方的椭圆公钥生成初始随机密钥。初始随机密钥指的是SessionKey,可使用一个随机生成的密钥进行后续的数据加密,相同的原始待加密数据在传输过程中的加密数据都不一样,提高数据加密以及后续传输的安全性。
[0076] 步骤S40:对所述初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量。
[0077] 在具体实施中,对初始随机密钥进行计算的计算方法可为哈希加密计算,还可为其他计算的方法,本实施例对此不加以限定,本实施例以哈希加密计算为例进行说明,第一目标随机密钥指的是16字节的随机密钥,初始偏移量包括对随机密钥进行计算和异或得到的8字节IV值,IV值即初始偏移量。
[0078] 需要说明的是,通过对初始随机密钥计算得到16字节的第一目标随机密钥以及初始偏移量。初始偏移量从初始随机密钥中获取,破解数据难度加大,提供数据传输的安全性。
[0079] 步骤S50:通过所述第一目标随机密钥和所述初始偏移量对所述待加密数据进行加密处理,得到加密数据和第一校验值。
[0080] 应理解的是,对待加密数据进行加密的方法可为3DES CBC(Cipher Block Chaining,密码分组链模式)加密算法、ECB((Electronic Codebook Book,电子密码本模式)加密算法、CFB(Cipher feedback,密码反馈模式)等,本实施例对此不作限制,本实施例以3DES CBC加密算法为例进行说明。通过第一目标随机密钥和初始偏移量对待加密数据使用3DES CBC加密算法进行加密处理,得到加密数据,并通过对加密数据进行校验值计算,得到第一校验值。第一校验值指的是MAC(Message Authentication Code,消息认证码)。
[0081] 步骤S60:将所述加密数据、所述第一校验值和所述本地椭圆临时公私钥对中的本地椭圆临时公钥进行组合得到报文数据,将所述报文数据进行传输。
[0082] 需要说明的是,当得到加密数据和第一校验值后,可将数据进行组合并传输,为了方便数据接收方对加密数据进行解密,可将数据加密方的本地椭圆临时公私钥对中的本地椭圆临时公钥、加密数据以及第一校验值组织报文字段,得到报文数据,并将报文数据传输至数据接收方。
[0083] 如图3所示,图3为本实施例中数据传输的整体流程示意图。当数据传输设备作为数据加密方需要对数据进行加密时,通过椭圆加密算法生成自身的椭圆临时公钥和自身的椭圆临时私钥,数据接收方也生成椭圆公钥和椭圆私钥,数据加密方获取对方即数据接收方的椭圆公钥,通过己方的椭圆临时私钥和对方公钥生成随机密钥,并通过SHA256哈希加密算法,即SHA‑2(Secure Hash Algorithm 2,密码散列函数算法标准)算法下细分的一种哈希加密算法对随机密钥进行哈希计算操作,得到32字节的随机密钥,取32字节的随机密钥的前16字节和后16字节进行异或,得到进行3DES数据加密的16字节随机密钥,并取随机密钥的后16字节,对后16字节中的前8字节与后8字节进行异或,得到8字节的初始偏移量,通过3DES CBC加密算法、初始偏移量以及随机密钥对待加密的数据进行数据加密,得到加密数据,并对随机密钥的前16字节进行3DES MAC校验值计算,得到第一校验值MAC1,将第一校验值MAC1、己方的椭圆临时公钥以及加密数据组合成报文数据发送至数据接收方。数据接收方根据自身的椭圆私钥以及报文数据中的对方的椭圆临时公钥生成随机密钥,并将随机密钥通过SHA256哈希加密算法计算,得到32字节的随机密钥,取32字节的随机密钥中的后16字节,对后16字节中的前8字节和后8字节进行异或,得到8字节的初始偏移量,并取32字节的前16字节以及8字节的初始偏移量对加密数据进行3DES MAC校验值计算,得到第二校验值MAC2,将第二校验值MAC2与报文数据中的第一校验值MAC1进行比对,当第一校验值MAC1与第二校验值MAC2比较相等时,通过SHA256哈希加密算法计算得到的32字节的随机密钥以及8字节的初始偏移量对加密数据进行解密,得到解密数据。当数据传输设备作为数据解密方需要对接收到的报文数据进行解密时,获取椭圆加密算法生成己方的椭圆私钥,并获取报文数据中对方的椭圆临时公钥,通过己方的椭圆私钥与对方的椭圆临时公钥生成32字节的随机密钥,取32字节随机密钥的后16字节,将后16字节的前8字节和后8字节进行异或,得到8字节的初始偏移量,并取32字节随机密钥的前16字节对加密数据计算校验值,得到第二校验值MAC2,将第一校验值MAC1和第二校验值MAC2进行比较,当第一校验值MAC1等于第二校验值MAC2时,通过3DES CBC算法以及8字节的初始偏移量对加密数据进行解密,得到解密数据,当第一校验值MAC1与第二校验值MAC2不相等时,停止数据解密。
[0084] 本实施例在接收到数据加密请求时,根据所述数据加密请求获取待加密数据;基于所述待加密数据得到数据接收方的椭圆公钥和本地椭圆临时公私钥对;通过所述数据接收方的椭圆公钥和所述本地椭圆临时公私钥对中的本地椭圆临时私钥生成初始随机密钥;对所述初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量;通过所述第一目标随机密钥和所述初始偏移量对所述待加密数据进行加密处理,得到加密数据和第一校验值;将所述加密数据、所述第一校验值和所述本地椭圆临时公私钥对中的本地椭圆临时公钥进行组合得到报文数据,将所述报文数据进行传输。通过生成的初始随机密钥对数据进行加密,且初始偏移量由随机密钥得到,随机密钥时效性短,破解难度大,提高数据传输的安全性。
[0085] 参考图3,图3为本发明数据传输方法第二实施例的流程示意图。
[0086] 基于上述第一实施例,本实施例数据传输方法所述步骤S20,具体包括:
[0087] 步骤S201:基于所述待加密数据得到对应的数据接收方。
[0088] 应理解的是,当需要对数据加密时,可根据待加密数据确定对应的数据接收方,从而可以与数据接收方建立通信,便于数据以及公钥之间的传输。
[0089] 步骤S202:基于所述数据接收方获取数据接收方的椭圆公钥。
[0090] 当数据加密方和数据接收方建立通信后,数据接收方会根据待加密数据以及椭圆加密算法,生成数据接收方的椭圆公钥以及数据接收方的椭圆私钥。并将数据接收方的椭圆公钥传输给数据加密方以进行数据加密。则数据加密方可基于数据接收方获取数据接收方的椭圆公钥。
[0091] 步骤S203:对所述待加密数据进行椭圆加密,生成本地椭圆临时公钥和本地椭圆临时私钥。
[0092] 步骤S204:将所述本地椭圆临时公钥和所述本地椭圆临时私钥作为本地椭圆临时公私钥对。
[0093] 在具体实施中,当确定待加密数据后,可通过椭圆加密算法对待加密数据进行处理,生成本地椭圆临时公钥和本地椭圆临时私钥,本地椭圆临时公钥和本地椭圆临时私钥为数据加密方的椭圆临时公钥和数据加密方的椭圆临时私钥,并将本地椭圆临时公钥和本地椭圆临时私钥作为本地椭圆临时公私钥对。
[0094] 当确定了待加密数据、数据加密方以及数据接收方后,可根据椭圆加密算法生成数据加密方的椭圆临时公私钥对以及数据接收方的椭圆公私钥对,便于后续对数据进行加密和解密。如图5所示,图5为本实施例中的现有技术数据加密解密实现的流程图,图5中为3DES数据加密和解密,通过对称密钥对数据进行加密和解密,当数据加密设备需要对待加密数据进行加密时,获取密钥key,并对数据进行加密,得到加密数据,当数据解密设备需要对加密数据进行解密时,获取密钥key,对加密数据进行解密,此数据加密解密的过程已经存在破解方法,数据安全得不到保证。如图6所示,图6为本实施例中现有技术数据加密解密另一种方式实现的流程图,图6中,通过RSA算法对数据进行加密解密,数据加密方通过获取生成己方私钥对数据进行加密,得到加密数据,数据解密方通过获取对方公钥key对加密数据进行解密,得到解密数据,密钥时效性长,破解难度低。
[0095] 本实施例通过基于所述待加密数据得到对应的数据接收方;基于所述数据接收方获取数据接收方的椭圆公钥;对所述待加密数据进行椭圆加密,生成本地椭圆临时公钥和本地椭圆临时私钥;将所述本地椭圆临时公钥和所述本地椭圆临时私钥作为本地椭圆临时公私钥对,通过上述方式生成数据加密方的椭圆临时公私钥对以及数据解密方的椭圆公私钥对,各自保存自己的椭圆私钥,提供自己的私钥给对方,加密数据的密钥生成的为临时密钥,每次生成的密钥都不一样,提升数据加密的安全性。
[0096] 参考图7,图7为本发明数据传输方法第三实施例的流程示意图。
[0097] 基于上述第一实施例,本实施例数据传输方法所述步骤S40,具体包括:
[0098] 步骤S401:对所述初始随机密钥进行哈希计算,得到参考随机密钥。
[0099] 参考随机密钥指的是32字节的随机密钥,可通过对初始随机密钥进行SHA256哈希算法计算,得到32字节的随机密钥。
[0100] 步骤S402:对所述参考随机密钥进行划分,得到第一参考随机密钥和第二参考随机密钥。
[0101] 在具体实施中,对参考随机密钥进行划分包括将32字节的随机密钥划分为前16字节的随机密钥和后16字节的随机密钥,第一参考随机密钥指的是前16字节的随机密钥,第二参考随机密钥指的是后16字节的随机密钥。
[0102] 通过对32字节的随机密钥进行划分,得到16字节的第一参考随机密钥和16字节的第二参考随机密钥。
[0103] 步骤S403:将所述第一参考随机密钥和所述第二参考随机密钥进行异或计算,得到第一目标随机密钥。
[0104] 需要说明的是,可通过将前16字节的随机密钥和后16字节的随机密钥使用3DES算法进行异或计算,得到16字节的随机密钥,即16字节3DESKey,第一目标随机密钥指的是16字节的随机密钥。
[0105] 步骤S404:对所述第二参考随机密钥中的前8字节的随机密钥和后8字节的随机密钥进行异或计算,得到初始偏移量。
[0106] 在具体实施中,对所述第二参考随机密钥中的前8字节的随机密钥和后8字节的随机密钥进行异或计算指的是对后16字节的随机密钥中的前8字节的随机密钥和后8字节的随机密钥进行异或操作。对后16字节的随机密钥件中的前8字节的随机密钥和后8字节的随机密钥的异或操作包括:将第二参考随机密钥进行划分,得到前8字节的随机密钥和后8字节的随机密钥,并将前8字节的随机密钥和后8字节的随机密钥进行异或计算,得8字节的IV初始偏移量。
[0107] 具体地,通过第一目标随机密钥和初始偏移量对待加密数据监加密处理得到第一校验值包括:基于所述初始偏移量对所述待加密数据通过数据加密算法和密码分组链接模式进行数据加密,得到加密数据;通过所述第一参考随机密钥和所述初始偏移量对所述加密数据进行校验值计算,得到第一校验值。
[0108] 数据加密算法指的是3DES数据加密算法,密码分组链接模式指的是CBC加密模式,通过初始偏移量、3DES以及CBC加密方法对待加密数据进行数据加密,得到加密数据,并通过前16字节的第一参考随机密钥以及初始偏移量对加密数据进行校验值计算,得到第一校验值MAC1。第一校验值MAC1为使用椭圆算法得到的第一参考随机密钥计算得到,破解难度大,保证数据不被篡改。
[0109] 本实施例通过对所述初始随机密钥进行哈希计算,得到参考随机密钥;对所述参考随机密钥进行划分,得到第一参考随机密钥和第二参考随机密钥;将所述第一参考随机密钥和所述第二参考随机密钥进行异或计算,得到第一目标随机密钥;对所述第二参考随机密钥中的前8字节的随机密钥和后8字节的随机密钥进行异或计算,得到初始偏移量。初始偏移量从初始随机密钥里面获取,破解难度加大,提高数据传输的安全性。
[0110] 参考图8,图8为本发明数据传输方法第四实施例的流程示意图。
[0111] 基于上述第一和第三实施例,本实施例数据传输方法在所述步骤S60之后,还包括:
[0112] 步骤S61:在接收到数据解密请求时,基于所述数据解密请求获取所述报文数据。
[0113] 应理解的是,数据解密请求指的是对数据加密方传输的报文数据进行解密的请求。当数据加密完成后,将携带有加密数据的报文数据进行传输,将报文数据传输至数据解密方,当数据传输设备作为数据解密方时,获取数据加密方发送的报文数据,并根据报文数据生成数据解密请求,当接收到数据解密请求后,可对数据解密请求进行解析,得到报文数据。报文数据中包括有加密数据、数据加密方的椭圆临时公钥以及数据加密方的第一校验值MAC1。
[0114] 步骤S62:基于所述报文数据中的加密数据生成本地椭圆私钥。
[0115] 需要说明的是,当数据解密方得到报文数据后,可通过报文数据中的加密数据生成本地椭圆私钥,或在接收到解密指令时,根据解密指令生成本地椭圆私钥,本地椭圆私钥指的是数据解密方的椭圆私钥。
[0116] 步骤S63:获取所述报文数据中的数据发送方的椭圆临时公钥、加密数据以及第一校验值。
[0117] 在具体实施中,为了对数据进行解密,可对报文数据进行解析,得到报文数据中的数据发送方的椭圆临时公钥、加密数据以及第一校验值MAC1。
[0118] 步骤S64:基于所述本地椭圆私钥和所述数据发送方的椭圆临时公钥生成初始随机密钥。
[0119] 在本实施例中,可通过自身的本地椭圆私钥以及数据发送方的椭圆临时公钥生成初始随机密钥,初始随机密钥指的是SessionKey密钥。
[0120] 步骤S65:对所述初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量。
[0121] 对初始随机密钥进行计算的计算方法可为哈希加密计算,还可为其他计算的方法,本实施例对此不加以限定,本实施例以哈希加密计算为例进行说明,第一目标随机密钥指的是16字节的随机密钥,初始偏移量包括对随机密钥进行计算和异或得到的8字节IV值,IV值即初始偏移量。
[0122] 需要说明的是,通过对初始随机密钥计算得到16字节的第一目标随机密钥以及初始偏移量。初始偏移量从初始随机密钥中获取,破解数据难度加大,提供数据传输的安全性。
[0123] 具体地,对初始随机密钥进行计算得到第一目标随机密钥和初始偏移量的步骤具体包括:对所述初始随机密钥进行哈希计算,得到参考随机密钥;对所述参考随机密钥进行划分,得到第一参考随机密钥和第二参考随机密钥;将所述第一参考随机密钥和所述第二参考随机密钥进行异或计算,得到第一目标随机密钥;对所述第二参考随机密钥中的前8字节的随机密钥和后8字节的随机密钥进行异或计算,得到初始偏移量。
[0124] 参考随机密钥指的是32字节的随机密钥。通过SHA256哈希算法对初始随机密钥进行计算,得到参考随机密钥,并对参考随机密钥进行划分,将32字节的随机密钥划分为前16字节的随机密钥和后16字节的随机密钥,第一参考随机密钥指的是前16字节的随机密钥,第二参考随机密钥指的是后16字节的随机密钥。
[0125] 通过对32字节的随机密钥进行划分,得到16字节的第一参考随机密钥和16字节的第二参考随机密钥。
[0126] 需要说明的是,可通过将前16字节的随机密钥和后16字节的随机密钥使用3DES算法进行异或计算,得到16字节的随机密钥,即16字节3DESKey,第一目标随机密钥指的是16字节的随机密钥。
[0127] 在具体实施中,将第二参考随机密钥中的前8字节的随机密钥和后8字节的随机密钥进行异或计算指的是对后16字节的随机密钥中的前8字节的随机密钥和后8字节的随机密钥进行异或操作。对后16字节的随机密钥件中的前8字节的随机密钥和后8字节的随机密钥的异或操作包括:将第二参考随机密钥进行划分,得到前8字节的随机密钥和后8字节的随机密钥,并将前8字节的随机密钥和后8字节的随机密钥进行异或计算,得8字节的IV初始偏移量。
[0128] 步骤S66:对所述第一目标随机密钥和所述初始偏移量对所述加密数据进行校验值计算,得到第二校验值。
[0129] 第二校验值指的是使用椭圆算法得到的第一参考随机密钥计算得到的MAC2,可通过初始偏移量和第一参考随机密钥对加密数据进行校验值计算,得到第二校验值MAC2。
[0130] 步骤S67:将所述第二校验值与所述第一校验值进行比对。
[0131] 数据解密方计算得到第二校验值后,可将报文数据中的第一校验值MAC1与第二校验值MAC2进行比对,当所述第二校验值与所述第一校验值比对不一致时,停止对所述加密数据的解密。
[0132] 在具体实施中,当第一校验值与第二校验值比对不一致,说明校验值可能被篡改,数据不可信,则停止对数据加密方传输的加密数据的解密过程,可发送重新传输数据的请求至数据加密方。
[0133] 步骤S68:在所述第二校验值与所述第一校验值比对一致时,通过所述第一目标随机密钥和所述初始偏移量对所述加密数据进行解密。
[0134] 需要说明的是,当第二校验值与第一校验值比对一致时,说明此时数据解密环境安全,可通过数据解密方的第一目标随机密钥和初始偏移量对加密数据进行数据解密,得到解密数据。对于数据加密方临时生成的公私钥对,在报文数据发送至数据接收方或数据接收方接收报文数据完成数据解密后便可丢弃,提升数据加密解密的安全性。
[0135] 本实施例通过在接收到数据解密请求时,基于所述数据解密请求获取所述报文数据;基于所述报文数据中的加密数据生成本地椭圆私钥;获取所述报文数据中的数据发送方的椭圆临时公钥、加密数据以及第一校验值;基于所述本地椭圆私钥和所述数据发送方的椭圆临时公钥生成初始随机密钥;对所述初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量;对所述第一目标随机密钥和所述初始偏移量对所述加密数据进行校验值计算,得到第二校验值;将所述第二校验值与所述第一校验值进行比对;在所述第二校验值与所述第一校验值比对一致时,通过所述第一目标随机密钥和所述初始偏移量对所述加密数据进行解密。通过将第一校验值与第二校验值进行比对,在比对一致时才对数据进行解密,提升数据解密过程中的安全性。
[0136] 参照图9,图9为本发明数据传输装置第一实施例的结构框图。
[0137] 如图9所示,本发明实施例提出的数据传输装置包括:
[0138] 获取模块10,用于在接收到数据加密请求时,根据所述数据加密请求获取待加密数据。
[0139] 所述获取模块10,还用于基于所述待加密数据得到数据接收方的椭圆公钥和本地椭圆临时公私钥对。
[0140] 生成模块20,用于通过所述数据接收方的椭圆公钥和所述本地椭圆临时公私钥对中的本地椭圆临时私钥生成初始随机密钥。
[0141] 计算模块30,用于对所述初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量。
[0142] 加密模块40,用于通过所述第一目标随机密钥和所述初始偏移量对所述待加密数据进行加密处理,得到加密数据和第一校验值。
[0143] 传输模块50,用于将所述加密数据、所述第一校验值和所述本地椭圆临时公私钥对中的本地椭圆临时公钥进行组合得到报文数据,将所述报文数据进行传输。
[0144] 本实施例在接收到数据加密请求时,根据所述数据加密请求获取待加密数据;基于所述待加密数据得到数据接收方的椭圆公钥和本地椭圆临时公私钥对;通过所述数据接收方的椭圆公钥和所述本地椭圆临时公私钥对中的本地椭圆临时私钥生成初始随机密钥;对所述初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量;通过所述第一目标随机密钥和所述初始偏移量对所述待加密数据进行加密处理,得到加密数据和第一校验值;将所述加密数据、所述第一校验值和所述本地椭圆临时公私钥对中的本地椭圆临时公钥进行组合得到报文数据,将所述报文数据进行传输。通过生成的初始随机密钥对数据进行加密,且初始偏移量由随机密钥得到,随机密钥时效性短,破解难度大,提高数据传输的安全性。
[0145] 在一实施例中,所述获取模块10,还用于基于所述待加密数据得到对应的数据接收方;基于所述数据接收方获取数据接收方的椭圆公钥;对所述待加密数据进行椭圆加密,生成本地椭圆临时公钥和本地椭圆临时私钥;将所述本地椭圆临时公钥和所述本地椭圆临时私钥作为本地椭圆临时公私钥对。
[0146] 在一实施例中,所述计算模块30,还用于对所述初始随机密钥进行哈希计算,得到参考随机密钥;对所述参考随机密钥进行划分,得到第一参考随机密钥和第二参考随机密钥;将所述第一参考随机密钥和所述第二参考随机密钥进行异或计算,得到第一目标随机密钥;对所述第二参考随机密钥中的前8字节的随机密钥和后8字节的随机密钥进行异或计算,得到初始偏移量。
[0147] 在一实施例中,所述加密模块40,还用于基于所述初始偏移量对所述待加密数据通过数据加密算法和密码分组链接模式进行数据加密,得到加密数据;通过所述第一参考随机密钥和所述初始偏移量对所述加密数据进行校验值计算,得到第一校验值。
[0148] 在一实施例中,所述传输模块50,还用于在接收到数据解密请求时,基于所述数据解密请求获取所述报文数据;基于所述报文数据中的加密数据生成本地椭圆私钥;获取所述报文数据中的数据发送方的椭圆临时公钥、加密数据以及第一校验值;基于所述本地椭圆私钥和所述数据发送方的椭圆临时公钥生成初始随机密钥;对所述初始随机密钥进行计算,得到第一目标随机密钥和初始偏移量;对所述第一目标随机密钥和所述初始偏移量对所述加密数据进行校验值计算,得到第二校验值;将所述第二校验值与所述第一校验值进行比对;在所述第二校验值与所述第一校验值比对一致时,通过所述第一目标随机密钥和所述初始偏移量对所述加密数据进行解密。
[0149] 在一实施例中,所述传输模块50,还用于对所述初始随机密钥进行哈希计算,得到参考随机密钥;对所述参考随机密钥进行划分,得到第一参考随机密钥和第二参考随机密钥;将所述第一参考随机密钥和所述第二参考随机密钥进行异或计算,得到第一目标随机密钥;对所述第二参考随机密钥中的前8字节的随机密钥和后8字节的随机密钥进行异或计算,得到初始偏移量。
[0150] 在一实施例中,所述传输模块50,还用于在所述第二校验值与所述第一校验值比对不一致时,停止对所述加密数据的解密。
[0151] 此外,为实现上述目的,本发明还提出一种数据传输设备,所述数据传输设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据传输程序,所述数据传输程序配置为实现如上文所述的数据传输方法的步骤。
[0152] 由于本数据传输设备采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
[0153] 此外,本发明实施例还提出一种存储介质,所述存储介质上存储有数据传输程序,所述数据传输程序被处理器执行时实现如上文所述的数据传输方法的步骤。
[0154] 由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
[0155] 应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
[0156] 需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
[0157] 另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的数据传输方法,此处不再赘述。
[0158] 此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0159] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0160] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0161] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。