基于短小公钥密码体制的无线传感器网络安全小数据分发方法与流程

文档序号:12500666阅读:264来源:国知局
基于短小公钥密码体制的无线传感器网络安全小数据分发方法与流程

本发明属于无线通信的技术领域,特别涉及基于短小公钥密码体制的无线传感器网络安全小数据分发方法。



背景技术:

目前,无线传感器网络的分布十分广泛,应用也多种多样,包括环境监测,战地监视以及在严酷地理环境下的数据获取。在无线传感器网络中,能够在网络中分发小数据是一个很有用的操作功能。它允许基站往传感器节点写入一些小的程序、命令、查询和配置参数。需要强调的是,小数据分发协议不同于已经被深入研究的代码分发(有时也被称为数据分发或重编程)协议。代码分发是将新的二进制文件分布到网络中,从而实现完整的系统重编程。举例来说,高效地分发几万字节的二进制文件需要代码分发协议,而分发几个大小为两个字节的配置参数,需要小数据分发协议。

无线传感器网络本质上属于一种广播式的网络,即网络中的所有节点都是共享通信信道的。因此,对广播信息的认证,就变得尤为重要。因为通常情况下,传感器节点作为接收方,需要判断所接收到的信息来源于可信赖的基站,而不是由恶意的敌方发送的。

考虑到敌方对传感器网络的攻击,一方面,在广播式的网络中,敌方也可以接收到基站发送的信息,对之进行分析,获取有利的信息并利用有用的信息骗取传感器节点的信任。另外一方面,一般传统协议需要存放密钥在传感器节点。敌方可以俘获传感器节点,得到上面的密钥信息,伪装成接收者,利用已有密钥分析合法基站发送的包,并实施中间人攻击。

考虑到计算效率等问题,传统的小数据分发协议都会采用椭圆曲线密码算法进行签名,但这种方式的签名,因为消耗能量巨大,很容易受到拒绝式服务的攻击。为了抵制拒绝服务攻击,现有的工作中可以用基于对称密钥的方法对恶意数据包做初步的判断,比如在包的末尾添加消息验证码,将不合要求的包过滤掉。但是基于对称密钥的方法容易遭受节点俘获攻击,敌方俘获了一个节点就获得了对称密钥,进而有能力制作非法包让传感器节点接受恶意数据。

数字签名算法基于公钥密码体制,短小公钥密码的安全强度比一般长度的公钥密码的安全强度低,敌方更易于从公钥推理出私钥。但是使用短小公钥密码能够缩小传感器节点的计算能耗,减少签名验证的计算时长,缩减签名长度,充分利用网络带宽。

在短小公钥密码体制下,如果直接将验证数字签名的公钥存放在传感器节点上,敌方俘获节点后可以获取公钥信息以及公共参数进而破解出私钥。但是如果将公钥加密起来的话,敌方即使俘获了节点也无法获得公钥信息。

同时,加密公钥的对称密钥也需要认证,因为如果不对对称密钥进行认证。敌方发送包含恶意对称密钥和恶意数字签名的广播包干扰网络。传感器节点接收到包含恶意对称密钥的广播包后,不对对称密钥进行认证,直接用恶意的密钥来解密公钥密文,会得出一个错误的公钥,传感器节点会利用错误的公钥来验证所接收的数据包上的恶意签名。虽然签名验证失败,但是这依然损耗了传感器节点的能量,容易使传感器网络陷入拒绝服务攻击。

基站利用基于安全哈希算法的单向密钥链技术可以完成对对称密钥的认证。

本发明的目的在于克服现有技术的缺点与不足,提供基于短小公钥密码体制的无线传感器网络安全小数据分发方法,在继承了无线传感器网络小数据分发协议,Drip,的效率性和鲁棒性的同时,为信息分发提供了安全保护,包括完整性保护和机密性保护,使传感器网络能够抵御拒绝服务攻击与节点俘获攻击。



技术实现要素:

本发明公开了一种基于短小公钥密码体制的无线传感器网络安全小数据分发方法,所述无线传感器网络中包含一个基站和多个传感器节点,其特征在于,包括如下阶段:

系统初始化阶段:基站构建椭圆曲线密码算法,生成私钥、公钥、单向密钥链以及公钥密文信息,并在传感器网络部署之前将处理后的单向密钥链以及公钥密文信息,装载到每一个传感器节点中;

数据包前期处理阶段:在数据项分发之前,所述基站根据需要分发的数据项,采用消息迷惑技术与数字签名技术生成数据包;

数据包验证阶段:在接收到数据包后,各传感器节点利用节点上已经存储的单向密钥链以及公钥密文信息,根据所述消息迷惑技术、数字签名技术判断所述数据包的合法性,若所述数据包为合法的数据包,则接受所述数据包并进行更新,否则直接放弃所述数据包。

本发明提出的基于短小公钥密码体制的无线传感器网络安全小数据分发方法中,所述系统初始化阶段包括下述步骤:

步骤A1:所述基站建立椭圆曲线密码算法,并以此生成私钥、公钥、公共参数;

步骤A2:所述基站生成第一随机数;

步骤A3:所述基站根据所述第一随机数利用安全哈希算法来生成单向密钥链,所述单向密钥链上包含多个谜键,其中所述单向密钥链的最后一个谜键为密钥链承诺值;

步骤A4:所述基站把公钥作为明文,用单向密钥链上的迷键做对称密钥,用对称加密算法加密公钥,得到公钥密文信息;

步骤A5:所述基站将所述密钥链承诺值、公钥密文信息装载到各个传感器节点中。

本发明提出的所述基于短小公钥密码体制的无线传感器网络安全小数据分发方法中,步骤A3中所述单向密钥链生成方法为,以所述第一随机数作为所述单向密钥链的第一个迷键,其后的每一个密钥链上的谜键都由前一个密钥链上的谜键通过安全哈希算法进行哈希运算得到,所述单向密钥链的长度不小于网络生命周期中基站将分发的数据项数。

本发明提出的所述基于短小公钥密码体制的无线传感器网络安全小数据分发方法中,所述数据包前期处理阶段包括以下步骤:

步骤B1:所述基站对现有数据项使用所述椭圆曲线密码算法的私钥对当前数据项进行签名,得到其签名值;

步骤B2:所述基站进行所述消息迷惑技术的过程:所述基站暴力搜索一个数值,所述数值满足:所述数值、所述数据项、所述签名值以及所述当前单向密钥链迷键作为安全哈希算法的输入,生成的哈希结果满足预设条件;

步骤B3:所述基站将所述数值、所述数据项、所述签名值以及所述当前单向密钥链迷键作为分发的数据包向所述传感器节点广播。

本发明提出的所述基于短小公钥密码体制的无线传感器网络安全小数据分发方法中,所述的数据项包括变量标识、版本号和数据;所述变量标识用于唯一标识要被更新的变量,所述版本号用于表示数据项的新旧程度,所述数据用于表示需要分发的数据。数据项用于实现具体的功能,比如配置无线传感器网络的参数。

本发明提出的所述基于短小公钥密码体制的无线传感器网络安全小数据分发方法中,所述数据包验证阶段包括以下步骤:

步骤C1:所述传感器节点从任意一个相邻的一跳传感器节点或所述基站接收到一个广播数据包;

步骤C2:所述传感器节点直接将数据包中的数值、数据项、签名值、迷键作为哈希算法的输入,如果哈希结果的前若干个字节的值满足预设条件,则进行下一步,否则丢弃该包;

步骤C3:所述传感器节点对数据包中的迷键进行哈希运算,若运算结果与所述传感器节点上存储的迷键相同,则进行下一步,否则丢弃该包。

步骤C4:所述传感器节点用数据包上的迷键来解密节点所存储的所述公钥密文信息,用解密出的公钥来验证数据包中所述数字签名的正确性,若验证失败则传感器节点直接放弃所述数据包,否则进行下一步;

步骤C5:所述传感器节点将数据包中的迷键存储在传感器节点上;

步骤C6:所述传感器节点从数据项里选出二元组<变量标识、版本号>并检查版本号,若为新的版本号,则执行步骤C7;若与本身存储的版本号相同,则执行步骤C8;若为旧的版本号,则执行步骤C9;

步骤C7:所述传感器节点根据所述变量标识更新数据;

步骤C8:所述传感器节点通过增加此数据包的广播间隔,以在网络一致性的情况下减少网络能量花销;

步骤C9:所述传感器节点广播目前自身已存储的数据包。

本发明提出的所述基于短小公钥密码体制的无线传感器网络安全小数据分发方法中,所述预设条件为哈希结果的前若干字节同为相同数字。

本发明的有益效果在于:

能够保证信息的可靠性:只有基站才有私钥,一旦数字签名验证通过,则可以保证信息来源于可靠的基站。

保证基站与传感器节点之间不需要时间上的同步:接收端传感器节点在接收到信息的同时能够瞬即开始对信息进行验证。

能够抵御拒绝服务攻击:消息迷惑技术可以对接收到的消息进行验证。合法基站可以有充足的时间来制作数据包,而敌方即使侦测到我们的数据包,获取了我们的全部信息,也要花费很长的时间来制作一个符合消息迷惑技术要求的恶意数据包。在敌方制作恶意数据包的同时,我们的数据包已经被传感器节点所接受,我们的目的已经实现,使敌方发动的拒绝服务攻击失去意义。

高效率性:所有的认证操作比如对称加密、安全哈希算法,耗能短,计算快,各传感器节点能够迅速地进行对所收到的数据包的认证操作。另外,包含短数字签名的数据包会节省网络带宽。节点中只需要存储短小的公钥来验证数据包的完整性。故在通信、计算和存储花销上,此方法都是非常高效的。

实时性:对于所要分发的数据项,所述基站不需要提前知道,可以实时地发送任意想要发送的信息。

在丢包以及数据包传送失序上具有高鲁棒性:小数据分发协议基于的Trickle算法,使小数据分对丢包具有高鲁棒性。单向密钥链的使用使传感器节点只接受与所存储的迷键有正确关系的数据包,所以该协议对乱序数据包的到达有高容忍性。Trickle算法为无线传感器网络用于小数据分发的算法,是无线传感器网络小数据分发协议Drip使用的算法。

附图说明

图1是本发明基于短小公钥密码体制的无线传感器网络安全小数据分发方法的流程图。

图2是单向密钥链的形成示意图。

图3是基于消息迷惑技术的数据包处理示意图。

图4是解密公钥密文信息的流程图。

具体实施方式

结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。

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

(SIGk(M))表示用私钥K对信息M进行签名后的数字签名;

(Ek(M))表示用对称密钥K对信息M进行对称加密的密文信息;

H(.)表示安全哈希算法;

H(M)表示数据项M的哈希值;

||表示连接运算。

以下结合具体实施例,对本发明小数据分发步骤作具体说明。

在系统初始化阶段,基站要建立一个椭圆曲线密码算法来产生私钥SK、公共参数{Q,p,q}和公钥PK。具体的实施步骤如下:在椭圆曲线群域GF(p)选择一个椭圆曲线E,其中p代表一个很大的素数,点Q为椭圆曲线E上的一个基点,令基点Q的阶为大素数q,选择一个属于GF(p)的私钥SK,并通过运算SK*Q得到公钥PK。

作为例子,本发明选取80位长的椭圆曲线密码算法,公钥PK和基点Q都为160位长,大数p和q则都为80位长。生成的N个公钥的表示方法:PK1,PK2,…,PKn。n个私钥的表示方法:SK1,SK2,…,SKn。在椭圆曲线密码算法下,一个公钥对应一个私钥,SKi对应PKi,(i=1,2,…,n)。n为将分发数据项的个数。

接下来,如图2所示,基站挑选一个第一随机数Kn,然后生成一个单向密钥链,由Kn,Kn-1,…,K1,K0组成,其中Kj=H(Kj+1)(j=n‐1,n‐2,…1,0)。密钥Kn,Kn-1,…,K1,K0称为谜键(puzzle key)。

接下来,基站用密钥链Ki作为密钥,加密公钥PKi。(i=1,…,n‐1,n)。

相应的公钥用相应的密钥加密,比如K1加密PK1,K2加密PK2,…,Kn加密PKn。对称加密算法为AES算法,得到加密后的公钥密文信息

在传感器网络部署之前,将哈希链的承诺值K0与基站的公共参数{Q,p,q},N个公钥密文信息一同装载到各个传感器节点中。哈希链又称为版本链,因为其内容对应消息的更新版本,即存储在传感器节点中哈希链的第j个迷键也叫做第j个版本密钥。

制作公钥密文信息的意义,一般情况下,公钥直接布置在节点上,被敌方获取之后,敌方可以直接从公钥破解出私钥。但是对公钥进行加密之后,敌方无法直接获取公钥信息,不可能破获私钥来控制整个系统。而且采用AES的加密算法加密速度快,安全性高,很符合无线传感器网络的实际需求。

在完成系统初始化阶段后,进入数据包的前期处理阶段。如果基站想分发这样一个数据项:Di={key,version,data},其中i>0。基站会采用数字签名方法,消息迷惑技术,通过执行以下步骤来构建的数据包。key是在权利要求书中的变量标识,version是版本号,data是数据。

基站利用私钥对数据项进行数字签名,得到

基站利用已有数据项Di,数字签名以及当前迷键Ki构建数据包。

基站暴力找寻一个数值W,如图3,它的意义在于使整个数据包的哈希值,的前若干个字节数值为0。

基站将作为广播包广播出去。

接下来是数据包验证阶段。当传感器节点接收到一个数据包时(该数据包从任意一个相邻的一跳传感器节点或基站接收到),每个传感器节点,执行以下操作:

所述传感器节点直接将数据包中的数值,数据项,签名,迷键作为哈希算法的输入,计算数据包的哈希结果,如果哈希结果的前若干个字节的值为0,则进行下一步,否则丢弃该包。

传感器节点将接着通过安全哈希算法操作对数据包中的迷键Ki进行哈希运算,如果所得哈希结果和传感器节点上存储的迷键Ki-1一样,即Ki-1=H(Ki)则接着执行下一步骤操作;否则直接放弃该数据包。

传感器节点用数据包中的迷键Ki解密节点中存储到公钥密文信息求得公钥PKi,如图4。然后,传感器节点用PKi验证该数字签名的正确性,如果签名验证失败,则传感器节点直接放弃该数据包;否则,传感器节点从该数据包中的数据项Di里选出二元组{key,version}并检查version,如果接收到的是一个新的版本,则执行下面的步骤a;如果接收到的是与本身存储的同一个版本,则执行b;如果接收到的是一个旧版本,则执行c。对应的操作如下:

a、传感器节点根据该变量标识key更新数据data;

b、传感器节点通过Trickle算法增加此数据包的广播间隔,这样会在网络一致性的情况下减少网络能量花销。

c、传感器节点广播目前自身所储存的数据项。

验证阶段的具体实例:

例如接收端传感器节点接收到数据包此时传感器节点上储存有迷键K1,公钥密文信息

传感器节点首先对证packet2进行哈希运算,如果哈希结果,符合特定的预设条件,比如前若干个字节全部为相同的数字,例如全为0,则进行下一步验证,否则丢弃该包。

预设条件还可以是其他类型的排列或组合,本领域技术人员能够想到的组合均包含在本发明的发明构思之中,本具体实施例对此不做限定。

传感器节点验证单向密钥链的正确性,对数据包中的K2进行哈希运算,如果哈希运算的结果等于传感器节点上已经存储的K1的话,进行下一步验证,否则丢弃该包。

传感器节点用接收到的数据包里的K2做密钥解密公钥密文信息求得PK2

传感器节点用PK2来验证签名的正确性,如果正确性通过,则根据数据项的版本新旧进行数据项的更新操作。

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

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1