一种基于ECDSA算法的无线传感器网络广播认证方法
技术领域
本发明涉及一种基于ECDSA算法的无线传感器网络广播认证方法,属于通信技术和信息安全领域。
背景技术
现有的无线传感器网络广播认证方法分为基于认证码的广播认证方法和基于数字签名的认证方法。Perrig等在SPIN安全模型中提出了一种基于认证码的传感器网络广播认证算法μTESLA,μTESLA利用Hash链,在广播时通过延迟公布密钥机制使用对称密钥实现了广播认证,该算法能耗低,实现简单,但是需要节点间宽松时间同步协议支持,同时由于引入了认证延迟,易受到选择性转发攻击和DOS攻击;aekyoungKwon等提出了X-μTESLA用于解决μTESLA网络休眠、失效,受到攻击时存在的问题,DonggangLiu等基于μTESLA提出了一种Tree-BasedμTESLA广播方案,该方案适用于多个广播节点,能够抵御针对μTESLA分发过程的DoS攻击,D.G.Liu和P.Ning提出了Multi-LevelμTESLA,该协议采用多级密钥链的方式来维持μTESLA的生存期,同时使用冗余传输和随机选择策略来完成密钥链的发布,提高了节点对包丢失的容忍度和抗DOS攻击的能力.沈玉龙等在协议μTESLA的基础上,利用门限密码思想,提出了一种适合于多基站传感器网络的广播认证协议MMμTESLA,Yu-ShianChen等将Bloomfilter应用到μTESLA中,提高了算法的可扩展性,降低了通信消耗,使得算法能适用于多用户和长时间的情形。μTESLA类方案具有计算量小,安全性高的特点,但是也存在一些不足之处:(1)μTESLA类方案采用延迟公布密钥的方法实现广播认证,这在一些对实时性要求较高的应用中是不合适的,并且易遭受wormhole攻击;(2)μTESLA类方案必须暂存当前时间段内的所有广播数据,这对于广播量较大的应用是不合适的,易占用大量的内存资源及遭受DOS攻击,例如某个攻击者可以在一个单位时间内大量发送数据包,会导致内存溢出;(3)μTESLA类方案对于数据包丢失很敏感,不适用于低功耗、能量受限、稳定性较差的的无线网络环境,并且容易遭受选择性转发攻击。
近来的一些研究表明,基于公钥密码体制采用数字签名的算法经过优化后也能够应用于传感器网络中。KuiRen等利用椭圆曲线密码学算法(ECC)提出了基于Bloomfilter的多用户广播认证算法BAS,BAS将用户的ID和公钥PKID组成的数据结构<ID,PKID>映射到一个长度为m的位串V上,减少了公钥占用的存储空间,从而解决了公钥的认证性问题,为了进一步减少公钥的存储空间,KuiRen等又提出了基于MerkleHash树的广播方案HAS。BAS和HAS较好的减少了公钥的存储空间,解决了公钥的认证性问题,其主要的缺点在于,每一条广播消息都需要进行ECDSA算法进行数字签名和认证,计算代价大。XuefeiCao等利用基于身份的公钥密码学提出了IMBAS算法,该算法对BNN-IBS签名算法改进为vBNN-IBS应用于传感器网络广播中,在不降低安全性的前提下,减少了通信消耗,vBNN-IBS基于椭圆曲线密码体制,计算量较大,针对公钥认证算法计算量大的缺点,WangRonghua等提出了ShorPK算法,ShorPK将公钥算法的密钥缩短,降低运算量,同时降低公钥的生存期,利用μTESLA认证方案的思想,将认证时间分为若干个时间段,每一个时间段有一个公钥密钥进行认证,ShorPK较好的解决了公钥密码体制在传感器网络上的广播认证问题,但是没有能够较好的解决公钥的分发问题,对选择性转发攻击较敏感。
发明内容
本发明的目的是解决现有无线传感器网络广播认证方法中出现的运算量大的问题而提出一种基于ECDSA算法的无线传感器网络广播认证方法。
本发明为解决上述上述技术问题而提出一种基于ECDSA算法的无线传感器网络广播认证方法,该方法的步骤如下:
1).将无线传感器网络的生存期T分为t个时间段Ti(1≤i≤t);
2).利用ECDSA签名认证算法为每一个时间段Ti对应产生一个密钥对PKi/Ski(1≤i≤t);
3).利用k个哈希函数将公钥PKi映射到长度为m的位串V[m]=v0v1…vm-1,将此位串V[m]预先装入到传感器网络节点中,并将传感器节点随机抛撒到目标区域中;
4).在时间Ti内,节点广播消息PKi||Ti;
5).节点在收到广播消息时,判断Ti与本节点当前时间是否一致,若一致则计算若有V[hl(PKi||Ti)]=1,则可知PKi∈{PK1,PK2,…,PKt},则该密钥通过验证,节点将此公钥记录下来,该公钥在Ti时间内有效,超过Ti时间,则将此公钥作废;
6).在Ti时间内广播消息m时,节点使用Ski进行数字签名并广播签名后的消息m||(r,s);
7).节点收到消息m||(r,s)后利用公钥PKi按照ECDSA算法的签名认证算法进行消息认证,判断该签名是否合法;
8).复上述步骤4)到步骤7),直至无线传感器网络的整个生存期T结束。
所述的步骤2)中的产生密钥对是通过ECDSA参数生成和ECDSA签名方案的密钥生成完成的。
所述的步骤3)生成位串V[m]的过程为:
利用k个哈希函数h1,h2,…hj,…hk(1≤j≤k)将PKi映射到长度为m的位串V[m]=v0v1…vm-1:
为解决上述技术问题本发明还提出了一种基于ECDSA算法的无线传感器网络广播认证方法,该认证方法的步骤如下:
1).将传感器网络的生存期T分为t个时间段Ti(1≤i≤t),再将Ti分为个更小的时间片
2).利用ECDSA签名认证算法为每一个时间段Ti对应产生一个密钥对PKi/Ski,以及每一个时间段对应产生一个密钥对
3).利用k个哈希函数将公钥PKi映射到t个长度为m的位串中,并将此第1个位串预先装入到传感器网络节点中,然后将传感器节点随机抛撒到目标区域中;
4).在时间段节点广播消息;
5).当节点收到广播消息后,首先判断与本节点当前时间是否一致,若一致则计算若有则可知则该密钥通过验证,节点将此公钥记录下来,该公钥在时间内有效,超过时间,则此公钥作废;
6).在时间内广播消息m时,节点使用进行数字签名并广播签名后的消息m||(r,s);
7).节点收到消息m||(r,s)后利用公钥按照ECDSA算法中的的签名认证算法进行消息认证;
8).在时间Ti内,节点将下一个时间段Ti+1内用到位串Vi+1[m],使用SKi进行数字签名,并广播到各节点中;
9).重复上述步骤4)到步骤8),直至无线传感器网络的整个生存期T结束。
所述的步骤2)中的产生密钥对是通过ECDSA参数生成和ECDSA签名方案的密钥生成完成的。
所述的步骤3)生成位串的过程为:
利用k个哈希函数h1,h2,…hj,…hk(1≤j≤k)将映射到t个长度为m的位串(1≤i≤t)中:
本发明的有益效果是:本发明利用ECDSA算法和Bloomfilter,通过将无线传感器网络生存时间分成若干小的时间段,根据ECDSA签名算法为每一个时间段产生一个密钥对,利用哈希操作将公钥集合映射到一位串中,并将该位串装入网络节点中,然后进行公钥认证、消息签名和消息认证。该方法实时性好,计算代价小,能够容忍数据包丢失,和ShortPK算法相比,占用内存少,为了减少在生存期较长的时候ECDSA-BA方案的内存占用,又提出了适用于较长生存期的PECDSA-BA,该方法拥有在实时性、计算性能、安全性能、容忍数据包丢失等方面的优点。
附图说明
图1是本发明实施例中使用ECDSA-BA算法时误称率随位串长度变化情况图;
图2是本发明中使用PQ-BA算法时网络节点生存期划分结构图;
图3是四种算法在进行广播认证时能耗情况比较图;
图4是系统生存时间和占用内存空间的关系图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
A→B表示节点A发送消息到节点B;A→*表示节点A发送广播消息到所有邻居节点;M1||M2表示两个消息的连接。
本发明的研究基于以下几个假设:
(1)Sink节点是可信的;
(2)Sink节点较强的计算能力和通信能力;
(3)Sink节点可以是移动或静止的。
实施例一
本发明的一种基于ECDSA算法的无线传感器网络广播认证方法的具体步骤如下:
1.将传感器网络的生存期T分为t个时间段Ti(1≤i≤t),每一个时间段Ti为数分钟或数小时,对于数小时或数分钟内的安全认证,这里我们选择ECDSA的密钥长度为80位。
2.为ECDSA算法生成参数组,参数组的生成算法如下:
1).输入:域的阶为q,Fq的域表示FR,安全级别L满足要求;
2).输出:参数组2;
3).若Fq是素域、二进制域或OEF,随机选择a,b∈Fq,令S为生成种子,若Fq是素域或OEF则令E为y2=x3+ax+b;若Fq是二进制域,则y2+xy=x3+ax2+b
4).计算N=#E(Fq);
5).检验N是否能被满足n>2L的大素数n整除,若不能,则跳至步骤1);
6).检验n对于所有1≤k≤20是否能被qk-1整除,若能,则跳至步骤1);
7).检验是否n≠q,若不是,则跳至步骤1);
8).令h←N/n;
9).选择任意的点P′∈E(Fq)并令P=hP′,重复直到P≠∞;
10).返回任意的D=(q,FR,S,a,b,P,n,h)。
3.生成ECDSA签名方法生成密钥,其具体过程为:
输入:参数组D=(q,FR,S,a,b,P,n,h)
输出:公钥Q,私钥d
1).选择d∈R[1,n-1];
2).计算Q=dP;
3).返回(Q,d);
4).得到公钥PKi为Q,对应的私钥SKi为d。
4.利用步骤2和3中的ECDSA签名方法为每一个时间段Ti对应产生一个密钥对PKi/Ski(1≤i≤t)。
5.利用k个哈希函数h1,h2,…hj,…hk(1≤j≤k)将PKi映射到长度为m的位串V[m]=v0v1…vm-1:
并将此位串V[m]预先装入到传感器网络节点中,然后将传感器节点随机抛撒到目标区域中。
6.在时间Ti时,Sink节点首先广播如下消息:
Sink→*:PKi||Ti
当节点收到广播消息后,首先判断Ti与本节点当前时间是否一致,若一致则计算若有V[hl(PKi||Ti)]=1,则可知PKi∈{PK1,PK2,…,PKt},则该密钥通过验证,节点将此公钥记录下来,该公钥在Ti时间内有效,超过Ti时间,则此公钥作废。
7.在Ti时间内广播消息m时,Sink节点使用Ski进行数字签名,具体操作如下:
输入:参数组D=(q,FR,S,a,b,P,n,h),私钥d,消息m;
输出:签名(r,s);
1).选择
2).计算并将转换为整数
3).计算若r=0,则跳转至步骤1);
4).计算e=H(m);
5).计算若s=0,则跳至步骤1);
6).返回(r,s)。
8.随后Sink节点做如下广播:Sink→*:m||(r,s)。
9.节点收到消息m||(r,s)后利用公钥PKi按照如下算法进行消息认证:
输入:参数组D=(q,FR,S,a,b,P,n,h),公钥Q,消息m,签名(r,s);
输出:判断签名是否合法;
1).检验r和s是否区间[1,n-1]内的整数,若任何一个检验失败则返回(“拒绝签名”);
2).计算e=H(m);
3).计算w=s-1modn;
4).计算u1=ewmodn和u2=rwmodn;
5).计算X=u1P+u2Q;
6).计算X=∞,则返回(“拒绝该签名”)。
7).将X的x的坐标x1转换为整数计算
8).若v=r,则返回(“接受该签名”),否则,返回(“拒绝该签名”)。
在ECDSA-BA算法中,BloomFilter对数据集合采用一个位串表示并能有效支持公钥集合的哈希查找操作.由于其表示算法的随机特性,存在某元素不属于公钥集合{PKi}(1≤i≤t),而被指称属于该公钥集合的可能性,其大小记为误称率,只要这种可能性足够地小以致在实际应用中能容忍这种误差,算法即是有效的。每次将PKi||Ti映射到V[m]使得V[m]中某位为1的概率为为0的概率为算法执行t次后,某位仍为0的概率为:则某攻击者伪造的PK||T通过k个哈希函数映射,被错误映射到V[m],使得都有V[hl(PK||T)]=]的概率为
为使pe最小,应使最小,则有:
可得:
将(6)代入(5)可得:
由(3)可以看出,在时间t一定的情况下,pe随着m的变大而减小,如图2所示,当时间间隔个数t一定时,pe随m的变化情况,当时间t较小时,为达到一定的误称率,需要的内存较小,以t=100为例,当pe=1.36e-21时,m=10000bit;当t较大时,为达到一定的误称率,需要的内存显著上升,
当t=1000时,为达到pe=1.36e-21的误称率,需要m>100000bit,占用内存12.5kbyte,当Ti=10小时,则在达到pe=1.36e-21的误称率,占用内存12.2kbyte的条件下,系统可以安全工作417天,可以看出,在节点内存空间较大的情况下,系统能够满足基本的无线传感器网络广播认证需求。
实施例二
在ECDSA-BA算法中,为达到更高的安全级别,令Ti=10分钟,t=1000,则在达到pe=1.36e-21的误称率条件下,系统可以工作一周,占用内存12.2kbyte,工作时间较短,当传感器网络的生存期t增大时,为达到同样的误称率,占用的内存数量增大,当t=5000时,占用内存61kbyte,这对于资源有限的传感器网络系统而言是不合适的,为此我们在ECDSA-BA算法上进行了改进,提出PECDSA-BA算法,使用该算法的无线传感器网络广播认证方法的具体步骤如下:
1.将传感器网络的生存期T分为t个时间段Ti(1≤i≤t),每一个时间段Ti为数天;再将Ti分为个更小的时间片
2.每一个时间段对应产生一个密钥对产生密钥对的过程和实施例一中所述一样,详情请参考实施例一中的步骤2至步骤4。
3.利用k个哈希函数h1,h2,…hj,…hk(1≤j≤k)将映射到t个长度为m的位串(1≤i≤t)中:
将此第1个位串Vi[m]预先装入到传感器网络节点中,然后将传感器节点随机抛撒到目标区域中。
4.在时间时,Sink节点首先广播如下消息:Sink→*:当节点收到广播消息后,首先判断与本节点当前时间是否一致,若一致则计算有则可知则该密钥通过验证,节点将此公钥记录下来,该公钥在时间内有效,超过时间,则此公钥作废。
5.在时间内广播消息m时,Sink节点使用进行数字签名,其具体操作过程请参照实施例一中的步骤7。
6.随后Sink节点做如下广播:Sink→*:m||(r,s)。
7.节点收到消息m||(r,s)后利用公钥按照进行消息认证,其具体操作过程请参照实施例一中的步骤9。
8.在时间Ti内,Sink节点将下一个时间段Ti+1内用到位串Vi+1[m],使用SKi进行数字签名,并广播到各节点中。
9.重复上述步骤4-8直至整个无线传感器网络生存期T结束。
传感器网络认证算法应该具有一定的可扩展性,可扩展性是指算法适应不同规模传感器网络的能力。本发明针对不同节点内存空间大小提出的ECDSA-BA和PECDSA-BA算法能够适用于不同规模的传感器网络中,不会因为网络规模的增大而增加开销,在μTESLA算法中,基站完成广播初始化后,通过单播方式实现每个节点的认证加入和同步,这对于大规模的网络而言是一个巨大的开销。无线传感器网络中的广播一般都是实时的,节点在接收到数据后,应当立刻进行认证,TESLA类算法利用Hash链,在广播时通过延迟公布密钥机制使用对称密钥实现了广播认证,从而引入了认证延迟,容易受到DoS攻击。在无线通信环境中,数据的传输受外界干扰较大,因此广播认证算法应当具有一定的抗包丢失能力,μTESLA类算法利用Hash链进行认证,ShortPK算法利用前一时间段的公钥为本时间段用到的公钥进行认证,需要保证数据包传输的完整性,数据包的丢失将导致算法失效或能耗增加。
ECDSA-BA和PECDSA-BA算法不仅适用于单用户广播认证,也适用于多用户广播认证,在多用户广播认证时,只需要再增加一个位串V[M]即可。
表1典型广播认证算法性能比较
能耗分析
在ECDSA-BA中,采用ECDSA算法,为了达到与shortPK(ECC-80bit)同等的安全强度,我们选择ECDSA算法的密钥长度也为80bit。ECDSA算法的计算代价C(LPK)同LPK有如下关系:
由公式(4)可将典型的无线传感器网络公钥广播认证的能耗估计如表2:
表2一次认证所需计算能耗(单位:mJ)
在传感器网络广播认证算法中,除对消息进行认证的计算耗能CPAU_Mes外,还包括对公钥进行认证的耗能CPAu_PK。
Q-BA的通信消耗主要是在Ti时间内接收公钥的通信量以及对数据包的数字签名额外增加的通信量PQ-BA的通信消耗主要是在Ti时间内接收公钥的通信量对数据包的数字签名额外增加的通信量以及在Ti时间内发送的位串Vi+1[m]所增加的通信量ShortPK的通信消耗主要是Ti时间内接收公钥的通信量以及对数据包的数字签名额外增加的通信量BAS的通信消耗主要是对数据包的数字签名额外增加的通信量因此对于各算法的总耗能C有:
以Mica2平台为例,设PECDSA-BA中p=10,则由(5)-(8)可得如图3所示:由图3可以看出,BAS算法消耗的能量最多,使用ECDSA-BA和ShortPK算法进行广播认证,消耗的能量最少。当单位时间发送的数据包较少时,使用PECDSA-BA是不合适的,PECDSA-BA单个包认证的平均能耗随着单位时间内广播数据包的个数的增加而减少A。
存储消耗分析
PECDSA-BA和ECDSA-BA算法占用的存储空间主要是Bloomfilter的位串V[m]所占的空间,由前述讨论可看出,V[m]所占的空间与误称率呈负指数关系,误称率越小,则V[m]所占的内存空间越大,为了保持算法的安全性,必须保持较小的误称率,图4给出了在误称率一定的情况下,节点内存和网络生存期的关系.可以看出,误称率越小,占用的内存空间越大,系统生存时间越长占用的内存空间越大.显然,所需存储空间远小于ShortPK(因为ShorPK是将密钥直接加密存在内存中)。
安全性分析
μTESLA类算法通过延迟公布密钥的方法进行数据认证,攻击者可以在基站公布密钥前发送大量无效数据,节点必须先保存这些数据,等密钥公布后进行认证,这样会导致节点内存溢出从而使系统失效.ECDSA-BA(PECDSA-BA)算法是实时的,节点可以在接到数据后立即进行认证,从而避免了类似的攻击.对ECDSA-BA(PECDSA-BA)的密钥进行伪造,从计算上而言,也是不可行的,当误称率pe=1.36e-21时,设攻击者每秒可以验证1000亿个密钥,则获得一个合适的密钥需要的时间是233年,表3给出了在不同的误称率下,攻击者获得一个合适的密钥需要的平均时间。
表3不同误称率下攻击者成功攻击所需的平均时间