发明名称 一种无线传感网分簇安全路由方法
摘要 本发明提出一种无线传感网分簇路由的安全方法,包括簇内密钥协商、簇内数据发送和簇头向基站发送数据阶段。在簇内密钥协商阶段,该方法在簇内分配密钥;在簇内数据发送和簇头向基站发送数据阶段,建立安全的传输信道,防范攻击者俘获传感节点后,对现有的网络进行攻击,如:窃听,截取及修改数据和DoS(DenialofService,拒绝服务)攻击等;为了能够缩小及定位攻击源,采用了轻量级的安全方法即基于RC5的密钥协商和认证方法,实现了语义上的安全;为了防止Rushing(冲击方式)攻击,采用完整的簇内双向(echo-back)认证方法;周期性更换全局密钥机制有效降低了节点俘获后入侵者攻击获得全局主密钥的风险,保证传输数据的机密性、完整性和及时性。
申请公布号 CN102547693B 申请公布日期 2014.09.10
申请号 CN201210036932.2 申请日期 2012.02.17
申请人 南京邮电大学 发明人 管有庆;黄超
分类号 H04W12/04(2009.01)I;H04W12/06(2009.01)I 主分类号 H04W12/04(2009.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 叶连生
主权项 一种无线传感网分簇安全路由方法,其特征在于该方法具体包括以下步骤: 1.)安全路由方法中由簇头、普通节点和基站BS三方参与,整个网络初始化前,每个节点分配了全局主密钥K<sub>pri</sub>; 2.)无线传感网分簇安全路由方法包括簇内密钥协商阶段、簇内数据发送阶段和簇头节点向基站BS发送数据阶段,涉及的消息集合{广播簇头消息、加入请求消息、广播时隙消息、簇内数据消息、基站响应消息、基站回应响应消息、基站数据消息、基站回应消息}; 3.)簇内密钥协商阶段,包括簇头节点消息处理流程,和普通节点处理流程; 在簇头节点消息处理流程中,具体操作为:a.节点自举为簇头向网络中广播簇头消息;b.簇头节点接收普通节点发送的加入请求消息;使用全局主密钥加密该普通节点的节点ID、会话密钥K<sub>xy</sub>和nounce+1的值,形成加入请求JOIN_REQ消息发送给该节点选择的簇头节点;c.使用K<sub>pri</sub>和计数初值C<sub>init</sub>,通过RC5解密消息体获得会话密钥K<sub>xy</sub>和节点随机数;d.将保存的广播簇头消息中的簇头节点随机数和接收到加入请求消息中的接收随机数比较,比较接收随机数减簇头节点随机数的差是否为一,如果不是,则未通过认证,转到g;e.从消息中获得的节点号和会话密钥K<sub>xy</sub>加入到簇头的簇内节点列表中;f.由会话密钥K<sub>xy</sub>,派生出K<sub>encrypt</sub>,K<sub>MAC</sub>,K<sub>random</sub>密钥,MAC(K,x)作为伪随机数生成函数来派生密钥,这样可以允许更多的代码重用,因为MAC加密特性可以作为一个好的伪随机数生成函数,所有由这种方式产生的密钥是计算独立的,即使攻击者能够破解其中的一个密钥,他也不能依靠这个密钥获得会话密钥K<sub>xy</sub>或是其他密钥;g.释放加入请求消息体;h.判断是否进入广播时隙阶段,如果不是,则转到b;i.向簇内节点广播时隙消息; 在普通节点消息处理流程中,具体操作为:a.接收广播簇头消息;b.使用K<sub>pri</sub>和C<sub>init</sub>,通过RC5解密消息体,进入LEACH协议选择簇头过程,选择簇头后,保存簇头的节点号为簇头节点号,保存簇头随机数,确定簇头和普通节点之间的会话密钥,选择节点号小的节点产生的随机数作为会话密钥K<sub>xy</sub>,发送加入请求消息;c.接收广播时隙消息;d.使用K<sub>pri</sub>和C<sub>init</sub>,通过RC5解密消息体,获得发送时隙序号和发送者的节点号,判断发送者的节点号是否和保存的簇头节点号相同,若不相同,则转到c;e.将时隙信息保存,释放消息体,进入数据发送阶段; 4.)簇内数据发送阶段,包括普通节点处理流程,和簇头节点处理流程; 在普通节点处理流程中,具体操作为:a.普通节点采集数据;b.用加密密钥K<sub>encrypt</sub>加密后单播发送给簇头节点,数据部分包括采集的信息和下一次加密用的计数值,为了防止攻击者恶意篡改消息,还在消息的尾部增加了对发送数据验证的散列值,构造成簇内数据消息发送给所属簇的簇头; 在簇头节点处理流程中,具体操作为:a.为了防止攻击者篡改数据,首先簇头节点计算数据部分的散列值,和消息中的散列值对比,如果不相同,则丢弃数据部分,如果相同即未 篡改,则将接收到的数据部分用加密密钥K<sub>encrypt</sub>解密获得数据;b.对数据进行融合; 5.)簇头节点向BS发送数据阶段,主要有簇头节点处理流程,和BS处理流程; 在簇头节点处理流程中,具体操作为:a.生成原始随机数r<sub>i</sub>和随机数nounce;b.生成派生随机数y<sub>i</sub>=MAC(K<sub>pri</sub>,r<sub>i</sub>);c.构造基站响应消息,发送给基站;d.在20秒内如果未接收到基站回应响应消息,则转到c;e.获得基站回应响应消息中数据部分作为数据部分1;f.用y<sub>i</sub>对随机数nounce加密得到数据部分2;g.将数据部分1与数据部分2比较,如果相同,则BS通过认证;认证流程:第一步,簇头节点i将r<sub>i</sub>用BS_ECHO消息发送给BS,作为挑战,第二步,BS接收到BS_ECHO消息,得到原始随机数r<sub>i</sub>和随机数nounce,使用y<sub>i</sub>=MAC(K<sub>pri</sub>,r<sub>i</sub>),这里K<sub>pri</sub>为当前的全局主密钥,获得y<sub>i</sub>;使用y<sub>i</sub>加密nounce,构造BS_ECHOBACK消息回应挑战;第三步,簇头节点i接收到回应挑战消息BS_ECHOBACK,使用相同的y<sub>i</sub>验证消息,如果相同,则是合法基站,否则是攻击者;而后向BS发送基站数据消息;如果不相同,则BS未通过认证;h.释放基站回应响应消息; 在BS消息处理流程中,具体操作为:a.接收基站响应消息;b.从基站响应消息中得到原始随机数r<sub>i</sub>和随机数;c.生成派生随机数y<sub>i</sub>=MAC(K<sub>pri</sub>,r<sub>i</sub>);d.构造基站回应响应消息,并发送给对应的簇头节点;e.判断是否接收到基站数据消息,如果未接收到,则转a;f.使用y<sub>i</sub>解密消息体,得到消息并存储;g.构造基站回应消息,向全网广播,更新下一轮全局主密钥;h.释放消息体。 
地址 210003 江苏省南京市新模范马路66号