本技术涉及计算机,特别涉及一种对称密钥的生成方法、装置以及电子设备。
背景技术:
1、由于对称加密算法具有计算量小、加密速度快、加密效率高的优点,被广泛用于服务器端与客户端的业务数据传输加密,但对称加密算法在使用过程中要求通信双方均需要采用相同的对称密钥,才能实现数据的加解密。现有的对称密钥管理方案,通常在服务器端生成对称密钥后,将对称密钥传输至客户端进行保存,且对称密钥生成后不会进行及时更新。由于客户端通常处于非可信网络环境之中,因此,存在对称密钥在传输过程中被劫持的风险,并且密钥被保存在客户端后,存在较大被窃取的风险。
2、因此,如何安全的生成对称密钥,避免对称密钥在由服务端向客户端的传输过程中被劫持,以及在客户端对对称密钥的保管过程中,防止对称密钥被窃取,是亟待解决的技术问题。
技术实现思路
1、本技术实施例提供了一种对称密钥的生成方法、装置、电子设备和存储介质,用于安全的生成对称密钥,避免对称密钥在由服务端向客户端的传输过程中被劫持,以及在客户端对对称密钥的保管过程中,防止对称密钥被窃取。
2、本发明公开了一种对称密钥的生成方法,应用于客户端,所述方法包括:
3、发送公钥请求信息给服务端,并接收服务端响应所述公钥请求信息返回的第一密文信息及公钥;
4、按预设第一规则生成第一请求标识信息,所述第一请求标识信息至少包括设备唯一标识;
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、本技术提供的实施例中,当客户端需要与服务端交互业务数据时,可以按照本实施例的方法临时生成对称密钥,由于客户端与服务端在交互过程中并未传输完整的密钥信息,且最后使用的对称密钥是在客户端本地、服务端本地分别生成的,因此可以避免对称密钥在由服务端向客户端的传输过程中被劫持;另外,因为可以临时生成对称密钥,因此,客户端无需保管原来的对称密钥,也就防止了在对对称密钥的保管过程中被窃取的情况。