一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种密钥确定方法、装置、电子设备及存储介质与流程

2022-11-16 09:07:10 来源:中国专利 TAG:


1.本技术涉及通信技术领域,特别是涉及一种密钥确定方法、装置、电子设备及存储介质。


背景技术:

2.随着通信环境的日益复杂和信息技术的不断发展,通信环境中的攻击手段也不断发展,使得通信双方之间传输的数据存在不同程度的安全隐患,因此,需要对传输数据进行加密,以防止传输数据被攻击。
3.相关技术中,通信双方协商密钥需要依赖其他完整性校验方式。例如,通信双方中的数据发送方在向数据接收方传输数据的同时,还会携带散列值,数据接收方接收到传输数据和散列值后,进行md5校验。具体的,数据接收方通过对接收的传输数据执行散列运算,得到散列值;并将计算出的散列值与随数据传输的散列值进行比较;如果两个散列值相同,确定传输数据完整无误、没有被窜改过。
4.由上述描述可知,相关技术中,相当于通过散列值实现了对传输数据进行加密,通信双方确定通信密钥需要依赖于md5校验等完整性校验方式,流程复杂。


技术实现要素:

5.为解决上述技术问题,本技术示出了一种密钥确定方法、装置、电子设备及存储介质。
6.第一方面,本技术实施例提供了一种密钥确定方法,应用于数据发送端,包括:
7.在与数据接收端确定会话密钥时,生成第一随机数;
8.通过第一密钥对第一数据进行加密,得到加密后的第一数据,并向所述数据接收端发送所述加密后的第一数据;所述第一数据包括所述第一随机数,所述第一密钥为所述数据发送端和数据接收端共享的密钥;
9.接收所述数据接收端所发送的第二数据;所述第二数据包括通过所述第一密钥加密的第二随机数,以及,通过第二密钥加密的所述第三数据,所述第二随机数是所述数据接收端生成的,且所述第二随机数与所述第一随机数不同,所述第二密钥基于对所述第一密钥、所述第一随机数和所述第二随机数进行运算得到,所述第三数据包括所述第一随机数;
10.对所述第二数据进行解密,得到解密数据;
11.在所述解密数据包括所述第一随机数时,通过所述第二密钥对第四数据进行加密,得到第五数据,并向所述数据接收端发送所述第五数据,以使得所述数据接收端解密所述第五数据,并在解密所得的数据中包括所述第二随机数时,将所述第二密钥确定为与所述数据发送端通信时的会话密钥;
12.将所述第二密钥确定为与所述数据接收端通信时的会话密钥。
13.可选的,所述对所述第二数据进行解密,得到解密数据,包括:
14.通过所述第一密钥对所述加密的第二随机数进行解密,得到所述第二随机数;
15.对所述第一密钥、所述第一随机数和所述第二随机数进行异或运算,得到第二密钥;
16.通过所述第二密钥对所述加密的第三数据进行解密,得到所述第一随机数和所述第四数据,所述第四数据包括第二随机数。
17.可选的,所述第一数据包括发送所述第一数据对应的第一时间戳;所述第二数据包括发送所述第二数据对应的第二时间戳;所述第五数据包括发送所述第五数据对应的第三时间戳,所述第一时间戳、所述第二时间戳以及所述第三时间戳均不同。
18.第二方面,本技术实施例提供了一种密钥确定方法,应用于数据接收端,包括:
19.接收数据发送端所发送的加密后的第一数据;所述加密后的第一数据是所述数据发送端通过第一密钥对第一数据进行加密得到,所述第一密钥为所述数据发送端和数据接收端共享的密钥,所述第一数据包括第一随机数,所述第一随机数是所述数据发送端生成的;
20.通过所述第一密钥解密所述加密后的第一数据,得到解密后的第一数据,所述解密后的第一数据包括所述第一随机数;
21.生成第二随机数,所述第二随机数与所述第一随机数不同;
22.基于所述第一密钥、所述第一随机数和所述第二随机数,生成第二密钥;
23.通过所述第一密钥对所述第二随机数进行加密,并通过所述第二密钥对第三数据进行加密,得到第二数据;所述第三数据包括所述第一随机数;
24.向所述数据发送端发送所述第二数据,并接收所述数据发送端所发送的第五数据;所述第五数据是所述数据发送端对所述第二数据进行解密,得到的解密数据包括所述第一随机数和第四数据时,向所述数据接收端发送的,且所述第五数据通过所述第二密钥对第四数据加密得到,所述第四数据包括所述第二随机数;
25.通过所述第二密钥对所述第五数据进行解密,在解密所得的数据中包括所述第二随机数时,将所述第二密钥确定为与所述数据发送端通信时的会话密钥。
26.可选的,所述基于所述第一密钥、所述第一随机数和所述第二随机数,生成第二密钥,包括:
27.将所述第一密钥与所述第一随机数进行异或运算,得到异或运算结果;
28.将所述异或运算结果与所述第二随机数进行异或运算,得到第二密钥。
29.可选的,所述第一数据包括发送所述第一数据对应的第一时间戳;所述第二数据包括发送所述第二数据对应的第二时间戳;所述第五数据包括发送所述第五数据对应的第三时间戳,所述第一时间戳、所述第二时间戳以及所述第三时间戳均不同。
30.第三方面,本技术实施例提供了一种密钥确定装置,应用于数据发送端,包括:
31.第一随机数生成模块,用于在与数据接收端确定会话密钥时,生成第一随机数;
32.第一数据发送模块,用于通过第一密钥对第一数据进行加密,得到加密后的第一数据,并向所述数据接收端发送所述加密后的第一数据;所述第一数据包括所述第一随机数,所述第一密钥为所述数据发送端和数据接收端共享的密钥;
33.第二数据接收模块,用于接收所述数据接收端所发送的第二数据;所述第二数据包括通过所述第一密钥加密的第二随机数,以及,通过第二密钥加密的所述第三数据,所述第二随机数是所述数据接收端生成的,且所述第二随机数与所述第一随机数不同,所述第
二密钥基于对所述第一密钥、所述第一随机数和所述第二随机数进行运算得到,所述第三数据包括所述第一随机数;
34.第二数据解密模块,用于对所述第二数据进行解密,得到解密数据;
35.第五数据发送模块,用于在所述解密数据包括所述第一随机数时,通过所述第二密钥对第四数据进行加密,得到第五数据,并向所述数据接收端发送所述第五数据,以使得所述数据接收端解密所述第五数据,并在解密所得的数据中包括所述第二随机数时,将所述第二密钥确定为与所述数据发送端通信时的会话密钥;
36.会话密钥确定模块,用于将所述第二密钥确定为与所述数据接收端通信时的会话密钥。
37.可选的,所述第二数据解密模块,具体用于:
38.通过所述第一密钥对所述加密的第二随机数进行解密,得到所述第二随机数;
39.对所述第一密钥、所述第一随机数和所述第二随机数进行异或运算,得到第二密钥;
40.通过所述第二密钥对所述加密的第三数据进行解密,得到所述第一随机数和所述第四数据,所述第四数据包括第二随机数。
41.可选的,所述第一数据包括发送所述第一数据对应的第一时间戳;所述第二数据包括发送所述第二数据对应的第二时间戳;所述第五数据包括发送所述第五数据对应的第三时间戳,所述第一时间戳、所述第二时间戳以及所述第三时间戳均不同。
42.第四方面,本技术实施例提供了一种密钥确定装置,应用于数据接收端,包括:
43.第一数据接收模块,用于接收数据发送端所发送的加密后的第一数据;所述加密后的第一数据是所述数据发送端通过第一密钥对第一数据进行加密得到,所述第一密钥为所述数据发送端和数据接收端共享的密钥,所述第一数据包括第一随机数,所述第一随机数是所述数据发送端生成的;
44.第一数据解密模块,用于通过所述第一密钥解密所述加密后的第一数据,得到解密后的第一数据,所述解密后的第一数据包括所述第一随机数;
45.第二随机数生成模块,用于生成第二随机数,所述第二随机数与所述第一随机数不同;
46.第二密钥生成模块,用于基于所述第一密钥、所述第一随机数和所述第二随机数,生成第二密钥;
47.第二数据确定模块,用于通过所述第一密钥对所述第二随机数进行加密,并通过所述第二密钥对第三数据进行加密,得到第二数据;所述第三数据包括所述第一随机数;
48.第二数据发送模块,用于向所述数据发送端发送所述第二数据,并接收所述数据发送端所发送的第五数据;所述第五数据是所述数据发送端对所述第二数据进行解密,得到的解密数据包括所述第一随机数和第四数据时,向所述数据接收端发送的,且所述第五数据通过所述第二密钥对第四数据加密得到,所述第四数据包括所述第二随机数;
49.会话密钥确定模块,用于通过所述第二密钥对所述第五数据进行解密,在解密所得的数据中包括所述第二随机数时,将所述第二密钥确定为与所述数据发送端通信时的会话密钥。
50.可选的,所述第二密钥生成模块,具体用于:
51.将所述第一密钥与所述第一随机数进行异或运算,得到异或运算结果;
52.将所述异或运算结果与所述第二随机数进行异或运算,得到第二密钥。
53.可选的,所述第一数据包括发送所述第一数据对应的第一时间戳;所述第二数据包括发送所述第二数据对应的第二时间戳;所述第五数据包括发送所述第五数据对应的第三时间戳,所述第一时间戳、所述第二时间戳以及所述第三时间戳均不同。
54.第五方面,本技术实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面或第二方面所述的密钥确定方法的步骤。
55.第六方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第二方面所述的密钥确定方法的步骤。
56.通过本技术实施例提供的技术方案,数据发送端与数据接收端在确定会话密钥时,数据发送端与数据接收端会产生不同的随机数,并将数据发送端与数据接收端的共享密钥、数据发送端产生的随机数与数据接收端产生的随机数进行运算得到双方通信的会话密钥。在本方案中通过通信双方在协商会话密钥的过程中,借助通信双方产生的随机数进行协议确认,不需要依赖其他完整性校验方式,增加了协商协议的可重放性,简化了协商会话密钥的流程。
附图说明
57.图1是本技术实施例提供的一种数据发送端与数据接收端之间的交互示意图;
58.图2是本技术实施例提供的一种应用于数据发送端的密钥确定方法的步骤流程图;
59.图3是本技术实施例提供的一种应用于数据接收端的密钥确定方法的步骤流程图;
60.图4是本技术实施例提供的一种应用于数据发送端的密钥确定装置的结构框图;
61.图5是本技术实施例提供的一种应用于数据接收端的密钥确定装置的结构框图;
62.图6是本技术实施例提供的一种电子设备的结构框图。
具体实施方式
63.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术作进一步详细的说明。
64.随着通信环境的日益复杂和信息技术的不断发展,通信环境中的攻击手段也不断发展,使得通信双方之间传输的数据存在不同程度的安全隐患,因此,需要对传输数据进行加密,以防止传输数据被攻击。
65.相关技术中,实现对传输数据的加密需要依赖其他完整性校验方式。例如,通信双方中的数据发送方在向数据接收方传输数据的同时,还会携带散列值,数据接收方接收到传输数据和散列值后,进行md5校验。具体的,数据接收方通过对接收的传输数据执行散列运算,得到散列值;并将计算出的散列值与随数据传输的散列值进行比较;如果两个散列值相同,确定传输数据完整无误、没有被窜改过。
66.由上述描述可知,相关技术中相当于通过散列值实现了对传输数据进行加密,依赖于md5校验等完整性校验方式,流程复杂。
67.为了解决相关技术存在的技术问题,本技术实施例提供了一种密钥确定方法、装置、电子设备及存储介质。
68.为了方案描述清楚,第一方面,首先结合具体应用场景对本技术实施例的技术方案进行阐述。
69.如图1所示,本技术实施例的技术方案涉及到数据发送端110和数据接收端120之间的交互。
70.(1)数据发送端生成一个随机数x,该x可以是32字节的数。然后用双方共享密钥skek加密x以及一些其他信息,得到加密后的信息。该其他信息可以包括时间戳time_stamp,info和crc。记作eskek(x time_stamp info crc),其中,在实际应用中,时间戳可以为1,info可以为待协商的信息,例如,待协商的会话密钥。crc是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。
71.(2)数据发送端将eskek(x time_stamp info crc)发送到数据接收端。
72.(3)数据接收端接收到eskek(x time_stamp info crc)后,利用共享密钥skek对加密后的信息进行解密,得到随机数x和上述其他信息;并生成一个随机数y,随机数y与随机数x不相同,且随机数y也可以是一个32字节的数。然后数据接收端利用共享密钥加密y,得到eskek(y),并对共享密钥skek、x以及y进行异或运算,得到新的密钥skek*x*y,并利用skek*x*y加密x以及其他信息,得到eskek*x*y(x time_stamp info crc)。
73.其中,eskek*x*y(x time_stamp info crc)中的时间戳time_stamp与eskek(x time_stamp info crc)中的时间戳time_stamp不同,比如,eskek(x time_stamp info crc)中的时间戳time_stamp为1,eskek*x*y(x time_stamp info crc)中的时间戳time_stamp为2。
74.(4)数据接收端将eskek(y)和eskek*x*y(x time_stamp info crc)发送到数据发送端;
75.(5)数据发送端接收到eskek(y)和eskek*x*y(x time_stamp info crc)后,利用skek对eskek(y)解密,得到随机数y,并将skek、x和y进行异或运算,得到新的密钥skek*x*y,通过skek*x*y对eskek*x*y(x time_stamp info crc),得到x,并比较得到的x与本地存储的x是否一致,如果两者一致,则确定数据接收端密钥协商成功,并进行(6)。
76.(6)数据发送端通过skek*x*y对随机数y和其他信息进行加密,得到eskek*x*y(y time_stamp info crc),并将eskek*x*y(y time_stamp info crc)发送到数据接收端;数据接收端通过skek*x*y对eskek*x*y(y time_stamp info crc)进行解密,得到随机数y,将解密得到的随机数y与本地保存的y进行比较,如果两者一致,则确定数据发送端密钥协商成功。
77.(7)数据发送端和数据接收端将skek*x*y作为两者通信时的会话密钥。具体的,数据发送端在向数据接收端发送数据时,通过skek*x*y对数据进行加密,得到加密数据,并将加密数据发送至数据接收端;数据接收端接收到加密数据后,通过skek*x*y对加密数据进行解密。同样的,数据接收端在向数据发送端发送数据时,通过skek*x*y对数据进行加密,
得到加密数据,并将加密数据发送至数据接收端;数据接收端接收到加密数据后,通过skek*x*y对加密数据进行解密。
78.通过本技术实施例提供的技术方案,数据发送端与数据接收端在确定会话密钥时,数据发送端与数据接收端会产生不同的随机数,并将数据发送端与数据接收端的共享密钥、数据发送端产生的随机数与数据接收端产生的随机数进行运算得到双方通信的会话密钥。在本方案中通过通信双方在协商会话密钥的过程中,借助通信双方产生的随机数进行协议确认,不需要依赖其他完整性校验方式,增加了协商协议的可重放性,简化了协商会话密钥的流程。
79.在结合具体应用场景对本技术实施例的技术方案进行阐述之后,下面将对本技术实施例提供的一种密钥确定方法、装置、电子设备及存储介质进行详细阐述。
80.第二方面,将对本技术实施例提供的一种应用于数据发送端的密钥确定方法进行详细阐述。
81.如图2所示,本技术实施例提供的应用于数据发送端的一种密钥确定方法,具体可以包括如下步骤:
82.s210,在与数据接收端确定会话密钥时,生成第一随机数。
83.具体的,数据发送端与数据接收端确定会话密钥时,生成第一随机数,该第一随机数可以称为x,x可以为32字节的随机数。
84.s220,通过第一密钥对第一数据进行加密,得到加密后的第一数据,并向数据接收端发送加密后的第一数据。
85.其中,第一数据包括第一随机数,第一密钥为数据发送端和数据接收端共享的密钥。
86.具体的,第一密钥可以是密钥中心下发的,且数据发送端和数据接收端共享的密钥。数据发送端在生成第一随机数后,可以利用第一密钥对第一数据进行加密,得到加密后的第一数据。
87.在实际应用中,第一数据不仅可以包括第一随机数x,还可以包括其他信息,例如,时间戳等,本技术实施例对其他信息不做具体限定。
88.s230,接收数据接收端所发送的第二数据。
89.其中,第二数据包括通过第一密钥加密的第二随机数,以及,通过第二密钥加密的第三数据,第二随机数是数据接收端生成的,且第二随机数与第一随机数不同,第二密钥基于对第一密钥、第一随机数和第二随机数进行运算得到,所述第三数据包括所述第一随机数。
90.具体的,数据接收端在接收到加密后的第一数据时,通过第一密钥对加密后的第一数据进行解密,得到第一数据包括的第一随机数,并生成第二随机数,且第二随机数与第一随机数不相同,然后,利用第一密钥加密第二随机数。
91.并且,将第一密钥、第一随机数和第二随机数进行异或运算,得到第二密钥,并通过第二密钥加密第三数据,第三数据包括第一随机数。最后,将通过第一密钥加密的第二随机数和通过第二密钥加密的第三数据确定为第二数据,并向数据发送端发送第二数据,从而数据发送端接收到第二数据。
92.在实际应用中,第三数据不仅可以包括第一随机数x,还可以包括其他信息,例如,
时间戳等,本技术实施例对其他信息不做具体限定。并且,第三数据中包括的时间戳与第一数据中包括的时间戳不同。
93.s240,对第二数据进行解密,得到解密数据。
94.具体的,数据发送端在接收到第二数据后,利用第一密钥和第二密钥对第二数据进行解密,得到解密数据。
95.在一种实施方式中,s240,对第二数据进行解密,得到解密数据,可以包括如下步骤,分别为步骤a1至步骤a3:
96.步骤a1,通过第一密钥对加密的第二随机数进行解密,得到第二随机数。
97.具体的,由于第二数据分为两部分,第一部分是通过第一密钥加密的第二随机数,因此,在对第二数据进行解密时,首先可以通过第一密钥对加密的第二随机数进行解密,得到第二随机数。
98.步骤a2,对第一密钥、第一随机数和第二随机数进行异或运算,得到第二密钥。
99.具体的,第一密钥是数据发送端和数据接收端共享的密钥,即是数据发送端预先知道的,第一随机数是数据发送端生成的,第二随机数是通过步骤a1解密得到的。在得到第一密钥、第一随机数和第二随机数后,可以对第一密钥、第一随机数和第二随机数进行异或运算,并将异或运算后的结果确定为第二密钥。
100.可以理解的是,本领域技术人员应该可以理解异或运算,本技术实施例对此不再赘述。
101.步骤a3,通过第二密钥对加密的第三数据进行解密,得到第一随机数和第四数据。
102.其中,第四数据包括第二随机数。
103.具体的,在将第一密钥、第一随机数和第二随机数进行异或运算,得到第二密钥后,可以通过第二密钥对第二数据的第二部分解密,第二部分即为通过第二密钥加密的第三数据,从而得到第三数据。由于第三数据包括第一随机数,即得到了第一随机数。
104.并且,通过步骤a1得到第二随机数,可以得到包括第二随机数的第四数据,其中,第四数据不仅可以包括第二随机数,还可以包括其他信息,例如,时间戳等,本技术实施例对其他信息不做具体限定。并且,第四数据中包括的时间戳、第一数据中包括的时间戳以及第三数据中包括的时间戳均不同。
105.s250,在解密数据包括第一随机数时,通过第二密钥对第四数据进行加密,得到第五数据,并向数据接收端发送第五数据,以使得数据接收端解密第五数据,并在解密所得的数据中包括第二随机数时,将第二密钥确定为与数据发送端通信时的会话密钥。
106.具体的,数据发送端在对第二数据进行解密,得到的解密数据包括第一随机数时,确定数据接收端协商密钥成功。
107.并且,通过第二密钥对包括第二随机数的第四数据进行加密,得到第五数据,并向数据接收端发送第五数据,数据接收端接收到第五数据后,可以通过第二密钥,对第五数据进行解密,解密所得的数据中包括第二随机数时,确定数据发送端协商密钥成功,并将第二密钥确定为与数据发送端通信时的会话密钥。
108.s260,将第二密钥确定为与数据接收端通信时的会话密钥。
109.具体的,通过上述s210至s250,数据发送端与数据接收端成功协商会话密钥,数据接收端将第二密钥确定为与数据发送端通信时的会话密钥,数据发送端也将第二密钥确定
为与数据接收端通信时的会话密钥。
110.数据发送端在向数据接收端发送数据时,通过第二密钥对数据进行加密,得到加密数据,并将加密数据发送至数据接收端;数据接收端接收到加密数据后,通过第二密钥对加密数据进行解密。同样的,数据接收端在向数据发送端发送数据时,通过第二密钥对数据进行加密,得到加密数据,并将加密数据发送至数据接收端;数据接收端接收到加密数据后,通过第二密钥对加密数据进行解密。
111.本技术实施例提供的技术方案,在与数据接收端确定会话密钥时,生成第一随机数;通过第一密钥对第一数据进行加密,得到加密后的第一数据,并向数据接收端发送加密后的第一数据;接收数据接收端所发送的第二数据;第二数据包括通过第一密钥加密的第二随机数,以及,通过第二密钥加密的第三数据;对第二数据进行解密,得到解密数据;在解密数据包括第一随机数时,通过第二密钥对第四数据进行加密,得到第五数据,并向数据接收端发送第五数据,以使得数据接收端解密第五数据,并在解密所得的数据中包括第二随机数时,将第二密钥确定为与数据发送端通信时的会话密钥;并且,数据发送端也将第二密钥确定为与数据接收端通信时的会话密钥。
112.通过本技术实施例提供的技术方案,数据发送端与数据接收端在确定会话密钥时,数据发送端与数据接收端会产生不同的随机数,并将数据发送端与数据接收端的共享密钥、数据发送端产生的随机数与数据接收端产生的随机数进行运算得到双方通信时的会话密钥。在本方案中通过通信双方在协商会话密钥的过程中,借助通信双方产生的随机数进行协议确认,不需要依赖其他完整性校验方式,增加了协商协议的可重放性,简化了协商会话密钥的流程。
113.在图2所示实施例的基础上,在一种实施方式中,第一数据包括发送第一数据对应的第一时间戳;第二数据包括发送第二数据对应的第二时间戳;第五数据包括发送第三数据对应的第三时间戳,第一时间戳、第二时间戳以及第三时间戳均不同。
114.具体的,为了预防数据发送端与数据接收端在协商会话密钥的过程中,两者交互的数据被攻击,数据发送端向数据接收端发送的数据,以及,数据接收端向数据发送端发送的数据均携带有时间戳。即第一数据包括第一时间戳,第二数据包括第二时间戳,第五数据包括第三时间戳。并且,第一时间戳、第二时间戳以及第三时间戳均不相同。例如,第一时间戳为1,第二时间戳为2,第三时间戳为3。
115.这样,当数据发送端与数据接收端在协商会话密钥的过程中,两者交互的数据被攻击时,均可以通过时间戳来进行判断,例如,数据接收端多次接收到携带相同的时间戳的数据,那么,数据接收端可以不对这些数据进行处理。
116.可见,通过本实施例提供的技术方案,当数据发送端与数据接收端在协商会话密钥的过程中,数据发送端接收到的数据是否为数据接收端发送的,以及,数据接收端接收到的数据是否为数据发送端发送的,均可以通过时间戳来进行判断,当两者交互的数据被攻击时,可以及时发现,从而增加了会话密钥协商过程的可重放性。
117.第三方面,将对本技术实施例提供的一种应用于数据接收端的密钥确定方法进行详细阐述。
118.如图3所示,本技术实施例提供的应用于数据接收端的一种密钥确定方法,具体可以包括如下步骤:
119.s310,接收数据发送端所发送的加密后的第一数据。
120.其中,加密后的第一数据是数据发送端通过第一密钥对第一数据进行加密得到,第一密钥为数据发送端和数据接收端共享的密钥,第一数据包括第一随机数,第一随机数是数据发送端生成的。
121.具体的,数据发送端与数据接收端确定会话密钥时,生成第一随机数可以该第一随机数可以称为x,x可以为32字节的随机数。
122.第一密钥可以是密钥中心下发的,且数据发送端和数据接收端共享的密钥。数据发送端在生成第一随机数后,可以利用第一密钥对第一数据进行加密,得到加密后的第一数据,并将加密后的第一数据发送至数据接收端,从而数据接收端接收到加密后的第一数据。
123.在实际应用中,第一数据不仅可以包括第一随机数x,还可以包括其他信息,例如,时间戳等,本技术实施例对其他信息不做具体限定。
124.s320,通过第一密钥解密加密后的第一数据,得到解密后的第一数据。
125.其中,解密后的第一数据包括第一随机数。
126.s330,生成第二随机数。
127.其中,第二随机数与第一随机数不同。
128.数据接收端在接收到加密后的第一数据时,通过第一密钥对加密后的第一数据进行解密,得到第一数据包括的第一随机数,并生成第二随机数,且第二随机数与第一随机数不相同。
129.s340,基于第一密钥、第一随机数和第二随机数,生成第二密钥。
130.具体的,在得到第一密钥、第一随机数和第二随机数后,可以对第一密钥、第一随机数和第二随机数进行运算,得到第二密钥。
131.在一种实施方式中,s340,基于第一密钥、第一随机数和第二随机数,生成第二密钥,可以包括如下步骤,分别为步骤b1和步骤b2:
132.步骤b1,将第一密钥与第一随机数进行异或运算,得到异或运算结果。
133.步骤b2,将异或运算结果与第二随机数进行异或运算,得到第二密钥。
134.具体的,可以先将第一密钥与第一随机数进行异或运算,得到异或运算结果,再将异或运算结果与第二随机数进行异或运算,得到第二密钥。
135.s350,通过第一密钥对第二随机数进行加密,并通过第二密钥对第三数据进行加密,得到第二数据。
136.其中,第三数据包括第一随机数。
137.具体的,通过第一密钥加密第二随机数;通过第二密钥对第三数据进行加密,最后,将通过第一密钥加密的第二随机数和通过第二密钥加密的第三数据确定为第二数据。
138.s360,向数据发送端发送第二数据,并接收数据发送端所发送的第五数据。
139.其中。第五数据是数据发送端对第二数据进行解密,得到的解密数据包括第一随机数和第四数据时,向数据接收端发送的,且第五数据是通过第二密钥对第四数据加密得到,第四数据包括第二随机数。
140.具体的,在得到第二数据后,向数据发送端发送第二数据,数据发送端在接收到第二数据后,利用第一密钥和第二密钥对第二数据进行解密,得到解密数据,在得到的解密数
据包括第一随机数和第四数据时,确定数据接收端协商密钥成功。并且,通过第二密钥对第四数据进行加密,得到第五数据,并向数据接收端发送第五数据。
141.其中,第四数据不仅可以包括第二随机数,还可以包括其他信息,例如,时间戳等,本技术实施例对其他信息不做具体限定。并且,第四数据中包括的时间戳、第一数据中包括的时间戳以及第三数据中包括的时间戳均不同。
142.s370,通过第二密钥对第五数据进行解密,在解密所得的数据中包括第二随机数时,将第二密钥确定为与数据发送端通信时的会话密钥。
143.具体的,数据接收端接收到第五数据后,可以通过第二密钥,对第五数据进行解密,解密所得的数据中包括第二随机数时,确定数据发送端协商密钥成功,并将第二密钥确定为与数据发送端通信时的会话密钥。
144.可见,通过本技术实施例提供的技术方案,数据发送端与数据接收端在确定会话密钥时,数据发送端与数据接收端会产生不同的随机数,并将数据发送端与数据接收端的共享密钥、数据发送端产生的随机数与数据接收端产生的随机数进行运算得到双方通信时的会话密钥。在本方案中通过通信双方在协商会话密钥的过程中,借助通信双方产生的随机数进行协议确认,不需要依赖其他完整性校验方式,增加了协商协议的可重放性,简化了协商会话密钥的流程。
145.在图2所示实施例的基础上,在一种实施方式中,第一数据包括发送第一数据对应的第一时间戳;第二数据包括发送第二数据对应的第二时间戳;第五数据包括发送第三数据对应的第三时间戳,第一时间戳、第二时间戳以及第三时间戳均不同。
146.具体的,为了预防数据发送端与数据接收端在协商会话密钥的过程中,两者交互的数据被攻击,数据发送端向数据接收端发送的数据,以及,数据接收端向数据发送端发送的数据均携带有时间戳。即第一数据包括第一时间戳,第二数据包括第二时间戳,第五数据包括第三时间戳。并且,第一时间戳、第二时间戳以及第三时间戳均不相同。例如,第一时间戳为1,第二时间戳为2,第三时间戳为3。
147.这样,当数据发送端与数据接收端在协商会话密钥的过程中,两者交互的数据被攻击时,均可以通过时间戳来进行判断,例如,数据接收端多次接收到携带相同的时间戳的数据,那么,数据接收端可以不对这些数据进行处理。
148.可见,通过本实施例提供的技术方案,当数据发送端与数据接收端在协商会话密钥的过程中,数据发送端接收到的数据是否为数据接收端发送的,以及,数据接收端接收到的数据是否为数据发送端发送的,均可以通过时间戳来进行判断,当两者交互的数据被攻击时,可以及时发现,从而增加了会话密钥协商过程的可重放性。
149.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本技术所必须的。
150.第四方面,本技术实施例提供了一种密钥确定装置,应用于数据发送端,如图4所示,包括:
151.第一随机数生成模块410,用于在与数据接收端确定会话密钥时,生成第一随机数;
152.第一数据发送模块420,用于通过第一密钥对第一数据进行加密,得到加密后的第一数据,并向所述数据接收端发送所述加密后的第一数据;所述第一数据包括所述第一随机数,所述第一密钥为所述数据发送端和数据接收端共享的密钥;
153.第二数据接收模块430,用于接收所述数据接收端所发送的第二数据;所述第二数据包括通过所述第一密钥加密的第二随机数,以及,通过第二密钥加密的所述第三数据,所述第二随机数是所述数据接收端生成的,且所述第二随机数与所述第一随机数不同,所述第二密钥基于对所述第一密钥、所述第一随机数和所述第二随机数进行运算得到,所述第三数据包括所述第一随机数;
154.第二数据解密模块440,用于对所述第二数据进行解密,得到解密数据;
155.第五数据发送模块450,用于在所述解密数据包括所述第一随机数时,通过所述第二密钥对第四数据进行加密,得到第五数据,并向所述数据接收端发送所述第五数据,以使得所述数据接收端解密所述第五数据,并在解密所得的数据中包括所述第二随机数时,将所述第二密钥确定为与所述数据发送端通信时的会话密钥;
156.会话密钥确定模块460,用于将所述第二密钥确定为与所述数据接收端通信时的会话密钥。
157.通过本技术实施例提供的技术方案,数据发送端与数据接收端在确定会话密钥时,数据发送端与数据接收端会产生不同的随机数,并将数据发送端与数据接收端的共享密钥、数据发送端产生的随机数与数据接收端产生的随机数进行运算得到双方通信的会话密钥。在本方案中通过通信双方在协商会话密钥的过程中,借助通信双方产生的随机数进行协议确认,不需要依赖其他完整性校验方式,增加了协商协议的可重放性,简化了协商会话密钥的流程。
158.可选的,所述第二数据解密模块,具体用于:
159.通过所述第一密钥对所述加密的第二随机数进行解密,得到所述第二随机数;
160.对所述第一密钥、所述第一随机数和所述第二随机数进行异或运算,得到第二密钥;
161.通过所述第二密钥对所述加密的第三数据进行解密,得到所述第一随机数和所述第四数据,所述第四数据包括第二随机数。
162.可选的,所述第一数据包括发送所述第一数据对应的第一时间戳;所述第二数据包括发送所述第二数据对应的第二时间戳;所述第五数据包括发送所述第五数据对应的第三时间戳,所述第一时间戳、所述第二时间戳以及所述第三时间戳均不同。
163.第五方面,本技术实施例提供了一种密钥确定装置,应用于数据接收端,如图5所示,包括:
164.第一数据接收模块510,用于接收数据发送端所发送的加密后的第一数据;所述加密后的第一数据是所述数据发送端通过第一密钥对第一数据进行加密得到,所述第一密钥为所述数据发送端和数据接收端共享的密钥,所述第一数据包括第一随机数,所述第一随机数是所述数据发送端生成的;
165.第一数据解密模块520,用于通过所述第一密钥解密所述加密后的第一数据,得到解密后的第一数据,所述解密后的第一数据包括所述第一随机数;
166.第二随机数生成模块530,用于生成第二随机数,所述第二随机数与所述第一随机
数不同;
167.第二密钥生成模块540,用于基于所述第一密钥、所述第一随机数和所述第二随机数,生成第二密钥;
168.第二数据确定模块550,用于通过所述第一密钥对所述第二随机数进行加密,并通过所述第二密钥对第三数据进行加密,得到第二数据;所述第三数据包括所述第一随机数;
169.第二数据发送模块560,用于向所述数据发送端发送所述第二数据,并接收所述数据发送端所发送的第五数据;所述第五数据是所述数据发送端对所述第二数据进行解密,得到的解密数据包括所述第一随机数和第四数据时,向所述数据接收端发送的,且所述第五数据通过所述第二密钥对第四数据加密得到,所述第四数据包括所述第二随机数;
170.会话密钥确定模块570,用于通过所述第二密钥对所述第五数据进行解密,在解密所得的数据中包括所述第二随机数时,将所述第二密钥确定为与所述数据发送端通信时的会话密钥。
171.通过本技术实施例提供的技术方案,数据发送端与数据接收端在确定会话密钥时,数据发送端与数据接收端会产生不同的随机数,并将数据发送端与数据接收端的共享密钥、数据发送端产生的随机数与数据接收端产生的随机数进行运算得到双方通信的会话密钥。在本方案中通过通信双方在协商会话密钥的过程中,借助通信双方产生的随机数进行协议确认,不需要依赖其他完整性校验方式,增加了协商协议的可重放性,简化了协商会话密钥的流程。
172.可选的,所述第二密钥生成模块,具体用于:
173.将所述第一密钥与所述第一随机数进行异或运算,得到异或运算结果;
174.将所述异或运算结果与所述第二随机数进行异或运算,得到第二密钥。
175.可选的,所述第一数据包括发送所述第一数据对应的第一时间戳;所述第二数据包括发送所述第二数据对应的第二时间戳;所述第五数据包括发送所述第五数据对应的第三时间戳,所述第一时间戳、所述第二时间戳以及所述第三时间戳均不同。
176.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
177.第五方面,本技术实施例提供了一种电子设备,如图6所示,包括存储器610、处理器620及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面或第二方面所述的密钥确定方法的步骤。
178.通过本技术实施例提供的技术方案,数据发送端与数据接收端在确定会话密钥时,数据发送端与数据接收端会产生不同的随机数,并将数据发送端与数据接收端的共享密钥、数据发送端产生的随机数与数据接收端产生的随机数进行运算得到双方通信的会话密钥。在本方案中通过通信双方在协商会话密钥的过程中,借助通信双方产生的随机数进行协议确认,不需要依赖其他完整性校验方式,增加了协商协议的可重放性,简化了协商会话密钥的流程。
179.第六方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第二方面所述的密钥确定方法的步骤。
180.通过本技术实施例提供的技术方案,数据发送端与数据接收端在确定会话密钥
时,数据发送端与数据接收端会产生不同的随机数,并将数据发送端与数据接收端的共享密钥、数据发送端产生的随机数与数据接收端产生的随机数进行运算得到双方通信的会话密钥。在本方案中通过通信双方在协商会话密钥的过程中,借助通信双方产生的随机数进行协议确认,不需要依赖其他完整性校验方式,增加了协商协议的可重放性,简化了协商会话密钥的流程。
181.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
182.本领域内的技术人员应明白,本技术的实施例可提供为方法、装置、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
183.本技术是参照根据本技术的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
184.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
185.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
186.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
187.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
188.以上对本技术所提供的一种密钥确定方法、装置、电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说
明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献