层簇式无线自组织网络中的节点合法性多重认证方法

文档序号:7946033阅读:180来源:国知局
专利名称:层簇式无线自组织网络中的节点合法性多重认证方法
技术领域
本发明涉及Ad hoc网络(无线自组织网络,现在多称为Ad hoc网络,其中Ad hoc是专有名 词,无英文全称)中节点合法性(包括身份合法性和所发送消息包合法性)的安全认证机制, 属于无线通信网络和信息安全技术的交叉领域。
背景技术
Ad hoc网络由众多具有无线通信能力、计算处理能力和存储能力的网络节点通过自组织方 式形成,这些节点可以是无线接入的微型电脑设备、小型无线路由器、手机或智能PDA、无线传 感器节点等微型终端设备,节点与节点之间通过多跳路由进行通信,它们遵从相同的物理层、 链路层、路由层以及应用层协议或者通过特定的网关节点将异构的协议进行转换。
由于Ad hoc网络常常部署在野外,节点间的无线链接较为脆弱、拓扑结构动态变化、以及 无线信道的开放性等特征,使得这种网络面临许多安全问题。例如,入侵者可以利用相同的频 率、相位等来接收到Ad hoc网络中传输的无线信号,从而获取其中的数据信息;入侵者还可以 伪造成该网络合法的节点,直接参与数据包的发送与接收。因此,Ad hoc网络节点间的通信需 要一种合适的认证方法,能够使得网络中任意的合法节点能够判别与之通信的其它节点身份的 合法性和所发送来的消息数据包的合法性。
Ad hoc网络按照网络的拓扑结构来分类,可以分成平面式结构和层簇式结构。基于平面式 结构的Ad hoc网络中各节点的地位是完全对等的,没有任何集中式的管理,网络安全机制中要 用到的一些关键信息(例如密钥信息)由每个节点共同协商产生。如此一来,当网络规模庞大 节点数众多时,将很难实现这种共同协商的机制,即便实现之后,安全关键信息的更改和撤销 等操作也需要所有节点参与,这将极大降低网络运行的效率。层簇式结构从一定程度上克服了 平面式网络结构的缺陷,Adhoc网络将按照某种现有算法(例如Leach算法,具体釆用何种分簇 算法对本发明要保护的内容并无影响)被划分为多个簇,每个簇在地理位置上位于不同的区域, 簇中含有多个网络节点(簇与簇之间的节点没有交集);另外,将按照某种算法(例如Leach算 法,具体采用何种选举簇头的算法对本发明要保护的内容并无影响)选择出某个节点担任该簇 的簇头,负责该簇的一些管理工作,例如数据包的汇聚、安全信息和密钥管理、与其它簇头节 点的交互等等,具体的拓扑结构如图l所示。
本发明将基于图l所示的层簇式结构的Ad hoc网络,提供一种能够认证节点身份和所发送 消息包合法性的安全方法。相比于现有的用于层簇式Ad hoc网络的安全认证方法(例如基于公 钥密码体制的认证方法、基于身份标识的认证方法、基于门限方案的认证方法),其特殊性和创 新性在于该方法提供了多重认证机制,同时实现节点身份和消息包的认证,克服了传统方法中 认证形式较单一、仅能实现身份或消息包中某一种认证、安全强度不足的缺点,且该方法在认 证的流程步骤中与传统方法也有显著的不同。

发明内容
技术问题本发明的目的主要是针对层簇式结构的Adh0C网络,提出一种层簇式无线自组织网络中的节点合法性多重认证方法,防止恶意节点或者入侵者伪造消息包直接参与网络的通 信,或者冒充合法身份的节点获取网络中传输的重要数据信息以及丢弃、篡改和重放数据。
技术方案本发明的层簇式Ad hoc网络中的节点合法性多重认证方法为-
首先给出几个定义
邻居节点任意节点A—跳范围内的节点称之为其邻居节点,A可与其邻居节点直接通信, 但并非A所有的邻居节点都和其在同一簇中;举例说明如图l所示,节点8的邻居节点为节点4、 节点5和节点6,其中,节点4、节点5和节点8都位于簇1,而节点6位于簇2。
非邻居节点任意节点A除了邻居节点之外不能直接通信的节点称之为其非邻居节点,可能 存在许多A的非邻居节点与A在同一簇中;举例说明如图l所示,节点4与节点1位于同一簇内,但 节点4不是节点1的邻居节点。
上一级邻居节点和下一级邻居节点同一簇内的两个节点A和B互为邻居节点,以簇头为目 标点,针对某一条路径,假设节点B沿该路径必须通过节点A才能到达簇头节点,则称节点B为节 点A的下一级邻居节点,反之节点A称之为节点B的上一级邻居节点;举例说明如图l所示,在簇l 中,节点10与节点1互为邻居节点,节点10到达簇头节点的一条路径需要经过节点1,则称节点l 为节点10的上一级邻居节点,节点10为节点1的下一级邻居节点。
由于Ad hoc网络的规模可能较大,簇头节点并不一定能和簇内的所有成员节点进行直接通 信,而各个簇头节点之间也并不一定能够直接通信,在这种情况下,则要通过其它节点进行转 发消息包。举例说明,如图1所示,簇1中的簇头节点需要和同簇的节点4进行通信,需要其邻居 节点8来跳转;簇1中的簇头节点需要和簇3中的簇头节点进行通信,则需要通过它的邻居簇3中 的节点7进行跳转。
本发明针对层簇式的网络拓扑结构,将多重认证方法流程划分为三个部分,第一部分是邻 居节点的认证过程,第二部分是簇内节点之间的认证,第三部分是簇间节点之间的认证。在描 述具体认证流程之前,需要对整个Ad hoc网络的安全信息进行初始化。
网络部署之前,每个节点存储一个身份标识(下文用縮写形式ID来表征身份标识)产生函 数/(;0和一个素数集合1={力,取&力,……}(假设该集合中逾的个数是网络最大容量节点 个数的1.5倍,对于不同的xf直,利用/Or)将产生各不相同的ID值),用于节点ID号的生成。每个 节点存储一个相同的预配置密钥舒卩一个各不相同的会话密钥,皿(此处定义的两个密钥均为对 称密钥,也就是既可以用于加密操作也可用于解密操作,其中/历'为网络中第i个节点的身份标 识,在此声明,i值仅用于区分不同的节点,并无实际意义),用于不同信息的加密操作。每个 节点存储一个相同的有限随机数产生器,可以产生随机数必",(其中ZW为网络中第i个节点的身 份标识),该随机数产生器具备以下三个特征(1)产生随机数的总的个数要远大于网络最大容 量节点个数;(2)能验证某一随机数/iW是否由其产生;(3)多个由其产生的随机数的异或操作 结果仍然是其产生的随机数之一,也就是说,对于t个由其产生的随机数集合Uk, y 皿,……, 必。J,总能找到一个由其产生的随机数必&=必a④必^④……④必w,必&可能与该集合中的某一 随机数相等,也可能不等。每个节点存储一个单向Hash散列函数(也称为单向哈希散列函数) 《(劝,其中湖初始值为有限随机数产生器所产生某个随机数。每个节点存储一个相同的密钥产 生器, 一旦该节点被选为簇头节点,则可以选择一个算子作为输入,利用该密钥产生器产生一 个密钥,该密钥为对称密钥,即可用于加密和解密操作。
配置完以上信息之后,网络开始部署,如前所述,基于层簇式结构,整个Ad hoc网络被分
6为若干个簇。每个簇应该是连通的(即任何一个节点至少能找到一条路径到达簇内其它节点) 并且具有唯一的簇标识,然后选举出各自的簇头节点负责该簇的一些数据管理和安全信息发布 工作。 方法流程
该认证方法的完整过程将具体描述如下 一邻居节点的认证流程
步骤1)每一节点利用ID产生函数/tx)产生唯一能标识自身的ID值; 步骤2)每一节点利用随机数产生器产生某一随机数/fe
步骤3)每一节点将ID值、产生的随机数必。和自身的会话密钥整合成数据包,利用预配置 密钥,进行加密后广播出去;
步骤4)发送节点广播的目的是为了发现邻居节点,其一跳范围内的任一接收节点收到步 骤3)中的广播包,首先利用预配置密钥《对数据包进行解密,从而获取到发送节点的ID值、 随机数值和会话密钥,并且接收节点不再对收到的数据包进行转发;
步骤5)承接于步骤4),该接收节点求出ID产生函数/0r)的反函数f1 Cr),将发送节点的 ID值作为y值输入,査看获得的函数值;r是否在素数集合X中,若是,则说明该节点的ID值 是合法的,否则为非法节点,从而完成邻居身份的第一步认证;
步骤6)承接于步骤5),接收节点进一步利用有限随机数产生器验证发送节点的随机数值 是否能被该产生器识别,若能,则进一步验证该节点的合法性,否则为非法节点;
步骤7)通过步骤5)和6)的认证之后,该节点在其邻居列表中记录下发送节点的ID值、 随机数值和会话密钥,认定其为邻居节点,从而完成了邻居节点身份的合法性认证;
步骤8)网络中每一个节点都执行完步骤4)到步骤7),将其所有邻居节点的信息(包括 ID值、随机数值和会话密钥)存贮到其邻居列表中;
步骤9)若此时网络中某个节点(暂称为发送源节点)需要和其邻居列表中的某一个节点 (暂称为目标邻居节点)进行通信,它将其自身的ID值、通信的内容、自身的随机数值和目标 邻居节点的随机数值异或操作的结果用预配置密钥J进行加密,将此加密的结果和目标邻居节 点的ID值进一步用目标邻居节点的会话密钥加密成数据包,广播发送出去;
步骤IO)承接于步骤9),该发送源节点的所有邻居节点将会收到此数据包,但仅有目标邻 居节点能够用其会话密钥进行解密,得到其ID值,从而确认该数据包是发送给它的,其它节点 将销毁该数据包且不再进行转发;
步骤11)承接于步骤10),目标邻居节点解密后还得到另一个加密的结果,它将用预配置 密钥《继续解密,并采用步骤5)的方法验证发送源节点的ID值,通过第一步认证后再采用步 骤6)的方法验证发送源节点的随机数异或值,通过后可确认该数据包确实是发送源节点所发 送,从而完成了邻居节点所发送消息包的合法性认证。
二簇内节点的认证流程
在该认证流程开始之前,簇头节点需要在本簇发布簇内密钥和Hash函数值等信息,具体 步骤如下-
步骤1)簇头节点首先将其邻居列表中部分节点的随机数值进行异或操作,作为产生簇内 密钥的算子,利用该算子和密钥发生器产生簇内通信密钥
步骤2)簇头节点利用其自身随机数值(暂记为必)和单向Hash散列函数计算出夙厄);步骤3)簇头节点将自身的ID值、&、抓瓜)以及计数为1的整数值(该整数值用来记录数 据包的跳数)整合成数据包,分别用其邻居节点的会话密钥进行加密,加密后得到的数据包、 该数据包所使用的会话密钥相对应的邻居节点的ID值连同簇标识一起,再分别用预配置密钥, 加密后发送出去;
步骤4)簇头的所有邻居节点接收到相应的数据包后,分别利用预配置密钥#进行解密操 作第一种情况,接收节点是簇头节点的邻居,但是不属于簇头节点所在簇,它将会发现簇标 识和自己所在簇的簇标识不同,它会销毁数据包不再有所动作;第二种情况,接收节点是本簇 节点,核对簇标识和ID值后,用会话密钥解密得到簇头节点的ID值、簇密钥A^以及散列值M瓜);
步骤5)这些邻居节点将得到的散列值抓厄)再次散列,得到对M必)),重复执行步骤3), 只不过将步骤3)中的抓厄)替换为抓抓庇)),再添加自身的ID值,计数值每次加l;
步骤6)再次重复出现步骤4)中的情况,只不过此时发送节点不再是簇头节点,而是它 下一级的邻居节点;
步骤7)重复执行步骤5)和步骤6),步骤5)中的散列次数和计数值相吻合,而步骤6) 中的发送节点则是上次执行过程中发送节点的下一级邻居节点,直至到达簇区域的边界,此时 所有簇内节点都已经收到簇密钥^和相应的散列值以及计数值。
在以上过程中,簇内成员会保存认证过的其它节点的ID值、随机数值和会话密钥等信息; 此时,簇内的成员可以进行相互通信并完成认证,具体步骤如下
步骤1)簇内某一节点(暂称为发送源节点)需要和另一节点(暂称为目标节点)进行通 信,若发送源节点确切知道目标节点的ID值、随机数值和会话密钥等信息,则转步骤2),若 不确切知道目标节点的这些信息,则转步骤8);
步骤2)发送源节点将其ID值、自身随机数值和目标节点的随机数值异或操作的结果、通 信内容用目标节点的会话密钥加密得到数据包1,数据包1连同目标节点的ID值再用簇内密钥 A^进行加密得到数据包2,然后发送出去;
步骤3)承接于步骤2),特别的,若目标节点是簇头节点,那么,发送源节点还将在数据 包1加密前嵌入散列值和计数值,数据包1加密后再将数据包2加密前的ID值替换成簇头节点 的ID值,然后将数据包2发送出去;
步骤4)接收节点将用簇内密钥&对数据包2进行解密,核对解密后的ID值,若该ID值 与自身的ID值相同,则说明接收节点恰好是目标节点,可用会话密钥解密数据包1,解密成功 则说明该消息包的合法性,进而采用"一 邻居节点的认证流程"中的步骤5)和步骤6)来验 证数据包1中的ID值和随机数值,从而实现发送源节点身份的合法性认证;
步骤5)承接于步骤4),特别的,若目标节点恰好是簇头节点,除了完成步骤4)中的认 证过程之外,还需要对步骤3)中的散列值进行认证,以防止恶意节点对簇的管理者簇头进行 攻击,簇头节点将利用自身的随机数值瓜和单向哈希函数抓必进行运算,运算次数达到计数值 后则停止,此时将结果与发送源节点的散列值进行对比,若相等则进一步说明发送源节点身份 的合法性,若不想等则说明是恶意节点;
步骤6)承接于步骤4),若接收节点用簇内密钥解密数据包2后发现ID值与自身的ID值 不同,则说明自己不是目标节点而是中间转发节点,接收节点会在解密后的数据包中嵌入用预 配置密钥^加密的自身ID值,再次用&加密后转发出去;
步骤7)承接于步骤6),下一级接收节点将重复执行步骤4)、步骤5)或步骤6),直到数据包到达目标节点,所不同的是,每次需要再增加一个认证环节,就是认证步骤6)中上 一级接收节点用预配置密钥《加密的自身ID值;
步骤8)发送源节点不确切知道目标节点的ID值等信息时(此时目标节点肯定不是簇头节 点,因为簇内所有节点都知道簇头节点的ID值),发送源节点将自身ID值、随机数值和通信 内容用簇内密钥^进行加密发送出去;
步骤9)目标节点接收到后成功解密则认为该数据包合法,然后验证发送源节点的ID值、 随机数值之后可确认其身份合法性。
三簇间节点的认证流程
步骤l)簇l内某一节点(暂称为发送源节点)需要和簇2内某一节点(暂称为目标节点) 进行通信,若发送源节点确切知道目标节点的ID值、随机数值和会话密钥等信息,则转步骤2), 若不确切知道目标节点的这些信息,则转步骤6);
步骤2)发送源节点将其ID值、自身随机数值和目标节点的随机数值异或操作的结果、通 信内容用目标节点的会话密钥加密得到数据包1,数据包1连同目标节点的ID值再用预配置密 钥《进行加密得到数据包2,然后发送出去;
步骤3)接收节点将用预配置密钥《对数据包2进行解密,核对解密后的ID值,若该ID 值与自身的ID值相同,则说明接收节点恰好是目标节点,可用会话密钥解密数据包l,解密成 功则说明该消息包的合法性,进而采用"一 邻居节点的认证流程"中的步骤5〉和步骤6)来 验证数据包1中的ID值和随机数值,从而实现发送源节点身份的合法性认证;
步骤4)承接于步骤3),若接收节点用预配置密钥解密数据包2后发现ID值与自身的ID 值不同,则说明自己不是目标节点而是中间转发节点,接收节点会在解密后的数据包中嵌入用 预配置密钥f加密的自身ID值,再次用)T加密后转发出去;
步骤5)承接于步骤4),下一级接收节点将重复执行步骤3)和步骤4)直到数据包到达 目标节点,所不同的是,每次需要再增加一个认证环节,就是认证步骤4)中上一级接收节点 用预配置密钥《加密的自身ID值。
步骤6)发送源节点不确切知道目标节点的ID值等信息时,发送源节点将自身ID值、随 机数值和通信内容用预配置密钥《进行加密发送出去;
步骤7)目标节点接收到后若成功解密则认为该数据包合法,然后验证发送源节点的ID值、 随机数值之后可确认其身份合法性。
有益效果本发明提出了一种针对层簇式Ad hoc网络中节点身份和所发送消息包的多重认 证的方法,该方法具有如下优点-
(1) 既实现了节点身份的合法性认证,又实现了节点所发送消息包的合法性认证,避免了
合法节点携带被篡改的非法消息包和非法节点伪造合法消息包的两种攻击情形;
(2) 通过ID标识、密钥加密、随机数叠加、Hash散列等多种安全机制同时进行的模式实 现了多重认证,在很大程度上增加了认证的安全性和正确性;
(3) 该发明方法具有较好的可扩展性和自适应性,能够适合各种类型的层簇式结构的Ad hoc网络。


图1层簇式Ad hoc网络拓扑结构图。
具体实施例方式
以下将以图l为例,通过一个具体的例子来进一步详细说明本发明的技术方案和方法流程。 首先完成网络安全信息的初始化和网络的部署,即层簇式拓扑结构的形成。以图1为例, 共分为3个簇,分别标记为簇l,簇2和簇3,可用d、 G和G分别作为其簇标识。此时每个节点都 具备了身份标识产生函数/tf)和素数集合尤 一个相同的预配置密钥錄卩一个各不相同的会话密 钥r孤。以节点l为例,它将在素数集合沖随机选择一个元素,不失一般性假设为》,计算出节 点1的身份标识ID产/U),同时有^,(瓜)成立,节点1对应的会话密钥为J顶,簇l中的簇头节 点对应的会话密钥为Ak"每个节点还存储一个相同的有限随机数产生器,可以产生随机数^W, 节点l对应的为i 皿,簇1中的簇头节点对应的为^W。每个节点存储一个单向Hash散列函数(也 称为单向哈希散列函数)抓必和一个相同的密钥产生器,但仅有簇头节点会使用到,例如簇l 中的簇头节点会将其随机数值ZiW作为输入,得到散列值抓AW)。 一邻居节点的认证流程
如图1,以节点1和节点2为代表,其余节点类推。
步骤1)节点1利用ID产生函数/Cr)产生唯一能标识自身的ID值标记为ID1; 步骤2)节点1利用随机数产生器产生其随机数值必切;
步骤3)节点1将ID值、产生的随机数值和自身的会话密钥利用预配置密钥J进行加密后 得到数据包UD1 II必JI A4,并广播发送;
步骤4)节点l一跳范围内的节点(见图1中的节点2、 3、 9和10)会收到该数据包,它 们利用预配置密钥J对数据包UD1 I I必《| I ,/ }《进行解密,从而获取到节点1的ID1 I I H I A>a,并且接收节点不再对收到的数据包进行转发;
步骤5)承接于步骤4),接收节点(见图1中的节点2、 3、 9和10)求出x产/'(IDl),检 验力是否在素数集合Z中,若是,则说明该节点1的ID值是合法的,否则为非法节点;
步骤6)承接于步骤5),接收节点(见图1中的节点2、 3、 9和10)进一步利用有限随机 数产生器验证节点1的随机数值An能否被识别,若能,则进一步验证节点1的合法性,否则 为非法节点;
步骤7)接收节点(见图1中的节点2、 3、 9和10)在其邻居列表中记录下节点1的ID1 I 1 必J1《顶,认定其为邻居节点,从而完成了邻居节点身份的合法性认证;
步骤8)此时假设节点2也完成步骤4)到步骤7),节点1的邻居列表中也记录了节点2 的ID值、随机数值和会话密钥,即ID2 II必^| vf皿;
步骤9)此时,节点l需要和其邻居列表中的节点2进行通信,通信内容假设为巡—2,它将 广播发送数据包HID1 M / 顶④必迈M必—2}《ID2} A迈;
步骤10)承接于步骤9),节点1的所有邻居节点(见图1中的节点2、 3、 9和10)将会 收到此数据包,但仅有节点2能够用其会话密钥A^进行解密,得到ID2后确认该数据包是发 送给它的,其它节点(见图1中的节点3、 9和10)将销毁该数据包且不再进行转发;
步骤ii)承接于步骤io),节点2解密后还得到UDi II y 顶①y 孤l1巡-2},,它将用预配
置密钥,继续解密,并采用步骤5)的方法验证ID1值,通过第一步认证后再采用步骤6)的方 法验证节点1的随机数异或值iiV十/ 皿,通过后可确认该数据包确实是节点1发送,进而获得通信内容必-2。
二簇内节点的认证流程
如图l,以簇l和簇l中的节点为例,来描述簇内节点的认证步骤。
簇头节点首先在本簇发布簇内密钥和Hash函数值等信息,具体步骤如下
步骤1)簇头节点首先将其邻居列表中部分节点(不失一般性,图1中的节点1、 2、 7和8)
的随机数值进行异或操作,得到算子/^出A^④/ 顶十必w,利用该算子和密钥发生器产生簇内
通信密钥
步骤2)簇头节点利用其自身随机数值^和单向Hash散列函数计算出抓&);
步骤3)簇头节点分别用其邻居节点(见图1中的节点1、 2、 7、 8、 9和簇2簇头节点) 的会话密钥进行加密,此处仅以节点1为例,将得到数据包加C1 I I M&) I I #。 I I co朋"m A>fl,其中Ciw/2t(l)表示计数为1的整数值;进而簇头节点分别利用预配置密钥《再次加密,此 处仅以节点l为例,将得到数据包UIDC1 IIII II 6b"""l)} ", IDl, Cl}#; 步骤4)簇头节点的所有邻居节点接收到相应的数据包后,分别利用预配置密钥《进行解
密操作第一种情况,接收节点是簇头节点的邻居,但是不属于簇头节点所在簇1,例如图1
中节点7和簇2簇头,它们将会发现簇标识Cl和自己所在簇2的簇标识C2不同,它们会销毁 数据包不再有所动作;第二种情况,接收节点是本簇节点,例如图1中的节点1、 2、 8和9, 此处仅以节点1为例,它核对簇标识Cl和ID1后,用会话密钥,皿解密得到簇头节点的IDC1、 簇密钥&以及散列值饥A0;
步骤5)节点l将得到的散列值抓^)再次散列,得到抓抓A)),重复执行步骤3),节点 1的邻居节点有节点2、 3、 9和10,此处仅以节点2为例,节点1针对节点2发送的数据包为 {{IDC1 II夙抓A0) II J。 II Ow/ t(2)} J股,ID2, Cl}《;
步骤6)节点2、 3、 9和IO分别收到各自数据包后,再次重复出现步骤4)中的两种情况;
步骤7)节点2、 3、 9和10重复执行步骤5)和步骤6),直至簇1中的所有节点都收到了 簇内密钥&、簇头节点的IDC1和相应的散列值。
在以上过程中,簇1的成员节点会保存认证过的其它节点的ID值、随机数值和会话密钥 等信息;此时,簇1的成员节点可以进行相互通信并完成认证,具体步骤如下
步骤1)发送源节点1要和目标节点8、簇1的簇头节点以及目标节点5进行通信;其中, 节点1存储有节点8和簇1的簇头节点的ID值等信息,转到步骤2)执行;节点1不确切知道 目标节点5的这些信息,则转步骤6)执行;
步骤2)针对于节点8,节点1两次加密操作后得到数据包UID1 I I浙—8 I I ID8}广播发送出去,其中必-8是节点1和节点8的通信内容;针对于簇1的簇头节点,节点 1两次加密后的到数据包为UID1 II浙-c, II y 顶④Az^ IIII Cbu/^(lMZ腦,IDC1} Zn,
其中必-u是通信内容,由于节点l离簇l簇头仅有一跳,因此计数值为l;
步骤3)接收节点如果是节点8,将用簇内密钥VTa解密数据包,核对解密后的ID值,若恰 好是ID8,再用会话密钥& 进一步解密,解密成功则说明该消息包的合法性,进而采用"一 邻 居节点的认证流程"中的步骤5)和步骤6)来验证/ 孤④必a和ID1,从而完成节点1身份的合 法性认证;若接收节点是簇1的簇头节点,除了完成上述的认证过程之外,还需要对接收到的 散列值进行认证,簇1的簇头节点取出自身随机数值A和单向哈希函数抓劝计算1次(此时计数值为i)得到/yo 。),若与接收到的散列值相同,则进一步证明节点1身份的合法性;
步骤4)承接于步骤3),若接收节点用簇内密钥L解密后发现ID值与自身的ID值不同, 则说明自己不是目标节点而是中间转发节点;此时以中间转发节点2为例,针对目标节点8, 它将转发数据包UID1 II Ul y 顶④必z8 },朋,ID8, {ID2}A}^;针对目标节点为簇1的簇 头节点,它将转发数据包HID1 I 1趙—C1 I I I I夙&) I I IDC1, {鹏,}
《o;
步骤5)承接于步骤4),下一级接收节点将重复执行步骤3)或步骤4),例如节点l通 过节点2转发数据包UID1 II必—8|| /P顶④y 朋lA"朋,ID8, {0)2}4^到达节点8之后,节点8 还需要增加一个认证环节,即对UD2),解密后进行认证,从而验证中间转发节点2的身份合法 性;
步骤6)针对目标节点5,节点1加密得到数据包UD1 II浙-5|| Az }^,其中必-s是通信 内容;
步骤7)目标节点5收到后可用A^成功解密则认为该数据包合法,然后完成IDl和必a的 身份合法性验证。
三簇间节点的认证流程
以簇1和簇2为例,来描述簇与簇之间节点的认证流程
步骤1)簇1内发送源节点1需要和簇2内目标节点6以及簇2的簇头节点进行通信,节 点1记录有簇2簇头节点的ID值IDC2、随机数值必《2和会话密钥& 2等信息,则转步骤2), 节点1不确切知道目标节点6的这些信息,则转步骤6);
步骤2)节点1发送数据包HID1 II lC2|| A,M@Aa2}《,《2, IDC2}《,其中,必- 为通信内
容;
步骤3)簇2的簇头节点收到数据包后用预配置密钥,解密,核对解密后的ID值,若恰好 为IDC2,进一步用if^2解密,解密成功则说明该消息包的合法性,进而采用"一 邻居节点的 认证流程"中的步骤5)和步骤6)来验证ID1和必《 A 2,从而完成节点1身份的合法性认 证;
步骤4)若接收节点用预配置密钥《解密数据包后发现ID值与自身的ID值不同,则说明 自己不是目标节点而是中间转发节点;此时以中间转发节点为簇1的簇头节点为例,针对目标 节点簇2的簇头节点,它将转发数据包HID1 II i^c2|| y 顶④A/K)《淵,IDC2, {IDC1}A)J;
步骤5)承接于步骤4),下一级接收节点将重复执行步骤3)和歩骤4)直到数据包到达 目标节点;例如节点1通过簇1的簇头节点转发数据包UID1 II必w II必《@^ 汲2}《加2, IDC2, (IDCUA)J到达簇2的簇头节点后,簇2的簇头节点还需要增加一个认证环节,即对UDCllif解 密后进行认证,从而验证中间转发节点的身份合法性;
步骤6)针对目标节点6,节点1加密得到数据包UD1 II必-6 II必《}#,其中ls是通信内
容;
步骤7)目标节点6收到后可用Z成功解密则认为该数据包合法,然后完成ID1和7 皿的身 份合法性验证。
权利要求
1.一种用于层簇式无线自组织网络中的节点合法性多重认证方法,其特征在于该认证流程划分为邻居节点的认证流程、簇内节点的认证流程和簇间节点的认证流程三个部分一邻居节点的认证流程步骤1)每一节点利用ID产生函数f(x)产生唯一能标识自身的ID值;步骤2)每一节点利用随机数产生器产生某一随机数RID;;步骤3)每一节点将ID值、产生的随机数RID和自身的会话密钥整合成数据包,利用预配置密钥K进行加密后广播出去;步骤4)发送节点广播的目的是为了发现邻居节点,其一跳范围内的任一接收节点收到步骤3)中的广播包,首先利用预配置密钥K对数据包进行解密,从而获取到发送节点的ID值、随机数值和会话密钥,并且接收节点不再对收到的数据包进行转发;步骤5)该接收节点求出ID产生函数f(x)的反函数f1(y),将发送节点的ID值作为y值输入,查看获得的函数值x是否在素数集合X中,若是,则说明该节点的ID值是合法的,否则为非法节点,从而完成邻居身份的第一步认证;步骤6)接收节点进一步利用有限随机数产生器验证发送节点的随机数值是否能被该产生器识别,若能,则进一步验证该节点的合法性,否则为非法节点;步骤7)通过步骤5)和6)的认证之后,该节点在其邻居列表中记录下发送节点的ID值、随机数值和会话密钥,认定其为邻居节点,从而完成了邻居节点身份的合法性认证;步骤8)网络中每一个节点都执行完步骤4)到步骤7),将其所有邻居节点的信息包括ID值、随机数值和会话密钥存贮到其邻居列表中;步骤9)若此时网络中某个节点即发送源节点需要和其邻居列表中的某一个节点即目标邻居节点进行通信,它将其自身的ID值、通信的内容、自身的随机数值和目标邻居节点的随机数值异或操作的结果用预配置密钥K进行加密,将此加密的结果和目标邻居节点的ID值进一步用目标邻居节点的会话密钥加密成数据包,广播发送出去;步骤10)该发送源节点的所有邻居节点将会收到此数据包,但仅有目标邻居节点能够用其会话密钥进行解密,得到其ID值,从而确认该数据包是发送给它的,其它节点将销毁该数据包且不再进行转发;步骤11)目标邻居节点解密后还得到另一个加密的结果,它将用预配置密钥K继续解密,并采用步骤5)的方法验证发送源节点的ID值,通过第一步认证后再采用步骤6)的方法验证发送源节点的随机数异或值,通过后可确认该数据包确实是发送源节点所发送,从而完成了邻居节点所发送消息包的合法性认证;二簇内节点的认证流程在该认证流程开始之前,簇头节点需要在本簇发布簇内密钥和Hash函数值信息,具体步骤如下步骤21)簇头节点首先将其邻居列表中部分节点的随机数值进行异或操作,作为产生簇内密钥的算子,利用该算子和密钥发生器产生簇内通信密钥KC;;步骤22)簇头节点利用其自身随机数值RC和单向Hash散列函数计算出H(RC);步骤23)簇头节点将自身的ID值、KC、H(RC)以及计数为1的整数值整合成数据包,该整数值用来记录数据包的跳数;分别用其邻居节点的会话密钥进行加密,加密后得到的数据包、该数据包所使用的会话密钥相对应的邻居节点的ID值连同簇标识一起,再分别用预配置密钥K加密后发送出去;步骤24)簇头的所有邻居节点接收到相应的数据包后,分别利用预配置密钥K进行解密操作第一种情况,接收节点是簇头节点的邻居,但是不属于簇头节点所在簇,它将会发现簇标识和自己所在簇的簇标识不同,它会销毁数据包不再有所动作;第二种情况,接收节点是本簇节点,核对簇标识和ID值后,用会话密钥解密得到簇头节点的ID值、簇密钥KC以及散列值H(RC);步骤25)这些邻居节点将得到的散列值H(RC)再次散列,得到H(H(RC)),重复执行步骤23),将步骤23)中的H(RC)替换为H(H(RC)),再添加自身的ID值,计数值每次加1;步骤26)再次重复出现步骤24)中的情况,此时发送节点不再是簇头节点,而是它下一级的邻居节点;步骤27)重复执行步骤25)和步骤26),步骤25)中的散列次数和计数值相吻合,而步骤26)中的发送节点则是上次执行过程中发送节点的下一级邻居节点,直至到达簇区域的边界,此时所有簇内节点都已经收到簇密钥KC和相应的散列值以及计数值;三簇间节点的认证流程步骤31)簇1内某一节点即发送源节点需要和簇2内某一节点即目标节点进行通信,若发送源节点确切知道目标节点的ID值、随机数值和会话密钥等信息,则转步骤32),若不确切知道目标节点的这些信息,则转步骤36);步骤32)发送源节点将其ID值、自身随机数值和目标节点的随机数值异或操作的结果、通信内容用目标节点的会话密钥加密得到数据包1,数据包1连同目标节点的ID值再用预配置密钥K进行加密得到数据包2,然后发送出去;步骤33)接收节点将用预配置密钥K对数据包2进行解密,核对解密后的ID值,若该ID值与自身的ID值相同,则说明接收节点恰好是目标节点,用会话密钥解密数据包1,解密成功则说明该消息包的合法性,进而采用“一邻居节点的认证流程”中的步骤5)和步骤6)来验证数据包1中的ID值和随机数值,从而实现发送源节点身份的合法性认证;步骤34)若接收节点用预配置密钥解密数据包2后发现ID值与自身的ID值不同,则说明自己不是目标节点而是中间转发节点,接收节点会在解密后的数据包中嵌入用预配置密钥K加密的自身ID值,再次用K加密后转发出去;步骤35)下一级接收节点将重复执行步骤33)和步骤34)直到数据包到达目标节点,所不同的是,每次需要再增加一个认证环节,就是认证步骤34)中上一级接收节点用预配置密钥K加密的自身ID值;步骤36)发送源节点不确切知道目标节点的ID值等信息时,发送源节点将自身ID值、随机数值和通信内容用预配置密钥K进行加密发送出去;步骤37)目标节点接收到后若成功解密则认为该数据包合法,然后验证发送源节点的ID值、随机数值之后可确认其身份合法性。
2.根据权利要求1所述的用于层簇式无线自组织网络中的节点合法性多重认证方法,其特征在于在步骤21)到步骤27)的过程中,簇内成员会保存认证过的其它节点的ID值、随机 数值和会话密钥等信息;此时,簇内的成员可以进行相互通信并完成认证,具体步骤如下步骤41)簇内某一节点即发送源节点需要和另一节点即目标节点进行通信,若发送源 节点确切知道目标节点的ID值、随机数值和会话密钥等信息,则转步骤42),若不确切知 道目标节点的这些信息,则转步骤48);步骤42)发送源节点将其ID值、自身随机数值和目标节点的随机数值异或操作的结果、 通信内容用目标节点的会话密钥加密得到数据包1,数据包1连同目标节点的ID值再用簇 内密钥&进行加密得到数据包2,然后发送出去;步骤43)承接于步骤42),特别的,若目标节点是簇头节点,那么,发送源节点还将 在数据包1加密前嵌入散列值和计数值,数据包1加密后再将数据包2加密前的ID值替换 成簇头节点的ID值,然后将数据包2发送出去;步骤4 4)接收节点将用簇内密钥A^对数据包2进行解密,核对解密后的ID值,若该 ID值与自身的ID值相同,则说明接收节点恰好是目标节点,可用会话密钥解密数据包1, 解密成功则说明该消息包的合法性,进而采用"一 邻居节点的认证流程"中的步骤45)和 步骤46)来验证数据包1中的ID值和随机数值,从而实现发送源节点身份的合法性认证;步骤45)承接于步骤44),特别的,若目标节点恰好是簇头节点,除了完成步骤44) 中的认证过程之外,还需要对步骤43)中的散列值进行认证,以防止恶意节点对簇的管理 者簇头进行攻击,簇头节点将利用自身的随机数值必和单向哈希函数抓劝进行运算,运算 次数达到计数值后则停止,此时将结果与发送源节点的散列值进行对比,若相等则进一步说 明发送源节点身份的合法性,若不想等则说明是恶意节点;步骤46)承接于步骤44),若接收节点用簇内密钥解密数据包2后发现ID值与自身的 ID值不同,则说明自己不是目标节点而是中间转发节点,接收节点会在解密后的数据包中 嵌入用预配置密钥《加密的自身ID值,再次用,c加密后转发出去;步骤47)承接于步骤46),下一级接收节点将重复执行步骤44)、步骤45)或步骤 46),直到数据包到达目标节点,所不同的是,每次需要再增加一个认证环节,就是认证步 骤46)中上一级接收节点用预配置密钥J加密的自身ID值;步骤48)发送源节点不确切知道目标节点的ID值等信息时,此时目标节点肯定不是簇 头节点,因为簇内所有节点都知道簇头节点的ID值,发送源节点将自身ID值、随机数值和 通信内容用簇内密钥^进行加密发送出去;步骤49)目标节点接收到后成功解密则认为该数据包合法,然后验证发送源节点的ID 值、随机数值之后可确认其身份合法性。
全文摘要
层簇式无线自组织网络中的节点合法性多重认证方法涉及Ad hoc网络中节点合法性的安全认证机制,本发明方法针对Ad hoc网络中节点身份伪造,消息包丢弃、篡改和伪造这两种攻击方式,提出了一种用于层簇式拓扑结构Ad hoc网络中的节点合法性多重认证方法,该方法可验证节点身份的合法性和所发送消息包的合法性。主要通过身份标识、预配置密钥、会话密钥、有限随机数产生器、单向哈希散列函数和密钥生成器等多种方式相结合,来实现多重认证的方法,并设计了具体的技术方案和步骤流程,显著区别于现有的层簇式Ad hoc网络中使用的认证方法。在认证的安全强度、认证的正确性和自适应效率等方面具有有益效果。
文档编号H04W12/04GK101610510SQ20091003322
公开日2009年12月23日 申请日期2009年6月10日 优先权日2009年6月10日
发明者凡高娟, 宁 叶, 孙力娟, 超 沙, 王汝传, 王玉斐, 甫 肖, 志 陈, 黄海平 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1