CN114938273A - 一种秘钥协商方法、系统、发送端及接收端 - Google Patents

一种秘钥协商方法、系统、发送端及接收端 Download PDF

Info

Publication number
CN114938273A
CN114938273A CN202210567982.7A CN202210567982A CN114938273A CN 114938273 A CN114938273 A CN 114938273A CN 202210567982 A CN202210567982 A CN 202210567982A CN 114938273 A CN114938273 A CN 114938273A
Authority
CN
China
Prior art keywords
key
master
public key
request
character string
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
CN202210567982.7A
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.)
Hangzhou Ezviz Network Co Ltd
Original Assignee
Hangzhou Ezviz Network 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 Hangzhou Ezviz Network Co Ltd filed Critical Hangzhou Ezviz Network Co Ltd
Priority to CN202210567982.7A priority Critical patent/CN114938273A/zh
Publication of CN114938273A publication Critical patent/CN114938273A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network 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 asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key

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)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例提供了一种秘钥协商方法、系统、发送端及接收端。方案如下:向接收端发送包括第一公钥的第一请求报文;接收接收端针对第一请求报文反馈的第一响应报文;第一响应报文包含第一加密秘钥和接收端的第二公钥;第一加密秘钥是利用第一主秘钥对第一字符串进行加密得到的,第一主秘钥是根据预设秘钥生成算法对第一公钥和第二公钥对应的第二私钥进行处理得到的;获取第二主秘钥;第二主秘钥是根据预设秘钥生成算法对第二公钥和第一公钥对应的第一私钥进行处理得到的;利用第二主秘钥对第一加密秘钥进行解密,得到第一字符串。通过本申请实施例提供的技术方案,提高了秘钥传输的安全性,降低了数据交互成本。

Description

一种秘钥协商方法、系统、发送端及接收端
技术领域
本申请涉及通信技术领域,特别是涉及一种秘钥协商方法、系统、发送端及接收端。
背景技术
在数据传输过程中,为了保证数据传输的安全性,往往会采用加密传输。例如,在音视频数据传输过程中,设备端可以将一随机字符串作为秘钥,并利用该秘钥对对音视频数据进行加密,得到加密后的音视频数据,从而将该加密后的音视频数据发送至客户端。客户端利用设备端通过秘钥传输链路以明文形式发送的秘钥,对接收到的加密后的音视频数据进行解密,得到音视频数据。
在上述秘钥传输过程中,由于秘钥是以明文形式传输的,因此,为了保证秘钥的安全性,上述秘钥传输链路必须具备较高的安全性,这大大增加了数据交互成本。
发明内容
本申请实施例的目的在于提供一种秘钥协商方法、系统、发送端及接收端,以提高秘钥传输的安全性,降低数据交互成本。具体技术方案如下:
本申请实施例提供了一种秘钥协商方法,应用于发送端,所述方法包括:
向接收端发送包括自身的第一公钥的第一请求报文;
接收所述接收端针对所述第一请求报文反馈的第一响应报文;所述第一响应报文包含第一加密秘钥和所述接收端的第二公钥;所述第一加密秘钥是利用第一主秘钥对第一字符串进行加密得到的,所述第一主秘钥是根据预设秘钥生成算法对所述第一公钥和第二公钥对应的第二私钥进行处理得到的;所述第一字符串为所述发送端与所述接收端之间传输的业务数据的加密秘钥;
获取第二主秘钥;所述第二主秘钥是根据所述预设秘钥生成算法对所述第二公钥和第一公钥对应的第一私钥进行处理得到的;
利用所述第二主秘钥对所述第一加密秘钥进行解密,得到所述第一字符串。
可选的,当所述第一请求报文包括针对所述业务数据的数据获取请求时,所述第一响应报文还包括加密数据,所述加密数据是所述接收端利用所述第一字符串对所述业务数据进行加密得到的;
在利用所述第二主秘钥对所述第一加密秘钥进行解密,得到所述第一字符串之后,所述方法还包括:
利用所述第一字符串,对所述加密数据进行解密,得到所述业务数据。
可选的,所述获取第二主秘钥的步骤,包括:
查询本地缓存中是否存在与所述第二公钥对应的主秘钥;
若是,则从本地缓存中获取与所述第二公钥对应的主秘钥,作为第二主秘钥;
若否,则根据所述第二公钥和所述第一公钥对应的第一私钥,利用所述预设秘钥生成算法生成第二主秘钥。
可选的,在向接收端发送包括自身的第一公钥的第一请求报文之前,所述方法还包括:
获取第二字符串以及转发服务器的第三公钥;
获取第三主秘钥,所述第三主秘钥是根据所述预设秘钥生成算法对第三公钥和所述第一私钥进行处理得到的;
利用所述第二字符串对第一待加密请求进行加密,得到第一加密请求;
利用所述第三主秘钥对所述第二字符串进行加密,得到第二加密秘钥;
向所述转发服务器发送第二请求报文,所述第二请求报文包含所述第一加密请求、所述第二加密秘钥和所述第一公钥,以使所述转发服务器获取第四主秘钥,利用所述第四主秘钥对所述第二加密秘钥进行解密,得到所述第二字符串,利用所述第二字符串对所述第一加密请求进行解密,得到所述第一待加密请求,生成所述第一待加密请求的第一请求响应,利用所述第二字符串对所述第一请求响应进行加密,得到第二响应报文,向所述发送端发送所述第二响应报文,所述第四主秘钥是根据所述预设秘钥生成算法对所述第一公钥和所述第三公钥对应的第三私钥进行处理得到的;
接收所述第二响应报文;
利用所述第二字符串,对所述第二响应报文进行解密,得到所述第一请求响应;
所述向接收端发送包括自身的第一公钥的第一请求报文的步骤,包括:
向所述转发服务器发送包括自身的第一公钥的第一请求报文,以使所述转发服务器将接收到的第一请求报文转发至接收端;
所述接收所述接收端针对所述第一请求报文反馈的第一响应报文的步骤,包括:
接收所述转发服务器转发的第一响应报文,所述第一响应报文是所述接收端针对所述第一请求报文反馈至所述转发服务器的。
本申请实施例还提供了一种秘钥协商方法,应用于接收端,所述方法包括:
接收发送端发送的包括所述发送端的第一公钥的第一请求报文;
获取第一主秘钥,所述第一主秘钥是根据预设秘钥生成算法对所述第一公钥和所述接收端的第二私钥进行处理得到的;
获取第一字符串;所述第一字符串为所述发送端与所述接收端之间传输的业务数据的加密秘钥;
利用所述第一主秘钥对所述第一字符串进行加密,得到第一加密秘钥;
向所述发送端发送第一响应报文,所述第一响应报文包含所述第一加密秘钥和所述第二私钥对应的第二公钥。
可选的,若所述第一请求报文包括针对所述业务数据的数据获取请求,则在获取第一字符串之后,所述方法还包括:
基于所述第一请求报文,获取所述业务数据;
利用所述第一字符串,对所述业务数据进行加密得到加密数据;
所述向所述发送端发送第一响应报文的步骤,包括:
向所述发送端发送包括所述加密数据的第一响应报文。
可选的,所述获取第一主秘钥的步骤,包括:
查询本地缓存中是否存在与所述第一公钥对应的主秘钥;
若是,则从本地缓存中获取与所述第一公钥对应的主秘钥,作为第一主秘钥;
若否,则根据所述第一公钥和所述接收端的第二私钥,根据所述预设秘钥生成算法生成第一主秘钥。
可选的,在接收发送端发送的包括所述发送端的第一公钥的第一请求报文之前,所述方法还包括:
获取第三字符串以及转发服务器的第三公钥;
获取第五主秘钥,所述第五主秘钥是根据所述预设秘钥生成算法对第三公钥和所述第二私钥进行处理得到的;
利用所述第三字符串对第二待加密请求进行加密,得到第二加密请求;
利用所述第五主秘钥对所述第三字符串进行加密,得到第三加密秘钥;
向所述转发服务器发送第三请求报文,所述第三请求报文包含所述第二加密请求、所述第三加密秘钥和所述第二公钥,以使所述转发服务器获取第六主秘钥,利用所述第六主秘钥对所述第三加密秘钥进行解密,得到所述第三字符串,利用所述第三字符串对所述第二加密请求进行解密,得到所述第二待加密请求,生成所述第二待加密请求的第二请求响应,利用所述第三字符串对所述第二请求响应进行加密,得到第三响应报文,向所述发送端发送所述第三响应报文,所述第六主秘钥是根据所述预设秘钥生成算法对所述第二公钥和所述第三公钥对应的第三私钥进行处理得到的;
接收所述第三响应报文;
利用所述第三字符串,对所述第三响应报文进行解密,得到所述第二请求响应;
所述接收发送端发送的包括所述发送端的第一公钥的第一请求报文的步骤,包括:
接收所述转发服务器发送的包括所述发送端的第一公钥的第一请求报文,所述第一请求报文是所述发送端发送至所述转发服务器的;
所述向所述发送端发送第一响应报文的步骤,包括:
将第一响应报文发送至所述转发服务器,以使所述转发服务器将所述第一响应报文转发至所述发送端。
本申请实施例还提供了一种秘钥协商系统,所述系统包括发送端和接收端;
所述发送端,用于向接收端发送包括自身的第一公钥的第一请求报文;
所述接收端,用于接收所述第一请求报文;获取第一主秘钥,所述第一主秘钥是根据预设秘钥生成算法对所述第一公钥和所述接收端的第二私钥进行处理得到的;获取第一字符串;所述第一字符串为所述发送端与所述接收端之间传输的业务数据的加密秘钥;利用所述第一主秘钥对所述第一字符串进行加密,得到第一加密秘钥;向所述发送端发送第一响应报文,所述第一响应报文包含所述第一加密秘钥和所述第二私钥对应的第二公钥;
所述发送端,还用于接收所述第一响应报文;获取第二主秘钥;所述第二主秘钥是根据所述预设秘钥生成算法对所述第二公钥和第一公钥对应的第一私钥进行处理得到的;利用所述第二主秘钥对所述第一加密秘钥进行解密,得到所述第一字符串。
可选的,所述接收端,还用于在根据预设秘钥生成算法对所述第一公钥和所述接收端的第二私钥进行处理得到第一主秘钥后,按照所述第一公钥与所述第一主秘钥间的关系,在本地缓存中缓存所述第一主秘钥;
所述发送端,还用于在根据所述预设秘钥生成算法对所述第二公钥和第一公钥对应的第一私钥进行处理得到第二主秘钥后,按照所述第二公钥和第二主秘钥间的对应关系,在本地缓存中缓存所述第二主秘钥。
本申请实施例还提供了一种发送端,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述秘钥协商的方法步骤。
本申请实施例还提供了一种接收端,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的秘钥协商方法步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的秘钥协商方法步骤。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的秘钥协商方法。
本申请实施例有益效果:
本申请实施例提供的技术方案,接收端在接收到发送端发送的包括第一公钥的第一请求报文后,根据该第一公钥与自身的第二私钥生成第一主秘钥,从而利用该第一主秘钥对第一字符串进行加密,也就是利用第一主秘钥,对发送端与接收端之间传输的业务数据的加密秘钥进行加密,得到第一加密秘钥。接收端通过向发送端发送包含第一加密秘钥和自身的第二公钥的第一响应报文,使得发送端在接收到的该第一响应报文后,基于第二公钥,获取与第一主秘钥相同的第二主秘钥,从而利用该第二秘钥对第一加密秘钥进行解密,得到第一字符串。
相比于相关技术,在秘钥协商过程中,接收端向发送端反馈的第一响应报文中包括第一加密秘钥,也就是加密后的第一字符串,并不是直接反馈作为加密秘钥的第一字符串,有效提高了第一字符串的安全性,从而提高了秘钥传输的安全性,降低了数据交互成本。
再者,接收端反馈的第一响应报文中除了包括第一加密秘钥以外,还包括接收端自身的第二公钥,这使得发送端可以基于该第二公钥准确的获得与第一主秘钥相同的第二主秘钥,从而对第一加密秘钥进行解密得到第一字符串,在保证发送端可以准确获得第一字符串的同时,提高了第一字符串的安全性,从而提高了秘钥传输的安全性,降低了数据交互成本。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的秘钥协商方法的第一种流程示意图;
图2为数据交互过程的一种拓扑结构示意图;
图3为本申请实施例提供的秘钥协商方法的第二种流程示意图;
图4为本申请实施例提供的秘钥协商方法的第三种流程示意图;
图5为本申请实施例提供的秘钥协商方法的第四种流程示意图;
图6为本申请实施例提供的秘钥协商方法的第五种流程示意图;
图7为本申请实施例提供的秘钥协商方法的第六种流程示意图;
图8为本申请实施例提供的秘钥协商方法的第七种流程示意图;
图9为本申请实施例提供的秘钥协商方法的第八种流程示意图;
图10-a为本申请实施例提供的音视频数据播放过程的第一种信令图;
图10-b为本申请实施例提供的音视频数据播放过程的第二种信令图;
图10-c为本申请实施例提供的连接建立过程的一种信令图;
图11为本申请实施例提供的秘钥协商装置的第一种结构示意图;
图12为本申请实施例提供的秘钥协商装置的第二种结构示意图;
图13为本申请实施例提供的秘钥协商系统的一种结构示意图;
图14为本申请实施例提供的发送端的一种结构示意图;
图15为本申请实施例提供的接收端的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中,发送端与设备接收端在数据传输过程中,可以通过传输链路加密和数据加密的方式保证数据传输的安全性。在传输链路加密过程中,可以使用安全传输层协议(Transport Layer Security Protocol,TLS)或者数据包传输层安全性协议(DatagramTransport Layer Security,DTLS)的标准加密方案,该加密过程操作复杂,且不适用于端到端的加密。在数据内容加密过程中,加密所用秘钥以明文的形式通过秘钥传输链路进行传输,在要求秘钥传输链路高安全性的同时,增加了数据传输的成本。
为了解决相关技术中的问题,本申请实施例提供了一种秘钥协商方法。如图1所示,图1为本申请实施例提供的秘钥协商方法的第一种流程示意图。该方法应用于请求发送端(以下简称为发送端),具体包括以下步骤。
步骤S101,向接收端发送包括自身的第一公钥的第一请求报文。
步骤S102,接收接收端针对第一请求报文反馈的第一响应报文;第一响应报文包含第一加密秘钥和接收端的第二公钥;第一加密秘钥是利用第一主秘钥对第一字符串进行加密得到的,第一主秘钥是根据预设秘钥生成算法对第一公钥和第二公钥对应的第二私钥进行处理得到的;第一字符串为发送端与接收端之间传输的业务数据的加密秘钥。
步骤S103,获取第二主秘钥;第二主秘钥是根据预设秘钥生成算法对第二公钥和第一公钥对应的第一私钥进行处理得到的。
步骤S104,利用第二主秘钥对第一加密秘钥进行解密,得到第一字符串。
通过图1所示的方法,接收端在接收到发送端发送的包括第一公钥的第一请求报文后,根据该第一公钥与自身的第二私钥生成第一主秘钥,从而利用该第一主秘钥对第一字符串进行加密,也就是利用第一主秘钥,对发送端与接收端之间传输的业务数据的加密秘钥进行加密,得到第一加密秘钥。接收端通过向发送端发送包含第一加密秘钥和自身的第二公钥的第一响应报文,使得发送端在接收到的该第一响应报文后,基于第二公钥,获取与第一主秘钥相同的第二主秘钥,从而利用该第二秘钥对第一加密秘钥进行解密,得到第一字符串。
相比于相关技术,在秘钥协商过程中,接收端向发送端反馈的第一响应报文中包括第一加密秘钥,也就是加密后的第一字符串,并不是直接反馈作为加密秘钥的第一字符串,有效提高了第一字符串的安全性,从而提高了秘钥传输的安全性,降低了数据交互成本。
再者,接收端反馈的第一响应报文中除了包括第一加密秘钥以外,还包括接收端自身的第二公钥,这使得发送端可以基于该第二公钥准确的获得与第一主秘钥相同的第二主秘钥,从而对第一加密秘钥进行解密得到第一字符串,在保证发送端可以准确获得第一字符串的同时,提高了第一字符串的安全性,从而提高了秘钥传输的安全性,降低了数据交互成本。
针对上述步骤S101,即向接收端发送包括自身的第一公钥的第一请求报文。
在数据交互过程中,数据可以通过发送端与接收端(即请求接收端)之间的通信链路进行传输,也可以通过发送端和接收端间的转发服务器进行传输。为便于理解,结合图2为例进行说明。图2为数据交互过程的一种拓扑结构示意图。
在图2所示的拓扑结构中,发送端与接收端可以如图2所示的点对点(Peer-to-Peer,P2P)链路通信连接,也可以如图2所示的通过与转发服务器间的转发链路实现通信连接。
在本申请实施例中,上述发送端与接收端在进行数据交互的过程中,发送端通过向接收端发送请求报文,接收端则根据接收到的请求报文反馈对应的响应报文的方式,实现数据交互过程。例如,在上述音视频数据交互过程中,上述客户端可以为发送端,设备端可以为接收端,客户端可以向设备发送音视频数据的数据获取请求,设备端在接收到的数据获取请求后,可以获取对应的音视频数据,并将获取到的音视频数据反馈给客户端。
在本申请实施例中,上述发送端和接收端均是根据请求的发送和接收来确定的,也就是发送端为请求的发送方,接收端为请求的接收方。除此以外,还可以根据数据的发送与接收来确定。例如,上述音视频数据的发送方为上述设备端,接收方位上述客户端,因此,可以将设备端确定为发送端,客户端确定为接收端。在此,对上述发送端和接收端不作具体限定。
另外,根据实际应用场景的不同,上述发送端、接收端和转发服务器可以为不同的电子设备。仍以上述音视频数据的传输过程为例进行说明,此时,上述发送端(即客户端)可以为用户使用的手机、电脑、平板等,接收端(即设备端)可以为视频采集设备或视频存储设备等,转发服务器可以为流媒体服务器或云端服务器等。在此,对上述发送端、接收端和转发服务器所对应的设备类型不作具体限定。为便于理解,下面仅以音视频数据的加密传输过程为例进行说明,并不起任何限定作用。
当上述发送端与上述接收端建立通信连接后,为了保证数据传输的安全性,发送端和接收端可以进行秘钥协商,此时,发送端可以读取其存储的、自身的公钥和私钥对中的公钥(记为第一公钥),并根据该第一公钥向接收端发送请求报文(记为第一请求报文)。也就是向接收端发送包括第一公钥的第一请求报文。
一个可选的实施例中,当发送端与接收端直接通信连接时,如图2所示的通过P2P链路连接的发送端和接收端,发送端可以直接向接收端发送上述第一请求报文。
另一个可选的实施例中,当发送端与接收端通过转发服务器通信连接时,如图2所示的通过转发链路连接的发送端和接收端,发送端可以将上述第一请求报文发送至转发服务器,由转发服务器将接收到的第一请求报文转发至接收端。
根据上述发送端与接收端的通信连接的连接方式的不同,上述第一请求报文的发送方式也有所不同。在此,对上述第一请求报文的发送方式不作具体限定。
上述第一请求报文可以为秘钥协商请求报文,也可以为数据获取请求报文,如针对接收端中音视频数据的数据获取请求报文。在此,对上述第一请求报文不作具体限定。
在本申请实施例中,上述发送端、接收端、转发服务器端中均存储有对应的公钥和私钥对。
一个可选的实施例中,上述公钥和私钥对可以通过椭圆曲线加密算法(EllipticCurve Digital Signature Algorithm,ECDSA)生成。也就是随机生成一个随机数作为私钥,再对该私钥进行椭圆曲线变换得到对应的公钥,从而得到公钥和私钥对。
一个可选的实施例中,上述第一请求报文的报文内容可以是经过加密的,也可以是未经过加密的,也就是上述数据获取请求的报文内容可以是经过加密的,也可以是未经过加密处理的。在此,对上述第一请求报文的报文内容进行加密的方式不作具体限定。
针对上述步骤S102,接收接收端针对第一请求报文反馈的第一响应报文;第一响应报文包含第一加密秘钥和接收端的第二公钥;第一加密秘钥是利用第一主秘钥对第一字符串进行加密得到的,第一主秘钥是根据预设秘钥生成算法对第一公钥和第二公钥对应的第二私钥进行处理得到的;第一字符串为发送端与接收端之间传输的业务数据的加密秘钥。
在本步骤中,上述接收端在接收到的上述第一请求报文后,将响应该第一请求报文,并向上述发送端反馈针对该第一请求报文的响应报文(记为第一响应报文)。该第一响应报文中包含第一加密秘钥,以及接收端存储的、自身的公钥和私钥对中的公钥(记为第二公钥)。关于接收端对第一请求报文的响应过程可参见下文描述,在此不作具体说明。
一个可选的实施例中,当上述发送端与接收端直接通信连接时,接收端可以直接将上述第一响应报文发送至发送端。
另一个可选的实施例中,当上述发送端与接收端通过转发服务器通信连接时,接收端可以将上述第一响应报文发送至转发服务器,由转发服务器将接收到的第一响应报文转发至发送端。
根据上述发送端与接收端的通信连接的连接方式的不同,上述第一响应报文的发送方式也有所不同。在此,对上述第一响应报文的发送方式不作具体限定。
根据上述第一请求报文的不同,上述第一响应报文也有所不同。例如,当上述第一请求报文为上述数据获取请求报文时,上述第一响应报文为对应的响应报文。在此,对上述第一响应报文不作具体限定。
上述第一加密秘钥是接收端利用第一主秘钥对第一字符串进行加密得到的,第一主秘钥是接收端利用预设秘钥生成算法,根据第一请求报文中的第一公钥以及接收端存储的、自身公钥和私钥对中的私钥(即第二私钥)生成的。
一个可选的实施例中,上述预设秘钥生成算法可以为椭圆曲线迪菲-赫尔曼密钥交换(Elliptic Curve Diffie–Hellman key Exchange,ECDH)秘钥协商算法。例如,在计算上述第一主秘钥时,接收端可以将上述第一公钥乘以第二私钥,得到第一主秘钥。在此,对上述第一主秘钥的生成方式不作具体限定。
针对上述步骤S103,即获取第二主秘钥;第二主秘钥是根据预设秘钥生成算法对第二公钥和第一公钥对应的第一私钥进行处理得到的。
一个可选的实施例中,发送端在接收到上述第一响应报文后,可以根据第一响应报文中的第二公钥,以及存储的、自身的公钥和私钥对中的私钥(记为第一私钥),利用上述预设秘钥生成算法生成第二主秘钥。
另一个可选的实施例中,发送端的本地缓存中缓存有其他设备的公钥与该公钥对应的主秘钥。发送端可以从其本地缓存中获取第二主秘钥。关于第二主秘钥的获取可参见下文描述,在此不作具体说明。
上述第二主秘钥的生成方式与上述第一主秘钥的生成方式相同。例如,上述第一主目标由上述第一公钥和第二私钥相乘得到,则上述第二主秘钥也可以由上述第二公钥和第一私钥相乘得到。在此,对上述第二主目标的生成方式不作具体限定。
在本申请实施例中,由于上述发送端和接收端中存储的公钥和私钥对公钥是通过私钥变换得到的,因此,上述根据第一公钥和第二私钥生成的第一主秘钥,与根据第二公钥和第一私钥生成的第二主秘钥是相同的。也就是第一主秘钥和第二主秘钥为同一秘钥。
为便于理解,以发送端的公钥为A1,私钥为B1,接收端的公钥为A2,私钥为B2,主秘钥为公钥和私钥的乘积为例进行说明。由于公钥是由私钥变换得到,如A=B*G,即A1=B1*G,A2=B2*G。
上述第一主秘钥C1可以表示为:C1=A1*B2,第二主秘钥C2可以表示为:C2=A2*B1。可见,C1=A1*B2=(B1*G)*B2=B1*(G*B2)=B1*A2=C2,即C1=C2。
针对上述步骤S104,即利用第二主秘钥对第一加密秘钥进行解密,得到第一字符串。
在本步骤中,由于上述第一主秘钥和第二主秘钥相同,且上述第一加密秘钥是利用第一主目标对第一字符串进行加密得到的,因此,发送端在获取到第二主秘钥后,可以利用第二主秘钥对第一加密秘钥进行解密,得到第一字符串。
一个可选的实施例中,根据上述图1所示的方法,本申请实施例还提供了一种秘钥协商方法。如图3所示,图3为本申请实施例提供的秘钥协商方法的第二种流程示意图。在图3所示的方法中,将上述步骤S103细化为以下步骤,即步骤S1031-步骤S1033。
步骤S1031,查询本地缓存中是否存在与第二公钥对应的主秘钥。若是,则执行步骤S1032;若否,则执行步骤S1033。
在本申请实施例中,发送端在根据其他设备的公钥和自身的私钥生成主秘钥后,可以对该公钥和主秘钥进行对应存储。当发送端接收到上述第一响应报文后,可以根据该第一响应报文中包括的公钥(即上述第二公钥),在本地缓存中查找与第二公钥对应的主秘钥。若查找到,则确定本地缓存中存在与第二公钥对应的主秘钥。若未查找到,则确定本地缓存中不存在与第二公钥对应的主秘钥。
步骤S1032,从本地缓存中获取与第二公钥对应的主秘钥,作为第二主秘钥。
在本步骤中,发送端在确定本地缓存中存在与第二公钥对应的主秘钥时,可以将该主秘钥确定为上述第二主秘钥。
步骤S1033,根据第二公钥和第一公钥对应的第一私钥,利用预设秘钥生成算法生成第二主秘钥。
在本步骤中,发送端在确定本地缓存中不存在与第二公钥对应的主秘钥后,可以根据第二公钥和第一私钥,利用预设秘钥生成算法生成第二主秘钥。关于第二主秘钥的生成方法可参见上文描述,在此不作具体说明。
一个可选的实施例中,发送端在执行上述步骤S1033后,也就是生成第二主秘钥后,可以将上述第二公钥和第二主秘钥对应缓存至本地缓存。也就是在本地缓存中缓存第二公钥和第二主秘钥的对应关系。
一个可选的实施例中,针对上述本地缓存中缓存的每一公钥和该公钥对应的主秘钥,为了保证该主秘钥的有效性,该主秘钥存在对应的有效时长。当本地缓存中某一主秘钥,如上述第二主秘钥的存储时长大于该第二主秘钥的有效时长时,发送端可以丢弃本地缓存中的第二公钥和第二主秘钥。
在本申请实施例中,上述本地缓存中除了缓存有上述公钥、公钥对应的主秘钥、主秘钥对应的有效时长以外,还可以缓存有其他信息,如版本信息、缓存数量等。在此,对上述本地缓存中缓存的信息不作具体限定。
在本申请实施例中,考虑到上述主秘钥的对设备资源的消耗,以及主秘钥生成的耗时,通过对公钥和主秘钥对应关系的缓存,可以有效减少相同公钥对应主秘钥的生成频率,从而避免主秘钥生成所消耗的设备资源,缩短主秘钥获取所需的时间,提高主秘钥获取的效率。
一个可选的实施例中,当第一请求报文包括针对业务数据的数据获取请求时,上述第一响应报文中还包括加密数据,该加密数据是接收端利用第一字符串对业务数据进行加密得到的。
一个可选的实施例中,当上述第一响应报文还包括上述加密数据时,根据图1所示的方法,本申请实施例还提供了一种秘钥协商方法。如图4所示,图4为本申请实施例提供的秘钥协商方法的第三种流程示意图。该方法包括以下步骤。
步骤S401,向接收端发送包括自身的第一公钥的第一请求报文。
上述步骤S401与上述步骤S101相同。
步骤S402,接收接收端针对第一请求报文反馈的第一响应报文;第一响应报文包含加密数据、第一加密秘钥和接收端的第二公钥;加密数据是利用第一字符串对业务数据进行加密得到的;第一加密秘钥是利用第一主秘钥对第一字符串进行加密得到的,第一主秘钥是根据预设秘钥生成算法对第一公钥和第二公钥对应的第二私钥进行处理得到的;第一字符串为发送端与接收端之间传输的业务数据的加密秘钥。
上述第一响应报文中除了包括上述第一加密秘钥和第二公钥以外,还可以包括上述加密数据。
步骤S403,获取第二主秘钥;第二主秘钥是根据预设秘钥生成算法对第二公钥和第一公钥对应的第一私钥进行处理得到的。
步骤S404,利用第二主秘钥对第一加密秘钥进行解密,得到第一字符串。
上述步骤S403-步骤S404与上述步骤S103-步骤S104相同。
步骤S405,利用第一字符串,对加密数据进行解密,得到业务数据。
在本步骤中,由于上述加密数据是利用第一字符串对业务数据进行加密得到的,因此,发送端可以利用上述步骤S404解密得到的第一字符串,对加密数据进行解密处理,得到业务数据。
相比于相关技术中秘钥协商过程和数据加密传输过程需要分开进行,在本申请实施例中,将秘钥协商过程和业务数据的加密传输过程同时进行,降低了发送端与接收端的交互频率,较少了秘钥协商的次数,提高了数据交互的效率。
一个可选的实施例中,根据上述图1所示的方法,本申请实施例还提供了一种秘钥协商方法。如图5所示,图5为本申请实施例提供的秘钥协商方法的第四种流程示意图。该方法应用于上述发送端,该方法包括以下步骤。
步骤S501,获取第二字符串以及转发服务器的第三公钥。
一个可选的实施例中,针对上述第二字符串,发送端可以随机生成一随机字符串,作为第二字符串。该第二字符串可以包括字母、数字等。在此,对上述第二字符串不作具体限定。
一个可选的实施例中,针对转发服务器中的公钥和私钥对,转发服务器可以对公开其自身的公钥(记为第三公钥)。也就是上述发送端和接收端均可确定转发服务器的第三公钥。发送端在确定转发服务器的第三公钥后,可以对该第三公钥进行缓存。在客户端与转发服务器进行数据交互时,发送端可以获取缓存的第三公钥。
步骤S502,获取第三主秘钥,第三主秘钥是根据预设秘钥生成算法对第三公钥和第一私钥进行处理得到的。
上述第三主秘钥的获取方式可参照上述第一主秘钥的获取方式,在此不作具体说明。
步骤S503,利用第二字符串对第一待加密请求进行加密,得到第一加密请求。
一个可选的实施例中,发送端可以根据密码学中的高级加密标准(AdvancedEncryption Standard,AES)加密算法和ChaCha20-Poly1305加密算法等,利用上述第二字符串,对第一待加密请求进行加密,得到第一加密请求。在此,对第一待加密请求的加密方式不作具体限定。其中,ChaCha20-Poly1305是谷歌所采用的一种新式加密算法。
一个可选的实施例中,上述第一待加密请求可以为发送端和转发服务器间的连接请求。
步骤S504,利用第三主秘钥对第二字符串进行加密,得到第二加密秘钥。
在本步骤中,发送端可以利用上述步骤S502所获得的第三主秘钥,对上述第二字符串进行加密,得到第二加密秘钥。
一个可选的实施例中,发送端可以根据AES加密算法和ChaCha20-Poly1305加密算法等,利用上述第三主秘钥,对第二字符串进行加密,得到第二加密秘钥。在此,对第二字符串的加密方式不作具体限定。
步骤S505,向转发服务器发送第二请求报文,第二请求报文包含第一加密请求、第二加密秘钥和第一公钥,以使转发服务器获取第四主秘钥,利用第四主秘钥对第二加密秘钥进行解密,得到第二字符串,利用第二字符串对第一加密请求进行解密,得到第一待加密请求,生成第一待加密请求的第一请求响应,利用第二字符串对第一请求响应进行加密,得到第二响应报文,向发送端发送第二响应报文,第四主秘钥是根据预设秘钥生成算法对第一公钥和第三公钥对应的第三私钥进行处理得到的。
在本步骤中,发送端可以向转发服务器发送第二请求报文。该第二请求报文包含上述第一加密请求、第二加密秘钥以及上述第一公钥。转发服务器在接收到该第二请求报文后,可以获取第四主秘钥,利用该第四主秘钥对第二加密秘钥进行解密,得到第二字符串。转发服务器利用第二字符串对第一加密请求进行解密,得到第一待加密请求。转发服务器生成该第一待加密请求对应的第一请求响应。转发服务器利用第二字符串对该第一请求响应进行加密,得到第二响应报文,并向发送端发送该第二响应报文。
一个可选的实施例中,转发服务器在向上述发送端发送上述第二响应报文时,还可以将上述第二加密秘钥和转发服务器存储的、自身的公钥和私钥对中的第三公钥发送给发送端。
一个可选的实施例中,上述第二加密秘钥和第三公钥可以包含在上述第二响应报文中。
一个可选的实施例中,当上述第一待加密请求为上述连接请求时,上述第一请求响应可以为该连接请求所对应的连接响应。
一个可选的实施例中,为了提高上述第二响应报文的安全性,在对上述第一请求响应进行加密时,转发服务器可以利用除上述第二字符串以外的其他字符串,对该第一请求响应进行加密,得到第一请求响应。
步骤S506,接收第二响应报文。
一个可选的实施例中,当上述转发服务器将上述第二加密秘钥和第三公钥,与上述第二响应报文一并发送给发送端时,发送端在接收第二响应报文的同时,也将获得第二加密秘钥和第三公钥。
步骤S507,利用第二字符串,对第二响应报文进行解密,得到第一请求响应。
一个可选的实施例中,发送端可以直接利用上述步骤S501中获得的第二字符串,对第二响应报文进行解密,得到第一请求响应。
另一个可选的实施例中,当上述转发服务器将上述第二加密秘钥和第三公钥,与上述第二响应报文一并发送给发送端时,发送端可以基于接收到的第三公钥,获取上述第三主秘钥,并利用第三主秘钥对第二加密秘钥进行解密,得到第二字符串,从而利用解密得到的第二字符串对第二响应报文进行解密,得到第一请求响应。
通过上述步骤S501-步骤S507,可以实现发送端与转发服务器间的请求与响应的加密传输过程,有效提高发送端与转发服务器端的数据交互的安全性。
步骤S508,向转发服务器发送包括自身的第一公钥的第一请求报文,以使转发服务器将接收到的第一请求报文转发至接收端。
在本步骤中,发送端在向接收端发送第一请求报文时,该第一请求报文将被发送端发送至转发服务器。转发服务器在接收到发送端发送的第一请求报文后,将该第一请求报文转发至接收端。
步骤S509,接收转发服务器转发的第一响应报文,第一响应报文是接收端针对第一请求报文反馈至转发服务器的。
在本步骤中,接收端在接收到上述第一请求报文后,将向发送端反馈针对该第一请求报文的第一响应报文。此时,接收端将该第一响应报文发送至转发服务器。转发服务器将接收到的第一响应报文发送至发送端。
步骤S510,获取第二主秘钥;第二主秘钥是根据预设秘钥生成算法对第二公钥和第一公钥对应的第一私钥进行处理得到的。
步骤S511,利用第二主秘钥对第一加密秘钥进行解密,得到第一字符串
上述步骤S510-步骤S511与上述步骤S103-步骤S104相同。
基于同一种发明构思,根据上述本申请实施例提供的秘钥协商方法,本申请实施例还提供了一种秘钥协商方法。如图6所示,图6为本申请实施例提供的秘钥协商方法的第五种流程示意图。该方法应用于上述接收端,该方法包括以下步骤。
步骤S601,接收发送端发送的包括发送端的第一公钥的第一请求报文。
在本步骤中,上述发送端在向接收端发送第一请求报文后,接收端接收到该第一请求报文。该第一请求报文中包括发送端存储的、自身的公钥和私钥对中的第一公钥。
一个可选的实施例中,当上述发送端与接收端直接通信连接时,接收端可以直接接收到的发送端发送的第一请求报文。
另一个可选的实施例中,当上述发送端与接收端通过转发服务器通信连接时,由于发送端将第一请求报文发送至转发服务器,因此,接收端将接收到的转发服务器转发的第一请求报文。
根据发送端与接收端的通信连接的连接方式的不同,上述第一请求报文的发送方式也有所不同。在此,对上述第一请求报文的接收方式不作具体限定。
步骤S602,获取第一主秘钥,第一主秘钥是根据预设秘钥生成算法对第一公钥和接收端的第二私钥进行处理得到的。
一个可选的实施例中,接收端在接收到上述第一请求报文后,可以根据第一请求报文中的第一公钥,以及存储的、自身的公钥和私钥对中的第二私钥,利用预设秘钥生成算法生成第一主秘钥。
另一个可选的实施例中,接收端在本地缓存中缓存有其他设备的公钥与该公钥对应的主秘钥。接收端可以从其本地缓存中获取第一主秘钥。关于第一主秘钥的获取可参见下文描述,在此不作具体说明。
步骤S603,获取第一字符串;第一字符串为发送端与接收端之间传输的业务数据的加密秘钥。
上述第一字符串的获取方式可参照上述第二字符串的获取方式,在此,对上述第一字符串的获取不作具体说明。
步骤S604,利用第一主秘钥对第一字符串进行加密,得到第一加密秘钥。
上述第一字符串的加密方式可参照上述第二字符串的加密方式,在此不作具体说明。
步骤S605,向发送端发送第一响应报文,第一响应报文包含第一加密秘钥和第二私钥对应的第二公钥。
一个可选的实施例中,当上述发送端与接收端直接通信连接时,接收端可以直接将第一响应报文发送至发送端。
另一个可选的实施例中,当上述发送端与接收端通过转发服务器通信连接时,接收端可以将第一响应报文发送至转发服务器,再由转发服务器将接收到的第一响应报文转发至发送端。
根据上述发送端与接收端的通信连接的连接方式的不同,上述第一响应报文的发送方式也有所不同。在此,对上述第一响应报文的发送方式不作具体限定。
通过图6所示的方法,接收端在接收到发送端发送的包括第一公钥的第一请求报文后,根据该第一公钥与自身的第二私钥生成第一主秘钥,从而利用该第一主秘钥对第一字符串进行加密,也就是利用第一主秘钥,对发送端与接收端之间传输的业务数据的加密秘钥进行加密,得到第一加密秘钥。接收端通过向发送端发送包含第一加密秘钥和自身的第二公钥的第一响应报文,使得发送端在接收到的该第一响应报文后,基于第二公钥,获取与第一主秘钥相同的第二主秘钥,从而利用该第二秘钥对第一加密秘钥进行解密,得到第一字符串。
相比于相关技术,在秘钥协商过程中,接收端向发送端反馈的第一响应报文中包括第一加密秘钥,也就是加密后的第一字符串,并不是直接反馈作为加密秘钥的第一字符串,有效提高了第一字符串的安全性,从而提高了秘钥传输的安全性,降低了数据交互成本。
再者,接收端反馈的第一响应报文中除了包括第一加密秘钥以外,还包括接收端自身的第二公钥,这使得发送端可以基于该第二公钥准确的获得与第一主秘钥相同的第二主秘钥,从而对第一加密秘钥进行解密得到第一字符串,在保证发送端可以准确获得第一字符串的同时,提高了第一字符串的安全性,从而提高了秘钥传输的安全性,降低了数据交互成本。
一个可选的实施例中,根据图6所示的方法,本申请实施例还提供了一种秘钥协商方法如图7所示,图7为本申请实施例提供的秘钥协商方法的第六种流程示意图。在图7所示的方法中,将上述步骤S602细化为以下步骤,即步骤S6021-步骤S6023。
步骤S6021,查询本地缓存中是否存在与第一公钥对应的主秘钥。若是,则执行步骤S6022;若否,则执行步骤S6023。
步骤S6022,从本地缓存中获取与第一公钥对应的主秘钥,作为第一主秘钥。
步骤S6023,根据第一公钥和接收端的第二私钥,根据预设秘钥生成算法生成第一主秘钥。
上述步骤S6021-步骤S6023的执行方法可参照上述步骤S1031-步骤S1033的执行方法,在此不作具体说明。
一个可选的实施例中,接收端在在执行上述步骤S6023后,也就是生成第一主秘钥后,可以将上述第一公钥和第一主秘钥对应缓存至本地缓存。也就是在本地缓存中缓存第一公钥和第一主秘钥的对应关系。
一个可选的实施例中,针对上述本地缓存中缓存的每一公钥和该公钥对应的主秘钥,为了保证该主秘钥的有效性,该主秘钥存在对应的有效时长。当本地缓存中某一主秘钥,如上述第一主秘钥的存储时长大于该第一主秘钥的有效时长时,发送端可以丢弃本地缓存中的第一公钥和第一主秘钥。
在本申请实施例中,上述本地缓存中除了缓存有上述公钥、公钥对应的主秘钥、主秘钥对应的有效时长以外,还可以缓存有其他信息,如版本信息、缓存数量等。在此,对上述本地缓存中缓存的信息不作具体限定。
在本申请实施例中,考虑到上述主秘钥的对设备资源的消耗,以及主秘钥生成的耗时,通过对公钥和主秘钥对应关系的缓存,可以有效减少相同公钥对应主秘钥的生成频率,从而避免主秘钥生成所消耗的设备资源,缩短主秘钥获取所需的时间,提高主秘钥获取的效率。
一个可选的实施例中,当上述第一请求报文包括针对业务数据的数据获取请求时,根据上述图6所示的方法,本申请实施例还提供了一种秘钥协商方法。如图8所示,图8为本申请实施例提供的秘钥协商方法的第七种流程示意图。该方法包括以下步骤。
步骤S801,接收发送端发送的包括发送端的第一公钥的第一请求报文。
步骤S802,获取第一主秘钥,第一主秘钥是根据预设秘钥生成算法对第一公钥和接收端的第二私钥进行处理得到的。
步骤S803,获取第一字符串;第一字符串为发送端与接收端之间传输的业务数据的加密秘钥。
上述步骤S801-步骤S803与上述步骤S601-步骤S603相同。
步骤S804,基于第一请求报文,获取业务数据。
为便于理解,以第一请求报文为音视频数据的数据获取请求为例,接收端在接收到该数据获取请求后,将获取与该数据获取请求对应的音视频数据,作为业务数据。
根据上述数据交互场景的不同,上述业务数据也有所不同。在此,对上述业务数据不作具体限定。
步骤S805,利用第一字符串,对业务数据进行加密得到加密数据。
上述业务数据的加密方式可参照上述第一待加密请求的加密方式,在此不作具体说明。
步骤S806,利用第一主秘钥对第一字符串进行加密,得到第一加密秘钥。
上述步骤S806与上述步骤S604相同。
步骤S807,向发送端发送包括加密数据的第一响应报文。
相比于相关技术中秘钥协商过程和数据加密传输过程需要分开进行,在本申请实施例中,将秘钥协商过程和业务数据的加密传输过程同时进行,降低了发送端与接收端的交互频率,较少了秘钥协商的次数,提高了数据交互的效率。
一个可选的实施例中,根据上述图6所示的方法,本申请实施例还提供了一种秘钥协商方法。如图9所示,图9为本申请实施例提供的秘钥协商方法的第八种流程示意图。该方法应用于上述接收端,该方法包括以下步骤。
步骤S901,获取第三字符串以及转发服务器的第三公钥。
步骤S902,获取第五主秘钥,第五主秘钥是根据预设秘钥生成算法对第三公钥和第二私钥进行处理得到的。
步骤S903,利用第三字符串对第二待加密请求进行加密,得到第二加密请求。
步骤S904,利用第五主秘钥对第三字符串进行加密,得到第三加密秘钥。
步骤S905,向转发服务器发送第三请求报文,第三请求报文包含第二加密请求、第三加密秘钥和第二公钥,以使转发服务器获取第六主秘钥,利用第六主秘钥对第三加密秘钥进行解密,得到第三字符串,利用第三字符串对第二加密请求进行解密,得到第二待加密请求,生成第二待加密请求的第二请求响应,利用第三字符串对第二请求响应进行加密,得到第三响应报文,向发送端发送第三响应报文,第六主秘钥是根据预设秘钥生成算法对第二公钥和第三公钥对应的第三私钥进行处理得到的。
步骤S906,接收第三响应报文。
步骤S907,利用第三字符串,对第三响应报文进行解密,得到第二请求响应。
上述步骤S901-步骤S907的执行方式与上述步骤S501-步骤S507的执行方式相似,在此不作具体说明。
通过上述步骤S901-步骤S907,可以实现发送端与转发服务器间的请求与响应的加密传输过程,有效提高发送端与转发服务器端的数据交互的安全性。
步骤S908,接收转发服务器发送的包括发送端的第一公钥的第一请求报文,第一请求报文是发送端发送至转发服务器的。
步骤S909,获取第一主秘钥,第一主秘钥是根据预设秘钥生成算法对第一公钥和接收端的第二私钥进行处理得到的。
步骤S910,获取第一字符串;第一字符串为发送端与接收端之间传输的业务数据的加密秘钥。
步骤S911,利用第一主秘钥对第一字符串进行加密,得到第一加密秘钥。
上述步骤S909-步骤S911与上述步骤S602-步骤S604相同。
步骤S912,将第一响应报文发送至转发服务器,以使转发服务器将第一响应报文转发至发送端。
为便于理解,下面结合图10-a、图10-b和图10-c为例进行说明。
在图10-a中,图10-a为本申请实施例提供的音视频数据播放过程的第一种信令图。当客户端和设备端通过P2P链路通信连接时,用户可以在客户端中触发对某一音视频数据的播放操作,此时,客户端将向设备端发送针对该音视频数据进行播放的请求报文,该请求报文中包括客户端的公钥,即公钥1。
设备端在接收到的请求报文后,可以根据该请求报文中的公钥1和自身的私钥2生成主秘钥1。设备端随机获取字符串1,并根据请求报文获取对应的音视频数据。设备端利用字符串1对音视频数据进行加密,得到加密数据,并利用主秘钥1对字符串1进行加密,得到加密秘钥1。设备端向客户端发送响应报文,该响应报文包括加密数据、加密秘钥1和设备端的公钥2。
客户端在接收到上述响应报文后,根据该响应报文中的公钥2和自身的私钥1生成主秘钥2。客户端利用主秘钥2对加密秘钥1进行解密,得到字符串1,利用字符串1对加密数据进行解密,得到音视频数据。此时,客户端可以播放该音视频数据。
在图10-b中,图10-b为本申请实施例提供的音视频数据播放过程的第二种信令图。当客户端与设备端通过转发服务器通信连接时,音视频播放过程与图10-a所示的音视频播放过程的区别在于:请求报文与响应报文的传输需要通过转发服务器的转发处理。
在图10-c中,图10-c为本申请实施例提供的连接建立过程的一种信令图。客户端在获取到字符串2和转发服务器的公钥3后,根据自身的私钥1和公钥3生成主秘钥3,利用字符串2对连接请求进行加密,得到加密请求,利用主秘钥3对字符串2进行加密,得到加密秘钥2。客户端向转发服务器发送请求报文,该请求报文包括加密请求、加密秘钥2和公钥1。
转发服务器在接收到该请求报文后,根据自身的私钥3和公钥1生成主秘钥4,利用主秘钥4对加密秘钥2进行解密,得到字符串2,利用字符串2对加密请求进行解密,得到连接请求。转发服务器响应该连接请求,得到连接响应。转发服务器利用字符串2对连接响应进行加密,得到加密响应,利用主秘钥4对字符串2进行加密,得到加密秘钥3。转发服务器向客户端发送响应报文,该响应报文包括加密响应、加密秘钥3和公钥3。
客户端在接收到该响应报文后,根据私钥1和公钥3生成主秘钥3,利用主秘钥3对加密秘钥3进行解密,得到字符串2,利用字符串2对加密响应进行解密,得到连接响应。此时,客户端确定与转发服务器建立通信连接。
在图10-c所示的实施例中,转发服务器对连接响应的加密是利用字符串2进行的,除此以外,转发服务器还可以随机生成一字符串,如字符串4,从而利用该字符串4对连接响应进行加密。另外,图10-c仅示出客户端与转发服务器的通信连接建立过程,关于设备端与转发服务器的通信连接建立过程可参照图10-c所示的过程进行,在此不作具体说明。
在上述图10-a、图10-b和图10-c,主秘钥均是通过公钥和私钥生成的,除此以外,还可以在本地缓存中进行查找,在此不作具体说明。
基于同一种发明构思,根据上述本申请实施例提供的秘钥协商方法,本申请实施例还提供了一种秘钥协商装置。如图11所示,图11为本申请实施例提供的秘钥协商装置的第一种结构示意图。该装置应用于上述发送端,具体包括以下模块。
第一发送模块1101,用于向接收端发送包括自身的第一公钥的第一请求报文;
第一接收模块1102,用于接收接收端针对第一请求报文反馈的第一响应报文;第一响应报文包含第一加密秘钥和接收端的第二公钥;第一加密秘钥是利用第一主秘钥对第一字符串进行加密得到的,第一主秘钥是根据预设秘钥生成算法对第一公钥和第二公钥对应的第二私钥进行处理得到的;第一字符串为发送端与接收端之间传输的业务数据的加密秘钥;
第一获取模块1103,用于获取第二主秘钥;第二主秘钥是根据预设秘钥生成算法对第二公钥和第一公钥对应的第一私钥进行处理得到的;
第一解密模块1104,用于利用第二主秘钥对第一加密秘钥进行解密,得到第一字符串。
可选的,当第一请求报文包括针对业务数据的数据获取请求时,第一响应报文还包括加密数据,加密数据是接收端利用第一字符串对业务数据进行加密得到的;
上述秘钥协商装置还可以包括:
第二解密模块,用于在利用第二主秘钥对第一加密秘钥进行解密,得到第一字符串之后,利用第一字符串,对加密数据进行解密,得到业务数据。
可选的,上述第一获取模块1103,具体可以用于查询本地缓存中是否存在与第二公钥对应的主秘钥;若是,则从本地缓存中获取与第二公钥对应的主秘钥,作为第二主秘钥;若否,则根据第二公钥和第一公钥对应的第一私钥,利用预设秘钥生成算法生成第二主秘钥。
可选的,上述秘钥协商装置还可以包括:
第二获取模块,用于在向接收端发送包括自身的第一公钥的第一请求报文之前,获取第二字符串以及转发服务器的第三公钥;
第三获取模块,用于获取第三主秘钥,第三主秘钥是根据预设秘钥生成算法对第三公钥和第一私钥进行处理得到的;
第一加密模块,用于利用第二字符串对第一待加密请求进行加密,得到第一加密请求;
第二加密模块,用于利用第三主秘钥对第二字符串进行加密,得到第二加密秘钥;
第二发送模块,用于向转发服务器发送第二请求报文,第二请求报文包含第一加密请求、第二加密秘钥和第一公钥,以使转发服务器获取第四主秘钥,利用第四主秘钥对第二加密秘钥进行解密,得到第二字符串,利用第二字符串对第一加密请求进行解密,得到第一待加密请求,生成第一待加密请求的第一请求响应,利用第二字符串对第一请求响应进行加密,得到第二响应报文,向发送端发送第二响应报文,第四主秘钥是根据预设秘钥生成算法对第一公钥和第三公钥对应的第三私钥进行处理得到的;
第二接收模块,用于接收第二响应报文;
第三解密模块,用于利用第二字符串,对第二响应报文进行解密,得到第一请求响应;
上述第一发送模块1101,具体可以用于向转发服务器发送包括自身的第一公钥的第一请求报文,以使转发服务器将接收到第一请求报文转发至接收端;
上述第一接收模块1102,具体可以用于接收转发服务器转发的第一响应报文,第一响应报文是接收端针对第一请求报文反馈至转发服务器的。
基于同一种发明构思,根据上述本申请实施例提供的秘钥协商方法,本申请实施例还提供了一种秘钥协商装置。如图12所示,图12为本申请实施例提供的秘钥协商装置的第二种结构示意图。该装置应用于上述接收端,具体包括以下模块。
第三接收模块1201,用于接收发送端发送的包括发送端的第一公钥的第一请求报文;
第四获取模块1202,获取第一主秘钥,第一主秘钥是根据预设秘钥生成算法对第一公钥和接收端的第二私钥进行处理得到的;
第五获取模块1203,用于获取第一字符串;第一字符串为发送端与接收端之间传输的业务数据的加密秘钥;
第三加密模块1204,用于利用第一主秘钥对第一字符串进行加密,得到第一加密秘钥;
第三发送模块1205,用于向发送端发送第一响应报文,第一响应报文包含第一加密秘钥和第二私钥对应的第二公钥。
可选的,上述秘钥协商装置还可以包括:
第六获取模块,用于若第一请求报文包括针对业务数据的数据获取请求,则在获取第一字符串之后,基于第一请求报文,获取业务数据;
第四加密模块,用于利用第一字符串,对业务数据进行加密得到加密数据;
上述第三发送模块1205,具体可以用于向发送端发送包括加密数据的第一响应报文。
可选的,上述第四获取模块1202,具体可以用于查询本地缓存中是否存在与第一公钥对应的主秘钥;若是,则从本地缓存中获取与第一公钥对应的主秘钥,作为第一主秘钥;若否,则根据第一公钥和接收端的第二私钥,根据预设秘钥生成算法生成第一主秘钥。
可选的,上述秘钥协商装置还可以包括:
第七获取模块,用于在接收发送端发送的包括发送端的第一公钥的第一请求报文之前,获取第三字符串以及转发服务器的第三公钥;
第八获取模块,用于获取第五主秘钥,第五主秘钥是根据预设秘钥生成算法对第三公钥和第二私钥进行处理得到的;
第五加密模块,用于利用第三字符串对第二待加密请求进行加密,得到第二加密请求;
第六加密模块,用于利用第五主秘钥对第三字符串进行加密,得到第三加密秘钥;
第四发送模块,用于向转发服务器发送第三请求报文,第三请求报文包含第二加密请求、第三加密秘钥和第二公钥,以使转发服务器获取第六主秘钥,利用第六主秘钥对第三加密秘钥进行解密,得到第三字符串,利用第三字符串对第二加密请求进行解密,得到第二待加密请求,生成第二待加密请求的第二请求响应,利用第三字符串对第二请求响应进行加密,得到第三响应报文,向发送端发送第三响应报文,第六主秘钥是根据预设秘钥生成算法对第二公钥和第三公钥对应的第三私钥进行处理得到的;
第四接收模块,用于接收第三响应报文;
第四解密模块,用于利用第三字符串,对第三响应报文进行解密,得到第二请求响应;
上述第三接收模块1201,具体可以用于接收转发服务器发送的包括发送端的第一公钥的第一请求报文,第一请求报文是发送端发送至转发服务器的;
上述第三发送模块1205,具体可以用于将第一响应报文发送至转发服务器,以使转发服务器将第一响应报文转发至发送端。
通过本申请实施例提供的装置,接收端在接收到发送端发送的包括第一公钥的第一请求报文后,根据该第一公钥与自身的第二私钥生成第一主秘钥,从而利用该第一主秘钥对第一字符串进行加密,也就是利用第一主秘钥,对发送端与接收端之间传输的业务数据的加密秘钥进行加密,得到第一加密秘钥。接收端通过向发送端发送包含第一加密秘钥和自身的第二公钥的第一响应报文,使得发送端在接收到的该第一响应报文后,基于第二公钥,获取与第一主秘钥相同的第二主秘钥,从而利用该第二秘钥对第一加密秘钥进行解密,得到第一字符串。
相比于相关技术,在秘钥协商过程中,接收端向发送端反馈的第一响应报文中包括第一加密秘钥,也就是加密后的第一字符串,并不是直接反馈作为加密秘钥的第一字符串,有效提高了第一字符串的安全性,从而提高了秘钥传输的安全性,降低了数据交互成本。
再者,接收端反馈的第一响应报文中除了包括第一加密秘钥以外,还包括接收端自身的第二公钥,这使得发送端可以基于该第二公钥准确的获得与第一主秘钥相同的第二主秘钥,从而对第一加密秘钥进行解密得到第一字符串,在保证发送端可以准确获得第一字符串的同时,提高了第一字符串的安全性,从而提高了秘钥传输的安全性,降低了数据交互成本。
基于同一种发明构思,根据上述本申请实施例提供的秘钥协商方法,本申请实施例还提供了一种秘钥协商系统。如图13所示,图13为本申请实施例提供的秘钥协商系统的一种结构示意图。该系统包括发送端1301和接收端1302;
上述发送端1301,用于向接收端1302发送包括自身的第一公钥的第一请求报文;
上述接收端1302,用于接收第一请求报文;获取第一主秘钥,第一主秘钥是根据预设秘钥生成算法对第一公钥和接收端1302的第二私钥进行处理得到的;获取第一字符串;第一字符串为发送端1301与接收端1302之间传输的业务数据的加密秘钥;利用第一主秘钥对第一字符串进行加密,得到第一加密秘钥;向发送端1301发送第一响应报文,第一响应报文包含第一加密秘钥和第二私钥对应的第二公钥;
上述发送端1301,还可以用于接收第一响应报文;获取第二主秘钥;第二主秘钥是根据预设秘钥生成算法对第二公钥和第一公钥对应的第一私钥进行处理得到的;利用第二主秘钥对第一加密秘钥进行解密,得到第一字符串。
可选的,上述接收端1302,还用于在根据预设秘钥生成算法对第一公钥和接收端1302的第二私钥进行处理得到第一主秘钥后,按照第一公钥与第一主秘钥间的关系,在本地缓存中缓存第一主秘钥;
上述发送端1301,还用于在根据预设秘钥生成算法对第二公钥和第一公钥对应的第一私钥进行处理得到第二主秘钥后,按照第二公钥和第二主秘钥间的对应关系,在本地缓存中缓存第二主秘钥。
通过本申请实施例提供的系统,接收端在接收到发送端发送的包括第一公钥的第一请求报文后,根据该第一公钥与自身的第二私钥生成第一主秘钥,从而利用该第一主秘钥对第一字符串进行加密,也就是利用第一主秘钥,对发送端与接收端之间传输的业务数据的加密秘钥进行加密,得到第一加密秘钥。接收端通过向发送端发送包含第一加密秘钥和自身的第二公钥的第一响应报文,使得发送端在接收到的该第一响应报文后,基于第二公钥,获取与第一主秘钥相同的第二主秘钥,从而利用该第二秘钥对第一加密秘钥进行解密,得到第一字符串。
相比于相关技术,在秘钥协商过程中,接收端向发送端反馈的第一响应报文中包括第一加密秘钥,也就是加密后的第一字符串,并不是直接反馈作为加密秘钥的第一字符串,有效提高了第一字符串的安全性,从而提高了秘钥传输的安全性,降低了数据交互成本。
再者,接收端反馈的第一响应报文中除了包括第一加密秘钥以外,还包括接收端自身的第二公钥,这使得发送端可以基于该第二公钥准确的获得与第一主秘钥相同的第二主秘钥,从而对第一加密秘钥进行解密得到第一字符串,在保证发送端可以准确获得第一字符串的同时,提高了第一字符串的安全性,从而提高了秘钥传输的安全性,降低了数据交互成本。
基于同一种发明构思,根据上述本申请实施例提供的秘钥协商方法,本申请实施例还提供了一种发送端,如图14所示,包括处理器1401、通信接口1402、存储器1403和通信总线1404,其中,处理器1401,通信接口1402,存储器1403通过通信总线1404完成相互间的通信,
存储器1403,用于存放计算机程序;
处理器1401,用于执行存储器1403上所存放的程序时,实现如下步骤:
向接收端发送包括自身的第一公钥的第一请求报文;
接收接收端针对第一请求报文反馈的第一响应报文;第一响应报文包含第一加密秘钥和接收端的第二公钥;第一加密秘钥是利用第一主秘钥对第一字符串进行加密得到的,第一主秘钥是根据预设秘钥生成算法对第一公钥和第二公钥对应的第二私钥进行处理得到的;第一字符串为发送端与接收端之间传输的业务数据的加密秘钥;
获取第二主秘钥;第二主秘钥是根据预设秘钥生成算法对第二公钥和第一公钥对应的第一私钥进行处理得到的;
利用第二主秘钥对第一加密秘钥进行解密,得到第一字符串。
基于同一种发明构思,根据上述本申请实施例提供的秘钥协商方法,本申请实施例还提供了一种接收端,如图15所示,包括处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信,
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的程序时,实现如下步骤:
接收发送端发送的包括发送端的第一公钥的第一请求报文;
获取第一主秘钥,第一主秘钥是根据预设秘钥生成算法对第一公钥和接收端的第二私钥进行处理得到的;
获取第一字符串;第一字符串为发送端与接收端之间传输的业务数据的加密秘钥;
利用第一主秘钥对第一字符串进行加密,得到第一加密秘钥;
向发送端发送第一响应报文,第一响应报文包含第一加密秘钥和第二私钥对应的第二公钥。
通过本申请实施例提供的发送端和接收端,接收端在接收到发送端发送的包括第一公钥的第一请求报文后,根据该第一公钥与自身的第二私钥生成第一主秘钥,从而利用该第一主秘钥对第一字符串进行加密,也就是利用第一主秘钥,对发送端与接收端之间传输的业务数据的加密秘钥进行加密,得到第一加密秘钥。接收端通过向发送端发送包含第一加密秘钥和自身的第二公钥的第一响应报文,使得发送端在接收到的该第一响应报文后,基于第二公钥,获取与第一主秘钥相同的第二主秘钥,从而利用该第二秘钥对第一加密秘钥进行解密,得到第一字符串。
相比于相关技术,在秘钥协商过程中,接收端向发送端反馈的第一响应报文中包括第一加密秘钥,也就是加密后的第一字符串,并不是直接反馈作为加密秘钥的第一字符串,有效提高了第一字符串的安全性,从而提高了秘钥传输的安全性,降低了数据交互成本。
再者,接收端反馈的第一响应报文中除了包括第一加密秘钥以外,还包括接收端自身的第二公钥,这使得发送端可以基于该第二公钥准确的获得与第一主秘钥相同的第二主秘钥,从而对第一加密秘钥进行解密得到第一字符串,在保证发送端可以准确获得第一字符串的同时,提高了第一字符串的安全性,从而提高了秘钥传输的安全性,降低了数据交互成本。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
基于同一种发明构思,根据上述本申请实施例提供的秘钥协商方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一秘钥协商方法的步骤。
基于同一种发明构思,根据上述本申请实施例提供的秘钥协商方法,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一秘钥协商方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统、发送端、接收端、计算机可读存储介质及计算机程序产品等实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (13)

1.一种秘钥协商方法,其特征在于,应用于发送端,所述方法包括:
向接收端发送包括自身的第一公钥的第一请求报文;
接收所述接收端针对所述第一请求报文反馈的第一响应报文;所述第一响应报文包含第一加密秘钥和所述接收端的第二公钥;所述第一加密秘钥是利用第一主秘钥对第一字符串进行加密得到的,所述第一主秘钥是根据预设秘钥生成算法对所述第一公钥和第二公钥对应的第二私钥进行处理得到的;所述第一字符串为所述发送端与所述接收端之间传输的业务数据的加密秘钥;
获取第二主秘钥;所述第二主秘钥是根据所述预设秘钥生成算法对所述第二公钥和第一公钥对应的第一私钥进行处理得到的;
利用所述第二主秘钥对所述第一加密秘钥进行解密,得到所述第一字符串。
2.根据权利要求1所述的方法,其特征在于,当所述第一请求报文包括针对所述业务数据的数据获取请求时,所述第一响应报文还包括加密数据,所述加密数据是所述接收端利用所述第一字符串对所述业务数据进行加密得到的;
在利用所述第二主秘钥对所述第一加密秘钥进行解密,得到所述第一字符串之后,所述方法还包括:
利用所述第一字符串,对所述加密数据进行解密,得到所述业务数据。
3.根据权利要求1所述的方法,其特征在于,所述获取第二主秘钥的步骤,包括:
查询本地缓存中是否存在与所述第二公钥对应的主秘钥;
若是,则从本地缓存中获取与所述第二公钥对应的主秘钥,作为第二主秘钥;
若否,则根据所述第二公钥和所述第一公钥对应的第一私钥,利用所述预设秘钥生成算法生成第二主秘钥。
4.根据权利要求1所述的方法,其特征在于,在向接收端发送包括自身的第一公钥的第一请求报文之前,所述方法还包括:
获取第二字符串以及转发服务器的第三公钥;
获取第三主秘钥,所述第三主秘钥是根据所述预设秘钥生成算法对第三公钥和所述第一私钥进行处理得到的;
利用所述第二字符串对第一待加密请求进行加密,得到第一加密请求;
利用所述第三主秘钥对所述第二字符串进行加密,得到第二加密秘钥;
向所述转发服务器发送第二请求报文,所述第二请求报文包含所述第一加密请求、所述第二加密秘钥和所述第一公钥,以使所述转发服务器获取第四主秘钥,利用所述第四主秘钥对所述第二加密秘钥进行解密,得到所述第二字符串,利用所述第二字符串对所述第一加密请求进行解密,得到所述第一待加密请求,生成所述第一待加密请求的第一请求响应,利用所述第二字符串对所述第一请求响应进行加密,得到第二响应报文,向所述发送端发送所述第二响应报文,所述第四主秘钥是根据所述预设秘钥生成算法对所述第一公钥和所述第三公钥对应的第三私钥进行处理得到的;
接收所述第二响应报文;
利用所述第二字符串,对所述第二响应报文进行解密,得到所述第一请求响应;
所述向接收端发送包括自身的第一公钥的第一请求报文的步骤,包括:
向所述转发服务器发送包括自身的第一公钥的第一请求报文,以使所述转发服务器将接收到的第一请求报文转发至接收端;
所述接收所述接收端针对所述第一请求报文反馈的第一响应报文的步骤,包括:
接收所述转发服务器转发的第一响应报文,所述第一响应报文是所述接收端针对所述第一请求报文反馈至所述转发服务器的。
5.一种秘钥协商方法,其特征在于,应用于接收端,所述方法包括:
接收发送端发送的包括所述发送端的第一公钥的第一请求报文;
获取第一主秘钥,所述第一主秘钥是根据预设秘钥生成算法对所述第一公钥和所述接收端的第二私钥进行处理得到的;
获取第一字符串;所述第一字符串为所述发送端与所述接收端之间传输的业务数据的加密秘钥;
利用所述第一主秘钥对所述第一字符串进行加密,得到第一加密秘钥;
向所述发送端发送第一响应报文,所述第一响应报文包含所述第一加密秘钥和所述第二私钥对应的第二公钥。
6.根据权利要求5所述的方法,其特征在于,若所述第一请求报文包括针对所述业务数据的数据获取请求,则在获取第一字符串之后,所述方法还包括:
基于所述第一请求报文,获取所述业务数据;
利用所述第一字符串,对所述业务数据进行加密得到加密数据;
所述向所述发送端发送第一响应报文的步骤,包括:
向所述发送端发送包括所述加密数据的第一响应报文。
7.根据权利要求5所述的方法,其特征在于,所述获取第一主秘钥的步骤,包括:
查询本地缓存中是否存在与所述第一公钥对应的主秘钥;
若是,则从本地缓存中获取与所述第一公钥对应的主秘钥,作为第一主秘钥;
若否,则根据所述第一公钥和所述接收端的第二私钥,根据所述预设秘钥生成算法生成第一主秘钥。
8.根据权利要求5所述的方法,其特征在于,在接收发送端发送的包括所述发送端的第一公钥的第一请求报文之前,所述方法还包括:
获取第三字符串以及转发服务器的第三公钥;
获取第五主秘钥,所述第五主秘钥是根据所述预设秘钥生成算法对第三公钥和所述第二私钥进行处理得到的;
利用所述第三字符串对第二待加密请求进行加密,得到第二加密请求;
利用所述第五主秘钥对所述第三字符串进行加密,得到第三加密秘钥;
向所述转发服务器发送第三请求报文,所述第三请求报文包含所述第二加密请求、所述第三加密秘钥和所述第二公钥,以使所述转发服务器获取第六主秘钥,利用所述第六主秘钥对所述第三加密秘钥进行解密,得到所述第三字符串,利用所述第三字符串对所述第二加密请求进行解密,得到所述第二待加密请求,生成所述第二待加密请求的第二请求响应,利用所述第三字符串对所述第二请求响应进行加密,得到第三响应报文,向所述发送端发送所述第三响应报文,所述第六主秘钥是根据所述预设秘钥生成算法对所述第二公钥和所述第三公钥对应的第三私钥进行处理得到的;
接收所述第三响应报文;
利用所述第三字符串,对所述第三响应报文进行解密,得到所述第二请求响应;
所述接收发送端发送的包括所述发送端的第一公钥的第一请求报文的步骤,包括:
接收所述转发服务器发送的包括所述发送端的第一公钥的第一请求报文,所述第一请求报文是所述发送端发送至所述转发服务器的;
所述向所述发送端发送第一响应报文的步骤,包括:
将第一响应报文发送至所述转发服务器,以使所述转发服务器将所述第一响应报文转发至所述发送端。
9.一种秘钥协商系统,其特征在于,所述系统包括发送端和接收端;
所述发送端,用于向接收端发送包括自身的第一公钥的第一请求报文;
所述接收端,用于接收所述第一请求报文;获取第一主秘钥,所述第一主秘钥是根据预设秘钥生成算法对所述第一公钥和所述接收端的第二私钥进行处理得到的;获取第一字符串;所述第一字符串为所述发送端与所述接收端之间传输的业务数据的加密秘钥;利用所述第一主秘钥对所述第一字符串进行加密,得到第一加密秘钥;向所述发送端发送第一响应报文,所述第一响应报文包含所述第一加密秘钥和所述第二私钥对应的第二公钥;
所述发送端,还用于接收所述第一响应报文;获取第二主秘钥;所述第二主秘钥是根据所述预设秘钥生成算法对所述第二公钥和第一公钥对应的第一私钥进行处理得到的;利用所述第二主秘钥对所述第一加密秘钥进行解密,得到所述第一字符串。
10.根据权利要求9所述的系统,其特征在于,所述接收端,还用于在根据预设秘钥生成算法对所述第一公钥和所述接收端的第二私钥进行处理得到第一主秘钥后,按照所述第一公钥与所述第一主秘钥间的关系,在本地缓存中缓存所述第一主秘钥;
所述发送端,还用于在根据所述预设秘钥生成算法对所述第二公钥和第一公钥对应的第一私钥进行处理得到第二主秘钥后,按照所述第二公钥和第二主秘钥间的对应关系,在本地缓存中缓存所述第二主秘钥。
11.一种发送端,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一所述的方法步骤。
12.一种接收端,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求5-8任一所述的方法步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4或5-8任一所述的方法步骤。
CN202210567982.7A 2022-05-24 2022-05-24 一种秘钥协商方法、系统、发送端及接收端 Pending CN114938273A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210567982.7A CN114938273A (zh) 2022-05-24 2022-05-24 一种秘钥协商方法、系统、发送端及接收端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210567982.7A CN114938273A (zh) 2022-05-24 2022-05-24 一种秘钥协商方法、系统、发送端及接收端

Publications (1)

Publication Number Publication Date
CN114938273A true CN114938273A (zh) 2022-08-23

Family

ID=82864028

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210567982.7A Pending CN114938273A (zh) 2022-05-24 2022-05-24 一种秘钥协商方法、系统、发送端及接收端

Country Status (1)

Country Link
CN (1) CN114938273A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116055207A (zh) * 2023-01-31 2023-05-02 深圳市圣驼储能技术有限公司 一种物联网通讯数据的加密方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116055207A (zh) * 2023-01-31 2023-05-02 深圳市圣驼储能技术有限公司 一种物联网通讯数据的加密方法及系统
CN116055207B (zh) * 2023-01-31 2023-10-03 深圳市圣驼储能技术有限公司 一种物联网通讯数据的加密方法及系统

Similar Documents

Publication Publication Date Title
US20220006627A1 (en) Quantum key distribution node apparatus and method for quantum key distribution thereof
US10581599B2 (en) Cloud storage method and system
CN108989848B (zh) 一种视频资源文件的获取方法和管理系统
WO2021120831A1 (zh) 流媒体数据加密、解密方法、装置、电子设备及存储介质
US20150074393A1 (en) Method, Apparatus, and System for Implementing Media Data Processing
JP2015149716A (ja) コンテンツベースの伝送セキュリティ
JP2008524914A (ja) ブロードキャスト/マルチキャストサービスにおけるデジタル著作権管理方法
CN103457993A (zh) 本地缓存装置和提供内容缓存服务的方法
US10581804B2 (en) End-to-end caching of secure content via trusted elements
US8464053B2 (en) Systems, methods, and media for retransmitting data using the secure real-time transport protocol
JP2015149717A (ja) 分散した作成部についてのコンテンツベースの伝送セキュリティ
US10375027B2 (en) Provisioning using a generic configuration
US11671279B2 (en) Determining a session key using session data
US20230247010A1 (en) Systems and methods for encryption in network communication
CN113300999B (zh) 信息处理方法、电子设备和可读存储介质
WO2024032289A1 (zh) 视频播放方法和系统、视频安全平台、通信设备
US20190306110A1 (en) Experience differentiation
CN114205093B (zh) 区块链消息传输方法、装置、客户端及存储介质
CN114938273A (zh) 一种秘钥协商方法、系统、发送端及接收端
US9788198B2 (en) Protecting radio transmitter identity
US11134088B2 (en) Secure next-hop communication
JP6911923B2 (ja) 暗号化通信装置、暗号化通信システム、暗号化通信方法、およびプログラム
CN114050897B (zh) 一种基于sm9的异步密钥协商方法及装置
WO2018054144A1 (zh) 对称密钥动态生成方法、装置、设备及系统
TW201541992A (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