首页> 中国专利> 基于哈希树的无线传感器网络安全数据发现和传播方法

基于哈希树的无线传感器网络安全数据发现和传播方法

摘要

本发明公开了一种基于哈希树的无线传感器网络安全数据发现和传播方法,包括如下步骤:步骤1、在系统初始化阶段,基站构建椭圆曲线密码体制,生成公钥、私钥以及公共参数;步骤2、基站针对需要分发的小数据构建数据包并进行数字签名,然后把数据包发送给网络中各传感器节点;步骤3、各传感器节点在接收到数据包后判断其是否为合法的数据包,如果接收到的数据包为合法的数据包,则接收该数据包并进行更新,否则直接放弃该数据包。该方法考虑了传感器节点资源有限的情况,在保证数据发现和传播过程效率的基础上,还保障了其安全性。具有包括抵抗节点妥协,在丢包和数据包传送失序上具有高鲁棒性、基站与传感器节点间无时间同步等优点。

著录项

  • 公开/公告号CN103368731A

    专利类型发明专利

  • 公开/公告日2013-10-23

    原文格式PDF

  • 申请/专利权人 华南理工大学;

    申请/专利号CN201310311405.2

  • 发明设计人 何道敬;唐韶华;陈仕乾;

    申请日2013-07-23

  • 分类号H04L9/30(20060101);H04L9/32(20060101);H04L29/06(20060101);H04L29/08(20060101);H04W84/18(20090101);

  • 代理机构44245 广州市华学知识产权代理有限公司;

  • 代理人蔡茂略

  • 地址 510641 广东省广州市天河区五山路381号

  • 入库时间 2024-02-19 21:36:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-07-06

    授权

    授权

  • 2013-11-20

    实质审查的生效 IPC(主分类):H04L9/30 申请日:20130723

    实质审查的生效

  • 2013-10-23

    公开

    公开

说明书

技术领域

本发明涉及一种无线通信技术,特别涉及一种基于哈希树的无线传感器网 络安全数据发现和传播方法。

背景技术

无线传感器网络在包括工业监控和军事操作在内的多个涉及对物理环境进 行监测和控制的领域得到了广泛应用。在无线传感器网络部署完成后,为了调 整传感器节点的配置参数或者向传感器节点分发管理命令和请求信息,常需要 通过无线链路来传递数据。

现有的无线传感器网络发现和传播方法,传感器节点会周期性的广播其自 身保存的数据汇总,并通过对比接收到的数据汇总和自身的数据汇总进行广播 周期的调整。当节点接收到的数据汇总比自身保存的数据汇总旧时,节点将广 播自身的数据汇总;当收到的数据汇总比自身数据汇总新时,传感器节点将更 新自身的数据汇总;当收到的数据汇总与自身数据汇总相同时,传感器节点将 延长广播周期以节省能量。这些现有的无线传感器网络发现和传播方法,能保 证数据传输的可靠性,但是却忽略了数据发现和传播过程的安全性。在敌对环 境中,攻击者可以通过发起蠕虫攻击、拒绝服务攻击等多种恶意攻击来更改或 替换传感器节点的合法数据、把错误数据引入无线传感器网络或者减弱传感器 执行原定功能的能力。这些攻击会给无线传感器网络造成不可估量的损失,所 以对于无线传感器网络,安全的数据发现和传播方法显得十分重要。

发明内容

本发明的目的在于克服现有技术的缺点与不足,提供一种基于哈希树的无 线传感器网络安全数据发现和传播方法,该方法保证了数据发现和传播过程的 效率和安全性。

本发明的目的通过下述技术方案实现:基于哈希树的无线传感器网络安全 数据发现和传播方法,包括如下步骤:

步骤1、在系统初始化阶段,基站构建椭圆曲线密码体制,生成公钥、私钥 以及公共参数;

步骤2、基站针对需要分发的小数据构建数据包并进行数字签名,然后把数 据包发送给网络中各传感器节点;

步骤3、传感器节点在接收到数据包后判断所述接收的数据包是否为签名数 据包以及是否合法,并根据判断结果处理所述接收到的数据包。

所述步骤1中,所述基站构建椭圆曲线密码体制,生成公钥、私钥以及公共 参数包括以下步骤:

A、基站选取单向哈希函数和椭圆曲线;

B、选取私钥并以此来产生公钥,最后将公共参数预装载入网络的各节点中, 使用四元组(round,key,version,data)来表示每个数据项,四个参数分别 表示数据在数据传输过程中所处的回合数,需要更新变量的唯一标识,该数据 的新旧,以及传播的数据值;所述公共参数为公钥参数、哈希函数参数和椭圆 曲线参数。

所述步骤2包括以下步骤:

I、使用四元组来表示数据项,所述四元组的回合数、变量标识、版本号和 数据值分别表示数据包在数据传输过程中所处的回合数,所需要更新变量的唯 一标识,表示数据的新旧的版本号和传播的数据值;

II、基站将需要分发的每个数据项的哈希值作为叶子节点,每一个非叶子 节点的值为其相应的两个子节点通过哈希函数计算后的哈希值,以构建Merkle 哈希树。所述需要分发的每个数据项和数据项所在Merkle哈希树中的认证路径 一起组成一个数据包;

III、基站使用本基站的私钥对哈希树的根节点进行签名,并将根节点和根 节点的数字签名值构成签名数据包,接着将签名数据包及非签名数据包进行广 播。

所述步骤3包括以下步骤:

a、传感器判断所接收到的数据包是否为签名数据包,如果是签名数据包, 则执行步骤b,否则执行步骤c;

b、所述接收到数据包的传感器节点使用基站的公钥运行签名验证操作来对 签名数据包进行认证,如果认证成功,则执行步骤e,否则执行步骤f;

c、从所述接收到的数据包中选取出版本号,根据所述版本号判断接收到的 数据包是否为新的版本,如果接收到的数据包是新的版本,则所述接收到数据 包的传感器节点根据数据包所处的回合数取出传感器节点所存储的Merkle哈希 树的根节点,通过对所接收到的数据包做哈希函数操作并与Merkle哈希树的根 节点进行比较,以对数据包进行认证,如果认证成功,则执行步骤d,否则执行 步骤f;

d、根据所述接收到的数据包中的变量标识判断需要更新的变量,并使用接 收到的数据包中的数据值对需要更新的变量进行数据更新;

e、所述接收到数据包的传感器节点将接收到的数据包作为哈希树的根节 点;

f、丢弃所述接收到的数据包。

基于Merkle哈希树,对著名的无线传感器网络数据发现和传播方法(Drip) 进行安全扩展,实现无线传感网络安全数据发现和传播方法(SeDrip)。

在SeDrip中,通过执行以下操作来建立Merkle哈希树(也被称为:二叉哈 希树):将需要分发的每个数据项的哈希值作为哈希树的叶子节点。在Merkle 哈希树中,每一个非叶子节点的值都由其对应的两个子节点的哈希值通过哈希 函数生成。所述每个需要分发的数据项和该数据项所在Merkle哈希树中的认证 路径一起组成一个数据包。基站使用本基站的私钥对哈希树的根节点进行签名, 并将所述根节点和根节点的数字签名值构成签名数据包,接着将签名数据包及 非签名数据包进行广播。签名数据包的广播表示一个新的回合开始。SeDrip能 在不产生数据延时情况下提供即时认证,即使一些节点被妥协的情况下,仍然 能保证数据发现和传播的安全性。

无线传感器网络拥有一个固定的基站和大量的传感器节点,并且传感器节 点的资源是有限的。因此在无线传感网络数据发现和传播方法中,采用Trickle 算法进行控制,传感器节点周期性的广播其拥有的数据汇总。如果所有节点数 据一致,则广播的时间间隔将指数型增长以便节省能源,反之,如果有节点检 测到了其他节点更新了数据,广播的间隔将缩小。所述由Trickle算法控制的 特性容易被攻击者利用以发起拒绝服务等恶意攻击。

SeDrip保留了原有数据发现和传播方法的优点,同时加上消息签名等机制, 保证了数据发现和传播过程的效率和安全性。

本发明通过系统初始化阶段、数据包预处理阶段和数据包验证阶段共三个 阶段完成。在系统初始化阶段中,基站基于椭圆密码体系构建密钥;在数据包 预处理阶段,基站根据需要发送的数据,基于Merkle哈希树构建数据包并完成 签名,并向整个网络广播数据包;在数据包校验阶段,各节点检查数据包的真 实性并完成数据的更新。所述安全数据发现和传播方法,考虑到传感器节点的 资源限制,数据包丢失和数据包失序等问题,能够在无需数据缓冲延时的情况 下提供即时认证,同时能抵抗如蠕虫攻击,拒绝服务攻击等恶意攻击。

本发明的工作原理:本发明基于Merkle哈希树,对著名的无线传感器网络 数据发现和传播方法(Drip)进行安全扩展,实现无线传感网络安全数据发现 和传播方法(SeDrip);在SeDrip中,通过执行以下操作来建立Merkle哈希树: 将需要分发的每个数据项的哈希值作为哈希树的叶子节点。在Merkle哈希树中, 每一个非叶子节点的值都由其对应的两个子节点的哈希值通过哈希函数生成。 建立Merkle哈希树后,基站创建一个包含Merkle哈希树根节点和根节点签名 的签名数据包。另外,所述需要分发的数据项和数据项所在Merkle哈希树中的 认证路径一起组成数据包。之后,基站将签名数据包及非签名数据包进行广播。 签名数据包的广播表示一个新的回合开始。SeDrip能在不产生数据延时情况下 提供即时认证,即使一些节点被妥协的情况下,仍然能保证数据发现和传播的 安全性;无线传感器网络拥有一个固定的基站和大量的传感器节点,并且传感 器节点的资源是有限的。因此在无线传感网络数据发现和传播方法中,采用 Trickle算法进行控制,传感器节点周期性的广播其拥有的数据汇总。如果所有 节点数据一致,则广播的时间间隔将指数型增长以便节省能源,反之,如果一 个节点检测到了其他节点更新了数据,广播的间隔将缩小。这一特性容易被攻 击者利用以发起拒绝服务等恶意攻击;SeDrip保留了原有数据发现和传播方法 的优点,同时加上消息签名等机制,保证了数据发现和传播过程的效率和安全 性。

本发明相对于现有技术具有如下的优点及效果:

(1)抵抗节点妥协:只要未妥协的节点依旧能够连接到基站,则不管已经 妥协节点的数目多少,协议都能抵抗节点妥协。

(2)在丢包和数据包传送失序上具有高鲁棒性:在无线传感器网络中高频 率的出现丢包和数据包传送失序现象,这要求协议设计能够在最大限度上容忍 高丢包率和传送失序。

(3)基站与传感器节点间无时间同步:基站与传感器节点间不要求时间同 步。因此,无需对数据包到达间隔时间做任何假设,当传感器节点接收到数据 包时便可即刻对所述接收到的数据包进行认证。

附图说明

图1是本发明的基于哈希树的无线传感器网络安全数据发现和传播方法的 实现流程图。

图2是Merkle哈希树(Merkle hash tree)的结构示意图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方 式不限于此。

实施例

如图1所示,SeDrip分为系统初始化、包预处理和数据包校验三个阶段。

在系统初始化阶段,基站通过执行以下操作获得私钥SK和公共参数{PK,Q, p,q,H(.)},其中PK为公钥,从而建立起椭圆曲线密码体制:基站首先选取一 个单向哈希函数H(.),如SHA-1,并选取一个关于GF(p)的椭圆曲线E,其中p 是一个大素数。用Q表示E的原点,用另一个大素数q表示Q的阶。进而,选取 私钥SK∈GF(q),使用公式PK=SK*Q来产生公钥。最后将各公共参数预装载入网 络的各节点中。例如:在160比特长的椭圆曲线密码中,PK和Q都是320比特长 度,p和q都是160比特长度。

在SeDrip中,使用四元组(round,key,version,data)来表示每个数据 项。其中,参数round(回合数)表示数据项在数据传输过程中所处的回合数(处 于越高回合,回合的数据越新),key(变量标识)值是需要更新变量的唯一标识, version(版本号)用于表示数据新旧的版本号(version值越大,数据越新), data(数据值)则表示传播的数据值(如参数,命令或者请求)。key和version可 以设置为2字节和4字节长。选用较长的字节数,如4字节作为round的长度, 可以避免数据包在网络生存周期中,出现在实数空间中的环绕(wrap around) 现象。另外,如果基站采用了滑动窗口机制,则选择只有4比特长度,可以避免 因为环绕(wrap around)现象而产生歧义。这样的窗口机制要求基站做更多的 处理,因此需要在round的比特长度(即SeDrip的传输开销)选择与基站的处 理负载之间做出权衡。

在完成系统初始化阶段后,进入包预处理阶段。如果基站需要发送n个数据 项:di={round,keyi,versioni,datai},i=1,2,…,n,(keyi表示第i个 数据项的变量标识,versioni表示第i个数据项的版本号,datai表示第i个数据 项的数据值),将使用Merkle哈希树,采用如下的方式来构造数据包。其中H(M) 表示消息M的哈希值,SIGK(M)表示使用私钥k对消息M进行的签名。

在Merkle哈希树中,叶子节点为需要分发的数据包Pi的哈希值,其中i=1, 2,…,n。这里哈希函数的计算的输入是数据报文的包头和数据项di(={round, keyi,versioni,datai})。在哈希树中,每一个非叶子结点存储的值为其对应两 个子节点的哈希值。

如图2所示,展示了一个n=4的Merkle哈希树的结构,基站计算 ei=H(Pi)(i=1,2,3,4),并且通过计算相邻子节点来构造内部节点,从而完成 Merkle哈希树的建立。每一个内部节点的值都是其两个子节点的哈希值。如图2 所示,有e1-2=H(e1||e2),e1-4=H(e1-2||e3-4),(e1-4是Merkle哈希树的根节点)。 随后,基站根据Merkle哈希树建立n个数据包。对于包Pi,包括了数据包的包 头,数据项di和它在Merkle哈希树中的认证路径(从根节点到Pi节点的路径)。 例如,在图2中,数据包P1包括数据包包头,d1,e2和e3-4

此外,基站生成一个签名数据包P0,签名包中包括了Merkle哈希树的根节 点和对根节点的签名。基站指定一个预定义的key值用于识别签名数据包。换言 之,签名数据包P0包括了数据包包头,数据项d0(={round,key,version,data}) 和签名SIGSK(H(d0))。如图2所示,数据包P0包括数据包包头和数据<round,key, version,e1-4,SIGSK(H(d0))>。基站会将签名数据包进行广播,标志着新的一轮服 务开始。根节点使得各个节点都能快速的使用包中的认证路径对到达的数据包 Pi(i=1,…,n)进行认证。如图2所示,如果在签名包中的e1-4已被认证,则当一 个节点接到包含d1,e2和e3-4的数据包时,可以通过判断等式 H(H(H(d1)||e2)||e3-4)=e1-4是否成立对所述接收到的数据包立即进行认证,如果等 式成立,则数据包认证通过;否则,数据包是伪造的,并将被丢弃。构建一个Merkle 哈希树的目的是确保每个叶节点和它的认证路径都可以在一个包内被传递。

与DIP和DHV不同,Drip中每个数据包都是被独立的传送和分发的。因此, 在Drip中,基站可以通过广播传送给所有节点,也可以只传送给特定的部分节 点。对于所述只传送给特定的部分节点的情况,目标节点的身份信息可以被包含 在数据包包头,也就是数据包的目的域。如上述的例子,每一个加密哈希函数H(.) 计算了目标区域以保证其身份认证和完整性。

假设在每一回合中,每个节点在收到其他数据包前会先收到签名数据包。因 为以下两个原因,我们可以认为这个假设是合理的。首先,因为Trickle的传输 可靠性,签名数据包可以成功到达每个节点。为了满足这一假设,基站在发送签 名数据包和第一个数据包前需要间隔足够长的时间。若网络中最长数据包延时时 间为Td,则基站只需将发送时间间隔设置为Td即可。

第三个阶段是数据包的校验阶段。当每个传感器节点Si(第i个传感器节点) 接收到(来自上一跳的相邻节点或者基站的)数据包时,执行以下操作:

a、传感器判断所接收到的数据包是否为签名数据包P0,如果是签名数据包 P0,则执行步骤b,否则执行步骤c;

b、所述接收到数据包的传感器节点使用基站的公钥运行签名验证操作(具 体过程见b1)、b2)、b3)步骤)来对签名数据包进行认证,如果认证成功,则执 行步骤e,否则执行步骤f;

b1)如果这是一个新的回合(包中的round数值比节点存储的<round,root> 中的round大),节点Si使用基站的公钥PK运行ECDSA验证操作来对签名数据包 进行认证。如果认证成功,节点Si执行步骤e;反之,如果认证失败,则节点丢 弃数据包。

b2)如果节点Si收听到一个相同的签名数据包(包中的round数值与节点存 储的<round,root>中的round一致),节点判断网络正处于一个稳定的状态,并 根据Trickle算法增加数据包的广播时间间隔,以节省能源。

b3)如果收听到一个较老的回合(包中的round数值比节点存储的<round, root>中的round小,即所述接收到数据包的节点相邻的节点分发的签名数据包 较老),则节点Si将自身存储的签名数据包进行广播。

c、节点Si从数据包中选取出元组<key,version>并检查version以判断版本 新旧,接着对数据包进行认证(认证过程见c1)、c2)、c3)步骤),如果认证成 功,则执行步骤d,否则执行步骤f;

c1)如果这是一个新的版本,节点Si根据包含在数据包中的round取出其所 存储的Merkle哈希树的根节点,根据根节点通过哈希函数操作对数据包进行认 证。如果认证成功,则执行步骤d,否则执行步骤f。

c2)如果节点Si收听到一个相同的数据(包中的version值与节点存储的 version值相同),则节点判断网络处于一个稳定的状态,并根据Trickle算法增 长数据包的广播时间间隔。

c3)如果收到的数据包是一个较旧的版本(包中的version值比节点存储的 version值旧,换言之,所述接收到数据包的节点相邻的节点发布的数据包较旧), 则节点Si广播它存储的数据包。

d、根据所述接收到的数据包中的变量标识判断需要更新的变量,并使用接 收到的数据包中的数据值对需要更新的变量进行数据更新;

e、所述接收到数据包的传感器节点Si接受Merkle哈希树的根节点,并且用 数据包中的P0更新存储在<round,root>中的相应的值;

f、丢弃所述接收到的数据包。

数据包的校验阶段的操作还可以表述为以下步骤:

1)传感器判断所接收到的数据包是否为签名数据包P0,如果所述接收到的 数据包是签名数据包P0,节点Si执行以下操作:

a)如果这是一个新的回合(包中的round数值比节点存储的<round,root> 中的round大),节点Si使用基站的公钥PK运行ECDSA验证操作来对签名数据包 进行认证。如果认证成功,节点Si接受Merkle哈希树的根节点,并且用数据包 中的P0更新存储在<round,root>中的相应的值;反之,如果认证失败,则节点 丢弃数据包。

b)如果节点Si收听到一个相同的签名数据包(包中的round数值与节点存 储的<round,root>中的round一致),节点判断网络正处于一个稳定的状态,并 根据Trickle算法增加数据包的广播时间间隔,以节省能源。

c)如果收听到一个较老的回合(包中的round数值比节点存储的<round, root>中的round小,即所述接收到数据包的节点相邻的节点分发的签名数据包 较老),则节点Si将自身存储的签名数据包进行广播。

2)如果收到的不是签名数据包(数据包中有其他的数据项),则节点Si从数 据包中选取出元组<key,version>并检查version以判断版本新旧。

a)如果这是一个新的版本,节点Si根据包含在数据包中的round取出其所 存储的Merkle哈希树的根节点,根据根节点通过哈希函数操作对数据包进行认 证。如果认证成功,节点Si通过包中的key进行数据更新,反之,节点将此数据 包丢弃。

b)如果节点Si收听到一个相同的数据(包中的version值与节点存储的 version值相同),则节点判断网络处于一个稳定的状态,并根据Trickle算法增 长数据包的广播时间间隔。

c)如果收到的数据包是一个较旧的版本(包中的version值比节点存储的 version值旧,换言之,所述接收到数据包的节点相邻的节点发布的数据包较旧), 则节点Si广播它存储的数据包。

本发明中有关的技术术语代表的含义如下:

SK表示公钥密码体制中的私钥;

di表示第i个数据项的内容;

SIGk(M)表示使用私钥K对消息M进行签名;

ei-j表示对ei和ej进行哈希后的结果;

Pi表示第i个数据包。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实 施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、 替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号