发明名称 6LoWPAN中树状拓扑的安全启动方法
摘要 6LoWPAN中树状拓扑的安全启动方法属于网络领域。该方法包括双向认证和信任评估两部分。在节点部署前,一个网络的部署者为每个节点分配一个唯一的ID和密钥,能够使两个节点只要知道对方的ID就能实现双向认证;孩子节点在选择父节点加入网络的时候,对候选的父节点进行信任评估,利用多目标决策技术中的效用值法对父节点距离基站的跳数、已消耗能量、时延三个指标进行综合评估,选出最佳的父节点加入网络。该方法节约了节点的能量,双向认证不需要基站的参与,只需要节点间ID和少量信息的交互,并可以抵御恶意节点的攻击。信任评估的引进,避免了单独依据能量或跳数的片面性,平衡了整个网络的能量消耗,延长了网络的寿命,可应用于少量节点移动的场景。
申请公布号 CN101984625A 申请公布日期 2011.03.09
申请号 CN201010531533.4 申请日期 2010.10.29
申请人 北京工业大学 发明人 何泾沙;于虹
分类号 H04L29/06(2006.01)I;H04L9/32(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 刘萍
主权项 1.一种6LoWPAN中树状拓扑的安全启动方法,其特征在于,包括以下步骤:1).节点预分配在节点部署之前,一个网络的部署者根据双线性对理论为每个节点分配一个唯一的ID和对应的私钥;对于节点i,分配一个唯一的ID<sub>i</sub>和对应的私钥S<sub>i</sub>;S<sub>i</sub>=[s]H<sub>1</sub>(ID<sub>i</sub>);其中:s作为整个网络的主密钥,只有部署者自己知道;H<sub>1</sub>是一个单向抗碰撞的哈希函数,将任意长度的字符串转换为加法群中的一个点;这样,两个节点能根据对方的ID计算出一个共享密钥;2).孩子节点对父节点的单向认证从基站开始,每个节点逐层加入网络;每个节点在它的通信范围内定期广播一个注册信息;FFD节点的通信范围为d<sub>R</sub>,RFD节点的通信范围为d<sub>r</sub>;初始状态时因为没有任何节点加入到网络中,所以只有基站能作为父节点响应那些与它一跳之远的孩子节点发出的注册信息;2.1孩子节点X广播一个带有nonce值N<sub>X</sub>的注册信息,收到此信息且已经加入网络的父节点对X进行响应;父节点A验证N<sub>X</sub>来判断是否为过期的信息,如果过期将直接丢弃,否则验证注册信息的完整性;然后A用ID<sub>X</sub>计算出与X的共享密钥<img file="FSA00000332520900011.GIF" wi="514" he="62" />并产生一个随机数R<sub>A</sub>,用K<sub>A,X</sub>加密R<sub>A</sub>,然后对ID<sub>A</sub>、ID<sub>X</sub>和随机数R<sub>A</sub>用哈希函数H<sub>3</sub>产生出一个认证信息AM<sub>A</sub>,这里的H<sub>3</sub>是一个单向抗碰撞的哈希函数,将任意长度的字符串转换为另一个任意长度的字符串,用来产生认证信息和验证信息;然后A将ID<sub>A</sub>、加密后的R<sub>A</sub>、认证信息AM<sub>A</sub>和用哈希函数H<sub>2</sub>作用于这些信息后产生的消息认证码一并发送给X;这里的H<sub>2</sub>是一个单向抗碰撞的哈希函数,将任意长度的字符串转换为一个定长的字符串,用来生成消息认证码;所有的父节点都以同样的方式对X进行响应;2.2X收到后,先检验消息是否完整,如果不完整则请求重传,否则计算出与A的共享密钥<img file="FSA00000332520900012.GIF" wi="485" he="64" />解密出R<sub>A</sub>,并用哈希函数H<sub>3</sub>作用于ID<sub>A</sub>、ID<sub>X</sub>和随机数R<sub>A</sub>产生出一个验证信息CM<sub>X</sub>,然后验证CM<sub>X</sub>是否与收到的AM<sub>A</sub>相等,如果不相等,则放弃认证过程,否则说明A是合法的;于是X将A加入到信任评估组中;同样地,X验证所有对它响应的父节点的合法性;2.3X请求信任评估组中的所有父节点发送数据;3).信任评估节点对信任评估组中的各父节点分别计算信任值,选择一个最佳的父节点加入网络;3.1收到X请求消息的所有父节点根据传感器节点的能耗模型可以计算出自己已经消耗的能量CE:CE=E<sub>elec</sub>*(k<sub>s</sub>+k<sub>r</sub>)+ε<sub>fs</sub>*k<sub>s</sub>*d<sub>R</sub><sup>2</sup>,其中:E<sub>elec</sub>为节点无线通信模块发送或接收单位比特数据电路能耗,ε<sub>fs</sub>为节点发射放大器传送每比特数据的能耗,k<sub>s</sub>为节点已经发送的流量,k<sub>r</sub>为节点已经接收到的流量,d<sub>R</sub>为一个FFD节点的通信范围;基站的HN为0,孩子节点在接入到父节点后,自身HN在父节点的HN上加1;如果CE超过节点能量消耗的上限CE<sub>max</sub>,或者HN超过节点跳数的上限HN<sub>max</sub>,则放弃发送数据给X;否则各父节点将ID<sub>i</sub>、HN<sub>i</sub>、CE<sub>i</sub>,产生的随机数R<sub>A</sub>,用计算出的共享密钥加密后发送给节点X;3.2X收到后,先验证消息的完整性,如果验证失败则发送请求要求重传数据;从X发送请求开始计时,等待一段节点所能容忍的时延上限TD<sub>max</sub>,在这个时间内收到的信息,X将准备处理,在TD<sub>max</sub>时段后收到的信息都将直接丢弃;如果在TD<sub>max</sub>内没有收到任何信息,则请求所有父节点重新发送数据;以上3.1和3.2中的HN<sub>max</sub>、CE<sub>max</sub>、TD<sub>max</sub>是由网络部署者事先定义的;3.3X对收到的数据进行处理;先分别计算三个指标的效用值:距离基站的跳数HN的效用值:<maths num="0001"><![CDATA[<math><mrow><msub><mi>U</mi><mi>HNi</mi></msub><mo>=</mo><mfrac><mrow><mover><mi>HN</mi><mo>&OverBar;</mo></mover><mo>-</mo><msub><mi>HN</mi><mi>i</mi></msub></mrow><mrow><mover><mi>HN</mi><mo>&OverBar;</mo></mover><mo>-</mo><munder><mi>HN</mi><mo>&OverBar;</mo></munder></mrow></mfrac></mrow></math>]]></maths>已经消耗的能量CE的效用值:<maths num="0002"><![CDATA[<math><mrow><msub><mi>U</mi><mi>CEi</mi></msub><mo>=</mo><mfrac><mrow><mover><mi>CE</mi><mo>&OverBar;</mo></mover><mo>-</mo><msub><mi>CE</mi><mi>i</mi></msub></mrow><mrow><mover><mi>CE</mi><mo>&OverBar;</mo></mover><mo>-</mo><munder><mi>CE</mi><mo>&OverBar;</mo></munder></mrow></mfrac></mrow></math>]]></maths>时延TD的效用值:<maths num="0003"><![CDATA[<math><mrow><msub><mi>U</mi><mi>TDi</mi></msub><mo>=</mo><mfrac><mrow><mover><mi>TD</mi><mo>&OverBar;</mo></mover><mo>-</mo><msub><mi>TD</mi><mi>i</mi></msub></mrow><mrow><mover><mi>TD</mi><mo>&OverBar;</mo></mover><mo>-</mo><munder><mi>TD</mi><mo>&OverBar;</mo></munder></mrow></mfrac></mrow></math>]]></maths>其中:TD<sub>i</sub>为X发送请求给父节点i的时间与接收到父节点i发来数据的时间之差,<img file="FSA00000332520900024.GIF" wi="74" he="45" />和<u>HN</u>分别为信任评估组中所有HN<sub>i</sub>中的最大值与最小值,<img file="FSA00000332520900025.GIF" wi="64" he="46" />和<u>CE</u>分别为信任评估组中所有CE<sub>i</sub>中的最大值与最小值,<img file="FSA00000332520900026.GIF" wi="69" he="45" />和<u>TD</u>分别为信任评估组中所有TD<sub>i</sub>中的最大值与最小值;3.4X根据多目标决策技术中的效用值法计算信任评估组中各父节点的信任值:T<sub>i</sub>=a*U<sub>HNi</sub>+b*U<sub>CEi</sub>+c*U<sub>TDi</sub>,其中:a、b、c分别为HN、CE、TD的权重,是由网络部署者事先定义的;3.5X产生一个随机数R<sub>X</sub>,用先前计算的共享密钥K<sub>X,i</sub>加密R<sub>X</sub>,对ID<sub>j</sub>、ID<sub>X、j</sub>先前产生的随机数R<sub>j</sub>和X产生的随机数R<sub>X</sub>用哈希函数H<sub>3</sub>产生出一个认证信息AM<sub>X</sub>,并将ID<sub>X</sub>、加密后的R<sub>X</sub>、认证信息AM<sub>X</sub>和用哈希函数H<sub>2</sub>作用于这些信息后产生的消息认证码一并发送给j,请求认证;4).父节点对孩子节点的单向认证4.1父节点j收到信息后,先验证消息的完整性,如果验证失败则要求重传,否则用先前计算的共享密钥K<sub>j,X</sub>解密出随机数R<sub>X</sub>,并用哈希函数H<sub>3</sub>作用于ID<sub>j</sub>、ID<sub>X</sub>、随机数R<sub>j</sub>和随机数R<sub>X</sub>产生出一个验证信息CM<sub>j</sub>,然后验证CM<sub>j</sub>是否与收到的AM<sub>X</sub>相等,如果不相等,则放弃认证过程,否则说明X是合法的;于是j将X加入到自己的孩子列表中;4.2节点j通知X认证成功。
地址 100124 北京市朝阳区平乐园100号