ZigBee技术作为一种新兴的短距离无线通信技术,在无线传感网络中有着良好的应用前景。虽然ZigBee网络中采用了基于AES-128加密算法对称密钥的安全机制,但是其应用没有完全体现出公共密钥体系中的诸如数字签名和无需证书认证的优点。而且在对数据安全性敏感的监控和控制应用中,需要有对ZigBee设备身份鉴别的能力。考虑到ZigBee网络节点具有计算能力低、电源能量有限、易被攻击等特点,我们提出了一种基于IBE算法的ZigBee网络加密方案。
一、ZigBee网络安全结构和加密算法分析
ZigBee 技术的物理层和数据链路层协议主要采用IEEE802. 15. 4 标准,而网络层和应用层由ZigBee 联盟负责建立。数据链路层、网络层和应用层负责在各自层上传输安全的数据,而且应用子层提供安全关系的建立和维护等服务、ZigBee设备对象管理安全策略和设备的安全配置。ZigBee协议提供了一套基于128位AES算法的对称密钥体系,同时还使用了更新计数器和信息完整性检测来阻止对网络的反复攻击和信息的修改。ZigBee网络中存在三种基本密钥:主密钥、链接密钥和网络密钥。链接密钥和网络密钥可以在设备制造时设置,也可以通过主密钥建立,并且它们还可以定期的更新。在整个ZigBee网络中,信任中心负责网络成员管理和密钥分配。信任中心有两种工作模式:住宅模式(Residential Mode)和商业模式(Commercial Mode)。
图1描绘了在住宅模式和商业模式中使用的密钥的数量。在图1中,节点A是ZigBee网络的协调者,节点B、C、D是路由节点,节点E、F、G、H是网络的终端节点。在住宅模式中,整个网络只使用一个密钥KN。在商业模式中,KMXY是X与Y之间的主密钥,KLXY是X与Y之间的链接密钥。
虽然现行的ZigBee安全协议通过用AES算法为信息传输的安全提供有力的保障,但是它还是有一定的局限性:
a、这种基于对称密钥加密系统模式不提供数字签名和不可抵赖(Non-repudiation)能力。虽然这种模式能够满足人类日常应用,但是在一些关键性应用中仍需要更强的保护能力;
b、网络中使用的安全密钥的数量。只使用一个密钥的住宅模式虽然能够保证资源的最优化,但不能阻止内部攻击。商业模式是很安全但却需要大量的密钥(主密钥、网络密钥、链接密钥),占用更多的频带资源;
c、对称密钥的分配问题。该模式必须有一个密钥预分配过程,即事先将对称密钥存储在节点中,对增加和替换节点就显得不够灵活。同时,在新增加节点和删除节点后,必须建立新的相邻节点的密钥对。
鉴于对称加密系统在密钥管理和安全性方面不足,结合ZigBee网络节点的计算能力低、电源能量有限、易被攻击等特点,我们提出了一种基于IBE算法的ZigBee网络加密方案。
二、基于IBE的ZigBee网络密钥理论分析和建立方法
有资料研究了一种基于硬件的非对称密钥加密算法。采用优化的参数和算法,其能量消耗可小于20 μW。这使得非对称密钥算法在ZigBee网络中的应用成为可能。有资料指出椭圆曲线密码系统(Elliptic Curve Cryptography, ECC)在计算量和内存需求方面有一定的优势,使得基于身份标识的加密算法IBE适合应用于ZigBee网络。
基于身份标识的加密算法IBE由Shamir于1984年首先提出的。直到2001年Boneh和Franklin的论文才给出了一个可实际应用的实现方法。在网络中,负责生成并传送用户私钥的可信第三方记为PKG( Private Key Generator)。IBE算法过程如下:
1、安全假设
IBE加密方案的安全性建立在CDH(Computational Diffie-Hellman)困难问题的一个变形之上,称之为BDH(Bilinear-Diffie-Hellman)问题。IBE的核心是使用了超奇异椭圆曲线上的一个双线性映射(Weil Pairing)。我们记Zq为素数阶q的加法群,Zq={0,1...q-1},Z+为正整数,1G为循环加法群,2G为循环乘法群,1G、2G具有相同的素数阶q。
① 设p是一个大的素数,p=2mod3,并且存在大素数q使得p=6q-1;
②E /GF(p)是在GF(p)上构造的椭圆曲线:y2=x3+1,p是该曲线上阶为q的一个点,由p生成的循环群记为G;
③ BDH 问题:对随机*a,b,c=Zp*,已知是一具有下列性质的映射:
双线性性:如果对所有的,xyGÎ,,abZÎ,都有,则映射ˆe称为一个双线性映射;
非退化性:存在P,Q=G,使得ePQ¹1;
可计算性:有一个多项式时间算法来计算ˆe(P,Q)。
2、Boneh-Franklin IBE算法
基本的Boneh-Franklin IBE算法主要由4个函数组成:Setup,Extract,Encrypt和Decrypt分别完成系统参数建立、密钥提取、加密和解密的功能。
算法1:The Basic Boneh-Franklin (BBF) Scheme。
Setup:
Step 1: PKG选择k比特长的素数p,找一条满足WDH安全假设的超奇异椭圆曲线E /GF ( p), E /GF( p)的q阶子群G,G的生成元P,双线性映;
Setp 2:PKG随机取s=Zq*,计算Ppub=sP;
Step 3:选择散列函数H1: {0,1}*→E /GF( p ),H2:GF( p 2)→{0,1}n。明文空间为M={0,1}n,密文空间为C=E/GF(P)×{0,1}n,输出的系统公共参数为:
。
Extract: 对给定的字符串Id={0,1}*,生成密钥。
Step 4:计算
Step 5:取密钥为。
Encrypt: 对原文M=m和公钥Id,加密步骤如下。
Step 6:计算。 Step 7:随机取r=Z*q,加密的密文为:
Decrypt:设c=<U,V>为密文,解密步骤为:
Step8: 应用密钥KId=E/GF(p),计算原文
3、基于身份标识密钥体系的ZigBee网络密钥建立方法
基于BBF算法,本节给出一种应用于ZigBee网络的密钥建立、分配和加密方法。它由3部分组成,具体方法定义如下。
(1)初始化过程
初始化过程由两部分组成,一是计算公共参数,二是计算节点密钥。首先应用Setup函数计算公共参数,并选择主密钥s。 应用Extract函数,根据每个无线节点的标识Id={0,1},计算和相对应的密钥。
将π、Id和IdK写入到无线节点中,使得每个节点都有自己的密钥和相关的公共参数。
(2)加密过程
对一个无线传感器网络中的发送节点A和接收节点B,以及明文m,B的身份Id为公钥,随机取r=Zq*。
应用公共参数进行明文加密,密文为:
特别要指出的是,基于IBE算法,可以将加密和认证结合起来,以小的代价同时完成加密和认证。这也是IBE算法可进一步应用于ZigBee网络的优势。
节点B 收到密文c=<U,V>后,应用密钥:
4、基于身份标识密钥体系的ZigBee网络密钥工作过程
在ZigBee网络中使用各个设备的功能作为它的身份来区分其他的设备。如果多个设备的功能相同,身份信息包含其他信息来区分这些设备,如位置信息或连续信息。为了增强安全性身份信息还可以附加上时间标识(Time-stamp)。总的来说,身份信息可以表示为:
ID = {device_description@domain||time-stamp}。 基于IBE的ZigBee网络加密系统的工作原理与基于身份加密系统模型相类似,其工作步骤如下:
① 信任中心(Coordinator,网络协调器)生成一个主密钥(Master-key),同时把公共参数(Params)广播给所有网络设备;
② 加入ZigBee网络的设备向信任中心注册自己的身份信(Iddevice);
③ 信任中心(PKG)授权一个私钥(Prid)给完成注册的设备,其中包含了该设备的身份信息;
④ 和该设备通信的其他设备,获取该设备的身份信息也在发送信息中表明自己的私钥(Prsender);
⑤ 加密消息通过若干中继到达目的节点。在传输过程中消息是安全的,因为只有拥有相应私钥(Prdevice)目的节点才能解密并阅读该信息。
其加密方案如图2,图3所示。
5、基于身份标识密钥体系的ZigBee网络密钥与其他加密方法比较
TinyOS是UC Berkeley(加州大学伯克利分校)开发的开放源代码操作系统,专为嵌入式无线传感网络设计。它基于一种组件的架构方式,能够快速实现无线传感器网络的仿真,提供运行时的调试和配置,可以实时监测网络状况。实验中随机布置了50个无线传感器节点(见图4),这些节点都有一个唯一的身份标识Id。在仿真ZigBee网络过程中,初始化过程在组网之前完成,传感器节点只需进行基于IBE加密和解密工作。实验表明基于IBE算法的加密方法可适用于ZigBee无线传感器网络的密钥管理、加密和解密。下页表1是不同加密方法的对比,其中,n为ZigBee网络中网络节点的数量。
与ZigBee协议中的对称加密系统相比,基于IBE算法具有公钥密钥系统的优势,如密钥的管理、建立等,而且与网络的规模无关;与传统的公钥密钥系统相比,如RSA算法,在安全性、计算速度、存储要求、带宽需求等方面具有优势,IBE算法采用的公钥是基于节点的身份标识,相比于RSA加密系统具有更短的密钥长度,减少了计算量和通信开销。基于IBE算法,可以将加密和认证结合起来,以小的代价同时完成加密和认证。本文的理论分析和实验结果表明,基于IBE算法的密钥方法适应用于ZigBee网络,为该类型的网络安全提供了新的加密手段。
小知识之IBE算法
IBE 由Shamir于1984年首先提出。这种加密算法的基本思想是公钥可以是任何唯一的字符串 ,如 email地址 、身份证或其他标志,它的优点是公钥是可识别的,不需要通常PKI系统的证书发放,同时可以以椭圆曲线形式实现该算法。