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

一种密钥管理方法及装置与流程

2021-11-24 22:05:00 来源:中国专利 TAG:


1.本发明涉及金融科技(fintech)领域,尤其涉及一种密钥管理方法及装置。


背景技术:

2.随着计算机技术的发展,越来越多的技术(例如:区块链、云计算或大数据)应用在金融领域,传统金融业正在逐步向金融科技转变,大数据技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对大数据技术中用户节点的密钥管理提出了更高的要求。
3.目前的认证机制,主要包括基于身份加密和基于无证书公钥加密的机制。其中,基于无证书公钥加密的机制是由用户节点生成公钥和私钥,公钥是用户节点根据选取的秘密值确定的,私钥是用户节点根据该秘密值和密钥生成中心产生的部分私钥确定的,部分私钥是密钥生成中心是根据用户节点的身份信息确定的。
4.然后用户节点将要传播的消息进行签名,再由认证节点验证签名的安全性和有效性。在现有技术中,针对上述验证过程,存在攻击者通过用户节点撤销或过期后的公钥(即无效的公钥)来传播虚假消息,也就是说,无法确定出无效的公钥。
5.为了防止上述攻击,目前是在确定某用户节点撤销公钥时,通过密钥生成中心更新其他用户节点的部分私钥,使其他用户节点更新自己的私钥,以此来防止上述攻击,但此方法需要对全网中其他用户节点的部分私钥进行更新,导致极大的增加了密钥生成中心的计算负担。
6.因此,现在需要一种密钥管理方法,来确定出撤销或过期后的公钥,防止攻击者通过撤销或过期后的公钥传播虚假消息的同时,避免用户节点和密钥生成中心增加过大的计算负担。


技术实现要素:

7.本发明实施例提供一种密钥管理方法及装置,用于防止攻击者通过无效的公钥传播虚假消息的同时,避免用户节点和密钥生成中心增加过大的计算负担。
8.第一方面,本发明实施例提供一种密钥管理方法,包括:
9.追踪机构获取认证节点发送的身份验证信息;所述身份验证信息包括用户节点的伪身份信息;所述伪身份信息是所述追踪机构根据所述用户节点的真实身份信息确定的;
10.所述追踪机构根据第一区块链和第二区块链确定所述伪身份信息是否为有效伪身份信息;所述第一区块链用于记录有效伪身份信息;所述第二区块链用于记录无效伪身份信息;
11.若是,则生成所述伪身份信息的验证通过结果,并将所述验证通过结果发送至所述认证节点。
12.上述技术方案中,在认证节点发送用户节点的消息之前,通过验证用户节点的伪身份信息来确定该用户节点是否为有效用户节点,以防止攻击者发送虚假消息,具体的,通过确定伪身份信息是否记录在第一区块链和/或第二区块链上,也就是说,通过第一区块链
和第二区块链可以确定出该伪身份信息是否为有效的,进而确定该伪身份信息对应的公钥是否为有效公钥,以此防止攻击者通过无效公钥传播虚假消息,且不需要更新用户节点的私钥和密钥生成中心的部分私钥就可以确定无效公钥,以此避免密钥生成中心和用户节点增加过大的计算负担,进一步地,使用伪身份信息来验证对应的用户节点可以提高用户节点的安全性和隐私性,通过第一区块链和第二区块链来确定伪身份信息是否有效,可以增加确定伪身份信息是否有效的准确性,防止伪身份信息被篡改,提升伪身份信息的准确性。
13.可选的,所述追踪机构根据第一区块链和第二区块链确定所述伪身份信息是否为有效伪身份信息,包括:
14.所述追踪机构若根据所述第一区块链中的第一计数布隆过滤器确定所述伪身份信息记录在所述第一区块链上,且根据所述第二区块链中的第二计数布隆过滤器确定所述伪身份信息未记录在所述第二区块链上,则确定所述伪身份信息为有效伪身份信息;
15.所述追踪机构若根据所述第一区块链中的第一计数布隆过滤器确定所述伪身份信息未记录在所述第一区块链上,且根据所述第二区块链中的第二计数布隆过滤器确定所述伪身份信息记录在所述第二区块链上,则确定所述伪身份信息为无效伪身份信息;
16.所述第一计数布隆过滤器为所述第一区块链上最新区块的计数布隆过滤器;所述第二计数布隆过滤器为所述第二区块链上最新区块的计数布隆过滤器。
17.上述技术方案中,根据第一计数布隆过滤器和第二计数布隆过滤器来确定伪身份信息是否记录在第一区块链和/第二区块链上,以提升确定伪身份信息有效性的效率,通过两个计数布隆过滤器还可以降低布隆过滤器假阳性的问题,提升确定伪身份信息有效性的准确率。
18.可选的,所述方法还包括:
19.所述追踪机构若根据所述第一计数布隆过滤器确定所述伪身份信息记录在所述第一区块链上,且根据所述第二计数布隆过滤器确定所述伪身份信息记录在所述第二区块链上,则根据所述伪身份信息对应的区块高确定所述伪身份信息是否记录在所述第二区块链上;
20.所述追踪机构若根据所述伪身份信息对应的区块高确定所述伪身份信息记录在所述第二区块链上,则确定所述伪身份信息为无效伪身份信息。
21.上述技术方案中,若根据第一计数布隆过滤器和第二计数布隆过滤器确定伪身份信息既记录在第一区块链上,又记录在第二区块链上,则第一计数布隆过滤器和第二计数布隆过滤器出现了假阳性问题,此时根据伪身份信息对应的区块高在第二区块链上查询伪身份信息对应的区块,根据该区块中记录的交易确定伪身份信息是否在第二区块链上,即确定伪身份信息是否为无效伪身份信息,以此提升确定伪身份信息有效性的准确率。
22.可选的,所述追踪机构若根据所述第一区块链中的第一计数布隆过滤器确定所述伪身份信息记录在所述第一区块链上,且根据所述第二区块链中的第二计数布隆过滤器确定所述伪身份信息未记录在所述第二区块链上,包括:
23.所述追踪机构根据各预设哈希函数,确定所述伪身份信息的各哈希值;
24.所述追踪机构基于所述各哈希值确定所述各哈希值对应在所述第一计数布隆过滤器数组上的各槽位值和对应在所述第二计数布隆过滤器数组上的各槽位值;
25.所述追踪机构若确定所述第一计数布隆过滤器数组上的各槽位值不为0,则确定
所述伪身份信息存在于所述第一计数布隆过滤器;所述第一计数布隆过滤器用于表征所述伪身份信息是否记录在所述第一区块链上;
26.所述追踪机构若确定所述第二计数布隆过滤器数组上的各槽位值中任一槽位值为0,则确定所述伪身份信息未存在于所述第二计数布隆过滤器;所述第二计数布隆过滤器用于表征所述伪身份信息是否记录在所述第二区块链上。
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.上述技术方案中,伪身份信息的有效时间可以防止攻击者使用无效伪身份信息来实施攻击,提升了伪身份信息的安全性。
58.可选的,所述方法还包括:
59.所述第一认证节点向第二认证节点发送认证请求;所述认证请求用于指示对位于所述第一认证节点下的用户节点组进行认证节点切换认证;所述用户节点组是根据各用户节点的物理地址划分的;
60.所述第一认证节点接收所述第二认证节点发送的认证确认消息;所述认证确认消息是所述第二认证节点验证通过所述认证请求后生成的;
61.所述第一认证节点将所述认证确认消息中的验证结果广播至所述第一认证节点中各用户节点组。
62.现有技术中,针对认证节点的切换,通常是切换后的认证节点与用户节点进行交互验证,即切换后的认证节点验证用户节点的合法性,用户节点验证切换后的认证节点的合法性,而本发明中,在进行认证节点切换之前,是通过第一认证节点和第二认证节点之间的认证实现认证节点切换,以此实现认证节点切换后,用户节点不需要验证切换后的认证节点的合法性,以此减少认证节点切换的延迟,且对于认证节点切换是基于用户节点组为单位进行切换的,而非单个用户节点,以此减少认证节点切换的信令开销,节省计算资源,提升认证节点的切换效率。
63.可选的,所述方法还包括:
64.所述第一认证节点接收所述用户节点组中任一用户节点发送的节点切换指令;
65.所述第一认证节点将所述用户节点组的状态标识修改为休眠;
66.所述第一认证节点将所述用户节点组切换至所述第二认证节点中。
67.上述技术方案中,在认证节点切换时,将用户节点组的状态标识修改为休眠,以使用户节点组中的用户节点暂时不发送消息,防止消息丢失。
68.第三方面,本发明实施例提供一种密钥管理装置,包括:
69.获取模块,用于获取认证节点发送的身份验证信息;所述身份验证信息包括用户节点的伪身份信息;所述伪身份信息是所述追踪机构根据所述用户节点的真实身份信息确定的;
70.处理模块,用于根据第一区块链和第二区块链确定所述伪身份信息是否为有效伪身份信息;所述第一区块链用于记录有效伪身份信息;所述第二区块链用于记录无效伪身份信息;
71.若是,则生成所述伪身份信息的验证通过结果,并将所述验证通过结果发送至所述认证节点。
72.可选的,所述处理模块具体用于:
73.若根据所述第一区块链中的第一计数布隆过滤器确定所述伪身份信息记录在所述第一区块链上,且根据所述第二区块链中的第二计数布隆过滤器确定所述伪身份信息未记录在所述第二区块链上,则确定所述伪身份信息为有效伪身份信息;
74.若根据所述第一区块链中的第一计数布隆过滤器确定所述伪身份信息未记录在所述第一区块链上,且根据所述第二区块链中的第二计数布隆过滤器确定所述伪身份信息记录在所述第二区块链上,则确定所述伪身份信息为无效伪身份信息;
75.所述第一计数布隆过滤器为所述第一区块链上最新区块的计数布隆过滤器;所述第二计数布隆过滤器为所述第二区块链上最新区块的计数布隆过滤器。
76.可选的,所述处理模块还用于:
77.若根据所述第一计数布隆过滤器确定所述伪身份信息记录在所述第一区块链上,且根据所述第二计数布隆过滤器确定所述伪身份信息记录在所述第二区块链上,则根据所述伪身份信息对应的区块高确定所述伪身份信息是否记录在所述第二区块链上;
78.若根据所述伪身份信息对应的区块高确定所述伪身份信息记录在所述第二区块链上,则确定所述伪身份信息为无效伪身份信息。
79.可选的,所述处理模块具体用于:
80.根据各预设哈希函数,确定所述伪身份信息的各哈希值;
81.基于所述各哈希值确定所述各哈希值对应在所述第一计数布隆过滤器数组上的各槽位值和对应在所述第二计数布隆过滤器数组上的各槽位值;
82.若确定所述第一计数布隆过滤器数组上的各槽位值不为0,则确定所述伪身份信息存在于所述第一计数布隆过滤器;所述第一计数布隆过滤器用于表征所述伪身份信息是否记录在所述第一区块链上;
83.若确定所述第二计数布隆过滤器数组上的各槽位值中任一槽位值为0,则确定所述伪身份信息未存在于所述第二计数布隆过滤器;所述第二计数布隆过滤器用于表征所述伪身份信息是否记录在所述第二区块链上。
84.可选的,所述处理模块具体用于:
85.获取用户节点发送的创建指示;所述创建指示包括所述用户节点的真实身份信息、第一信息和第一验证值;所述第一信息是所述用户节点基于所述真实身份信息和第一秘密值确定的;所述第一秘密值是所述用户节点选择的;所述第一验证值是所述用户节点根据所述第一秘密值和所述第一信息确定的;
86.根据所述第一验证值对所述第一信息验证通过后,基于所述真实身份信息,根据所述追踪机构的主秘钥确定第二信息;所述主秘钥是根据预设椭圆曲线确定的;
87.将所述第一信息和第二信息确定为所述伪身份信息。
88.可选的,所述处理模块还用于:
89.获取认证节点发送的身份验证信息之前,基于所述用户节点发送的创建指示,生成所述用户节点的伪身份信息;
90.基于所述伪身份信息构建第一交易,并将包含所述第一交易的第一区块上链至所述第一区块链;所述第一区块的区块头中设置有第一计数布隆过滤器,所述第一区块的区块体中记录有所述第一交易;所述第一计数布隆过滤器中各槽位值是根据所述第一区块的前一区块中的第一计数布隆过滤器和所述伪身份信息在各预设哈希函数下的各哈希值确定的。
91.可选的,所述处理模块还用于:
92.基于所述用户节点发送的具有伪身份信息的撤销指示,构建第二交易并将包含所述第二交易的第二区块上链至所述第二区块链;所述第二区块的区块头中设置有第二计数布隆过滤器,所述第二区块的区块体中记录有所述第二交易;所述第二计数布隆过滤器中各槽位值是根据所述第二区块的前一区块中的第二计数布隆过滤器和所述伪身份信息在各预设哈希函数下的各哈希值确定的。
93.第四方面,本发明实施例提供一种密钥管理装置,包括:
94.获取单元,用于获取用户节点的发送消息;所述发送消息包括伪身份信息;所述伪身份信息是追踪机构根据所述用户节点的真实身份信息确定的;
95.处理单元,用于将所述伪身份信息发送至所述追踪机构,并接收所述追踪机构对所述伪身份信息的验证结果;所述验证结果是所述追踪机构根据第一区块链和第二区块链
确定的;所述第一区块链用于记录有效伪身份信息;所述第二区块链用于记录无效伪身份信息;
96.在所述验证结果为验证通过后,发送所述发送消息。
97.可选的,所述发送消息还包括所述用户节点的公钥和签名;
98.所述处理单元还用于:
99.根据所述用户节点的公钥验证所述签名;
100.在所述验证结果为验证通过且所述签名验证通过后将所述发送消息进行发送;所述签名是所述用户节点根据所述用户节点的公钥和私钥确定的;所述用户节点的公钥是根据所述伪身份信息确定的;所述用户节点的私钥是根据部分私钥生成的;所述部分私钥是密钥生成中心根据所述伪身份信息生成的。
101.可选的,所述处理单元具体用于:
102.若收到至少一个用户节点的发送消息,则针对所述至少一个用户节点的签名,生成聚合签名;
103.根据所述至少一个用户节点的公钥,对所述聚合签名进行验证。
104.可选的,所述发送消息还包括伪身份信息的时间戳;
105.所述处理单元还用于:
106.发送所述发送消息之前,根据所述时间戳确定所述伪身份信息处于有效状态。
107.可选的,所述处理单元还用于:
108.向第二认证节点发送认证请求;所述认证请求用于指示对位于所述第一认证节点下的用户节点组进行认证节点切换认证;所述用户节点组是根据各用户节点的物理地址划分的;
109.接收所述第二认证节点发送的认证确认消息;所述认证确认消息是所述第二认证节点验证通过所述认证请求后生成的;
110.将所述认证确认消息中的验证结果广播至所述第一认证节点中各用户节点组。
111.可选的,所述处理单元还用于:
112.接收所述用户节点组中任一用户节点发送的节点切换指令;
113.将所述用户节点组的状态标识修改为休眠;
114.将所述用户节点组切换至所述第二认证节点中。
115.第五方面,本发明实施例还提供一种计算机设备,包括:
116.存储器,用于存储程序指令;
117.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述密钥管理方法。
118.第六方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述密钥管理方法。
附图说明
119.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本
领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
120.图1为本发明实施例提供的一种系统架构示意图;
121.图2为本发明实施例提供的一种密钥管理方法的流程示意图;
122.图3为本发明实施例提供的一种区块的示意图;
123.图4为本发明实施例提供的一种区块链的示意图;
124.图5为本发明实施例提供的一种第一交易的示意图;
125.图6为本发明实施例提供的一种计数布隆过滤器的示意图;
126.图7为本发明实施例提供的一种第二交易的示意图;
127.图8为本发明实施例提供的一种密钥管理方法的流程示意图;
128.图9为本发明实施例提供的一种密钥管理方法的流程示意图;
129.图10为本发明实施例提供的一种密钥管理装置的结构示意图;
130.图11为本发明实施例提供的一种密钥管理装置的结构示意图。
具体实施方式
131.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
132.现有技术中,无证书公钥加密机制的主要思想是:公钥由用户节点选择的秘密值生成,私钥由用户节点选择的秘密值和密钥生成中心kgc生成的部分私钥组成,部分私钥由密钥生成中心kgc根据用户的真实身份信息决定。显而易见,密钥生成中心无法知晓用户完整的私钥,不需要基于身份加密体制中的密钥托管问题。
133.例如,若一个攻击者a生成了一个公钥用以替代用户b的公钥,即使攻击者a得到密钥生成中心为用户b基于用户b的身份信息产生的部分私钥,但是攻击者a无法通过部分私钥生成用户b的全部私钥,因此攻击者a不能假装用户b对消息签名或者解密发送给用户b的密文。因此,无证书公钥密码加密机制无密钥托管问题。此外,用户的公钥是跟据用户的身份信息(如用户的身份证号码、邮箱、电话号码等)生成的,不需要使用公钥证书。
134.无证书公钥加密机制是不借助证书进行密钥分发的技术,因此其面临的关键问题就是密钥管理问题。如果过期或撤销的身份被盗用,即无效身份对应的公钥被盗用,将对信息安全造成巨大威胁。目前无证书公钥加密机制中的撤销管理主要有两种技术方案:
135.1、周期性地更新用户私钥。在用户私钥生成的过程,通过在部分私钥中增加时间密钥或更新部分私钥的方式,并将更新后的部分私钥发送至用户,以使用户根据更新后的部分私钥对私钥进行更新,以此实现对需要无效用户的公钥进行管理。
136.2、通过第三方对密钥进行管理。设立第三方安全中介sem(安全事件管理器),通过限制用户的解密或签名来实现对无效用户的公钥进行管理。
137.但上述方法1中,对无效用户的管理,密钥生成中心需要对所有用户节点的部分私钥进行更新,用户节点也需要对自身的私钥进行更新,导致用户节点和密钥生成中心的计算增加量过大,增加了计算资源的负担。
138.上述方法2中,因为引入了第三方安全中介,导致在用户节点每次解密和签名过程中,都需要对用户节点进行确认,极大的增加了安全通信的计算负担,提升了通信的复杂性。
139.因此,现需要一种密钥管理方法,来确定无效用户的公钥,防止攻击者盗用合法用户的身份信息,增加信息通信的安全性,且避免过大的增加计算量,减轻计算负担。
140.图1示例性的示出了本发明实施例所适用的一种系统架构,该系统架构包括认证节点110、追踪机构120、用户节点130和密钥生成中心140。
141.其中,认证节点110用于接收用户节点130的发送消息,并对发送消息进行签名验证,在签名验证通过之后,使用自身的私钥将该发送消息进行加密后发送;认证节点110的私钥是根据密钥生成中心140发送的认证节点部分私钥生成的。
142.追踪机构120,用于根据第一区块链中的第一计数布隆过滤器和第二区块链中的第二计数布隆过滤器确定伪身份信息为有效伪身份信息或无效伪身份信息,并根据用户节点130发送的真实身份信息,确定出对应的伪身份信息,并将伪身份信息发送给用户节点130和密钥生成中心140。
143.用户节点130,用于将真实身份信息和基于真实身份信息确定的第一信息发送至追踪机构120,以使追踪机构120生成伪身份信息。
144.密钥生成中心140,用于获取追踪机构120发送的伪身份信息,生成用户节点部分私钥,获取认证节点110的真实身份信息,生成认证节点部分私钥。
145.需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。
146.基于上述描述,图2示例性的示出了本发明实施例提供的一种密钥管理方法的流程示意图,该流程可由密钥管理装置执行。
147.如图2所示,该流程具体包括:
148.步骤210,追踪机构获取认证节点发送的身份验证信息;所述身份验证信息包括用户节点的伪身份信息。
149.本发明实施例中,伪身份信息是追踪机构根据用户节点的真实身份信息确定的。
150.步骤220,追踪机构根据第一区块链和第二区块链确定所述伪身份信息是否为有效伪身份信息。
151.本发明实施例中,第一区块链用于记录有效伪身份信息;所述第二区块链用于记录无效伪身份信息。具体的,可以根据计数布隆过滤器来确定伪身份信息是否记录在第一区块链和/或第二区块链上,也可以直接在区块链上查找区块来确定伪身份信息是否记录在第一区块链和/或第二区块链上。
152.步骤230,若是,则生成所述伪身份信息的验证通过结果,并将所述验证通过结果发送至所述认证节点。
153.本发明实施例中,若确定伪身份信息是有效伪身份信息,则确定伪身份信息对应的公钥是有效的,合法的,进而将验证通过结果发送至认证节点,其中,验证通过结果用于指示认证节点伪身份信息对应的公钥是有效的,可以对伪身份信息对应的发送消息进行签名验证。
154.为了更好的阐述本发明的技术方案,下面对本发明实施例中可能涉及的名词进行定义和解释。
155.区块链:其本质是一个分布式的账本,通过链式结构确保数据的不可篡改或伪造,具有去中心化、防篡改和可追溯性等特点。区块链网络中的任一节点都存储有完整的数据副本,以保证数据的完整性,节点之间通过不需要可信第三方的一致性算法来达成数据的共识,如实用拜占庭容错、非对称加密技术等。
156.根据不同的应用场景,区块链可以分为三种类型,即公共区块链、联盟区块链和私有区块链。其中,公共区块链具有完全公开透明、数据读写不受控制和篡改等特点,私有区块链交易成本低,但权限被少数节点控制,且私有区块链上的数据可能被操纵,联盟区块链交易速度处于二者之间,且具有可控和可管理等特点,对于物联网中更为适用。本发明实施例以联盟区块链为例,但对此不做限定。本发明实施例以pbft(实用拜占庭容错),pbft算法复杂度为多项式级别,可以在少数节点作恶(如伪造消息)的场景中达成共识,在一个由(3
×
j 1)个节点构成的系统中,只要有不少于(2
×
j 1)个非拜占庭节点正常工作,系统就可以达成一致性,通过哈希、签名验证等密码学算法确保消息传递过程中的防篡改、防伪造和不可抵赖性。
157.为了便于理解,结合本发明的技术方案,图3示例性的示出了一种区块的示意图,如图3所示,区块包括版本号、区块头、前一区块哈希值、时间戳、计数布隆过滤器和区块号等信息。作为交易数据不可篡改、不可伪造的证明。
158.在步骤210中,伪身份信息是追踪机构根据用户节点发送的真实身份信息、第一信息和自身生成的第二信息确定的。
159.具体的,追踪机构获取用户节点发送的创建指示;所述创建指示包括所述用户节点的真实身份信息、第一信息和第一验证值;所述第一信息是所述用户节点基于所述真实身份信息和第一秘密值确定的;所述第一秘密值是所述用户节点选择的;所述第一验证值是所述用户节点根据所述第一秘密值和所述第一信息确定的;根据所述第一验证值对所述第一信息验证通过后,基于所述真实身份信息,根据所述追踪机构的主秘钥确定第二信息;所述主秘钥是根据预设椭圆曲线确定的;将所述第一信息和第二信息确定为所述伪身份信息。
160.本发明实施例中,预设椭圆曲线是追踪机构和密钥生成中心共同生成的,用于确定密钥生成中心的主秘钥和追踪机构的主秘钥。举例来说,基于随机的安全参数k,追踪机构和密钥生成中心分别选择一个素数,分别为p和q,然后生成预设椭圆曲线e:y2=x3 ax bmodp,其中,a和b∈z
p
*,z
p
*为p

1阶循环群,(4a3 b2)modp≠0,mod为求余算法。
161.追踪机构随机选择l∈z
p
*,将l确定为追踪机构的主秘钥,z
p
*为p

1阶循环群,计算t
pub
=l*p,将t
pub
确定为追踪机构的公钥,l仅保存在追踪机构中,以保证安全性,t
pub
用于用户节点生成第一信息。
162.密钥生成中心随机选择s∈z
q
*,将s确定为密钥生成中心的主秘钥,z
q
*为q

1阶循环群,计算p
pub
=s*p,将p
pub
确定为密钥生成中心的公钥,p
pub
用于用户节点验证部分私钥。
163.追踪机构和密钥生成中心还会选择多个哈希函数,用于验证和确定用户节点的公钥和私钥等计算,例如,选择三个哈希函数h1、h2和h3,h1、h2和h3:{0,1}

z
p
*。
164.用户节点随机选择第一秘密值,t
i
∈z
p
*,基于真实身份信息rid
i
,计算pid
i1
=t
i
*t
pub

rid
i
,k
i
=t
i
*t
pub

pid
i1
,其中,pid
i1
为第一信息,k
i
为第一验证值。然后将真实身份信息rid
i
、第一信息pid
i1
和第一验证值k
i
发送至追踪机构。
165.追踪机构根据第一验证值k
i
验证真实身份信息rid
i
,具体的,在确定rid
i
=k
i

l*pid
i1
时,确定验证通过,然后计算pid
i2
=rid
i

h1(l*pid
i1
,δt
i
),其中,pid
i2
为第二信息,δt
i
为时间戳,进而追踪机构将第一信息pid
i1
和第二信息pid
i2
确定为伪身份信息pid
i

166.在本发明实施例中,主秘钥还可以是根据预设双线性曲线确定的,例如,e是g1×
g1→
g2的双线性曲线,其中g1为q阶循环群,g2为p阶循环群,p是g1的生成元,然后追踪机构和密钥生成中心分别选择主秘钥,确定伪身份信息。
167.在步骤220中,追踪机构是根据第一区块链中的第一计数布隆过滤器和第二区块链中的第二计数布隆过滤器确定伪身份信息是否为有效伪身份信息。
168.具体的,追踪机构若根据第一区块链中的第一计数布隆过滤器确定伪身份信息记录在第一区块链上,且根据第二区块链中的第二计数布隆过滤器确定伪身份信息未记录在第二区块链上,则确定伪身份信息为有效伪身份信息,若根据第一区块链中的第一计数布隆过滤器确定伪身份信息未记录在第一区块链上,且根据第二区块链中的第二计数布隆过滤器确定伪身份信息记录在第二区块链上,则确定伪身份信息为无效伪身份信息,其中,第一计数布隆过滤器为所述第一区块链上最新区块的计数布隆过滤器;第二计数布隆过滤器为第二区块链上最新区块的计数布隆过滤器。
169.众所周知的,区块链是区块按照时间戳的先后顺序连接起来后得到的。在本发明实施例中,为了保证验证结果的准确性和实时性,因此需要将最新区块的计数布隆过滤器作为检验伪身份信息的第一计数布隆过滤器或第二计数布隆过滤器,也就是说,任一区块中都包括一个或多个计数布隆过滤器。
170.其中,计数布隆过滤器由一个长度为e比特位的数组与预设的w个哈希函数组成的数据结构,该数组包括多个槽位,槽位的值是根据w个哈希函数确定的,w个哈希函数可以将输入数据进行分散,插入至对应的槽位中,以此对该槽位赋值,确定槽位值,从而实现不需要存储数据本身,节省存储空间且效率高。
171.在本发明实施例中,第一计数布隆过滤器和第二计数布隆过滤器是追踪机构基于用户发送的伪身份信息确定的,换句话说,区块链上最新区块中的计数布隆过滤器,是基于最新区块的前一区块的计数布隆过滤器以及最新区块中的所有伪身份信息,即交易确定的。
172.具体的,追踪机构基于用户节点发送的创建指示,生成用户节点的伪身份信息,基于伪身份信息构建第一交易,并将包含第一交易的第一区块上链至第一区块链;所述第一区块的区块头中设置有第一计数布隆过滤器,所述第一区块的区块体中记录有所述第一交易;所述第一计数布隆过滤器中各槽位值是根据所述第一区块的前一区块中的第一计数布隆过滤器和所述伪身份信息在各预设哈希函数下的各哈希值确定的。
173.在本发明实施例中,图4示例性的示出了一种区块链的示意图,如图4所示,其中区块f相当于第一区块,区块f

1相当于第一区块的前一区块,图5示例性的示出了一种第一交易的示意图,如图5所示,第一交易包括第一随机数、伪身份信息、真实身份信息、追踪机构信息、确定伪身份信息的时间戳和伪身份信息的有效期。
174.需要说明的是,计数布隆过滤器中槽位值是根据伪身份信息哈希运算后,进行插入对应的槽位后,增加得到的,具体的,追踪机构基于创建指示的第一伪身份信息确定第一伪身份信息的各第一哈希值,在第一区块链上最新区块的前一区块中的计数布隆过滤器数
组上确定各第一哈希值对应的第一槽位,并将第一槽位的数值加1,确定各第一槽位值,得到第一计数布隆过滤器。
175.为了更好的阐述计数布隆过滤器的作用,图6示例性的示出了一种计数布隆过滤器的示意图,如图6所示,预设哈希函数分别为w1、w2和w3,区块1中计数布隆过滤器的槽位sz2、sz5和sz8的槽位值均为1,其中,区块1相当于第一区块链上最新区块的前一区块,追踪机构基于创建指示确定第一伪身份信息后,根据预设哈希函数w1、w2和w3确定第一伪身份信息的第一哈希值分别为hash1、hash2和hash3,确定hash1、hash2和hash3对应的第一槽位分别为sz2、sz6和sz9,然后将区块1中第一槽位sz2、sz6和sz9的数值加1,得到第一计数布隆过滤器,即区块链2中的计数布隆过滤器。需要说明的是,任一区块中包括多个基于伪身份信息创建的消息,第一计数布隆过滤器不局限于区块中的一个交易,针对于第一计数布隆过滤器和第二计数布隆过滤器所用到的预设哈希函数可以是相同的,可以是不同的,在此不做具体限定。
176.在本发明实施例中,计数布隆过滤器既允许插入伪身份信息,同样也允许删除伪身份信息,示例性的,追踪机构基于用户节点发送的具有伪身份信息的撤销指示,构建第二交易并将包含第二交易的第二区块上链至第二区块链;第二区块的区块头中设置有第二计数布隆过滤器,第二区块的区块体中记录有第二交易;第二计数布隆过滤器中各槽位值是根据第二区块的前一区块中的第二计数布隆过滤器和伪身份信息在各预设哈希函数下的各哈希值确定的。
177.图7示例性的示出了一种第二交易的示意图,如图7所示,第二交易包括第二随机数、伪身份信息、真实身份信息、追踪机构信息、伪身份信息的有效期、伪身份信息的撤销时间和伪身份信息的撤销原由。其中交易中随机数用于确定交易的唯一标识,用户身份的撤销缘由用于在其下次申请伪身份信息时给予不同的限制,如拒绝为其分配伪身份信息、设置较小的时间戳等。
178.在本发明实施例中,基于撤销指示的伪身份信息,在第二区块链上的最新区块中可以确定第二计数布隆过滤器,如上述图6所示的示例,基于同样的技术方案,追踪机构基于撤销指示的第二伪身份信息确定第二伪身份信息的各第二哈希值,在第二区块链上最新区块的前一区块中的计数布隆过滤器数组上确定各第二哈希值对应的第二槽位,并将第二槽位的数值加1,确定各第二槽位值,得到第二计数布隆过滤器。
179.进一步地,基于撤销指示的伪身份信息,追踪机构还会更新第一计数布隆过滤器,具体的,追踪机构基于撤销指示的第二伪身份信息确定第二伪身份信息的各第二哈希值,在第一区块链上最新区块的前一区块中的计数布隆过滤器数组上确定各第二哈希值对应的第三槽位,并将第三槽位的数值减1,确定各第三槽位值,得到第一计数布隆过滤器。基于图6举例来说,假设第二哈希值对应的第三槽位分别为sz2、sz5和sz9,则将第三槽位sz2、sz5和sz9的数值减1,如区块3中第一计数布隆过滤器数组上的槽位sz2、sz5和sz9的数值分别为1、0、0。
180.对于验证伪身份信息是否记录在第一区块链上和/或第二区块链上,需要先确定伪身份信息是否插入在第一计数布隆过滤器数组上和/或第二计数布隆过滤器数组上。
181.具体的,追踪机构根据各预设哈希函数,确定伪身份信息的各哈希值,基于各哈希值确定各哈希值对应在第一计数布隆过滤器数组上的各槽位值和对应在第二计数布隆过
滤器数组上的各槽位值;
182.若确定第一计数布隆过滤器数组上的各槽位值不为0,则确定伪身份信息存在于所述第一计数布隆过滤器;第一计数布隆过滤器用于表征所述伪身份信息是否记录在所述第一区块链上;若确定第二计数布隆过滤器数组上的各槽位值中任一槽位值为0,则确定伪身份信息未存在于第二计数布隆过滤器;第二计数布隆过滤器用于表征伪身份信息是否记录在第二区块链上。
183.进一步地,基于上述图6进行举例阐述,以区块2作为第一计数布隆过滤器进行举例,假设针对某一伪身份信息pid
i
,确定出伪身份信息pid
i
对应在第一计数布隆过滤器数组上的各槽位分别为sz2、sz5和sz9,因为区块2中第一计数布隆过滤器的槽位sz2、sz5和sz9的槽位值均不为0,因此,确定伪身份信息pid
i
存在于第一计数布隆过滤器,相当于确定伪身份信息pid
i
记录在第一区块链上;若确定出伪身份信息pid
i
对应在第一计数布隆过滤器数组上的各槽位分别为sz2、sz7和sz9,因为第一计数布隆过滤器数组上的槽位sz7的槽位值为0,因此可以确定伪身份信息pid
i
不存在于第一计数布隆过滤器,相当于确定伪身份信息pid
i
未记录在第一区块链上。
184.同理,对于第二计数布隆过滤器的校验方法与第一计数布隆过滤器的校验方法相同,在此不做赘述。
185.示例性的,计数布隆过滤器存在假阳性问题,即在验证伪身份信息是否记录在第一区块链上和/或第二区块链上时,既确定伪身份信息插入在第一计数布隆过滤器中,又插入在第二计数布隆过滤器中,针对此问题,通过伪身份信息对应的区块来确定伪身份信息是否记录在第二区块链上。
186.具体的,追踪机构若根据第一计数布隆过滤器确定伪身份信息记录在第一区块链上,且根据第二计数布隆过滤器确定伪身份信息记录在第二区块链上,则根据伪身份信息对应的区块高确定伪身份信息是否记录在第二区块链上;若根据伪身份信息对应的区块高确定伪身份信息记录在第二区块链上,则确定伪身份信息为无效伪身份信息。
187.本发明实施例中,任一伪身份信息通过构建交易上传至区块链,因此可以通过伪身份信息得到对应的交易,如上述图5和图7所示,任一交易中还包括区块高,因此可以根据伪身份信息来查找对应交易的区块高,如此可以确定伪身份信息是否记录在第二区块链上,以此消除计数布隆过滤器假阳性的问题。
188.为了更好的阐述上述技术方案,图8示例性的示出了一种密钥管理方法的流程示意图,如图8所示,流程包括:
189.步骤810,获取身份验证信息。
190.追踪机构获取认证节点发送的身份验证信息,身份验证信息中包括真实身份信息rid
i
的伪身份信息pid
i

191.步骤820,确定是否在第二计数布隆过滤器中。
192.根据预设哈希函数w1、w2和w3对伪身份信息pid
i
进行哈希运算,得到哈希值hash1、hash2和hash3,确定出哈希值hash1、hash2和hash3对应在第二计数布隆过滤器数组上的槽位分别为sz3、sz4和sz5,确定第二计数布隆过滤器数组中槽位sz3、sz4和sz5的槽位值是否为0,若槽位sz3、sz4和sz5中任一槽位的槽位值为0,则确定伪身份信息pid
i
未插入在第二计数布隆过滤器中,也就是说,伪身份信息pid
i
未记录在第二区块链上。若槽位sz3、
sz4和sz5的槽位值均不为0,则确定伪身份信息pid
i
插入在第二计数布隆过滤器中,也就是说,伪身份信息pid
i
记录在第二区块链上。
193.步骤830,确定是否在第一计数布隆过滤器中。
194.基于上述步骤820中的示例,假设第一计数布隆过滤器和第二计数布隆过滤器所用的哈希函数相同,然后确定出哈希值hash1、hash2和hash3对应在第一计数布隆过滤器数组上的槽位分别为sz7、sz8和sz9,进一步根据第一计数布隆过滤器数组上的槽位sz7、sz8和sz9的数值来确定伪身份信息pid
i
是否插入在第一计数布隆过滤器中,也就是说,确定伪身份信息pid
i
是否记录在第一区块链上。
195.若确定伪身份信息pid
i
记录在第一区块链上,且未记录在第二区块链上,则确定伪身份信息pid
i
为有效伪身份信息;若确定伪身份信息pid
i
未记录在第一区块链上,且记录在第二区块链上,则确定伪身份信息pid
i
为无效伪身份信息。
196.步骤840,确定是否记录在第二区块链上。
197.若确定伪身份信息pid
i
既记录在第一区块链上,且又记录在第二区块链上,则根据伪身份信息pid
i
对应交易中的区块高,确定伪身份信息pid
i
是否记录在第二区块链上,若是,则确定伪身份信息pid
i
为无效伪身份信息。
198.本发明实施例,根据第一计数布隆过滤器和第二计数布隆过滤器来确定伪身份信息是否记录在第一区块链和/第二区块链上,以提升确定伪身份信息有效性的效率,通过两个计数布隆过滤器还可以降低布隆过滤器假阳性的问题,提升确定伪身份信息有效性的准确率,通过第一区块链和第二区块链可以确定出该伪身份信息是否为有效的,进而确定该伪身份信息对应的公钥是否为有效公钥,以此防止攻击者通过无效公钥传播虚假消息,且不需要更新用户节点的私钥和密钥生成中心的部分私钥就可以确定无效公钥,以此避免密钥生成中心和用户节点增加过大的计算负担。
199.需要说明的是,追踪机构在确定伪身份信息不合法时,可以根据第一区块链或第二区块链中记录的真实身份信息进行追踪,对其实施预设惩罚,如将其拉入黑名单等。
200.本发明实施例中,认证节点通过追踪机构验证伪身份信息的应用场景为:用户节点a向用户节点b发送消息,再发送消息的过程中,由认证节点对用户节点a的伪身份信息进行验证,进而保证伪身份信息的安全性。基于此,图9示例性的示出了本发明实施例提供的一种密钥管理方法的流程示意图,该流程可由密钥管理装置执行。
201.如图9所示,包括:
202.步骤910,第一认证节点获取用户节点的发送消息。
203.本发明实施例中,用户节点的发送消息包括用户节点的伪身份信息;所述伪身份信息是追踪机构根据所述用户节点的真实身份信息确定的。
204.步骤920,所述验证结果是所述追踪机构根据第一区块链和第二区块链确定的;所述第一区块链用于记录有效伪身份信息;所述第二区块链用于记录无效伪身份信息。进一步地,验证结果是追踪机构根据伪身份信息的哈希值、第一区块链中的第一计数布隆过滤器和第二区块链中的第二计数布隆过滤器确定的。
205.步骤930,第一认证节点在所述验证结果为验证通过后,发送所述发送消息。
206.本发明实施例中,第一认证节点在所述验证结果为验证通过后,确定用户节点的伪身份信息是有效的,即安全的、正确的,然后再对发送消息中的签名进行验证,确定签名
的准确性后,将该发送消息进行发送。
207.在步骤920中,第一认证节点可以将预设时段内的各伪身份信息发送至追踪机构进行验证,以减少第一认证节点与追踪机构的交互次数,节省传输资源。
208.举例来说,第一认证节点1分钟(预设时段)内获取了10条发送消息,其中包括用户节点a1的3条发送消息和用户节点a2的7条发送消息,因此在验证伪身份信息时,只需要追踪机构验证用户节点a1、用户节点a2的伪身份信息各一次就可以,不需要针对每条发送消息进行验证,减少了第一认证节点与追踪机构的交互次数,减少了追踪机构的重复验证,节省了传输资源和计算资源。
209.在步骤930中,发送消息还包括用户节点的公钥和签名,第一认证节点根据用户节点的公钥验证签名,在验证结果为验证通过且签名验证通过后将发送消息进行发送;签名是用户节点根据用户节点的公钥和私钥确定的;所述用户节点的公钥是根据伪身份信息确定的;用户节点的私钥是根据部分私钥生成的;部分私钥是密钥生成中心根据伪身份信息生成的。
210.为了更好的阐述用户节点的公钥和私钥的生成,下面将结合上述图2中所述确定伪身份信息的技术方案进行描述。
211.其中,用户节点的部分私钥是密钥生成中心根据用户节点的伪身份信息确定的,具体的,密钥生成中心选择随机数r
i
∈z
q
*,确定r
i
=r
i
*p,psk=(r
i
s*h
1i
)modp,其中,h
1i
=h1(pid
i
,r
i
,p
pub
),psk为用户节点的部分私钥,密钥生成中心将{r
i
,psk}发送至用户节点,用户节点若确定等式psk*p=r
i
h
1i
*p
pub
成立,则确定用户节点的部分私钥psk有效。
212.然后,用户节点选择vsk∈z
p
*为秘密值,确定x
i
=vsk*p,h
2i
=h2(pid
i
,x
i
),q
i
=r
i
h
2i
*x
i
,将pk=(q
i
,r
i
)作为用户节点的公钥,sk=(psk,vsk)作为用户节点的私钥。
213.用户节点再选择u
i
∈z
p
*,确定u
i
=u
i
*p,h
3i
=h3(pid
i
,m
i
,u
i
,pk,δt
i
),s
i
=[u
i
h
3i
*(psk h
2i
*vsk)]modp,σ
i
(u
i
,s
i
)确定为消息内容为m
i
的签名。
[0214]
在一种可实施的方式中,第一认证节点针对任一签名进行验证,若签名验证通过,则将签名对应的发送消息进行发送,例如,第一认证节点若确定等式s
i
*p=u
i
h
3i
*(q
i
h
1i
*p
pub
)成立,则确定签名验证通过。
[0215]
在本发明实施例中,通过聚合签名来减少计算量,节省计算资源,具体的,第一认证节点若收到至少一个用户节点的发送消息,则针对至少一个用户节点的签名,生成聚合签名;根据所述至少一个用户节点的公钥,对聚合签名进行验证。
[0216]
结合上述步骤920举例来说,针对用户节点a1的3条发送消息,在用户节点a1的伪身份信息验证通过后,确定聚合签名σ
agg
=(u1,u2,u3,s),其中然后,第一认证节点若确定等式成立,则确定聚合签名验证通过,以此实现不需要针对一个发送消息进行验证,可以批量,即多个签名统一进行验证,以此减少验证时需要的计算资源。
[0217]
示例性的,发送消息还包括伪身份信息的时间戳,发送所述发送消息之前,根据所述时间戳确定所述伪身份信息处于有效状态。
[0218]
在一种可实施的方式中,第一认证节点在将发送消息发送至追踪机构时,将伪身份信息的时间戳也发送至追踪机构,以使追踪机构根据该伪身份信息的有效时间验证伪身
份信息的时间戳是否过期,例如,伪身份信息的有效时间为3个月,根据伪身份信息的时间戳与验证时间的时间间隔来确定伪身份信息的时间戳是否过期。
[0219]
在另一种可实施的方式中,追踪机构可以针对伪身份信息预设相同规格或不同规格的伪身份信息的有效时间,例如,预设相同规格的有效时间为3个月,将有效时间发送至第一认证节点,在第一认证节点获取发送消息之后,由第一认证节点根据发送消息中伪身份信息的时间戳与当前时间(即获取后验证时间)的时间间隔与预设有效时间来确定伪身份信息的时间戳是否过期。
[0220]
在本发明实施例中,认证节点与用户节点之间的交互是以组为单位,例如,第一认证节点下的用户节点组包括用户节点组a和用户节点组b,用户节点组a中包括用户节点a1、
……
、a10,用户节点组b中包括用户节点b1、
……
、b6。
[0221]
其中,用户节点组是根据各用户节点的物理地址划分的,例如,当一个新用户节点b7向追踪机构发送创建指示,得到伪身份信息之后,根据用户节点b7的物理地址,将用户节点b7划分至用户节点组b。
[0222]
在现有技术中,认证节点与用户节点之间进行交互之前,需要互相验证合法性,以保证双方是安全且合法的,因此,若是与用户节点交互的第一认证节点切换为第二认证节点,需要第二认证节点与用户节点进行互相验证,且每一个用户节点均需要验证一次,浪费了计算资源和传输资源。
[0223]
在本发明实施例中,为了节省计算资源和降低传输资源,用户节点的认证节点切换之前,由认证节点之间相互验证,以此实现用户节点不需要对切换后的认证节点进行验证。
[0224]
具体的,第一认证节点向第二认证节点发送认证请求;认证请求用于指示对位于所述第一认证节点下的用户节点组进行认证节点切换认证;所述用户节点组是根据各用户节点的物理地址划分的;接收第二认证节点发送的认证确认消息;认证确认消息是所述第二认证节点验证通过所述认证请求后生成的;将所述认证确认消息中的验证结果广播至所述第一认证节点中各用户节点组。
[0225]
本发明实施例中,以用户节点组为单位与认证节点之间进行交互,举例来说,将第一认证节点spa1下的用户节点组b,切换至第二认证节点spa2下,切换之前,第一认证节点spa1向第二认证节点spa2发送认证请求,认证请求中包括spa1的公钥、spa1私钥加密后的随机数a1,待切换的用户节点组b的id以及密钥参数。
[0226]
第二认证节点spa2根据spa1的公钥对认证请求进行验证,其验证公式与上述签名验证的公司类似,在此不做具体限定,然后生成随机数b1,并为用户节点组b生成性的会话密钥sk
b
,并将第二认证节点spa2私钥签名后的随机数b1作为认证确认消息,发送至第一认证节点spa1。
[0227]
第一认证节点spa1得到认证确认消息之后,将认证确认消息广播至用户节点组b,以此实现用户节点组b中的用户节点不需要对第二认证节点spa2进行验证,既保证了认证节点的安全性,又节省了计算资源和降低了传输资源。
[0228]
在本发明实施例中,用户节点组切换时,可以包括多种方式,在一中可实施的方式中,为每个用户节点组设置切换时序,在时序满足预设条件后,将用户节点组的认证节点进行切换。例如,用户节点组b的切换时序为3小时后切换为第二认证节点,则在3小时后,自动
切换至第二认证节点。
[0229]
在另一种可实施的方式中,由用户节点组中的用户节点发送切换指令来进行切换,具体的,第一认证节点接收所述用户节点组中任一用户节点发送的节点切换指令;将所述用户节点组的状态标识修改为休眠;将所述用户节点组切换至所述第二认证节点中。
[0230]
结合上述所述的实施例进行举例说明,认证节点包括组标识符映射表(用于在其覆盖范围内管理所有组,gimt)和组成员映射表(gmmt)。其中,gimt表由组id、认证节点的覆盖区域、认证节点的切换序列以及用户节点组的状态标识(活动或休眠)等信息构成。
[0231]
用户节点组b中用户节点b2通过检测与第一用户节点之间的数据传输状态低于阈值,则触发切换指令,并发送至第一用户认证节点,第一用户认证节点将用户节点组b的状态标识修改为休眠,防止用户节点的发送消息丢失,然后将用户节点组b切换至第二认证节点下,第二认证节点在得到用户节点组b的id之后,验证用户节点b2是否为有效用户节点,若是,则将用户节点组b的状态标识修改为活动,然后将上述生成的会话密钥sk
b
广播至用户节点组b,以使用户节点组b中任一用户节点都可以与第二认证节点进行交互。
[0232]
基于相同的技术构思,图10示例性的示出了本发明实施例提供的一种密钥管理装置的结构示意图,该装置可以执行密钥管理方法的流程。
[0233]
如图10所示,该装置具体包括:
[0234]
获取模块1010,用于获取认证节点发送的身份验证信息;所述身份验证信息包括用户节点的伪身份信息;所述伪身份信息是所述追踪机构根据所述用户节点的真实身份信息确定的;
[0235]
处理模块1020,用于根据第一区块链和第二区块链确定所述伪身份信息是否为有效伪身份信息;所述第一区块链用于记录有效伪身份信息;所述第二区块链用于记录无效伪身份信息;
[0236]
若是,则生成所述伪身份信息的验证通过结果,并将所述验证通过结果发送至所述认证节点。
[0237]
可选的,所述处理模块1020具体用于:
[0238]
若根据所述第一区块链中的第一计数布隆过滤器确定所述伪身份信息记录在所述第一区块链上,且根据所述第二区块链中的第二计数布隆过滤器确定所述伪身份信息未记录在所述第二区块链上,则确定所述伪身份信息为有效伪身份信息;
[0239]
若根据所述第一区块链中的第一计数布隆过滤器确定所述伪身份信息未记录在所述第一区块链上,且根据所述第二区块链中的第二计数布隆过滤器确定所述伪身份信息记录在所述第二区块链上,则确定所述伪身份信息为无效伪身份信息;
[0240]
所述第一计数布隆过滤器为所述第一区块链上最新区块的计数布隆过滤器;所述第二计数布隆过滤器为所述第二区块链上最新区块的计数布隆过滤器。
[0241]
可选的,所述处理模块1020还用于:
[0242]
若根据所述第一计数布隆过滤器确定所述伪身份信息记录在所述第一区块链上,且根据所述第二计数布隆过滤器确定所述伪身份信息记录在所述第二区块链上,则根据所述伪身份信息对应的区块高确定所述伪身份信息是否记录在所述第二区块链上;
[0243]
若根据所述伪身份信息对应的区块高确定所述伪身份信息记录在所述第二区块链上,则确定所述伪身份信息为无效伪身份信息。
[0244]
可选的,所述处理模块1020具体用于:
[0245]
根据各预设哈希函数,确定所述伪身份信息的各哈希值;
[0246]
基于所述各哈希值确定所述各哈希值对应在所述第一计数布隆过滤器数组上的各槽位值和对应在所述第二计数布隆过滤器数组上的各槽位值;
[0247]
若确定所述第一计数布隆过滤器数组上的各槽位值不为0,则确定所述伪身份信息存在于所述第一计数布隆过滤器;所述第一计数布隆过滤器用于表征所述伪身份信息是否记录在所述第一区块链上;
[0248]
若确定所述第二计数布隆过滤器数组上的各槽位值中任一槽位值为0,则确定所述伪身份信息未存在于所述第二计数布隆过滤器;所述第二计数布隆过滤器用于表征所述伪身份信息是否记录在所述第二区块链上。
[0249]
可选的,所述处理模块1020具体用于:
[0250]
获取用户节点发送的创建指示;所述创建指示包括所述用户节点的真实身份信息、第一信息和第一验证值;所述第一信息是所述用户节点基于所述真实身份信息和第一秘密值确定的;所述第一秘密值是所述用户节点选择的;所述第一验证值是所述用户节点根据所述第一秘密值和所述第一信息确定的;
[0251]
根据所述第一验证值对所述第一信息验证通过后,基于所述真实身份信息,根据所述追踪机构的主秘钥确定第二信息;所述主秘钥是根据预设椭圆曲线确定的;
[0252]
将所述第一信息和第二信息确定为所述伪身份信息。
[0253]
可选的,所述处理模块1020还用于:
[0254]
获取认证节点发送的身份验证信息之前,基于所述用户节点发送的创建指示,生成所述用户节点的伪身份信息;
[0255]
基于所述伪身份信息构建第一交易,并将包含所述第一交易的第一区块上链至所述第一区块链;所述第一区块的区块头中设置有第一计数布隆过滤器,所述第一区块的区块体中记录有所述第一交易;所述第一计数布隆过滤器中各槽位值是根据所述第一区块的前一区块中的第一计数布隆过滤器和所述伪身份信息在各预设哈希函数下的各哈希值确定的。
[0256]
可选的,所述处理模块1020还用于:
[0257]
基于所述用户节点发送的具有伪身份信息的撤销指示,构建第二交易并将包含所述第二交易的第二区块上链至所述第二区块链;所述第二区块的区块头中设置有第二计数布隆过滤器,所述第二区块的区块体中记录有所述第二交易;所述第二计数布隆过滤器中各槽位值是根据所述第二区块的前一区块中的第二计数布隆过滤器和所述伪身份信息在各预设哈希函数下的各哈希值确定的。
[0258]
基于相同的技术构思,图11示例性的示出了本发明实施例提供的一种密钥管理装置的结构示意图,该装置可以执行密钥管理方法的流程。
[0259]
如图11所示,该装置具体包括:
[0260]
获取单元1110,用于获取用户节点的发送消息;所述发送消息包括伪身份信息;所述伪身份信息是追踪机构根据所述用户节点的真实身份信息确定的;
[0261]
处理单元1120,用于将所述伪身份信息发送至所述追踪机构,并接收所述追踪机构对所述伪身份信息的验证结果;所述验证结果是所述追踪机构根据第一区块链和第二区
块链确定的;所述第一区块链用于记录有效伪身份信息;所述第二区块链用于记录无效伪身份信息;
[0262]
在所述验证结果为验证通过后,发送所述发送消息。
[0263]
可选的,所述发送消息还包括所述用户节点的公钥和签名;
[0264]
所述处理单元1120还用于:
[0265]
根据所述用户节点的公钥验证所述签名;
[0266]
在所述验证结果为验证通过且所述签名验证通过后将所述发送消息进行发送;所述签名是所述用户节点根据所述用户节点的公钥和私钥确定的;所述用户节点的公钥是根据所述伪身份信息确定的;所述用户节点的私钥是根据部分私钥生成的;所述部分私钥是密钥生成中心根据所述伪身份信息生成的。
[0267]
可选的,所述处理单元1120具体用于:
[0268]
若收到至少一个用户节点的发送消息,则针对所述至少一个用户节点的签名,生成聚合签名;
[0269]
根据所述至少一个用户节点的公钥,对所述聚合签名进行验证。
[0270]
可选的,所述发送消息还包括伪身份信息的时间戳;
[0271]
所述处理单元1120还用于:
[0272]
发送所述发送消息之前,根据所述时间戳确定所述伪身份信息处于有效状态。
[0273]
可选的,所述处理单元1120还用于:
[0274]
向第二认证节点发送认证请求;所述认证请求用于指示对位于所述第一认证节点下的用户节点组进行认证节点切换认证;所述用户节点组是根据各用户节点的物理地址划分的;
[0275]
接收所述第二认证节点发送的认证确认消息;所述认证确认消息是所述第二认证节点验证通过所述认证请求后生成的;
[0276]
将所述认证确认消息中的验证结果广播至所述第一认证节点中各用户节点组。
[0277]
可选的,所述处理单元1120还用于:
[0278]
接收所述用户节点组中任一用户节点发送的节点切换指令;
[0279]
将所述用户节点组的状态标识修改为休眠;
[0280]
将所述用户节点组切换至所述第二认证节点中。
[0281]
基于相同的技术构思,本发明实施例还提供一种计算机设备,包括:
[0282]
存储器,用于存储程序指令;
[0283]
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述密钥管理方法。
[0284]
基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述密钥管理方法。
[0285]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产
品的形式。
[0286]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0287]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0288]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0289]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

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

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

相关文献