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

一种密钥灌装方法、系统、计算机设备和存储介质与流程

2022-08-13 10:52:14 来源:中国专利 TAG:


1.本技术涉及信息安全技术领域,特别是涉及一种密钥灌装方法、系统、计算机设备和存储介质。


背景技术:

2.目前车辆控制器常用的安全算法是对称算法,在大多数对称算法中,发送方和接收方在通信之前,需要确定一个密钥,其中,密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的数据;发送方通过这个密钥对要发送的明文进行加密,得到密文,将密文发送给接收方;接收方通过密钥对接收到的密文进行解密,得到明文。因此,对称算法的安全性几乎依赖于密钥,密钥的泄露意味着消息的泄露,反之,对消息的保密就转移到对密钥的保密上。算法中使用的密钥通过人为参与的离线发放或者简单的传输得到的,这种方式有可能导致密钥被人为的泄露或者窃取,从而对密钥的安全保障不足。


技术实现要素:

3.基于此,提供一种密钥灌装方法、系统、计算机设备和存储介质,以提高对密钥的安全保障。
4.一方面,提供一种密钥灌装方法,所述方法包括:
5.获取第一私钥和第二私钥,根据所述第一私钥和第二私钥,得到临时密钥;
6.获取第一密钥,复制所述第一密钥,得到第二密钥,通过所述临时密钥对所述第二密钥进行加密,得到并输出第三密钥;
7.接收所述第三密钥,通过所述临时密钥对接收到的所述第三密钥进行解密,得到第四密钥;其中,所述第一密钥用于验证所述第四密钥。
8.在其中一个实施例中,所述根据所述第一私钥和第二私钥,得到临时密钥包括:
9.获取素数和所述素数对应的原根;
10.根据所述第一私钥、所述素数以及所述素数对应的原根,获得并发送第一公钥,获得所述第一公钥的数学表达为:
11.a=g
a mod p,
12.其中,a为所述第一公钥,a为所述第一私钥,p为所述素数,g为所述素数p对应的原根;
13.根据所述第二私钥、所述素数以及所述素数对应的原根,获得并发送第二公钥,获得所述第二公钥的数学表达为:
14.b=g
b mod p,
15.其中,b为所述第一公钥,b为所述第一私钥,p为所述素数,g为所述素数p对应的原根;
16.接收所述第二公钥,根据所述第二公钥、所述第一私钥以及所述素数,获得第五密钥,获得所述第五密钥的数学表达为:
17.k1=b
a mod p,
18.其中,k1为所述第五密钥,b为所述第二公钥,a为所述第一私钥,p为所述素数;
19.接收所述第一公钥,根据所述第一公钥、所述第二私钥以及所述素数,获得第六密钥,获得所述第六密钥的数学表达为:
20.k2=a
b mod p,
21.其中,k2为所述第六密钥,a为所述第一公钥,b为所述第二私钥,p为所述素数;
22.其中,所述临时密钥包括所述第五密钥和所述第六密钥,且所述第五密钥和所述第六密钥的数值相等。
23.在其中一个实施例中,所述通过所述临时密钥对所述第二密钥进行加密,得到并输出第三密钥包括:
24.将所述第二密钥转换为第一矩阵,将所述临时密钥转换为第二矩阵,对所述第一矩阵和所述第二矩阵进行异或运算,得到第三矩阵;
25.获取字节代换表,通过所述字节代换表,对所述第三矩阵中的字节进行代换,以使所述第三矩阵映射为第四矩阵,将所述第四矩阵的第n行向左移动n-1个字节,得到第五矩阵,在有限域上计算预设矩阵与所述第五矩阵的乘积,得到第六矩阵,对所述第二矩阵进行扩展,得到第七矩阵,对所述第六矩阵和所述第七矩阵进行异或运算,得到第八矩阵;
26.通过所述字节代换表,对所述第八矩阵中的字节进行代换,以使所述第八矩阵映射为第九矩阵,将所述第九矩阵的第n行向左移动n-1个字节,得到第十矩阵,对所述第七矩阵进行扩展,得到第十一矩阵,将所述第十矩阵与所述第十一矩阵进行异或运算,得到密文矩阵,根据所述密文矩阵,得到并输出所述第三密钥。
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.图1为一个实施例中密钥灌装方法的流程示意图;
54.图2为一个实施例中获得临时密钥步骤的流程示意图;
55.图3为一个实施例中对第二密钥进行加密步骤的流程示意图;
56.图4为一个实施例中判断灌装是否正确步骤的流程示意图;
57.图5为一个实施例中验证第一密钥和第四密钥步骤的流程示意图;
58.图6为一个实施例中获取第一密钥步骤的流程示意图;
59.图7为一个实施例中密钥灌装系统的执行时序图;
60.图8为另一个实施例中密钥灌装系统的执行时序图;
61.图9为一个实施例中计算机设备的内部结构图。
具体实施方式
62.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
63.车辆控制器常常采用对称算法将通信的明文加密成密文进行传输,且在大多数对称算法中,进行通信的发送方和接收方需要提前确定一个共享密钥,发送方通过共享密钥将明文加密成密文,并将密文传输给接收方,接收方通过共享密钥将密文解密为明文,从而完成明文的传输。因此,为了防止明文的泄露,需要对密钥进行加密,而现有的多采用人为发送或传输密钥,导致密钥被人为窃取或泄露,降低了对密钥的安全保障。为此,本技术提出了一种密钥灌装方法、系统、计算机设备和存储介质,根据第一私钥和第二私钥,得到临时密钥,对获取的第一密钥进行复制,得到第二密钥,通过临时密钥对第二密钥进行加密,得到第三密钥,将第二密钥加密为第三密钥进行传输,可以有效避免第三密钥被反向推导为第二密钥,从而导致第二密钥被窃取,从而提高对密钥的安全保障。
64.在一个实施例中,如图1所示,提供了一种密钥灌输方法,包括以下步骤:
65.s1:获取第一私钥和第二私钥,根据所述第一私钥和第二私钥,得到临时密钥;
66.s2:获取第一密钥,复制所述第一密钥,得到第二密钥,通过所述临时密钥对所述第二密钥进行加密,得到并输出第三密钥;
67.s3:接收所述第三密钥,通过所述临时密钥对接收到的所述第三密钥进行解密,得到第四密钥;其中,所述第一密钥用于验证所述第四密钥。
68.根据所述第一私钥和所述第二私钥,得到临时密钥;对获取到的第一密钥进行复制,得到第二密钥,对复制得到的第二密钥进行缓存,利用所述临时密钥对所述第二密钥进行加密,得到第三密钥,将所述第二密钥加密为第三密钥进行传输,由于所述临时密钥是通过所述第一私钥和所述第二私钥得到的,可以有效避免所述临时密钥被反向推导,从而导致经所述临时密钥进行加密得到的第三密钥被反向推导为第二密钥,使得第二密钥被窃取;传输完成后,利用所述临时密钥,对所述第三密钥进行解密,得到第四密钥,根据所述第一密钥,验证所述第四密钥解密是否正确,从而判断第一密钥灌装是否完成,提高对密钥的安全保障。
69.在一个实施例中,如图2所示,所述根据所述第一私钥和第二私钥,得到临时密钥包括:
70.s11:获取素数和所述素数对应的原根;
71.s12:根据所述第一私钥、所述素数以及所述素数对应的原根,获得并发送第一公钥,获得所述第一公钥的数学表达为:
72.a=g
a mod p,
73.其中,a为所述第一公钥,a为所述第一私钥,p为所述素数,g为所述素数p对应的原根;
74.s13:根据所述第二私钥、所述素数以及所述素数对应的原根,获得并发送第二公钥,获得所述第二公钥的数学表达为:
75.b=g
b mod p,
76.其中,b为所述第一公钥,b为所述第一私钥,p为所述素数,g为所述素数p对应的原根;
77.s14:接收所述第二公钥,根据所述第二公钥、所述第一私钥以及所述素数,获得第五密钥,获得所述第五密钥的数学表达为:
78.k1=b
a mod p,
79.其中,k1为所述第五密钥,b为所述第二公钥,a为所述第一私钥,p为所述素数;
80.s15:接收所述第一公钥,根据所述第一公钥、所述第二私钥以及所述素数,获得第六密钥,获得所述第六密钥的数学表达为:
81.k2=a
b mod p,
82.其中,k2为所述第六密钥,a为所述第一公钥,b为所述第二私钥,p为所述素数;
83.其中,所述临时密钥包括所述第五密钥和所述第六密钥,且所述第五密钥和所述第六密钥的数值相等。
84.需要说明的是,通过上述方法,对所述第一密钥进行通信的双方可以得到共享的临时密钥,所述临时密钥包括所述第五密钥和所述第六密钥,密钥的发送方可通过所述第五密钥对所述第二密钥进行加密,密钥的接收方通过所述第六密钥对接收到的第三密钥进行解密,由于所述第五密钥和所述第六密钥的数值相等,因此实现了对所述临时密钥的共享;由于所述临时密钥是通过所述第一私钥和所述第二私钥得到的,可以有效避免所述临时密钥被反向推导,从而导致经所述临时密钥进行加密得到的第三密钥被反向推导为第二密钥,导致第二密钥被窃取,保证了所述第三密钥的安全性。且所述临时密钥的值一定程度上取决于所述素数,当所述素数越大时,发送所述第一公钥和所述第二公钥的过程越安全,那么得到的临时密钥的安全性也越高。
85.在一个实施例中,如图3所示,所述通过所述临时密钥对所述第二密钥进行加密,得到并输出第三密钥包括:
86.s21:将所述第二密钥转换为第一矩阵,将所述临时密钥转换为第二矩阵,对所述第一矩阵和所述第二矩阵进行异或运算,得到第三矩阵。
87.需要说明的是,将所述第二密钥转换为第一矩阵,以及将所述临时密钥转换为第二矩阵时,矩阵中字节的排列顺序为从上至下、从左至右,例如,假设所述第二密钥为(p
0 p1……
p
15
),则第一矩阵的第一列为(p0~p3),第二列为(p4~p7),第三列为(p8~p
11
),第四列为(p
12
~p
15
);所述第一矩阵和所述第二矩阵按字节进行异或运算,得到的结果即为所述第三矩阵。
88.s22:获取字节代换表,通过所述字节代换表,对所述第三矩阵中的字节进行代换,以使所述第三矩阵映射为第四矩阵,将所述第四矩阵的第n行向左移动n-1个字节,得到第五矩阵,在有限域上计算预设矩阵与所述第五矩阵的乘积,得到第六矩阵,对所述第二矩阵进行扩展,得到第七矩阵,对所述第六矩阵和所述第七矩阵进行异或运算,得到第八矩阵。
89.需要说明的是,将所述第三矩阵中的字节的高字节作为行值,低字节作为列值,在所述字节代换表中进行查表操作,将查到的字节映射到所述第三矩阵中对应的字节,从而得到所述第四矩阵;将所述第四矩阵进行向左的移位操作,具体的,第n行向左移动n-1个字节,例如,所述第四矩阵的第1行保持不变,第2行向左移动1个字节,第3行向左移动2个字
节,直到将第四矩阵的全部行移动完成,得到的结果即为第五矩阵;
90.对所述第二矩阵进行扩展,具体的,将所述第二矩阵的每一列的字节组成一个字,假设所述第二矩阵有4列,将4个字命名为(w0、w1、w2、w3),则扩展的第i列的字为wi,wi的数学表达为:
[0091][0092]
其中,t为函数,包括:将w
[i-1]
向左移动一个字节,将移动的结果在所述字节代还表中进行查表操作,将查表后的结果与预设的轮常量进行异或操作,最终得到的结果即为t
(w[i-1])

[0093]
另外,步骤s22需要循环执行多次,循环的次数取决于所述第二密钥的长度,例如,若所述第二密钥的长度为128位,则循环次数为9次;若所述第二密钥的长度为192位,则循环的次数为11次;若所述第二密钥的长度为256位,则循环的次数为13次;即所述第二密钥的长度每增加64位,循环的次数就增加两次。
[0094]
s23:通过所述字节代换表,对所述第八矩阵中的字节进行代换,以使所述第八矩阵映射为第九矩阵,将所述第九矩阵的第n行向左移动n-1个字节,得到第十矩阵,对所述第七矩阵进行扩展,得到第十一矩阵,将所述第十矩阵与所述第十一矩阵进行异或运算,得到密文矩阵,根据所述密文矩阵,得到并输出所述第三密钥。
[0095]
需要说明的是,步骤s23与步骤s22的执行方式相同,具体的,将所述第八矩阵映射为所述第九矩阵,与将所述第三矩阵映射为所述第四矩阵的方法相同,将第九矩阵进行移动与将所述第四矩阵进行移动的方法相同,对所述第七矩阵进行扩展与对所述第二矩阵进行扩展的方法相同,在此不再赘述;另外,根据所述密文矩阵,得到所述第三密钥,其转换过程与将密钥转换为矩阵的过程相逆,在此不再赘述。
[0096]
另外,通过所述临时密钥对所述第三密钥进行解密的解密过程与前述通过所述临时密钥对所述第二密钥进行加密的过程相逆,在此也不再赘述。
[0097]
在一个实施例中,如图4所示,所述方法还包括:
[0098]
s41:对所述第一密钥进行验证,得到第一验证结果,对所述第四密钥进行验证,得到第二验证结果,将所述第一验证结果与所述第二验证结果进行对比,判断所述第一验证结果与所述第二验证结果是否相同,
[0099]
s42:若是,灌装正确;
[0100]
s43:若否,灌装错误。
[0101]
将所述第四密钥进行解密后,需要对所述第四密钥进行验证,由于第四密钥是对所述第三密钥进行解密得到的,所述第三密钥是通过所述临时密钥对所述第二密钥进行加密得到的,所述第二密钥是对所述第一密钥进行复制得到的,因此通过对所述第一密钥和所述第四密钥进行验证,将得到的所述第一验证结果与所述第二验证结果进行对比,判断所述第四密钥是否与所述第一密钥相同,以确定所述第二密钥是否传输成功及准确。
[0102]
在一个实施例中,如图5所示,所述对所述第一密钥进行验证,得到第一验证结果,对所述第四密钥进行验证,得到第二验证结果包括:
[0103]
s411:对所述临时密钥和所述第一密钥进行哈希运算,获得第一消息验证码,将所
述第一消息验证码作为所述第一验证结果进行输出;
[0104]
s412:接收所述第一验证结果,对所述临时密钥和所述第四密钥进行哈希运算,获得第二消息验证码,将所述第二消息验证码作为所述第二验证结果。
[0105]
需要说明的是,通信所述第一密钥的发送方和接收方共享所述临时密钥,发送方对所述临时密钥和所述第一密钥执行哈希(hash)运算,得到所述第一消息验证码,将所述第一消息验证码作为第一验证结果输出至接收方,接收方对所述临时密钥和所述第四密钥执行哈希运算,得到所述第二消息验证码,将所述第二消息验证码作为所述第二验证结果与所述第一验证结果进行对比,若所述第一验证结果与所述第二验证结果相同,则第一密钥和所述第四密钥相同,所述第四密钥未被篡改或破坏。在其他实施例中,也可将所述第一密钥和所述第四密钥直接进行逐字对比,从验证过程的安全性和验证结果的可靠性的角度考虑,本实施例通过前述带密钥的哈希运算进行验证。
[0106]
在一个实施例中,如图6所示,所述获取第一密钥包括:
[0107]
s201:通过公钥基础设施的安全认证,建立用于传输所述第一密钥的安全通道;
[0108]
s202:发送获取所述第一密钥的请求消息;
[0109]
s203:接收所述请求消息,将所述请求消息中的第一密钥与密钥库中的密钥进行对比,获得并输出所述第一密钥;
[0110]
s204:通过所述安全通道获取所述第一密钥。
[0111]
公钥基础设施(public key infrastructure,pki)是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书,通信密钥时通过pki的安全认证,可以建立一个安全的网络环境,并通过建立安全通道,从而在较为安全的环境中传输所述第一密钥,一定程度上保证了第一密钥的安全性,进一步避免所述第一密钥的泄露或窃取。
[0112]
在一个实施例中,还包括:
[0113]
s2031:所述密钥库中的密钥是根据生成的真随机数得到的。
[0114]
将随机生成的真随机数作为密钥库中的密钥,相比根据规则设定密钥,真随机数具有随机性以及不可测性,有效防止密钥被反向推导,进一步提高密钥的安全性。
[0115]
应该理解的是,虽然图1-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0116]
在一个实施例中,如图7所示,提供了一种密钥灌装系统,包括:灌装模块和接收模块,其中:
[0117]
灌装模块,用于获取第一私钥,接收模块,用于获取第二私钥,所述灌装模块和所述接收模块根据所述第一私钥和所述第二私钥,得到临时密钥;
[0118]
灌装模块,还用于获取第一密钥,复制所述第一密钥,得到第二密钥,通过所述临时密钥对所述第二密钥进行加密,得到并输出第三密钥;
[0119]
接收模块,还用于接收所述第三密钥,通过所述临时密钥对接收到的所述第三密
钥进行解密,得到第四密钥;其中,所述第一密钥用于验证所述第四密钥。
[0120]
在一个实施例中,所述灌装模块和所述接收模块根据所述第一私钥和所述第二私钥,得到临时密钥包括:
[0121]
所述灌装模块和所述接收模块获取素数和所述素数对应的原根;
[0122]
所述灌装模块根据所述第一私钥、所述素数以及所述素数对应的原根,获得并发送第一公钥至所述接收模块,获得所述第一公钥的数学表达为:
[0123]
a=g
a mod p,
[0124]
其中,a为所述第一公钥,a为所述第一私钥,p为所述素数,g为所述素数p对应的原根;
[0125]
所述接收模块根据所述第二私钥、所述素数以及所述素数对应的原根,获得并发送第二公钥至所述灌装模块,获得所述第二公钥的数学表达为:
[0126]
b=g
b mod p,
[0127]
其中,b为所述第一公钥,b为所述第一私钥,p为所述素数,g为所述素数p对应的原根;
[0128]
所述灌装模块接收所述第二公钥,根据所述第二公钥、所述第一私钥以及所述素数,获得第五密钥,获得所述第五密钥的数学表达为:
[0129]
k1=b
a mod p,
[0130]
其中,k1为所述第五密钥,b为所述第二公钥,a为所述第一私钥,p为所述素数;
[0131]
所述接收模块接收所述第一公钥,根据所述第一公钥、所述第二私钥以及所述素数,获得第六密钥,获得所述第六密钥的数学表达为:
[0132]
k2=a
b mod p,
[0133]
其中,k2为所述第六密钥,a为所述第一公钥,b为所述第二私钥,p为所述素数;
[0134]
其中,所述临时密钥包括所述第五密钥和所述第六密钥,且所述第五密钥和所述第六密钥的数值相等。
[0135]
在一个实施例中,所述灌装模块通过所述临时密钥对所述第二密钥进行加密,得到并输出第三密钥包括:
[0136]
将所述第二密钥转换为第一矩阵,将所述临时密钥转换为第二矩阵,对所述第一矩阵和所述第二矩阵进行异或运算,得到第三矩阵;
[0137]
获取字节代换表,通过所述字节代换表,对所述第三矩阵中的字节进行代换,以使所述第三矩阵映射为第四矩阵,将所述第四矩阵的第n行向左移动n-1个字节,得到第五矩阵,在有限域上计算预设矩阵与所述第五矩阵的乘积,得到第六矩阵,对所述第二矩阵进行扩展,得到第七矩阵,对所述第六矩阵和所述第七矩阵进行异或运算,得到第八矩阵;
[0138]
通过所述字节代换表,对所述第八矩阵中的字节进行代换,以使所述第八矩阵映射为第九矩阵,将所述第九矩阵的第n行向左移动n-1个字节,得到第十矩阵,对所述第七矩阵进行扩展,得到第十一矩阵,将所述第十矩阵与所述第十一矩阵进行异或运算,得到密文矩阵,根据所述密文矩阵,得到并输出所述第三密钥。
[0139]
在一个实施例中,还包括:
[0140]
所述灌装模块还用于对所述第一密钥进行验证,得到第一验证结果,所述接收模块还用于对所述第四密钥进行验证,得到第二验证结果,所述灌装模块与所述接收模块进
行通信,将所述第一验证结果与所述第二验证结果进行对比,判断所述第一验证结果与所述第二验证结果是否相同,
[0141]
若是,灌装正确;
[0142]
若否,灌装错误。
[0143]
在一个实施例中,所述灌装模块还用于对所述第一密钥进行验证,得到第一验证结果,所述接收模块还用于对所述第四密钥进行验证,得到第二验证结果包括:
[0144]
所述灌装模块对所述临时密钥和所述第一密钥进行哈希运算,获得第一消息验证码,将所述第一消息验证码作为所述第一验证结果进行输出;
[0145]
所述接收模块接收所述第一验证结果,对所述临时密钥和所述第四密钥进行哈希运算,获得第二消息验证码,将所述第二消息验证码作为所述第二验证结果。
[0146]
在一个实施例中,所述系统还包括密钥模块,所述灌装模块获取第一密钥包括:
[0147]
所述密钥模块和所述灌装模块通过公钥基础设施的安全认证,建立用于传输所述第一密钥的安全通道;
[0148]
所述灌装模块发送获取所述第一密钥的请求消息;
[0149]
所述密钥模块接收所述请求消息,将所述请求消息中的待获取的第一密钥与密钥库中的密钥进行对比,获得并输出所述第一密钥;
[0150]
所述灌装模块通过所述安全通道获取所述第一密钥。
[0151]
在一个实施例中,所述密钥库中的密钥是根据所述密钥模块生成的真随机数得到的。
[0152]
如图8所示,为一个实施例中密钥灌装系统对密钥的处理过程,所述灌装模块获取第一私钥,所述接收模块获取第二私钥,所述灌装模块和所述接收模块通过第一私钥和第二私钥,协商得到临时密钥;所述灌装模块和所述密钥模块通过公钥基础设施的双向安全认证,建立用于传输第一密钥的安全通道,所述灌装模块向所述密钥模块发送获取所述第一密钥的请求消息,所述密钥模块将生成的真随机数作为密钥,并根据各个密钥生成密钥库,将接收到的请求消息中的第一密钥与密钥库中的密钥进行对比,获得并输出第一密钥;所述灌装模块通过所述安全通道获取所述第一密钥;所述灌装模块复制所述第一密钥,得到第二密钥,通过所述临时密钥对所述第二密钥进行加密,得到并输出第三密钥;所述接收模块通过所述临时密钥对接收到的第三密钥进行解密,得到第四密钥;所述灌装模块对所述第一密钥进行验证,并将第一验证结果发送到所述接收模块,所述接收模块对所述第四密钥进行验证,并将第二验证结果与所述接收到的第一验证结果进行对比,判断灌装是否正确。通过上述密钥灌装系统对密钥进行灌装,对密钥的生成、获取和灌装过程都进行了一定的保护措施,且所述临时密钥通过所述第一私钥和所述第二私钥获得,所述第二密钥通过所述临时密钥进行加密,得到所述第三密钥,对加密得到的第三密钥进行传输,有效避免所述临时密钥被窃取导致所述第三密钥被反推为所述第二密钥,使得所述第二密钥被窃取和泄露,提高了密钥的安全保障。
[0153]
关于密钥灌装系统的具体限定可以参见上文中对于密钥灌装方法的限定,在此不再赘述。上述密钥灌装中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0154]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种密钥灌装方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0155]
本领域技术人员可以理解,图y中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0156]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
[0157]
s1:获取第一私钥和第二私钥,根据所述第一私钥和第二私钥,得到临时密钥;
[0158]
s2:获取第一密钥,复制所述第一密钥,得到第二密钥,通过所述临时密钥对所述第二密钥进行加密,得到并输出第三密钥;
[0159]
s3:接收所述第三密钥,通过所述临时密钥对接收到的所述第三密钥进行解密,得到第四密钥;其中,所述第一密钥用于验证所述第四密钥。
[0160]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0161]
s11:获取素数和所述素数对应的原根;
[0162]
s12:根据所述第一私钥、所述素数以及所述素数对应的原根,获得并发送第一公钥,获得所述第一公钥的数学表达为:
[0163]
a=g
a mod p,
[0164]
其中,a为所述第一公钥,a为所述第一私钥,p为所述素数,g为所述素数p对应的原根;
[0165]
s13:根据所述第二私钥、所述素数以及所述素数对应的原根,获得并发送第二公钥,获得所述第二公钥的数学表达为:
[0166]
b=g
b mod p,
[0167]
其中,b为所述第一公钥,b为所述第一私钥,p为所述素数,g为所述素数p对应的原根;
[0168]
s14:接收所述第二公钥,根据所述第二公钥、所述第一私钥以及所述素数,获得第五密钥,获得所述第五密钥的数学表达为:
[0169]
k1=b
a mod p,
[0170]
其中,k1为所述第五密钥,b为所述第二公钥,a为所述第一私钥,p为所述素数;
[0171]
s15:接收所述第一公钥,根据所述第一公钥、所述第二私钥以及所述素数,获得第六密钥,获得所述第六密钥的数学表达为:
[0172]
k2=a
b mod p,
[0173]
其中,k2为所述第六密钥,a为所述第一公钥,b为所述第二私钥,p为所述素数;
[0174]
其中,所述临时密钥包括所述第五密钥和所述第六密钥,且所述第五密钥和所述第六密钥的数值相等。
[0175]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0176]
所述通过所述临时密钥对所述第二密钥进行加密,得到并输出第三密钥包括:
[0177]
s21:将所述第二密钥转换为第一矩阵,将所述临时密钥转换为第二矩阵,对所述第一矩阵和所述第二矩阵进行异或运算,得到第三矩阵;
[0178]
s22:获取字节代换表,通过所述字节代换表,对所述第三矩阵中的字节进行代换,以使所述第三矩阵映射为第四矩阵,将所述第四矩阵的第n行向左移动n-1个字节,得到第五矩阵,在有限域上计算预设矩阵与所述第五矩阵的乘积,得到第六矩阵,对所述第二矩阵进行扩展,得到第七矩阵,对所述第六矩阵和所述第七矩阵进行异或运算,得到第八矩阵;
[0179]
s23:通过所述字节代换表,对所述第八矩阵中的字节进行代换,以使所述第八矩阵映射为第九矩阵,将所述第九矩阵的第n行向左移动n-1个字节,得到第十矩阵,对所述第七矩阵进行扩展,得到第十一矩阵,将所述第十矩阵与所述第十一矩阵进行异或运算,得到密文矩阵,根据所述密文矩阵,得到并输出所述第三密钥。
[0180]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0181]
s41:对所述第一密钥进行验证,得到第一验证结果,对所述第四密钥进行验证,得到第二验证结果,将所述第一验证结果与所述第二验证结果进行对比,判断所述第一验证结果与所述第二验证结果是否相同,
[0182]
s42:若是,灌装正确;
[0183]
s43:若否,灌装错误。
[0184]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0185]
所述对所述第一密钥进行验证,得到第一验证结果,对所述第四密钥进行验证,得到第二验证结果包括:
[0186]
s411:对所述临时密钥和所述第一密钥进行哈希运算,获得第一消息验证码,将所述第一消息验证码作为所述第一验证结果进行输出;
[0187]
s412:接收所述第一验证结果,对所述临时密钥和所述第四密钥进行哈希运算,获得第二消息验证码,将所述第二消息验证码作为所述第二验证结果。
[0188]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0189]
s201:通过公钥基础设施的安全认证,建立用于传输所述第一密钥的安全通道;
[0190]
s202:发送获取所述第一密钥的请求消息;
[0191]
s203:接收所述请求消息,将所述请求消息中的待获取的第一密钥与密钥库中的密钥进行对比,获得并输出所述第一密钥;
[0192]
s204:通过所述安全通道获取所述第一密钥。
[0193]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0194]
s2031:所述密钥库中的密钥是根据生成的真随机数得到的。
[0195]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0196]
s1:获取第一私钥和第二私钥,根据所述第一私钥和第二私钥,得到临时密钥;
[0197]
s2:获取第一密钥,复制所述第一密钥,得到第二密钥,通过所述临时密钥对所述
第二密钥进行加密,得到并输出第三密钥;
[0198]
s3:接收所述第三密钥,通过所述临时密钥对接收到的所述第三密钥进行解密,得到第四密钥;其中,所述第一密钥用于验证所述第四密钥。
[0199]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0200]
s11:获取素数和所述素数对应的原根;
[0201]
s12:根据所述第一私钥、所述素数以及所述素数对应的原根,获得并发送第一公钥,获得所述第一公钥的数学表达为:
[0202]
a=g
a mod p,
[0203]
其中,a为所述第一公钥,a为所述第一私钥,p为所述素数,g为所述素数p对应的原根;
[0204]
s13:根据所述第二私钥、所述素数以及所述素数对应的原根,获得并发送第二公钥,获得所述第二公钥的数学表达为:
[0205]
b=g
b mod p,
[0206]
其中,b为所述第一公钥,b为所述第一私钥,p为所述素数,g为所述素数p对应的原根;
[0207]
s14:接收所述第二公钥,根据所述第二公钥、所述第一私钥以及所述素数,获得第五密钥,获得所述第五密钥的数学表达为:
[0208]
k1=b
a mod p,
[0209]
其中,k1为所述第五密钥,b为所述第二公钥,a为所述第一私钥,p为所述素数;
[0210]
s15:接收所述第一公钥,根据所述第一公钥、所述第二私钥以及所述素数,获得第六密钥,获得所述第六密钥的数学表达为:
[0211]
k2=a
b mod p,
[0212]
其中,k2为所述第六密钥,a为所述第一公钥,b为所述第二私钥,p为所述素数;
[0213]
其中,所述临时密钥包括所述第五密钥和所述第六密钥,且所述第五密钥和所述第六密钥的数值相等。
[0214]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0215]
s21:将所述第二密钥转换为第一矩阵,将所述临时密钥转换为第二矩阵,对所述第一矩阵和所述第二矩阵进行异或运算,得到第三矩阵;
[0216]
s22:获取字节代换表,通过所述字节代换表,对所述第三矩阵中的字节进行代换,以使所述第三矩阵映射为第四矩阵,将所述第四矩阵的第n行向左移动n-1个字节,得到第五矩阵,在有限域上计算预设矩阵与所述第五矩阵的乘积,得到第六矩阵,对所述第二矩阵进行扩展,得到第七矩阵,对所述第六矩阵和所述第七矩阵进行异或运算,得到第八矩阵;
[0217]
s23:通过所述字节代换表,对所述第八矩阵中的字节进行代换,以使所述第八矩阵映射为第九矩阵,将所述第九矩阵的第n行向左移动n-1个字节,得到第十矩阵,对所述第七矩阵进行扩展,得到第十一矩阵,将所述第十矩阵与所述第十一矩阵进行异或运算,得到密文矩阵,根据所述密文矩阵,得到并输出所述第三密钥。
[0218]
所述通过所述临时密钥对所述第二密钥进行加密,得到并输出第三密钥包括:
[0219]
s21:将所述第二密钥转换为第一矩阵,将所述临时密钥转换为第二矩阵,对所述第一矩阵和所述第二矩阵进行异或运算,得到第三矩阵;
[0220]
s22:获取字节代换表,通过所述字节代换表,对所述第三矩阵中的字节进行代换,以使所述第三矩阵映射为第四矩阵,将所述第四矩阵的第n行向左移动n-1个字节,得到第五矩阵,在有限域上计算预设矩阵与所述第五矩阵的乘积,得到第六矩阵,对所述第二矩阵进行扩展,得到第七矩阵,对所述第六矩阵和所述第七矩阵进行异或运算,得到第八矩阵;
[0221]
s23:通过所述字节代换表,对所述第八矩阵中的字节进行代换,以使所述第八矩阵映射为第九矩阵,将所述第九矩阵的第n行向左移动n-1个字节,得到第十矩阵,对所述第七矩阵进行扩展,得到第十一矩阵,将所述第十矩阵与所述第十一矩阵进行异或运算,得到密文矩阵,根据所述密文矩阵,得到并输出所述第三密钥。
[0222]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0223]
s41:对所述第一密钥进行验证,得到第一验证结果,对所述第四密钥进行验证,得到第二验证结果,将所述第一验证结果与所述第二验证结果进行对比,判断所述第一验证结果与所述第二验证结果是否相同,
[0224]
s42:若是,灌装正确;
[0225]
s43:若否,灌装错误。
[0226]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0227]
s411:对所述临时密钥和所述第一密钥进行哈希运算,获得第一消息验证码,将所述第一消息验证码作为所述第一验证结果进行输出;
[0228]
s412:接收所述第一验证结果,对所述临时密钥和所述第四密钥进行哈希运算,获得第二消息验证码,将所述第二消息验证码作为所述第二验证结果。
[0229]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0230]
s201:通过公钥基础设施的安全认证,建立用于传输所述第一密钥的安全通道;
[0231]
s202:发送获取所述第一密钥的请求消息;
[0232]
s203:接收所述请求消息,将所述请求消息中的待获取的第一密钥与密钥库中的密钥进行对比,获得并输出所述第一密钥;
[0233]
s204:通过所述安全通道获取所述第一密钥。
[0234]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0235]
s2031:所述密钥库中的密钥是根据生成的真随机数得到的。
[0236]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0237]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛
盾,都应当认为是本说明书记载的范围。
[0238]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献