主权项 |
一种基于椭圆曲线密码的传感器网络密钥管理方法,其特征是包括如下步骤:(1)在全局初始化阶段确定以下参数,即①一个选择好的全局的阶为大素数q的椭圆曲线密码群<G,+>及其生成元g;②全局的哈希函数H和一个全局的对称加密算法E;③每个节点都预存储一个全局可信任证书中心的公钥PCA;④节点A的公私钥对(xA∈RZq*,yA=xAg),用CertA表示包含节点A公钥的证书,该证书由证书中心颁发;⑤节点B的公私钥对(xB∈RZq*,yB=xBg),用CertB表示包含节点B公钥的证书,该证书由证书中心颁发;上述符号RZq*表示从集合Zq*中随机选取一个数;(2)节点A随机选取一个整数kA∈RZq*,并计算u=kAg;再选择一个随机数RA;然后将消息RA||CertA||u发送给节点B;(3)节点B接收到消息后,首先使用公钥PCA验证CertA并提取节点A的公钥yA;若验证失败,则拒绝通信,协议失败;(4)若验证成功,节点B随机选取一个整数kB∈RZq*,并计算v=kBg,再选择一个随机数RB;然后依次计算KBA2=kByA、KAB2=xBu、v=kBgrB=H(RA||RB||KBA2||KAB2||v)、wB=rB mod q、以及sB=kB+wBxBmod q;(5)节点B将消息RA||RB||CertB||v||SB发送给节点A;(6)节点A接收到消息以后,首先使用公钥PCA验证CertA并提取A的公钥yA;若验证失败,则拒绝通信,协议失败;(7)若验证成功,则节点A比较接收到的RA与先前自己发送的RA是否相同;若不相同,则拒绝通信,协议失败;(8)若相同,则节点A计算KBA1=xAv、KAB1=kAyB、rB=H(RA||RB||KBA1||KAB1||v)、wB=rB mod q、以及v'=sBg‑wByB,然后比较v'=v是否成立;若不成立,则拒绝通信,协议失败;(9)若成立,则节点A将K=KBA1||KAB1作为双方共享的根密钥;然后节点A以K为密钥,将加密消息HMACK(RB||u)发送给节点B;(10)节点B接收到消息后,先使用K’=KBA2||KAB2,并同样计算HMACK'(RB||u);后比较HMACK'(RB||u)和自己接收到的HMACK(RB||u)两个结果是否相等;若不相等,则拒绝通信,协议失败;(11)若相等,则将K’=KBA2||KAB2作为双方协商共享的根密钥;协议 完成。 |