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

基于统一多域标识的密钥处理方法、装置及系统与流程

2022-09-03 21:57:12 来源:中国专利 TAG:


1.本公开的实施例涉及信息安全技术领域,具体地涉及一种基于统一多域标识的密钥处理方法、装置及系统。


背景技术:

2.随着信息和网络通信技术的迅猛发展,特别是物联网的迅速发展,信息安全问题也越来越突出。在互联网时代,为了解决信息安全问题,密码学中提出了一系列新的密码算法和相应的信息安全解决方案。例如,从1976年开始,密码学中出现了对称加密算法dea(data encryption algorithm,数据加密算法),以及diffie-hellman密钥协商协议、rsa非对称加密算法、rsa数字签名算法、md5 hash算法等一系列新的具有不同作用的密码算法。在非对称密码(也称公钥密码)方向,后来又逐步出现了elgamal算法、有限域上椭圆曲线密码算法(ecc,elliptic curve cryptography)等多种公钥加密和数字签名算法。由于公钥密码算法可以用于互联网的远程认证和加密,因此在互联网时代,这些技术得到了广泛应用。
3.但是,应用非对称算法进行加密和认证,首先必须保证公钥是真实有效的,对此国际上提出了pki(public key infrastructure,公钥基础设施)的技术思想,由证书机构(ca,certification authority)为“ka是用户a的有效公钥”这一断言出具可验证的证书(由ca为证书签名),来保证这一断言的正确性。在pki/ca体系中,需要多层ca机构才能为大量用户提供证书服务,这些服务包括公钥证书的申请、颁发、管理、帮助验证证书等。这不仅需要网络在线和带宽资源,而且ca的建设和运维成本很高,从而极大地限制了pki的应用与推广。于是,密码学家shamir于1984年提出了基于身份的密码体制(ibc,identity-based cryptograph)。它将用户的身份与密钥生成中心(kgc,key generation center)的私钥“绑定”在一起构成用户的私钥,不需要用户公钥,或者说,用户的身份标识可以等价地当做公钥,从而并不需要公钥证书。但是,ibc算法的计算资源较大、计算速度较慢,是“重量级”密码算法。ibc的这一系列局限性,使得其同样难以推广和应用。
4.尤其是在物联网时代,海量物联网终端一方面需要认证和加密,另一方面计算资源受限,往往还要求密钥进行跨域处理,且要求处理过程时延极短。这使得pki/ca体系和ibc体系都因其局限性难以满足物联网时代的需求。


技术实现要素:

5.本公开的实施例的目的是提供一种基于统一多域标识的密钥处理方法、装置及系统,解决了无法进行跨域密钥处理的问题,实现了既具有证书体系和ibc体系的优点,又能避免其局限性,且能满足物联网时代的诸多需求,特别是轻量化、全域密钥处理、低时延等需求。
6.为了实现上述目的,本公开实施例的第一方面提供一种基于统一多域标识的密钥处理系统,所述系统包括:标识映射公钥(identity map to public key,impk)架构与标识
绑定公钥(identity bound public key,ibpk)架构,其中,所述impk架构包括根域密钥管理中心(root key management center,rkmc)以及其管理的域密钥管理中心(domain key management center,dkmc),所述rkmc用于生成所述dkmc的域私钥,并将其发送至对应的所述dkmc;所述ibpk架构包括所述dkmc以及其管理的域内的所有节点。
7.进一步地,所述rkmc还用于生成预设私钥基和预设公钥基,并将所述预设公钥基分发至所有域的节点,其中,所述预设私钥基用于协同生成域私钥,所述预设公钥基用于协同生成域公钥。
8.进一步地,所述dkmc还用于协同生成域内的所有节点的私钥。
9.本公开实施例的第二方面提供一种基于统一多域标识的密钥处理方法,所述方法应用于第一终端,所述方法包括:生成所述第一终端标识对应的自选私钥因子,并向域密钥管理中心dkmc发送密钥申请消息,所述密钥申请消息中包括所述第一终端标识以及与所述自选私钥因子对应的自选公钥因子;接收所述dkmc返回的密钥信息,所述密钥信息中包括利用所述dkmc的域私钥与所述自选公钥因子协同生成的所述第一终端标识对应的分发私钥因子;利用所述自选私钥因子与所述分发私钥因子,得到所述第一终端标识对应的私钥。
10.进一步地,所述利用所述自选私钥因子与所述分发私钥因子,得到所述第一终端标识对应的私钥包括:根据sk1=(dsk1 usk1)mod n,得到所述第一终端标识对应的私钥sk1,其中,usk1为所述自选私钥因子,dsk1为所述分发私钥因子,mod n为模n运算。
11.进一步地,所述密钥信息中还包括所述第一终端标识对应的伴随公钥信息,所述方法还包括:根据所述第一终端标识、所述伴随公钥信息以及所述dkmc的域公钥,得到所述第一终端的公钥。
12.进一步地,当所述伴随公钥信息中包括伴随公钥时,所述根据所述第一终端标识、所述伴随公钥信息以及所述dkmc的域公钥,得到所述第一终端的公钥包括:根据pk1=apk1 h(id1||apk1)
·
pk
1dkmc
,得到所述第一终端的公钥pk1,其中,apk1为所述伴随公钥,id1为所述第一终端标识,h()为哈希函数,“||”为连接符,pk
1dkmc
为所述dkmc的域公钥。
13.进一步地,当所述伴随公钥信息中包括伴随公钥和所述伴随公钥的有效期时,所述根据所述第一终端标识、所述伴随公钥信息以及所述dkmc的域公钥,得到所述第一终端的公钥包括:根据pk1=apk1 h(id1||apk1||et1)
·
pk
1dkmc
,得到所述第一终端的公钥pk1,其中,apk1为所述伴随公钥,id1为所述第一终端标识,h()为哈希函数,“||”为连接符,et1为所述伴随公钥的有效期,pk
1dkmc
为所述dkmc的域公钥。
14.进一步地,所述方法还包括:将利用所述第一终端标识对应的私钥生成的所述第一终端标识对应的公钥,作为第一公钥;将利用所述第一终端标识、所述伴随公钥信息以及所述dkmc的域公钥生成的所述第一终端的公钥,作为第二公钥;判断所述第一公钥与所述第二公钥是否相等;当判断所述第一公钥与所述第二公钥相等时,确定所述第一终端标识对应的公私钥对正确;当判断所述第一公钥与所述第二公钥不相等时,确定所述分发私钥因子和所述伴随公钥信息分发错误。
15.进一步地,所述方法还包括所述第一终端对第二终端发送的签名数据的认证过程:接收所述第二终端发送的签名数据,所述签名数据中包括所述第一终端标识、待验证数据、签名值、第二终端标识以及所述第二终端的伴随公钥信息;根据所述第二终端标识中的域标识,确定所述第二终端所在域的域公钥;根据所述第二终端标识、所述伴随公钥信息以
及所述第二终端所在域的域公钥,得到所述第二终端的公钥;利用所述第二终端的公钥以及所述待验证数据对所述签名值进行验证,得到所述签名数据的认证结果。
16.进一步地,所述根据所述第二终端标识中的域标识,确定所述第二终端所在域的域公钥包括:判断所述第一终端标识中的域标识与所述第二终端标识中的域标识是否相同;当确定二者的所述域标识相同时,确定所述第二终端所在域与所述第一终端所在域相同,并将所述第一终端所在域的域公钥确定为所述第二终端所在域的域公钥;当确定二者的所述域标识不相同时,确定所述第二终端所在域与所述第一终端所在域不相同,并根据预设公钥基与所述第二终端标识中的域标识,得到所述第二终端所在域的域公钥。
17.进一步地,所述根据预设公钥基与所述第二终端标识中的域标识,得到所述第二终端所在域的域公钥包括:选取所述第二终端标识中的域标识的哈希值的设定个数因子,并将所述设定个数因子划分为预设段;利用每个预设段中的设定低位数,查找所述预设公钥基中的选取因子,并将每个预设段中的剩余位数作为对应所述选取因子的选取因子系数;根据得到所述第二终端所在域的域公钥pk
2dkmc
,其中,id
2dkmc
为所述第二终端标识中的域标识,h()为哈希函数,为查询函数,bpkj为第j个选取因子,λj为第j个选取因子系数,k为所述选取因子的个数。
18.进一步地,当所述伴随公钥信息中包括伴随公钥时,所述根据所述第二终端标识、所述伴随公钥信息以及所述域公钥,得到所述第二终端的公钥包括:根据pk2=apk2 h(id2||apk2)
·
pk
2dkmc
,得到所述第二终端的公钥pk2,其中,apk2为所述伴随公钥,id2为所述第二终端标识,h()为哈希函数,“||”为连接符,pk
2dkmc
为所述第二终端所在域的域公钥。
19.进一步地,当所述伴随公钥信息中包括伴随公钥和所述伴随公钥的有效期时,所述根据所述第二终端标识、所述伴随公钥信息以及所述域公钥,得到所述第二终端的公钥包括:根据pk2=apk2 h(id2||apk2||et2)
·
pk
2dkmc
,得到所述第二终端的公钥pk2,其中,apk2为所述伴随公钥,id2为所述第二终端标识,h()为哈希函数,“||”为连接符,et2为所述伴随公钥的有效期,pk
2dkmc
为所述第二终端所在域的域公钥。
20.本公开实施例第三方面提供一种基于统一多域标识的密钥处理方法,所述方法应用于dkmc,所述方法包括:当接收到第一终端发送的密钥申请消息时,生成掩藏私钥因子,所述密钥申请消息中包括所述第一终端标识以及与自选公钥因子;根据所述第一终端标识、所述掩藏私钥因子、所述自选公钥因子以及所述dkmc的域私钥,得到所述第一终端标识对应的分发私钥因子;向所述第一终端发送包括所述分发私钥因子的密钥信息,以便所述第一终端利用所述自选私钥因子与所述分发私钥因子,得到所述第一终端标识对应的私钥。
21.进一步地,所述根据所述第一终端标识、所述掩藏私钥因子、所述自选公钥因子以及所述dkmc的域私钥,得到所述第一终端标识对应的分发私钥因子包括:根据所述掩藏私钥因子以及所述自选公钥因子,得到所述第一终端标识对应的伴随公钥信息;根据所述第一终端标识、所述掩藏私钥因子、所述伴随公钥信息以及所述dkmc的域私钥,得到所述第一终端标识对应的分发私钥因子。
22.进一步地,所述根据所述掩藏私钥因子以及所述自选公钥因子,得到所述第一终端标识对应的伴随公钥信息包括:根据hpk1=hsk1g,得到所述掩藏私钥因子hsk1对应的掩
藏公钥因子hpk1;根据apk1=hpk1 upk1,得到所述第一终端标识对应的伴随公钥apk1,并生成所述伴随公钥的有效期,其中,upk1为所述自选公钥因子;将所述第一终端标识对应的伴随公钥以及所述伴随公钥的有效期,作为所述第一终端标识对应的伴随公钥信息。
23.进一步地,所述根据所述第一终端标识、所述掩藏私钥因子、所述伴随公钥信息以及所述dkmc的域私钥,得到所述第一终端标识对应的分发私钥因子包括:根据dsk1=hsk1 h(id1||apk1||*et1)
·
sk
1dkmc
,得到所述第一终端标识对应的分发私钥因子dsk1,其中,h()为哈希函数,“||”为连接符,id1为所述第一终端标识,et1为所述伴随公钥的有效期,*表示其后的内容为可选因子,sk
1dkmc
为所述dkmc的域私钥。
24.进一步地,所述密钥信息中还包括所述第一终端标识对应的伴随公钥信息。
25.本公开实施例的第四方面提供一种基于统一多域标识的密钥处理装置,所述装置应用于第一终端,包括:自选因子生成模块,用于生成所述第一终端标识对应的自选私钥因子;通信模块,用于向dkmc发送密钥申请消息,所述密钥申请消息中包括所述第一终端标识以及与所述自选私钥因子对应的自选公钥因子;所述通信模块还用于接收所述dkmc返回的密钥信息,所述密钥信息中包括利用所述dkmc的域私钥与所述自选公钥因子协同生成的所述第一终端标识对应的分发私钥因子;私钥生成模块,用于利用所述自选私钥因子与所述分发私钥因子,得到所述第一终端标识对应的私钥。
26.本公开实施例的第五方面提供一种基于统一多域标识的密钥处理装置,所述装置应用于dkmc,包括:通信模块,用于接收第一终端发送的密钥申请消息,所述密钥申请消息中包括所述第一终端标识以及与自选公钥因子;因子生成模块,用于生成掩藏私钥因子;分发因子生成模块,用于根据所述第一终端标识、所述掩藏私钥因子、所述自选公钥因子以及所述dkmc的域私钥,得到所述第一终端标识对应的分发私钥因子;所述通信模块还用于向所述第一终端发送包括所述分发私钥因子的密钥信息,以便所述第一终端利用所述自选私钥因子与所述分发私钥因子,得到所述第一终端标识对应的私钥。
27.本公开实施例的第六方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行如上实施例所述的应用于第一终端的基于统一多域标识的密钥处理方法,和/或应用于dkmc的基于统一多域标识的密钥处理方法。
28.通过基于统一多域标识的密钥处理系统,提供了impk架构与ibpk架构两层架构体系,所述impk架构包括rkmc以及其管理的dkmc,所述rkmc用于生成所述dkmc的域私钥,并将其发送至对应的所述dkmc;所述ibpk架构包括所述dkmc以及其管理的域内的所有节点。本公开实施例解决了无法进行跨域密钥处理的问题,实现了既具有证书体系和ibc体系的优点,又能避免其局限性,且能满足物联网时代的诸多需求,特别是轻量化、全域密钥处理、低时延等需求。
29.本公开的实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
30.附图是用来提供对本公开的实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开的实施例,但并不构成对本公开的实施例的限制。在附图中:
31.图1是本公开实施例提供的一种基于统一多域标识的密钥处理系统的架构示意
图;
32.图2是本公开实施例提供的一种基于统一多域标识的密钥处理方法的流程示意图;
33.图3是本公开实施例提供的第一终端对第二终端的签名数据的认证过程的流程示意图;
34.图4是本公开实施例提供的另一种基于统一多域标识的密钥处理方法的流程示意图;
35.图5是本公开实施例提供的一种基于统一多域标识的密钥处理装置的结构示意图;
36.图6是本公开实施例提供的另一种基于统一多域标识的密钥处理装置的结构示意图。
具体实施方式
37.为了使本公开的实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本公开的实施例的技术方案进行清楚、完整的描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域技术人员在无需创造性劳动的前提下所获得的所有其它实施例,也都属于本公开保护的范围。
38.除非另外定义,否则在此使用的所有术语(包括技术和科学术语)具有与本公开主题所属领域的技术人员所通常理解的相同含义。进一步将理解的是,诸如在通常使用的词典中定义的那些的术语应解释为具有与说明书上下文和相关技术中它们的含义一致的含义,并且将不以理想化或过于正式的形式来解释,除非在此另外明确定义。
39.由于公钥加密与认证技术是网络安全中身份标识认证与数据加密的基本技术,在物联网时代更是不可或缺。但是,物联网的到来使得需要进行密钥处理的实体或终端的数量急剧增加,传统的pki/ca方案已经很难适应海量实体的密钥处理,特别是跨域的密钥处理,难度更大。因此,本公开实施例提出了一种基于统一多域标识的密钥处理方法,使其既具有证书体系和ibc体系的优点,又能避免其局限性,且能满足物联网时代的诸多需求,特别是轻量化、全域密钥处理、跨域密钥处理、低时延等需求。
40.本公开实施例是基于ecc类公钥算法、elgamal公钥算法等,包含但不限于国家商用密码标准算法sm2。对ecc类公钥算法,设基域为fq,eq是有限域上fq椭圆曲线构成的n阶加法循环群,g是eq=《g》。
41.实施例一
42.在本公开实施例一中,如图1所示,提供了一种基于统一多域标识的密钥处理系统,包括标识映射公钥(identity map to public key,impk)架构11与标识绑定公钥(identity bound public key,ibpk)架构12两层架构体系。其中,所述impk架构11包括根域密钥管理中心(root key management center,rkmc)111以及其管理的域密钥管理中心(domain key management center,dkmc)112,所述rkmc 111用于生成所述dkmc 112的域私钥,并将其发送至对应的所述dkmc 112;所述ibpk架构12包括所述dkmc 112以及其管理的域内的所有节点121。
43.其中,所述rkmc还用于随机生成预设私钥基和预设公钥基,并将所述预设公钥基
分发至所有域的节点,其中,所述预设私钥基用于协同生成域私钥,所述预设公钥基用于协同生成域公钥。所述预设公钥基中含有r个公钥,记为bpk={bpk1,

,bpkr}。与bpk对应的预设私钥基(简记为bsk),记为bsk={bsk1,

,bskr}。而且,bski与bpki构成密钥对,即bpki=bskig。所述rkmc是整个系统的核心,所述预设私钥基是核心敏感参数,所述预设私钥基的生成、存储、使用和销毁等全生命周期均在所述rkmc的安全设备内,禁止任何外部访问。另外,所述rkmc除了分发各个dkmc的域私钥,还负责更新各个dkmc的域私钥以及各个dkmc的域标识的更新。预设公钥基是系统公开参数,存储在每个节点,可以和所使用的椭圆曲线一样看成本公开实施例中的基本参数。
44.其中,所述dkmc还用于协同生成域内的所有节点的私钥。另外,所述dkmc还负责其域内所有节点的分发私钥因子的生成与分发,节点私钥的协同更新和节点的统一多域标识的作废管理等。
45.另外,在所述dkmc与其管理的节点之间还存在边缘网关(图中未示),用于控制所述dkmc管理的节点的通信机制。
46.其中,所述rkmc表示根域,1~n个dkmc表示的是若干不同的子域。本公开实施例中涉及的域的概念应用范围较广,以公安部为例来说明,公安部管辖的所有节点形成一个全域,公安部为全域中的rkmc,各个省厅、公安部直属单位等构成多个子域,而各个省厅、公安部直属单位为所述rkmc管理下的dkmc,所述dkmc管理下的各个节点是指需要认证的任何主体、设备、装备等。
47.实施例二
48.图2是本公开实施例提供的一种基于统一多域标识的密钥处理方法流程示意图。如图2所示,所述方法应用于第一终端,也就是某个dkmc管理下的节点,包括如下步骤:
49.步骤201,生成所述第一终端标识对应的自选私钥因子,并向其所属的dkmc发送密钥申请消息,所述密钥申请消息中包括所述第一终端标识以及与所述自选私钥因子对应的自选公钥因子;
50.步骤202,接收所述dkmc返回的密钥信息,所述密钥信息中包括利用所述dkmc的域私钥与所述自选公钥因子协同生成的所述第一终端标识对应的分发私钥因子;
51.步骤203,利用所述自选私钥因子与所述分发私钥因子,得到所述第一终端标识对应的私钥。
52.其中,本公开实施例中提出的统一多域标识(unified multi-domain identity,umi),每个不同的标识可以拥有公、私钥对。umi的标识至少包含两段,前段为域标识,后端为域内节点(包括用户、设备等)标识。其中,由于根域也占有一个域标识,若域标识的长为k,则全域可以包含2
k-1个子域。若域内节点标识长为l,则该域中实体个数可达2
l-1个,从而全域各节点的标识长度则为k l。
53.其中,所述第一终端随机生成所述第一终端标识对应的自选私钥因子usk1。另外,在生成所述自选私钥因子的同时,可利用椭圆曲线基点与所述自选私钥因子,得到所述自选私钥因子对应的自选公钥因子upk1,即upk1=usk1·
g。之后,为了申请私钥,所述第一终端将包括所述第一终端标识以及与所述自选私钥因子对应的自选公钥因子一同发送至其所属的dkmc。
54.所述第一终端在接收到所述dkmc返回的密钥信息之后,利用其中的分发私钥因子
与所述自选私钥因子,生成其私钥。具体的,根据下述公式(1)得到所述第一终端标识对应的私钥sk1:
55.sk1=(dsk1 usk1)mod n
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(1)
56.其中,usk1为所述自选私钥因子,dsk1为所述分发私钥因子,mod n为模n运算。所述第一终端标识对应的私钥可用于数据签名过程。
57.另外,所述密钥信息中还包括所述第一终端标识对应的伴随公钥信息,所述第一终端可根据所述第一终端标识、所述伴随公钥信息以及所述dkmc的域公钥,得到所述第一终端的公钥。
58.具体的,当所述伴随公钥信息中包括伴随公钥时,根据下述公式(2)得到所述第一终端的公钥pk1:
59.pk1=apk1 h(id1||apk1)
·
pk
1dkmc
ꢀꢀꢀꢀꢀꢀꢀ
公式(2)
60.其中,apk1为所述伴随公钥,id1为所述第一终端标识,h()为哈希函数,“||”为连接符,pk
1dkmc
为所述dkmc的域公钥。
61.而当所述伴随公钥信息中包括伴随公钥和所述伴随公钥的有效期时,根据下述公式(3)得到所述第一终端的公钥pk1:
62.pk1=apk1 h(id1||apk1||et1)
·
pk
1dkmc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(3)
63.其中,apk1为所述伴随公钥,id1为所述第一终端标识,h()为哈希函数,“||”为连接符,et1为所述伴随公钥的有效期,pk
1dkmc
为所述dkmc的域公钥。
64.其中,由于所述第一终端存在于所述dkmc中,因此,在计算其公钥的时候需要所述dkmc的域公钥协同计算。而所述dkmc的域公钥可通过下述方式得到:
65.选取所述第一终端标识中的域标识的哈希值的设定个数因子,并将所述设定个数因子划分为预设段,之后,利用每个预设段中的设定低位数,查找所述预设公钥基中的选取因子,并将每个预设段中的剩余位数作为对应所述选取因子的选取因子系数,然后,根据下述公式(4)得到所述第一终端所在域的域公钥pk
1dkmc

[0066][0067]
其中id
1dkmc
为所述第一终端标识中的域标识,h()为哈希函数,为查询函数,bpkj为第j个选取因子,λj为第j个选取因子系数,k为所述选取因子的个数。
[0068]
具体的,计算所述第一终端标识中的域标识的哈希值h(id
1dkmc
),选取所述哈希值中设定个数因子,一般所述设定个数l为256、160或128。然后,将所述设定个数因子划分为预设段k,而且l为k的整数倍。假设每个预设段的长度为m,则l=mk。利用每个预设段中的设定低位数t,得到每个预设段对应的所述预设公钥基中的选取因子,从而有多少个预设段即可得到多少个选取因子,即可得到k个选取因子。然后将每个预设段中的剩余位数作为对应的选取因子系数,即将每个预设段中的m-t位作为选取因子系数,则得到的k个选取因子系数为λ1,λ2,

,λk。从而根据上述公式(4)得到所述第一终端所在域的域公钥pk
1dkmc
。另外,为了适应终端存储空间有限的情形,建议k=4,t=2。
[0069]
类似的,在所述第一终端获取到另一终端标识时,则可以计算出另一终端所在域的域标识,无论该另一终端与所述第一终端是在相同域,还是跨域,均可以通过上述公式(4)得到,只要将公式(4)中的第一终端标识中的域标识替换为另一终端标识中的域标识即
可。
[0070]
在所述第一终端通过公式(1)计算出其私钥之后,可利用所述第一终端标识对应的私钥生成的所述第一终端标识对应的公钥,即pk
′1=sk1·
g,并将该公钥作为第一公钥,同时将利用所述第一终端标识、所述伴随公钥信息以及所述dkmc的域公钥生成的所述第一终端的公钥,作为第二公钥,即将利用公式(2)或公式(3)中得到的公钥pk1作为第二公钥。之后,判断所述第一公钥与所述第二公钥是否相等,当判断所述第一公钥与所述第二公钥相等时,确定所述第一终端标识对应的公私钥对正确;当判断所述第一公钥与所述第二公钥不相等时,确定所述分发私钥因子和所述伴随公钥信息分发错误,则需要所述dkmc重新分发。
[0071]
在所述第一终端可利用另一终端标识中的域标识计算所述另一终端所在域的域标识的条件下,当所述第一终端获取到另一终端的签名数据时,即可实现全域认证,即根域和所有子域中任意两端都可以进行基于公钥的认证,包括域内认证和跨域认证。
[0072]
图3是本公开实施例提供的所述第一终端对第二终端发送的签名数据的认证过程的流程示意图。如图3所示,包括如下步骤:
[0073]
步骤301,接收所述第二终端发送的签名数据,所述签名数据中包括所述第一终端标识、待验证数据、签名值、第二终端标识以及所述第二终端的伴随公钥信息。
[0074]
其中,所述第一终端与第二终端为全域内的两个节点,当第二终端与第一终端之间需要进行双向统一强认证时,即使用基于非对称算法的数字签名进行认证,则以第二终端向第一终端发送签名数据为例,第一终端需要利用所述第二终端的公钥对所述签名数据中的签名值进行验证。
[0075]
其中,m是待验证数据,是第二终端发送给第一终端的需要验证的数据。s2为签名值,在本公开实施例中,s2=sig(sk2,h(id2||m)),即签名内容包含第二终端标识id2和数据m。我们通常用符号sig
ψ
(ska,m)表示节点a采用签名算法ψ和自己的私钥ska对消息m进行签名。当ψ为默认算法时,简记为sig(ska,m)。由于实际签名时,使用的是m的hash值h(m),所以有时也写成sig
ψ
(ska,h(m))。
[0076]
另外,id2为所述第二终端标识。当颁发了所述伴随公钥的有效期时,所述伴随公钥信息包括所述第二终端的伴随公钥apk2与所述伴随公钥的有效期et2。当未颁发伴随公钥的有效期时,所述伴随公钥信息包括所述第二终端的伴随公钥apk2。
[0077]
步骤302,根据所述第二终端标识中的域标识,确定所述第二终端所在域的域公钥。
[0078]
其中,所述第一终端与所述第二终端可能存在于同一个子域内,或者存在于不同子域中。因此,可通过判断所述第一终端标识中的域标识与所述第二终端标识中的域标识是否相同,从而确定二者是否在同一个子域内。由于每个终端的标识包含两个内容:域标识和域内标识。因此当确定二者的所述域标识相同时,确定所述第二终端所在域与所述第一终端所在域相同,并将所述第一终端所在域的域公钥确定为所述第二终端所在域的域公钥,即二者的域公钥相同且确知。
[0079]
当确定二者的所述域标识不相同时,确定所述第二终端所在域与所述第一终端所在域不相同,并根据预设公钥基与所述第二终端标识中的域标识,得到所述第二终端所在域的域公钥。由于每个终端都在本地存储了全域相同的预设公钥基bpk={bpk1,

,bpkr},
因此可利用本地存储的预设公钥基参与计算。
[0080]
具体的,选取所述第二终端标识中的域标识的哈希值的设定个数因子,并将所述设定个数因子划分为预设段。首先,计算所述第二终端标识中的域标识的哈希值h(id
2dkmc
),选取设定个数因子,一般所述设定个数l为256、160或128。然后,将所述设定个数因子划分为预设段k,而且l为k的整数倍。假设每个预设段的长度为m,则l=mk。利用每个预设段中的设定低位数t,得到每个预设段对应的所述预设公钥基中的选取因子,从而有多少个预设段即可得到多少个选取因子,即可得到k个选取因子。然后将每个预设段中的剩余位数作为对应的选取因子系数,即m-t位作为选取因子系数,且得到的k个选取因子系数为λ1,λ2,

,λk。然后,根据下述公式(5)得到所述第二终端所在域的域公钥pk
2dkmc

[0081][0082]
其中id
2dkmc
为所述第二终端标识中的域标识,h()为哈希函数,为查询函数,bpkj为第j个选取因子,λj为第j个选取因子系数,k为所述选取因子的个数,即所述预设段。同样的,为了适应终端存储空间有限的情形,建议k=4,t=2。
[0083]
步骤303,根据所述第二终端标识、所述伴随公钥信息以及所述第二终端所在域的域公钥,得到所述第二终端的公钥。
[0084]
通过上述步骤202,无论第一终端与第二终端是在同一个域内,还是跨域,均可得到所述第二终端所在域的域公钥。
[0085]
当所述伴随公钥信息中包括伴随公钥apk2时,根据下述公式(6)得到所述第二终端的公钥pk2:
[0086]
pk2=apk2 h(id2||apk2)
·
pk
2dkmc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(6)
[0087]
其中,“||”为连接符。
[0088]
当所述伴随公钥信息中包括伴随公钥apk2和所述伴随公钥的有效期et2时,根据下述公式(7)得到所述第二终端的公钥pk2:
[0089]
pk2=apk2 h(id2||apk2||et2)
·
pk
2dkmc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(7)
[0090]
步骤304,利用所述第二终端的公钥以及所述待验证数据对所述签名值进行验证,得到所述签名数据的认证结果。
[0091]
所述第一终端即可利用所述第二终端的公钥pk2以及所述待验证数据验证签名值s2。若验证通过,则既认证了第二终端的身份标识,同时也验证了数据m确实是由第二终端发送至第一终端的。也就是说,本公开实施例的认证内容既包含了第二终端是真实的源,即第二终端的身份标识得到了认证,也包含了第一终端是第二终端指定的宿,即消息接收者的身份标识得到了认证,同时数据m的完整性也得到了认证。如果m中包含了时间值,还可以进一步认证数据m的新鲜性,即通信的实时性。
[0092]
另外,如果需要在认证过程中的加密服务时,则需要双方先进行认证,并协商会话密钥,或者由一方指定会话密钥,并用对方的公钥加密该会话密钥,然后将加密数据放在m中即可。
[0093]
第二终端对于第一终端的签名数据的认证过程与上述实施例类似,此处不再赘述。
[0094]
第一终端与第二终端之间之所以能做跨域认证,重点在于全域有相同的预设公钥
基,这样,第一终端与第二终端尽管不在同一个域,但却可以从预设公钥基计算对方域的域公钥,从而可以计算出对方的公钥。另外,考虑到许多终端节点的存储空间可能受限,因此公钥基不宜太大,我们建议r≤16。
[0095]
另外,当所述第一终端需要向第二终端发送加密数据时,同样是利用所述第二终端的公钥对待加密数据进行加密,而所述第二终端的公钥同样是在得到所述第二终端的伴随公钥信息之后,通过上述公式(6)或公式(7)得到,从而对所述待加密数据进行加密,并在第二终端获取到加密数据之后,通过图2所示的实施例得到第二终端的私钥,所述第二终端对所述加密数据进行解密。
[0096]
本公开实施例基于轻量级密码算法,适用面广,不使用证书,终端(主机或实体)的公钥与其身份标识存在对应或绑定关系,但不同于ibc,可实现多个域的域内认证、多域间的跨域认证等,且认证时延较小。多域之上有一个根域,根域与其各子域构成全域,因此也称全域认证。其中,实体公钥由使用方(数据加密方或数字签名验证方)通过计算得到,其计算过程需要用到公钥拥有者的标识以及所属域的域公钥,使得公钥的计算过程即是公钥的“证明”过程,是一种轻中心的轻量化公钥管理方法。它既不依赖于公钥证书(pki ca),也不同于身份标识密码体制(ibc),且能有效减少验证公钥证书所带来的计算量和证书传递的通信量。其公钥管理体系简单,建设与运维成本低,尤其适用于网络环境、计算资源和通信资源受限的场景,包括物联网场景。
[0097]
实施例三
[0098]
图4是本公开实施例提供的一种基于统一多域标识的密钥处理方法流程示意图。如图4所示,所述方法应用于dkmc,包括如下步骤:
[0099]
步骤401,当接收到第一终端发送的密钥申请消息时,生成掩藏私钥因子,所述密钥申请消息中包括所述第一终端标识以及与自选公钥因子;
[0100]
步骤402,根据所述第一终端标识、所述掩藏私钥因子、所述自选公钥因子以及所述dkmc的域私钥,得到所述第一终端标识对应的分发私钥因子;
[0101]
步骤403,向所述第一终端发送包括所述分发私钥因子的密钥信息,以便所述第一终端利用所述自选私钥因子与所述分发私钥因子,得到所述第一终端标识对应的私钥。
[0102]
其中,当所述dkmc接收到所述第一终端发送的密钥申请消息时,即随机生成掩藏私钥因子hsk1,然后根据所述掩藏私钥因子以及所述自选公钥因子,得到所述第一终端标识对应的伴随公钥信息。具体的,根据下述公式(8)得到所述掩藏私钥因子hsk1对应的掩藏公钥因子hpk1:
[0103]
hpk1=hsk1g
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(8)
[0104]
之后,根据下述公式(9)得到所述第一终端标识对应的伴随公钥apk1:
[0105]
apk1=hpk1 upk1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(9)
[0106]
其中upk1为所述自选公钥因子。同时生成所述伴随公钥的有效期et1。将所述第一终端标识对应的伴随公钥以及所述伴随公钥的有效期,作为所述第一终端标识对应的伴随公钥信息。
[0107]
然后,根据所述第一终端标识、所述掩藏私钥因子、所述伴随公钥信息以及所述dkmc的域私钥,得到所述第一终端标识对应的分发私钥因子。具体的,根据下述公式(10)得到所述第一终端标识对应的分发私钥因子dsk1:
[0108]
dsk1=hsk1 h(id1||apk1||*et1)
·
sk
1dkmc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(10)
[0109]
其中,h()为哈希函数,“||”为连接符,id1为所述第一终端标识,et1为所述伴随公钥的有效期,*表示其后的内容为可选因子,sk
1dkmc
为所述dkmc的域私钥。
[0110]
另外,在向所述第一终端发送所述分发私钥因子的同时,还可将所述第一终端标识对应的伴随公钥信息包含在所述密钥信息中。
[0111]
另外,所述dkmc的域私钥的生成是由rkmc负责的,但是其生成过程与其域公钥的生成过程类似,不过是将预设公钥基替换为预设私钥基。
[0112]
实施例四
[0113]
图5是本公开实施例提供的一种基于统一多域标识的密钥处理装置的结构示意图。如图5所示,所述装置应用于第一终端,所述装置50包括:自选因子生成模块51,用于生成所述第一终端标识对应的自选私钥因子;通信模块52,用于向dkmc发送密钥申请消息,所述密钥申请消息中包括所述第一终端标识以及与所述自选私钥因子对应的自选公钥因子;所述通信模块还用于接收所述dkmc返回的密钥信息,所述密钥信息中包括利用所述dkmc的域私钥与所述自选公钥因子协同生成的所述第一终端标识对应的分发私钥因子;私钥生成模块53,用于利用所述自选私钥因子与所述分发私钥因子,得到所述第一终端标识对应的私钥。
[0114]
进一步地,所述私钥生成模块具体用于:根据sk1=(dsk1 usk1)mod n,得到所述第一终端标识对应的私钥sk1,其中,usk1为所述自选私钥因子,dsk1为所述分发私钥因子,mod n为模n运算。
[0115]
进一步地,所述密钥信息中还包括所述第一终端标识对应的伴随公钥信息,所述装置还包括:公钥生成模块54,用于根据所述第一终端标识、所述伴随公钥信息以及所述dkmc的域公钥,得到所述第一终端的公钥。
[0116]
进一步地,当所述伴随公钥信息中包括伴随公钥时,所述公钥生成模块具体用于:根据pk1=apk1 h(id1||apk1)
·
pk
1dkmc
,得到所述第一终端的公钥pk1,其中,apk1为所述伴随公钥,id1为所述第一终端标识,h()为哈希函数,“||”为连接符,pk
1dkmc
为所述dkmc的域公钥。
[0117]
进一步地,当所述伴随公钥信息中包括伴随公钥和所述伴随公钥的有效期时,所述公钥生成模块具体用于:根据pk1=apk1 h(id1||apk1||et1)
·
pk
1dkmc
,得到所述第一终端的公钥pk1,其中,apk1为所述伴随公钥,id1为所述第一终端标识,h()为哈希函数,“||”为连接符,et1为所述伴随公钥的有效期,pk
1dkmc
为所述dkmc的域公钥。
[0118]
进一步地,所述装置还包括:私钥验证模块55,用于将利用所述第一终端标识对应的私钥生成的所述第一终端标识对应的公钥,作为第一公钥;将利用所述第一终端标识、所述伴随公钥信息以及所述dkmc的域公钥生成的所述第一终端的公钥,作为第二公钥;判断所述第一公钥与所述第二公钥是否相等;当判断所述第一公钥与所述第二公钥相等时,确定所述第一终端标识对应的公私钥对正确;当判断所述第一公钥与所述第二公钥不相等时,确定所述分发私钥因子和所述伴随公钥信息分发错误。
[0119]
进一步地,所述方法还包括:认证模块56,用于所述第一终端对第二终端发送的签名数据的认证过程;所述通信模块,还用于接收所述第二终端发送的签名数据,所述签名数据中包括所述第一终端标识、待验证数据、签名值、第二终端标识以及所述第二终端的伴随
公钥信息;所述认证模块具体用于:根据所述第二终端标识中的域标识,确定所述第二终端所在域的域公钥;根据所述第二终端标识、所述伴随公钥信息以及所述第二终端所在域的域公钥,得到所述第二终端的公钥;利用所述第二终端的公钥以及所述待验证数据对所述签名值进行验证,得到所述签名数据的认证结果。
[0120]
进一步地,所述认证模块还用于:判断所述第一终端标识中的域标识与所述第二终端标识中的域标识是否相同;当确定二者的所述域标识相同时,确定所述第二终端所在域与所述第一终端所在域相同,并将所述第一终端所在域的域公钥确定为所述第二终端所在域的域公钥;当确定二者的所述域标识不相同时,确定所述第二终端所在域与所述第一终端所在域不相同,并根据预设公钥基与所述第二终端标识中的域标识,得到所述第二终端所在域的域公钥。
[0121]
进一步地,所述认证模块还用于:选取所述第二终端标识中的域标识的哈希值的设定个数因子,并将所述设定个数因子划分为预设段;利用每个预设段中的设定低位数,查找所述预设公钥基中的选取因子,并将每个预设段中的剩余位数作为对应所述选取因子的选取因子系数;根据得到所述第二终端所在域的域公钥pk
2dkmc
,其中,id
2dkmc
为所述第二终端标识中的域标识,h()为哈希函数,为查询函数,bpkj为第j个选取因子,λj为第j个选取因子系数,k为所述选取因子的个数。
[0122]
进一步地,当所述伴随公钥信息中包括伴随公钥时,所述认证模块还用于:根据pk2=apk2 h(id2||apk2)
·
pk
2dkmc
,得到所述第二终端的公钥pk2,其中,apk2为所述伴随公钥,id2为所述第二终端标识,h()为哈希函数,“||”为连接符,pk
2dkmc
为所述第二终端所在域的域公钥。
[0123]
进一步地,当所述伴随公钥信息中包括伴随公钥和所述伴随公钥的有效期时,所述认证模块还用于:根据pk2=apk2 h(id2||apk2||et2)
·
pk
2dkmc
,得到所述第二终端的公钥pk2,其中,apk2为所述伴随公钥,id2为所述第二终端标识,h()为哈希函数,“||”为连接符,et2为所述伴随公钥的有效期,pk
2dkmc
为所述第二终端所在域的域公钥。
[0124]
本公开实施例提供的基于统一多域标识的密钥处理装置的具体工作原理及益处与本公开实施例二提供的基于统一多域标识的密钥处理方法的具体工作原理及益处相似,这里将不再赘述。
[0125]
实施例五
[0126]
图6是本公开实施例提供的一种基于统一多域标识的密钥处理装置的结构示意图。如图6所示,所述装置应用于dkmc,所述装置60包括:通信模块61,用于接收第一终端发送的密钥申请消息,所述密钥申请消息中包括所述第一终端标识以及与自选公钥因子;因子生成模块62,用于生成掩藏私钥因子;分发因子生成模块63,用于根据所述第一终端标识、所述掩藏私钥因子、所述自选公钥因子以及所述dkmc的域私钥,得到所述第一终端标识对应的分发私钥因子;所述通信模块还用于向所述第一终端发送包括所述分发私钥因子的密钥信息,以便所述第一终端利用所述自选私钥因子与所述分发私钥因子,得到所述第一终端标识对应的私钥。
[0127]
进一步地,所述分发因子生成模块具体用于:根据所述掩藏私钥因子以及所述自
选公钥因子,得到所述第一终端标识对应的伴随公钥信息;根据所述第一终端标识、所述掩藏私钥因子、所述伴随公钥信息以及所述dkmc的域私钥,得到所述第一终端标识对应的分发私钥因子。
[0128]
进一步地,所述分发因子生成模块还用于:根据hpk1=hsk1g,得到所述掩藏私钥因子hsk1对应的掩藏公钥因子hpk1;根据apk1=hpk1 upk1,得到所述第一终端标识对应的伴随公钥apk1,并生成所述伴随公钥的有效期,其中,upk1为所述自选公钥因子;将所述第一终端标识对应的伴随公钥以及所述伴随公钥的有效期,作为所述第一终端标识对应的伴随公钥信息。
[0129]
进一步地,所述分发因子生成模块还用于:根据dsk1=hsk1 h(id1||apk1||*et1)
·
sk
1dkmc
,得到所述第一终端标识对应的分发私钥因子dsk1,其中,h()为哈希函数,“||”为连接符,id1为所述第一终端标识,et1为所述伴随公钥的有效期,*表示其后的内容为可选因子,sk
1dkmc
为所述dkmc的域私钥。
[0130]
进一步地,所述密钥信息中还包括所述第一终端标识对应的伴随公钥信息。
[0131]
实施例六
[0132]
本公开实施例提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述实施例二所述的基于统一多域标识的密钥管理方法,和/或实施例三所述的基于统一多域标识的密钥管理方法。
[0133]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0134]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0135]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0136]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0137]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0138]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/
或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
[0139]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0140]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0141]
以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

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

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

相关文献