一种体域网主密钥生成方法_2

文档序号:8514477阅读:来源:国知局
48]其中,所述第一密钥变量值和第二密钥变量值相同。
[0049]由此可见,本发明实施例所提供的体域网主密钥生成方法中,所述中心节点基于所述目标节点的第一公钥和第二公钥、所述中心节点的第一私钥和第二私钥生成第一密钥变量值,以得到主密钥,而不是仅基于自身的私钥和所述目标节点的公钥生成,同理,所述目标节点基于所述中心节点的第一公钥和第二公钥、所述目标节点的第一私钥和第二私钥生成第二密钥变量值,以得到主密钥,而不是仅基于自身的私钥和所述中心节点的公钥生成,即使所述中心节点的第一公钥和所述目标节点的第一公钥被中间人获取,却无法获取所述中心节点的第二公钥和所述目标节点的第二公钥,从而使得中间人无法计算出所述第一密钥变量(或所述第二密钥变量),解决了基于椭圆曲线的Diffie-Hellman密钥交换协议无法抵御中间人的问题,提高了信息传输的安全性。
[0050]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0051]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
[0052]本发明实施例提供了一种体域网主密钥生成方法,所述体域网网络包括一个中心节点和至少一个目标节点,如图1所示,该方法包括:
[0053]步骤1:所述中心节点接收所述目标节点的第一公钥、由所述中心节点基于所述目标节点的第一公钥和第二公钥、所述中心节点的第一私钥和第二私钥生成第一密钥变量值,以得到主密钥;
[0054]步骤2:所述目标节点接收所述中心节点的第一公钥,由所述目标节点基于所述中心节点的第一公钥和第二公钥、所述目标节点的第一私钥和第二私钥生成第二密钥变量值,以得到主密钥;
[0055]其中,所述第一密钥变量值和第二密钥变量值相同。
[0056]在上述实施例的基础上,在本发明的一个实施例中,所述体域网网络只包括一个目标节点,所述第一密钥变量值的计算公式为:
[0057]DHKeyI = xOXPKl+SKOXyl ;
[0058]其中,DHKeyl表示第一密钥变量值,SKO表示所述中心节点的第一私钥,x0表示所述中心节点的第二私钥,PKl表示所述目标节点的第一公钥,yl表示所述目标节点的第二公钥;
[0059]所述第二密钥变量值的计算公式为:
[0060]DHKey2 = xl X PK0+SK1 X y0 ;
[0061]其中,DHKey2表示第二密钥变量值,SKl表示所述目标节点的第一私钥,xl表示目标节点的第二私钥,PKO表示所述中心节点的第一公钥,y0表示所述中心节点的第二公钥。
[0062]在本发明的其他实施例中,所述第一密钥变量值和第二密钥变量值的计算公式还可以为其他计算公式,本发明对此并不做限定,具体视情况而定。
[0063]由上可知,本发明实施例所提供的体域网主密钥生成方法中,所述中心节点基于所述目标节点的第一公钥和第二公钥、所述中心节点的第一私钥和第二私钥生成第一密钥变量值,以得到主密钥,而不是仅基于自身的第一私钥和所述目标节点的第一公钥生成,同理,所述目标节点基于所述中心节点的第一公钥和第二公钥、所述目标节点的第一私钥和第二私钥生成第二密钥变量值,以得到主密钥,而不是仅基于自身的第一私钥和所述中心节点的第一公钥生成,即使所述中心节点的第一公钥和所述目标节点的第一公钥被中间人获取,却无法获取所述中心节点的第二公钥和所述目标节点的第二公钥,从而使得中间人无法计算出所述第一密钥变量(或所述第二密钥变量),解决了基于椭圆曲线的Diffie-Hellman密钥交换协议无法抵御中间人的问题,提高了信息传输的安全性。
[0064]需要说明的是,在上述任一实施例的基础上,在本发明的一个实施例中,所述公钥与所述私钥的计算公式为:公钥=私钥XG;其中,X是椭圆曲线上的特有乘法运算,在该乘法运算中,由私钥和G可以得出公钥,但由公钥和G无法得出私钥。
[0065]在上述任一实施例的基础上,在本发明的一个实施例中,所述中心节点内预先设置有所述中心节点的第二私钥、第二公钥,以及所述目标节点的第二公钥。在本发明的另一个实施例中,在所述中心节点接收所述目标节点的第一公钥前,所述中心节点选取自身的第二私钥,生成自身的第二公钥,并接收所述目标节点的第二公钥,本发明对此并不做限定,具体视情况而定。
[0066]同理,上述任一实施例的基础上,在本发明的一个实施例中,所述目标节点内预先设置有所述目标节点的第二私钥、第二公钥以及所述中心节点的第二公钥。在本发明的另一个实施例中,在所述目标节点接收所述中心节点的第一公钥之前,所述目标节点选取自身的第二私钥,生成自身的第二公钥,并接收所述中心节点的第二公钥,本发明对此并不做限定,具体视情况而定。
[0067]在本发明的其他实施例中,所述体域网网络还可以包括多个目标节点,本发明对此并不做限定,具体视情况而定。
[0068]需要说明的是,当所述体域网网络包括多个目标节点时,在本发明的一个实施例中,所述中心节点内预先设置有各个目标节点的第二公钥,各个目标节点内均设置有所述中心节点的第二公钥,在本实施例中,所述中心节点内还预先设置有自身的第二私钥和第二公钥,各个目标节点内也预先设置有自身的第二私钥和第二公钥。在本发明的另一个实施例中,在所述中心节点接收所述目标节点的第一公钥前,所述中心节点选取自身的第二私钥,生成自身的第二公钥,并接收各个目标节点的第二公钥,各个目标节点选取自身的第二私钥,生成自身的第二公钥,并接收所述中心节点的第二公钥,本发明对此并不做限定,具体视情况而定。
[0069]下面结合一具体实施例对本发明实施例所提供的体域网主密钥生成方法进行说明。需要说明的是,在本实施例中,所述中心节点hub内预先设置有所述中心节点hub的第二私钥xO和第二公钥y0,以及所述目标节点nodel的第二公钥yl ;所述目标节点nodel内预先设置有所述目标节点nodel的第二私钥xl和第二公钥yl,以及所述中心节点hub的第二公钥y0。
[0070]如图2所示,该体域网主密钥生成方法包括:
[0071]SlO:所述中心节点hub选取自身的第一私钥SK0,生成自身的第一公钥ΡΚ0,其中,PKO = SK0XG,然后选取一个第一随机变量NonceO,将所述中心节点的第一公钥ΡΚ0,所述中心节点的地址AddressO、所述目标节点的地址Addressl以及所述第一随机变量NonceO一起发送给所述目标节点nodel ;
[0072]所述目标节点nodel选取自身的第一私钥SK1,生成自身的第一公钥PK1,其中,PKl = SK1XG,然后选取一个第二随机变量Noncel,将所述目标节点的第一公钥PK1、所述中心节点的地址AddressO、所述目标节点的地址Addressl以及所述第二随机变量Noncel一起发送给所述中心节点hub ;
[0073]S20:所述中心节点接收到所述目标节点的第一公钥PKl后,利用公式DHKeyl =xOXPKI+SKOXyl,计算第一钥变量值 DHKeyl ;
[0074]所述目标节点接收到所述中心节点的第一公钥PKO后,利用公式DHKey2 =xl X PK0+SK1 X y0,计算第二密钥变量值DHKey2 ;
[0075]S30:所述中心节点计算得到所述第一密钥变量值DHKeyl后,选取所述第一密钥变量值右边的128位作为第一中间变量Temp_ll,即Temp_ll = RMB_128 (DHKeyl),然后利用所述第一中间变量Temp_ll作为压缩密钥,使用压缩算法分别对strl和strO序列进行压缩,获得 MK_KMAC_3B = CMAC(Temp_ll, strl, 64)和 MK_KMAC_4B = CMAC(Temp_ll, strO,64),其中,strO由所述目标节点的地址、所述中心节点的地址、第一随机变量和第二随机变量相连而得,strl由所述中心节点的地址,所述目标节点的地址,所述第二随机变量和所述第一随机变量相连而得,即
[0076]strO = AddressO Addressl NonceO Noncel,
[0077]strl = Addressl AddressO Noncel NonceO ;
[0078]所述目标节点计算得到所述第二密钥变量值DHKey2后,选取所述第二密钥变量值右边的128位作为第二中间变量Temp_12,即Temp_12 = RMB_128 (
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1