主权项 |
一种无线传感网络中基于密码hash计算的认证方法,包括初始化、认证与建立密钥阶段、旧节点撤销、新节点加入四个部分,其中,(1)初始化部分:假设系统中共N个普通节点,BS作为一个特殊节点负责为它们产生密钥并存储所有节点的秘密信息,首先对于普通节点中的每一个,通过BS为该普通节点产生与其他一些普通节点及BS节点本身的共享密钥,并将共享密钥与对应的节点ID一起组成认证集,然后将该普通节点的认证集和hash函数一起预加载到该节点中,并将该节点的认证集中的共享密钥与该节点的ID一起加载到与该节点相对应的普通节点的认证集中,保证共享密钥出现在成对的节点中;(2)认证与建立密钥部分:普通节点之间需要认证并建立会话密钥,普通节点与特殊节点BS之间同样也需要认证和建立会话密钥,设A和B分别为两个需要认证和建立会话密钥的节点,两者之间的交互过程如下:步骤1:节点A产生随机数t<sub>A</sub>,然后广播ID<sub>A</sub>,t<sub>A</sub>;步骤2:节点B收到消息后产生随机数t<sub>B</sub>,计算K<sub>AB</sub>=h(k<sub>AB</sub>‖t<sub>A</sub>‖t<sub>B</sub>)、Z<sub>B</sub>=h(ID<sub>B</sub>‖t<sub>B</sub>‖K<sub>AB</sub>),然后广播ID<sub>B</sub>,t<sub>B</sub>,Z<sub>B</sub>,式中,‖为前后两个字符之间的连接运算,h()为对括号内的字符计算哈希函数值;步骤3:节点A收到消息后计算K<sub>AB</sub>=h(k<sub>AB</sub>‖t<sub>A</sub>‖t<sub>B</sub>),进行hash计算后检查Z<sub>B</sub>是否正确,如果Z<sub>B</sub>正确则节点A确认B的身份和会话密钥K<sub>AB</sub>,然后计算Z<sub>A</sub>=h(ID<sub>A</sub>‖t<sub>A</sub>‖K<sub>AB</sub>),并广播Z<sub>A</sub>,否则丢弃消息,认证失败;步骤4:节点B收到消息后对(ID<sub>A</sub>‖t<sub>A</sub>‖K<sub>AB</sub>)进行hash计算,检查Z<sub>A</sub>是否正确,如果正确,则节点B确认A的身份及会话密钥K<sub>AB</sub>,否则丢弃消息,认证失败;其中的旧节点撤销部分为:设节点N<sub>X</sub>为网络中某个已存在并需要退出网络的旧节点,BS将撤销旧节点N<sub>X</sub>的消息发送给那些与N<sub>X</sub>有共享密钥k<sub>iX</sub>的普通节点N<sub>i</sub>,然后再撤销旧节点N<sub>X</sub>在BS中的相关信息,BS与普通节点N<sub>i</sub>的交互过程如下:步骤1:BS产生随机数t<sub>S</sub>,然后广播R_D,<img file="FDA0000666032850000011.GIF" wi="110" he="66" />t<sub>S</sub>,其中R_D是旧节点撤销的标志,<img file="FDA0000666032850000012.GIF" wi="90" he="65" />为普通节点N<sub>i</sub>的ID;步骤2:节点N<sub>i</sub>收到消息后产生随机数t<sub>i</sub>,用与BS的共享密钥k<sub>is</sub>加密<img file="FDA0000666032850000013.GIF" wi="374" he="69" />得到Z<sub>i</sub>,然后发送<img file="FDA0000666032850000014.GIF" wi="113" he="69" />t<sub>i</sub>,Z<sub>i</sub>;步骤3:BS用其与节点N<sub>i</sub>的共享密钥k<sub>is</sub>对Z<sub>i</sub>进行解密检查Z<sub>i</sub>的正确性,如果正确,则利用k<sub>is</sub>对<img file="FDA0000666032850000015.GIF" wi="583" he="70" />进行加密计算并得到Z<sub>S</sub>,其中,ID<sub>X</sub>是要撤销的旧节点N<sub>X</sub>的ID,k<sub>iX</sub>是旧节点N<sub>X</sub>与普通节点N<sub>i</sub>的共享密钥,然后BS发送Z<sub>S</sub>;步骤4:节点N<sub>i</sub>收到消息后用共享密钥k<sub>is</sub>对Z<sub>S</sub>进行解密并检查R_D、<img file="FDA0000666032850000016.GIF" wi="117" he="67" />t<sub>S</sub>、t<sub>i</sub>是否正确,如果正确则认证BS,然后从AS<sub>i</sub>中删除ID<sub>X</sub>、k<sub>iX</sub>;其中的新节点加入部分:新节点N<sub>n+1</sub>加入网络中时,BS首先为它产生与其他已存在节点的共享密钥组成该节点的认证集(AS<sub>n+1</sub>),然后BS与已存在的一些普通节点进行通信,使他们添加有关新节点的记录;BS与普通节点N<sub>i</sub>的通信过程如下:步骤1:BS产生随机数t<sub>S</sub>,然后广播R_A,<img file="FDA0000666032850000017.GIF" wi="108" he="69" />t<sub>S</sub>,其中R_A是新节点加入的标志;步骤2:节点N<sub>i</sub>收到消息后产生随机数t<sub>i</sub>,用与BS的共享密钥k<sub>is</sub>加密<img file="FDA0000666032850000018.GIF" wi="372" he="75" />得到Z<sub>i</sub>,然后发送<img file="FDA0000666032850000019.GIF" wi="106" he="69" />t<sub>i</sub>,Z<sub>i</sub>;步骤3:BS用其与节点N<sub>i</sub>的共享密钥k<sub>is</sub>对Z<sub>i</sub>进行解密检查Z<sub>i</sub>的正确性,如果正确,则用k<sub>is</sub>对<img file="FDA0000666032850000021.GIF" wi="647" he="72" />进行加密得到Z<sub>S</sub>,其中,ID<sub>n+1</sub>是要加入的新节点N<sub>n+1</sub>的ID,k<sub>i(n+1)</sub>是新节点N<sub>n+1</sub>与普通节点N<sub>i</sub>的共享密钥,然后BS发送Z<sub>S</sub>;步骤4:节点N<sub>i</sub>收到消息后用共享密钥k<sub>is</sub>对Z<sub>S</sub>进行解密并检查R_A、<img file="FDA0000666032850000022.GIF" wi="111" he="67" />t<sub>S</sub>、t<sub>i</sub>是否正确,如果正确则认证BS,然后添加ID<sub>n+1</sub>、k<sub>i(n+1)</sub>到N<sub>i</sub>的认证集中。 |