发明内容
本发明的实施例提供一种的数据传输的加密和解密方法、设备及***,可以快速实现数据加解密操作,提高处理效率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种数据传输的加密方法,包括:
建立与接收方之间的TLS(英文全称为:Transport Layer Security,中文全称为:传输层安全)协议连接;
通过所述TLS协议连接与所述接收方进行协商生成对称密钥,并保存所述对称密钥;
使用所述对称密钥对待发送数据进行加密,并通过UDP(英文全称为:UserDatagram Protocol,中文全称为:用户数据报协议)将加密后的数据发送至所述接收方。
在第一方面的第一种可能实现方式中,所述使用所述对称密钥对所述待发送数据进行加密之前,还包括:
通过所述TLS协议连接与所述接收方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述接收方;或接收所述接收方通过所述TLS协议连接发送的所述对称密钥的标识;
所述使用所述对称密钥对所述待发送数据进行加密后,还包括:将所述对称密钥的标识通知所述接收方,以使得所述接收方根据所述对称密钥的标识选择对称密钥对接收到的数据进行解密。
在第一方面的第二种可能实现方式中,所述通过UDP将加密后的数据发送至所述接收方之前,还包括:
通过与所述接收方相同的摘要算法获取所述待发送数据的摘要;
将所述摘要发送至所述接收方,以使得所述接收方根据所述摘要对接收到的数据进行验证。
结合第一方面、或第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,还包括:
通过所述TLS协议连接与所述接收方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述接收方;或接收所述接收方通过所述TLS协议连接发送的所述对称密钥的标识;
所述将所述摘要发送至所述接收方,包括:
使用所述对称密钥,对所述摘要和摘要算法的标识进行加密;
将所述对称密钥的标识与加密后的所述摘要和摘要算法的标识封装在摘要消息中发送至所述接收方。
结合第一方面、第一方面的第一种可能实现方式、第一方面的第二种可能实现方式、或第一方面的第三种可能实现方式,在第一方面的第四种可能实现方式中,所述将加密后的数据发送至所述接收方之后,还包括:
接收所述接收方发送的通知信息,所述通知信息用于通知发送方重新建立与所述接收方的TLS协议连接;
重新建立与所述接收方之间的TLS协议连接;
通过重新建立的TLS协议连接与所述接收方进行协商生成新的对称密钥,并将已保存的对称密钥替换为所述新的对称密钥。
第二方面,提供了一种数据传输的解密的方法,包括:
建立与发送方之间的TLS协议连接;
通过所述TLS协议连接与所述发送方进行协商生成对称密钥,并保存所述对称密钥;
接收所述发送方通过UDP发送的数据;
使用所述对称密钥,对接收到的数据进行解密。
在第二方面的第一种可能实现方式中,在所述通过所述TLS协议连接与所述发送方进行协商生成对称密钥之后,还包括:
通过所述TLS协议连接与所述发送方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述发送方;或接收所述发送方通过所述TLS协议连接发送的所述对称密钥的标识;
存储所述对称密钥与所述对称密钥的标识的对应关系;
所述使用所述对称密钥,对接收到的数据进行解密,包括:
接收所述发送方发送的对称密钥的标识;
从所述对称密钥与所述对称密钥的标识的对应关系中,查询所述发送方发送的对称密钥的标识对应的对称密钥;
使用查询到的对称密钥,对接收到的数据进行解密。
在第二方面的第二种可能实现方式中,所述使用所述对称密钥,对接收到的数据进行解密包括:
接收所述发送方发送的所述数据的摘要;
根据所述对称密钥,对所述接收到的数据进行解密;
通过与所述发送方相同的摘要算法获取所述解密后的数据的摘要,比较所述发送方发送的所述数据的摘要与通过摘要算法获取的摘要是否一致;
当所述发送方发送的所述数据的摘要与通过摘要算法获取的摘要的比较结果不一致时;和/或,当使用所述对称密钥,不能对所述接收到的数据进行解密时;则向所述发送方发送通知信息,所述通知信息用于通知发送方重新建立与所述接收方的TLS协议连接。
结合第二方面的第二种可能实现方式,在第二方面的第三种可能实现方式中,还包括:
所述通过所述TLS协议连接与所述发送方进行协商,生成对称密钥之后,还包括:
通过所述TLS协议连接与所述发送方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述发送方;或接收所述发送方通过所述TLS协议连接发送的所述对称密钥的标识;
存储所述对称密钥与所述对称密钥的标识的对应关系;
所述接收所述发送方发送的所述数据的摘要包括:
接收所述发送方发送的摘要消息,所述摘要消息包括所述对称密钥的标识与加密后的所述摘要和摘要算法的标识;
所述根据所述对称密钥,对所述接收到的数据进行解密,包括:
从所述摘要消息中获取对称密钥的标识;
从所述对称密钥与所述对称密钥的标识的对应关系中,查询从所述摘要消息中获取的对称密钥的标识对应的对称密钥;
使用查询到的对称密钥,对所述接收到的数据进行解密;
所述通过与所述接收方相同的摘要算法获取所述接收到的数据的摘要,比较所述发送方发送的所述数据的摘要与通过摘要算法获取的摘要是否一致,包括:
使用查询到的对称密钥,对所述摘要消息中的加密后的所述摘要和摘要算法的标识进行解密;
通过解密后得到的摘要算法的标识对应的摘要算法,获取解密后的数据的摘要,比较从所述摘要消息中解密得到的所述摘要和通过所述摘要算法获取的解密后的数据的摘要是否一致;
当使用查询到的对称密钥,不能对所述摘要消息中的加密后的所述摘要和摘要算法的标识进行解密时,则向所述发送方发送通知信息,所述通知信息用于通知发送方重新建立与所述接收方的TLS协议连接。
第三方面,提供了一种发送方设备,包括:
连接建立单元,用于建立与接收方之间的TLS协议连接;
生成单元,用于通过所述连接建立单元建立的所述TLS协议连接与所述接收方进行协商生成对称密钥,并保存所述对称密钥;
加密单元,用于使用所述生成单元生成的所述对称密钥对待发送数据进行加密;
发送单元,用于将所述加密单元加密后的数据发送至所述接收方。
在第三方面的第一种可能实现方式中,还包括:
标识确定单元,用于在所述加密单元使用所述对称密钥对所述待发送数据进行加密之前,通过所述TLS协议连接与所述接收方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述接收方;或接收所述接收方通过所述TLS协议连接发送的所述对称密钥的标识;
标识通知单元,用于在所述加密单元使用所述对称密钥对所述待发送数据进行加密后,将所述标识确定单元确定的所述对称密钥的标识通知所述接收方,以使得所述接收方根据所述对称密钥的标识选择对称密钥对接收到的数据进行解密。
在第三方面的第二种可能实现方式中,还包括:
摘要获取单元,用于在所述发送单元通过UDP将加密后的数据发送至所述接收方之前,通过与所述接收方相同的摘要算法获取所述待发送数据的摘要;
所述发送单元,还用于将所述摘要获取单元获取的所述摘要发送至所述接收方,以使得所述接收方根据所述摘要对接收到的数据进行验证。
结合第三方面的第二种可能实现方式,在第三方面的第三种可能实现方式中,包括:
标识确定单元,用于在所述加密单元使用所述对称密钥对所述待发送数据进行加密之前,通过所述TLS协议连接与所述接收方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述接收方;或用于接收所述接收方通过所述TLS协议连接发送的所述对称密钥的标识;
所述发送单元,包括:
加密子单元,用使用所述生成单元生成的所述对称密钥,对所述摘要和摘要算法的标识进行加密;
发送子单元,用于将所述标识确定单元确定的所述对称密钥的标识与所述加密子单元加密后的所述摘要和摘要算法的标识封装在摘要消息中发送至所述接收方。
结合第三方面、或第三方面的上述任意一种可能实现方式,在第三方面的第四种可能实现方式中,还包括:
接收单元,用于在所述发送单元将所述将加密后的数据发送至所述接收方之后,接收所述接收方发送的通知信息,所述通知信息用于通知发送方重新建立与所述接收方的TLS协议连接,并触发所述连接建立单元重新建立与所述接收方之间的TLS协议连接;
所述生成单元还用于,通过所述重新建立的TLS协议连接与所述接收方进行协商生成新的对称密钥;
替换单元,用于将已保存的对称密钥替换为所述生成单元生成的新的对称密钥。
第四方面,提供了一种接收方设备,包括:
连接建立单元,用于建立与发送方之间的TLS协议连接;
生成单元,用于通过所述连接建立单元建立的所述TLS协议连接与所述发送方进行协商生成对称密钥,并保存所述对称密钥;
接收单元,用于接收所述发送方通过UDP发送的数据;
解密单元,使用所述生成单元生成的所述对称密钥,对所述接收单元接收到的数据进行解密。
在第四方面的第一种可能实现方式中,包括:
标识确定单元,用于在所述生成单元通过所述TLS协议连接与所述发送方进行协商生成对称密钥之后,通过所述TLS协议连接与所述发送方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述发送方;或接收所述发送方通过所述TLS协议连接发送的所述对称密钥的标识;
存储单元,用于存储所述生成单元生成的所述对称密钥与所述标识确定单元确定的所述对称密钥的标识的对应关系;
所述解密单元,包括:
第一接收子单元,用于接收所述发送方发送的所述标识确定单元确定的所述对称密钥的标识;
查询子单元,用于从所述存储单元存储的所述对称密钥与所述对称密钥的标识的对应关系中,查询所述发送方发送的对称密钥的标识对应的对称密钥;
第一解密子单元,用于使用所述查询子单元查询到的所述对称密钥,对所述接收单元接收到的数据进行解密。
在第四方面的第二种可能实现方式中,包括:
第二接收单元,用于接收所述发送方发送的所述数据的摘要;
第二解密子单元,用于根据是所述生成单元生成的所述对称密钥,对所述接收单元接收到的数据进行解密;
比较子单元,用于通过与所述发送方相同的摘要算法获取所述解密后的数据的摘要,比较所述发送方发送的所述数据的摘要与通过摘要算法获取的摘要是否一致;
发送子单元,用于当所述比较子单元比较的所述发送方发送的所述数据的摘要与通过摘要算法获取的摘要的比较结果不一致时;和/或,当使用所述生成单元生成的所述对称密钥,不能对所述接收单元接收到的数据进行解密时;向所述发送方发送通知信息,所述通知信息用于通知发送方重新建立与所述接收方的TLS协议连接。
结合第四方面的第二种可能实现方式,在第四方面的第三种可能实现方式中,所述设备还包括:
标识确定单元,用于在所述生成单元通过所述TLS协议连接与所述发送方进行协商生成对称密钥之后,通过所述TLS协议连接与所述发送方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述发送方;或接收所述发送方通过所述TLS协议连接发送的所述对称密钥的标识;
存储单元,用于存储所述生成单元生成的所述对称密钥与所述标识确定单元确定的所述对称密钥的标识的对应关系;
所述第二接收子单元具体用于接收所述发送方发送的摘要消息,所述摘要消息包括所述对称密钥的标识与加密后的所述摘要和摘要算法的标识;
所述第二解密子单元包括:
获取模块,用于从所述第二接收子单元接收到的所述摘要消息中获取对称密钥的标识;
查询模块,用于从所述存储单元存储的所述对称密钥与所述对称密钥的标识的对应关系中,查询从所述获取模块获取的所述摘要消息中获取的对称密钥的标识对应的对称密钥;
第一解密模块,用于使用所述查询模块查询到的对称密钥,对所述接收单元接收到的数据进行解密;
所述比较子单元包括:
第二解密模块,用于使用所述查询模块查询到的对称密钥,对所述摘要消息中的加密后的所述摘要和摘要算法的标识进行解密;
比较模块,用于通过解密后得到的摘要算法的标识对应的摘要算法,获取解密后的数据的摘要,比较从所述摘要消息中解密得到的所述摘要和通过所述摘要算法获取的解密后的数据的摘要是否一致;
所述发送模块还用于如果使用所述查询模块查询到的对称密钥,不能对所述摘要消息中的加密后的所述摘要和摘要算法的标识进行解密,则向所述发送方发送通知信息,所述通知信息用于通知发送方重新建立与所述接收方的TLS协议连接。
第五方面,提供了一种数据传输的加密和解密的***,包括:上述第三方面、或第三方面的任意一种可能的实现方式所述的发送方设备和上述第四方面、或第四方面的任意一种可能的实现方式所述接收方设备。
本发明实施例提供的数据传输的加密和解密方法、设备及***,通过在发送方与接收方之间建立TLS协议连接,继而发送方与接收方通过该TLS协议连接,进行协商生成并保存对称密钥,该对称密钥用于对后续数据进行加解密操作。本发明的技术方案,由于不依赖TLS协议连接来传输数据,从而可以快速实现数据加解密操作,提高处理效率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一实施例提供了一种数据传输的加密方法,该方法由发送方执行,如图1所示,该方法包括:
101、建立与接收方之间的TLS协议连接。
其中,TLS协议用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。TLS协议在协议栈中位于可靠的传输层协议(例如TCP)上面,并位于应用层协议下面。其中,TLS握手协议可以实现通信双方的身份验证,从而保证传输的数据无法被窃听、篡改;TLS记录协议完成加密后数据的传输。
值得说明的是,在本步骤中的TLS协议连接建立中,发送方与接收方分别对对方的证书进行身份鉴别。进一步地,在完成发送方与接收方的身份鉴别之后,才能在双方间完成后续流程;否则认为在发送方与接收方之间并未建立TLS协议连接。
102、通过所述TLS协议连接与接收方进行协商生成对称密钥,并保存所述对称密钥。
值得说明的是,在本步骤中发送方与接收方协商生成对称密钥,并各自进行存储该对称密钥。
此外,该步骤中,进行协商生成对称密钥的具体流程按照标准的TLS流程,包括:在TLS握手协议流程中,发送方与接收方各自产生一个随机数并发送给对方,然后发送方生成一个共享密钥,该共享密钥可以是发送方生成的一个或一组随机数,通过接收方的公钥对该共享密钥进行加密,并将加密后的共享密钥发送给接收方,进而接收方通过自身的私钥对加密的共享密钥进行解密。双方根据共享密钥和各自在前面发送给对方的随机数,根据标准算法,生成双方后续使用的对称密钥、摘要算法。
103、使用对称密钥对待发送数据进行加密,并通过UDP将加密后的待发送数据发送至接收方。
值得说明的是,在步骤102中与接收方协商生成并保存对称密钥之后,发送方与接收方之间,后续的数据加密与传输可以不依赖于TLS协议连接。
本发明另一实施例提供了一种数据传输的解密方法,该方法由接收方执行,如图2所示,该方法包括:
201、建立与发送方之间的TLS协议连接。
其中,TLS协议连接的相关说明与上一实施例步骤101中的相关描述相同,在此不再详细说明。
202、通过TLS协议连接与发送方进行协商生成对称密钥,并保存该对称密钥。
本步骤与上一实施例的步骤102相对应,只是执行主体不同,其余相关描述相同,在此不再重复说明。
203、接收发送方通过UDP发送的数据。
204、使用对称密钥,对接收到的数据进行解密。
值得说明的是,本步骤对应于上述步骤103,在对接收到的数据进行解密时,不再依赖于与发送方之间的TLS协议连接。
本发明实施例提供的数据传输的解密的方法,通过在发送方与接收方之间建立TLS协议连接,继而发送方与接收方通过所述TLS协议连接,进行协商生成并保存对称密钥,该对称密钥用于后续发送方对待发送数据进行加密操作,接收方对来自于发送方的数据进行解密操作。由于在协商密钥之后,发送方和接收方之间传输数据不依赖于TLS协议连接,缓解了现有技术对数据进行解密耗时长、处理速度慢的问题。本发明实施例的技术方案,可以快速实现数据解密操作,提高处理效率。
另外,值得说明的是,上述实施例中发送方和接收方仅仅是用于区分加密操作和解密操作的执行主体,在真实场景中,对于同一个实体设备来说,既可以是具有发送方的功能,也可以同时具有接收方的功能。
本发明另一实施例提供了一种数据传输的加密的方法,该方法可以应用于具体实例中。
由于存在并发数据传输的场景,例如同一个接收方接收来自于不同发送方发送的数据。本发明实施例在上述以发送方为执行主体的实施例的基础上,为对称密钥设置标识,发送方D1在使用对称密钥对待发送数据进行加密,并将加密后的数据发送给接收方D2后,接收方D2通过发送方D1发送的标识选择正确的(发送方D1加密时所使用的)对称密钥对接收到的数据进行解密。如果接收方D2还接收到了其他发送方发送的数据,则可以选择其他对称密钥进行解密。
发送方D1为对称密钥设置标识,以使得接收方D2选择正确的对称密钥对接收到的数据进行解密的步骤,如图3所示,具体步骤为:
a1、在对待发送数据进行加密之前,发送方D1通过TLS协议连接与接收方D2进行协商,确定对称密钥的标识。
值得说明的是,对称密钥的标识,还也可以由发送方D1生成,并通过TLS协议连接将该对称密钥的标识发送给接收方D2;或者发送方D1接收由接收方D2通过TLS协议连接发送的对称密钥的标识。此处以发送方D1通过TLS协议连接与接收方D2进行协商,来确定对称密钥的标识,本发明实施例对此不进行限制。
a2、发送方D1使用对称密钥对待发送的数据进行加密,并将加密后的数据发送给接收方D2。
a3、发送方D1将对称密钥的标识通知接收方D2,以使得该接收方D2根据对称密钥的标识选择对称密钥对接收到的数据进行解密。
可选地,在本步骤中发送方D1将对称密钥的标识通知接收方D2,是通过向接收方D2发送摘要消息实现的,该摘要消息包括:对称密钥的标识与加密后的摘要和摘要算法的标识。其中,摘要和摘要算法的标识是通过对称密钥加密的;摘要即通过摘要算法对待发送数据进行计算后获得的计算结果。
进一步的,接收方D2从摘要消息中获取到对称密钥的标识之后,根据该对称密钥的标识,从存储的对称密钥与对称密钥的标识的对应关系中,查找与改获取到的对称密钥的标识对应的对称密钥,进而使用该对称密钥对接收到的数据进行解密。
值得说明的是,基于上述实施例对步骤101-103的描述,本实施例中步骤a1在步骤102之后执行,上述实施例中执行步骤103可包括执行此处步骤a2、a3,在此处附图3中,不再对步骤103进行记录。
为了进一步提高数据传输的安全性,保证数据传输的完整性,发送方D1和接收方D2之间还可以通过摘要对数据进行验证,如图4所示,具体包括:
b1、在将通过UDP将加密后的数据发送至接收方D2之前,发送方D1通过与接收方D2相同的摘要算法获取待发送数据的摘要。
其中,具体采用何种摘要算法,是由发送方D1通过TLS协议连接与接收方D2协商生成的。
此外,该步骤中的摘要与上述步骤a3中的相关描述相同,在此不再重复说明。
b2、发送方D1将摘要发送至接收方D2,以使得接收方D2根据该摘要对接收到的数据进行验证。
进一步的,发送方D1将摘要发送至接收方D2,具体包括如下步骤:
b2-1、发送方D1使用对称密钥,对摘要和摘要算法的标识进行加密。
b2-2、发送方D1将对称密钥的标识与加密后的摘要和摘要算法的标识封装在摘要消息中发送至接收方。
可选的,发送方D1再将加密后的数据、对称密钥的标识与加密后的摘要和摘要算法的标识封装在摘要消息中发送至接收方D2之后,当接收方D2不能顺利完成解密时,会向发送方D1发送通知信息,此时:
发送方D1接收接收方D2发送的通知信息,所述通知信息用于通知发送方重新建立与所述接收方的TLS协议连接。
进一步的,发送方D1重新建立与接收方D2之间的TLS协议连接,并通过重新建立的TLS协议连接与接收方D2进行协商生成新的对称密钥,并将已保存的对称密钥替换为新的对称密钥。
值得说明的是,基于上述实施例对步骤101-103,在执行步骤103之前执行此处的步骤b1、b2。
本实施例中发送方D1与接收方D2协商获得的对称密钥,用于发送方D1对所发送的数据进行加密,接收方D2对接收到的数据进行解密,D1与D2之间通过UDP数据流所传输的数据都是通过二者所协商的对称密钥进行加密保护的。也就是说对称密钥的标识,实际上还起到了标识D1与D2之间承载数据的UDP数据流的作用,当D2接收到其他发送方,例如D3发送的数据时,也可以通过D3发送的摘要消息中携带的另一对称密钥对D3发来的数据进行解密,从而在实现数据加解密操作,提高处理效率的基础上,能够实现并发的数据安全传输。
基于上述并发数据传输的场景,本发明另一实施例提供了一种数据传输的解密的方法,本实施例在上述以接收方为执行主体的实施例的基础上,接收发送方D1发送的数据,选择正确的(发送方D1加密时所使用的)对称密钥对接收到的数据进行解密。如果接收方D2还接收到了其他发送方发送的数据,则可以选择其他对称密钥进行解密。
接收方在通过TLS协议连接与发送方进行协商生成对称密钥之后,进一步的,接收方根据对称密钥的标识,使用对称密钥对接收的数据进行解密,如图5所示,具体步骤为:
c1、接收方D2通过TLS协议连接与发送方D1进行协商,确定对称密钥的标识。
值得说明的是,对称密钥的标识,还也可以由接收方D2生成,并通过TLS协议连接将该对称密钥的标识发送给发送方D1;或者接收方D2接收由发送方D1通过TLS协议连接发送的对称密钥的标识。此处以接收方D2通过TLS协议连接与发送方D1进行协商,来确定对称密钥的标识,本发明实施例对此不进行限制。
c2、接收方D2存储对称密钥与对称密钥的标识的对应关系。
c3、接收方D2接收发送方D1在使用对称密钥对待发送的数据进行加密后发送的对称密钥的标识。
其中,发送方D1发送对称密钥的标识,即发送方D1将对称密钥的标识通知接收方D2,相关内容与上一实施例步骤a3中的相关描述相同,在此不再重复说明。
c4、接收方D2从对称密钥与对称密钥的标识的对应关系中,查询所述发送方D1发送的对称密钥的标识对应的对称密钥。
c 5、接收方使D2用查询到的对称密钥,对接收到的数据进行解密。
值得说明的是,基于上述实施例对步骤210-204的描述,此处,可在执行步骤202之后执行步骤c1-c3,进而可执行步骤203,步骤c4、c5为步骤204的具体执行步骤,则在附图5中将不再对步骤204进行记录。
为了进一步提高数据传输的安全性,保证数据传输的完整性,发送方D1和接收方D2之间还可以通过摘要对所传输的数据进行验证。如图6所示,接收方D2使用对称密钥对接收到的数据进行解密、验证具体包括:
d1、接收方D2接收发送方D1发送的数据的摘要。
其中,接收方D2接收发送方D1发送的数据的摘要,是通过接收发送方D1发送的摘要消息实现的。数据的摘要与上一实施例步骤b1中的相关描述相同,摘要消息与上述实施例中步骤a 3中的相关描述相同,在此不再重复说明。
d2、接收方D2根据对称密钥,对接收到的数据进行解密。
值得说明的是,当接收方D2根据对称密钥,不能对接收到的数据进行解密时,执行下述步骤d5。
可选的,该步骤的具体实现步骤包括:
第一步:接收方D2从摘要消息中获取对称密钥的标识;
第二步:接收方D2从存储的对称密钥与所述对称密钥的标识的对应关系中,查询从摘要消息中获取的对称密钥的标识对应的对称密钥;
第三步:接收方D2使用查询到的对称密钥,对接收到的数据进行解密。
d3、接收方D2通过与发送方D1相同的摘要算法获取解密后的数据的摘要。
d4、接收方D2比较发送方D1发送的数据的摘要与通过摘要算法获取的摘要是否一致,当比较结果为一致时,确定接收到的数据是完整且未被篡改的;当比较结果为不一致时,则执行下述步骤d5。
可选的,该步骤的具体实现步骤包括:
第一步:接收方D2使用查询到的对称密钥,对摘要消息中的加密后的所述摘要和摘要算法的标识进行解密;
第二步:接收方D2通过解密后得到的摘要算法的标识对应的摘要算法,获取解密后的数据的摘要,比较从摘要消息中解密得到的摘要和通过摘要算法获取的解密后的数据的摘要是否一致。
d5、接收方D2向发送方D1发送通知信息,所述通知信息用于通知发送方D1重新建立与接收方D2的TLS协议连接。
值得说明的是,当接收方D2不能顺利完成解密时,会执行该步骤d5。其中,不能顺利完成解密的情况包括:使用对称密钥不能对接收到数据进行解密,使用对称密钥不能对加密的摘要和摘要算法进行解密,从摘要消息中解密得到的摘要和通过摘要算法获取的解密后的数据的摘要不一致中的任意一种或几种。
值得说明的是,基于上述实施例对步骤210-204的描述,此处,可在执行步骤203之后执行步骤d1-d3,在步骤204之后执行步骤d4,进而可选的执行步骤d5。
本实施例中发送方D1与接收方D2协商获得的对称密钥,用于发送方D1对所发送的数据进行加密,接收方D2对接收到的数据进行解密,D1与D2之间通过UDP数据流所传输的数据都是通过二者所协商的对称密钥进行加密保护的。也就是说对称密钥的标识,实际上还起到了标识D1与D2之间承载数据的UDP数据流的作用,当D2接收到其他发送方,例如D3发送的数据时,也可以通过D3发送的摘要消息中携带的另一对称密钥对D3发来的数据进行解密,从而在实现数据加解密操作,提高处理效率的基础上,能够实现并发的数据安全传输。
本发明另一实施例提供了一种数据传输的加密和解密的方法,本方法可以应用于如下具体场景中,即发送方为客户端,并记为D1;接收方为服务器,并记为D2,且本实施例以发送方发起建立与接收方的TLS协议连接为例。其中,客户端D1和服务器D2均可以是台式机等具有通信功能的设备。如图7所示,在该场景中的具体方法包括:
701、D1建立与D2之间的TLS协议连接。
其中,TLS协议连接建立中,实现了D1与D2双方的身份验证,如图8所示,其具体流程可参见TLS协议中相关定义,包括:
801、D1发送一个“ClientHello”消息给D2。该信息说明D1支持的密码算法列表、压缩方法及最高协议版本。
802、D1接收到一个D2发送的“ServerHello”消息。该信息包含D2选择的连接参数,该参数源自客户端初期所提供的“ClientHello”。
803、D2的证书发给D1,D1可以对D2的证书进行认证。
804、D2向D1发送证书请求。
805、D2发送“ServerHello”信息处理结果给D1。
806、D1向D2发送证书,D2可以认证D1的身份。
807、D1完成证书更换。
808、验证D1更换的证书。
809、D1修改密码规格协议。
810、D1操作完成。
811、D2修改密码规格协议。
812、D2操作完成。
值得说明的是,本步骤中的TLS协议连接的内容与上述实施例步骤101中的相关描述相同,在此不再重复说明。
702、通过所述TLS协议连接与D2进行协商生成对称密钥,并保存该对称密钥。
其中,对称密钥的描述与上述实施例的步骤102中的相关描述是相同的,在此不再详细说明。
值的说明的是,本步骤中的对称密钥的生成是建立在D1与D2已经建立TLS协议连接的基础上,也就是说该对称密钥的产生是建立在D1与D2已经互相鉴别身份之后的。此外,当D1与D2获取到对称密钥之后,D1和D2之间的UDP数据传输就不再依赖该TLS协议连接,也即是说,此时TLS协议连接是否断开对后续数据传输没有影响。
703、D1与D2通过TLS协议连接进行协商,确定对称密钥的标识,并存储该对称密钥与所述标识的对应关系。
值得说明的是,D1与D2都存储对称密钥与对称密钥的标识的对应关系。
其中,对称密钥的标识包括但不限定表示为数字或数字集合。该对称密钥的标识的确定,与上述实施例步骤a1中的相关描述相同,在此不再重复说明。
此外,值得说明的是,本步骤也是以D1与D2通过TLS协议连接进行协商,来确定对称密钥的标识为例,本发明实施例对确定对称密钥的标识的实现方式,不进行限定。
进一步地,后续的待发送数据都通过从TLS协议连接中获得的对称密钥进行加密,由于对称密钥的标识与对称密钥存在对应关系,此时哪怕D1因为其他原因更改了IP地址(包括因为D1休眠而引起的IP地址的改变),仍然可以使用该对称密钥加密待发送数据。
704、D1获取待发送数据。
705、D1通过与D2相同的摘要算法获取待发送数据的摘要。
值得说明的是,该步骤与上述实施例步骤b1的相关描述对应,相关内容相同;摘要算法的获取在上述实施例步骤102中存在相关描述,在此不再重复说明。
值得说明的是,本发明实施例的摘要算法以Hmac为例。
706、D1使用对称密钥对获取到的摘要进行加密。
707、D1获取摘要消息。
其中,摘要消息的内容与上述实施例步骤a3中的相关描述相同,在此不再重复说明。
如图9所示,D1向D2发送的摘要消息中包括对称密钥的标识、以及通过对称密钥加密的摘要和通过对称密钥加密的摘要算法的标识。该图中,“ID”表示对称密钥的标识,“EnvelopedData”指通过摘要算法Hamc对待发送数据进行计算后获得的计算结果,“Hmac”为摘要算法Hamc的标识。
708、D1使用对称密钥对待发送数据进行加密。
709、D1将加密后的数据通过UDP发送给D2,并将对应的摘要消息发送给D2。
710、D2接收D1发送的数据以及摘要消息。
711、D2从接收到的摘要消息中获取对称密钥的标识。
其中,摘要消息中对称密钥的标识并未被加密,D2可直接获取。
712、D2从存储的对称密钥与对称密钥的标识的对应关系中,查找到与从摘要中获取的标识对应的对称密钥。
值得说明的是,当然的D2也可能在存储的对称密钥与对称密钥的标识的对应关系中,不能查找到对应的对称密钥,则不行执行下述步骤,则本发明实施例考虑,查找不到对称密钥的情况。
713、D2使用对称密钥对接收到的数据以及加密的摘要和摘要算法的标识进行解密。
值得说明的是,在该步骤中,D2使用对称密钥对两者进行解密的顺序不进行限定。
714、D2通过解密后得到的摘要算法的标识对应的摘要算法,获取解密后的数据的摘要。
715、D2对从摘要消息中解密得到的所述摘要和通过所述摘要算法获取的解密后的数据的摘要进行比较。当比较结果为一致时,可继续进行数据传输或结束数据传输;当比较结果为不一致时,则执行下述步骤716。
716、D2向D1发送通知信息,该通知信息用于通知D1重新建立与D2的TLS协议连接。
可选的,当存在下述一种或几种情况时,D2均会向D1发送通知信息。情况包括:使用对称密钥不能对接收到数据进行解密,使用对称密钥不能对加密的摘要和摘要算法进行解密,从摘要消息中解密得到的摘要和通过摘要算法获取的解密后的数据的摘要不一致。
717、D1接收D2发送的通知信息,并重新建立与D2之间的TLS协议连接,通过重新建立的TLS协议连接与D2进行协商生成新的对称密钥,并将已保存的对称密钥替换为新的对称密钥。
本发明的另一实施例提供了一种发送方设备03,如图10所示,该设备包括:连接建立单元30、生成单元31、加密单元32、发送单元33。
连接建立单元30,用于建立与接收方之间的TLS协议连接。
生成单元31,用于通过所述连接建立单元30建立的所述TLS协议连接与所述接收方进行协商生成对称密钥,并保存所述对称密钥。
加密单元32,用于使用所述生成单元31生成的所述对称密钥对待发送数据进行加密。
发送单元33,用于将所述加密单元32加密后的数据发送至所述接收方。
可选的,如图11所示,该设备还包括:标识确定单元34、标识通知单元35。
标识确定单元34,用于在所述加密单元32使用所述对称密钥对所述待发送数据进行加密之前,通过所述TLS协议连接与所述接收方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述接收方;或接收所述接收方通过所述TLS协议连接发送的所述对称密钥的标识。
标识通知单元35,用于在所述加密单元32使用所述对称密钥对所述待发送数据进行加密后,将所述标识确定单元确定的所述对称密钥的标识通知所述接收方,以使得所述接收方根据所述对称密钥的标识选择对称密钥对接收到的数据进行解密。
可选的,如图12所示,该设备还包括:摘要获取单元36、标识确定单元37;所述发送单元33包括:加密子单元331、发送子单元332。
摘要获取单元36,用于在所述发送单元33通过UDP将加密后的数据发送至所述接收方之前,通过与所述接收方相同的摘要算法获取所述待发送数据的摘要。
所述发送单元33,还用于将所述摘要获取单元36获取的所述摘要发送至所述接收方,以使得所述接收方根据所述摘要对接收到的数据进行验证。
标识确定单元37,用于在所述加密单元使用所述对称密钥对所述待发送数据进行加密之前,通过所述TLS协议连接与所述接收方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述接收方;或接收所述接收方通过所述TLS协议连接发送的所述对称密钥的标识。
所述发送单元33,包括:
加密子单元331,用使用所述生成单元31生成的所述对称密钥,对所述摘要和摘要算法的标识进行加密。
发送子单元332,用于将所述标识确定单元37确定的所述对称密钥的标识与所述加密子单元331加密后的所述摘要和摘要算法的标识封装在摘要消息中发送至所述接收方。
可选的,如图13所示,该设备还包括:接收单元38、替换单元39。
接收单元38,用于在所述发送单元33将所述将加密后的数据发送至所述接收方之后,接收所述接收方发送的通知信息,所述通知信息用于通知发送方重新建立与所述接收方的TLS协议连接,并触发所述连接建立单元30重新建立与所述接收方之间的TLS协议连接。
所述生成单元31,还用于通过所述连接建立单元30重新建立的TLS协议连接与所述接收方进行协商生成新的对称密钥。
替换单元39,用于将已保存的对称密钥替换为所述生成单元31生成的新的对称密钥。
本发明实施例还提供了一种接收方设备04,如图14所示,该设备包括:连接建立单元41、生成单元42、接收单元43、解密单元44。
建立连接单元41,用于建立与发送方之间的TLS协议连接。
生成单元42,用于通过所述连接建立单元41建立的所述TLS协议连接与所述发送方进行协商生成对称密钥,并保存所述对称密钥。
接收单元43,用于接收所述发送方通过UDP发送的数据。
解密单元44,使用所述生成单元42生成的所述对称密钥,对所述接收单元43接收到的数据进行解密。
可选的,如图15所示,该设备还包括:标识确定单元45、存储单元46所述解密单元44,包括:第一接收子单元441、查询子单元442、第一解密子单元443。
标识确定单元45,用于在所述生成单元42通过所述TLS协议连接与所述发送方进行协商生成对称密钥之后,通过所述TLS协议连接与所述发送方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述发送方;或接收所述发送方通过所述TLS协议连接发送的所述对称密钥的标识。
存储单元46,用于存储所述生成单元42生成的所述对称密钥与所述标识确定单元45确定的所述对称密钥的标识的对应关系。
所述解密单元44,包括:
第一接收子单元441,用于接收所述发送方发送的所述标识确定单元45确定的所述对称密钥的标识;
查询子单元442,用于从所述存储单元46存储的所述对称密钥与所述对称密钥的标识的对应关系中,查询所述发送方发送的对称密钥的标识对应的对称密钥。
第一解密子单元443,用于使用所述查询子单元442查询到的所述对称密钥,对所述接收单元43接收到的数据进行解密。
可选的,如图16所示,所述解密单元44,包括:第二接收子单元444、第二解密子单元445、比较子单元446、发送子单元447。
所述解密单元44,包括:
第二接收子单元444,用于接收所述发送方发送的所述数据的摘要。
第二解密子单元445,用于根据是所述生成单元42生成的所述对称密钥,对所述接收单元43接收到的数据进行解密。
比较子单元446,用于通过与所述发送方相同的摘要算法获取所述解密后的数据的摘要,比较所述发送方发送的所述数据的摘要与通过摘要算法获取的摘要是否一致。
发送子单元447,用于当所述比较子单元446比较的所述发送方发送的所述数据的摘要与通过摘要算法获取的摘要的比较结果不一致时;和/或,当使用所述生成单元生成的所述对称密钥,不能对所述接收单元接收到的数据进行解密时;向所述发送方发送通知信息,所述通知信息用于通知发送方重新建立与所述接收方的TLS协议连接。
可选地,该设备还包括:标识确定单元47、存储单元48;所述第二解密子单元445,包括:获取模块042、查询模块043、第一解密模块044;所述比较子单元446,包括:第二解密子模块045、比较模块046。
标识确定单元47,用于在所述生成单元42通过所述TLS协议连接与所述发送方进行协商生成对称密钥之后,通过所述TLS协议连接与所述发送方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述发送方;或接收所述发送方通过所述TLS协议连接发送的所述对称密钥的标识。
存储单元48,用于存储所述生成单元42生成的所述对称密钥与所述标识确定单元47确定的所述对称密钥的标识的对应关系。
所述第二接收子单元444具体用于接收所述发送方发送的摘要消息,所述摘要消息包括所述对称密钥的标识与加密后的所述摘要和摘要算法的标识。
所述第二解密子单元445包括:
获取模块042,用于从所述接收模块041接收到的所述摘要消息中获取对称密钥的标识。
查询模块043,用于从所述存储单元48存储的所述对称密钥与所述对称密钥的标识的对应关系中,查询从所述获取模块042获取的所述摘要消息中获取的对称密钥的标识对应的对称密钥。
第一解密模块044,用于使用所述查询模块043查询到的对称密钥,对所述接收单元43接收到的数据进行解密。
所述比较子单元446包括:
第二解密模块045,用于使用所述查询模块043查询到的对称密钥,对所述摘要消息中的加密后的所述摘要和摘要算法的标识进行解密。
比较模块046,用于通过解密后得到的摘要算法的标识对应的摘要算法,获取解密后的数据的摘要,比较从所述摘要消息中解密得到的所述摘要和通过所述摘要算法获取的解密后的数据的摘要是否一致;
所述发送子单元447,还用于当使用所述查询模块043查询到的对称密钥,不能对所述摘要消息中的加密后的所述摘要和摘要算法的标识进行解密时,则向所述发送方发送通知信息,所述通知信息用于通知发送方重新建立与所述接收方的TLS协议连接。
本发明实施例提供了一种数据传输加密和解密的***,如图17所示,该***包括发送方设备03和接收方设备04。其中,发送方设备03,包括上述单元30-39,接收方设备04包括上述单元41-48。
本发明实施例提供的数据传输的加密和解密的方法、设备和***,通过在加密方与解密方之间建立TLS协议连接,继而加密方与解密方通过该TLS协议连接,进行协商生成并保存对称密钥,该对称密钥用于对后续数据进行加解密操作。由于现有技术对数据进行加解密耗时长、处理速度慢。本发明的技术方案,可以快速实现数据加解密操作,提高处理效率。
本发明的另一实施例提供了一种发送方设备,如图18所示,该设备包括发射器01、处理器02、存储器03、接收器04。
处理器02,用于建立与接收方之间的TLS协议连接。
所述处理器02,还用于通过TLS协议连接与接收方进行协商生成对称密钥。
存储器03,用于保存所述处理器02生成的对称密钥。
所述处理器02,用于使用所述处理器02生成的对称密钥对待发送数据进行加密。
发射器01,用于通过UDP将加密后的数据发送至所述接收方。
可选的,所述处理器02,在所述发射器01通过UDP将加密后的数据发送至所述接收方之前,还用于通过所述TLS协议连接与所述接收方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述接收方;或接收所述接收方通过所述TLS协议连接发送的所述对称密钥的标识。
所述发射器01,还用于将所述处理器02确定的所述对称密钥的标识通知所述接收方,以使得所述接收方根据所述对称密钥的标识选择对称密钥对接收到的数据进行解密。
可选的,所述处理器02,还用于通过与所述接收方相同的摘要算法获取所述待发送数据的摘要。
所述发射器01,还用于将所述摘要发送至所述接收方,以使得所述接收方根据所述摘要对接收到的数据进行验证。
所述处理器02,还用于使用所述对称密钥,对所述摘要和摘要算法的标识进行加密。
所述发射器01,还用于将所述对称密钥的标识与加密后的所述摘要和摘要算法的标识封装在摘要消息中发送至所述接收方。
可选的,接收器04,用于接收所述接收方发送的通知信息,所述通知信息用于通知发送方重新建立与所述接收方的TLS协议连接。
所述处理器02,还用于重新建立与所述接收方之间的TLS协议连接。
所述处理器02,还用于通过重新建立的TLS协议连接与所述接收方进行协商生成新的对称密钥。
所述存储器03,还用于存储所述处理器02生成的新的对称密钥。
所述处理器02,还用于将已保存的对称密钥替换为所述新的对称密钥。
附图18所示的发送方设备的工作流程请参照附图1-9中涉及进行数据传输的加密的各个步骤,以及方法实施例中涉及数据传输的加密步骤的描述,在这里不再重复。
本发明实施例提供的发送方设备,通过在发送方与接收方之间建立TLS协议连接,继而发送方与接收方通过该TLS协议连接,进行协商生成并保存对称密钥,该对称密钥用于对后续数据进行加密操作。由于现有技术对数据进行加密耗时长、处理速度慢。本发明实施例的技术方案,可以快速实现数据加密操作,提高处理效率。
本发明另一实施例提供了一种接收方设备,如图19所示,该设备包括发射器05、处理器06、存储器07、接收器08。
处理器06,用于建立与发送方之间的TLS协议连接。
所述处理器06,还用于通过所述TLS协议连接与所述发送方进行协商生成对称密钥。
存储器07,用于保存所述处理器06生成的所述对称密钥。
接收器08,用于接收所述发送方通过UDP发送的数据。
所述处理器06,还用于使用处理器06生成的所述对称密钥,对所述接收器08接收到的数据进行解密。
可选的,所述处理器06,还用于在通过所述TLS协议连接与所述发送方进行协商生成对称密钥之后,通过所述TLS协议连接与所述发送方进行协商,确定所述对称密钥的标识;或生成所述对称密钥的标识,并通过所述TLS协议连接将所述对称密钥的标识发送给所述发送方;或接收所述发送方通过所述TLS协议连接发送的所述对称密钥的标识。
所述存储器07,还用于存储所述对称密钥与所述对称密钥的标识的对应关系。
所述接收器05,还用于接收所述发送方发送的对称密钥的标识。
所述处理器06,还用于从所述对称密钥与所述对称密钥的标识的对应关系中,查询所述发送方发送的对称密钥的标识对应的对称密钥。
所述处理器06,还用于使用查询到的对称密钥,对接收到的数据进行解密。
可选的,所述接收器08,还用于接收所述发送方发送的所述数据的摘要。
所述处理器06,还用于根据所述对称密钥,对所述接收到的数据进行解密。
所述处理器06,还用于通过与所述发送方相同的摘要算法获取所述解密后的数据的摘要,比较所述发送方发送的所述数据的摘要与通过摘要算法获取的摘要是否一致。
所述发射器05,还用于当所述发送方发送的所述数据的摘要与通过摘要算法获取的摘要的比较结果不一致时;和/或,当使用所述对称密钥,不能对所述接收到的数据进行解密时;则向所述发送方发送通知信息,所述通知信息用于通知发送方重新建立与所述接收方的TLS协议连接。
所述接收器08,用于接收所述发送方发送的摘要消息,所述摘要消息包括所述对称密钥的标识与加密后的所述摘要和摘要算法的标识。
所述处理器06,还用于从接收到的所述摘要消息中获取对称密钥的标识。
所述处理器06,还用于使用查询到的对称密钥,对所述摘要消息中的加密后的所述摘要和摘要算法的标识进行解密。
所述处理器06,还用于从所述存储器07存储的所述对称密钥与所述对称密钥的标识的对应关系中,查询从获取的所述摘要消息中获取的对称密钥的标识对应的对称密钥。
所述处理器06,还用于使用查询到的对称密钥,对所述摘要消息中的加密后的所述摘要和摘要算法的标识进行解密。
所述发射器05,还用于当使用查询到的对称密钥,不能对所述摘要消息中的加密后的所述摘要和摘要算法的标识进行解密时,则向所述发送方发送通知信息,所述通知信息用于通知发送方重新建立与所述接收方的TLS协议连接。
附图19所示的接收方设备的工作流程请参照附图1-9中涉及进行数据传输的解密的各个步骤,以及方法实施例中涉及数据传输解密步骤的描述,在这里不再重复。
本发明实施例提供的接收方设备,通过在发送方与接收方之间建立TLS协议连接,继而发送方与接收方通过所述TLS协议连接,进行协商生成并保存对称密钥,该对称密钥用于对后续数据进行解密操作。由于现有技术对数据进行解密耗时长、处理速度慢。本发明实施例的技术方案,可以快速实现数据解密操作,提高处理效率。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。