2. 广西嵌入式技术与智能系统重点实验室, 广西 桂林 541006
2. Guangxi Key Laboratory of Embedded Technology and Intelligent System, Guilin, Guangxi 541006, China
开放科学(资源服务)标志码(OSID):
无线传感器网络(Wireless Sensor Networks,WSN)由大量资源受限的感知节点构成[1-2],通过数据聚集和数据查询等操作实现监控以及侦查等功能,具有广泛的应用场景[3-5]。其中,两层无线传感器网络由于路由简单、寿命较长等优点,备受研究人员的关注,并基于两层无线传感器网络提出范围查询[6-7]、top-k查询[8-9]、最值查询[10-11]等安全高效的查询方案。
文献[12]中提出一种范围查询方法SafeQ,感知节点使用对称加密算法对数据进行加密得到邻居链,同时使用了前缀成员验证技术对数据进行加密获得前缀成员编码,存储节点基于前缀成员编码特性将满足范围查询要求的邻居链发送至基站,基站通过邻居链对数据进行完整性验证。但是由于SafeQ采用了前缀成员编码技术,需要上传较多的编码数据,同时其采用了邻居链的方式进行完整性验证,也增加了感知节点的负担[13]。
因此,文献[14]中提出了一种范围查询方法CSRQ(Communication-efficient Secure Range Query),该方法使用对称加密算法对数据进行加密构建加密约束链,并使用0-1编码和HMAC(Hash-based Message Authentication Code)算法获取比较项,将加密约束链和比较项发送至存储节点进行存储,存储节点利用比较项性质返回满足基站查询要求的加密约束链,基站通过加密约束链特性对数据进行完整性验证,但加密约束链依然包含了较多的冗余数据,使得感知节点上传的信息较多,能耗较高[13]。
为降低感知节点能量消耗,本文提出一种安全高效的多维数据范围查询方法。在数据上传阶段,感知节点运用AES加密算法加密数据得到数据密文,使用压缩HMAC算法减少上传的HMAC编码,压缩HMAC算法对数据最值进行加密得到最值比较链。在数据查询阶段,存储节点存储感知节点上传的信息,接收基站的查询命令,通过最值比较链将满足查询条件的数据密文、加密索引链发送至基站。在数据验证阶段,基站接收存储节点发送的信息,根据加密索引链性质对数据进行完整性验证。
1 相关模型 1.1 网络模型基于两层无线传感器网络,将网络分割为多个查询单元,每个查询单元包含一个存储节点
![]() |
Download:
|
图 1 两层无线传感器网络模型 Fig. 1 Two-layer wireless sensor networks' model |
采用多维数据的查询模型,以两维数据为例,可以形式化为以下公式:
$ Q=(E, H, [\mathrm{l}\mathrm{o}{\mathrm{w}}_{1}, \mathrm{h}\mathrm{i}\mathrm{g}{\mathrm{h}}_{1}], [\mathrm{l}\mathrm{o}{\mathrm{w}}_{2}, \mathrm{h}\mathrm{i}\mathrm{g}{\mathrm{h}}_{2}\left]\right) $ | (1) |
其中:
无线传感器网络普遍缺少人类的管理,容易被第三方窃取或者篡改感知节点数据。目前针对两层无线传感器网络的研究,主要有以下3种安全模型:
1)半诚实模型。存储节点可以遵守相应规则,但可能会泄露其中的感知节点上传信息。
2)完整性攻击模型。被俘获的存储节点可能会对查询结果进行篡改或丢弃,使返回基站的查询结果不完整。
3)强安全模型。被俘获的存储节点不仅会泄露感知节点上传的数据,而且会对查询结果进行伪造或丢弃,使得查询结果不完整。
基于强安全模型,本文提出一种安全高效的多维数据范围查询方法,有效维护两层无线传感器网络的安全。
2 隐私保护范围查询算法 2.1 反向0-1编码使用反向0-1编码实现密文形式下的数值大小比较,该编码方法不需额外进行数值化处理,降低了节点的计算能耗。设
$ \{{s}_{n}{s}_{n-1}\cdots {s}_{i}1\cdots 1|1\le i\le n\wedge {s}_{i}=0\} $ | (2) |
二进制序列
$ \{{s}_{n}{s}_{n-1}\cdots {s}_{i+1}0\mathrm{ }1\cdots 1|1\le i\le n\wedge {s}_{i}=1\} $ | (3) |
性质1 设数字
证明 如果2个编码集合存在一个相同的数据
性质2 设数字
证明 由性质1可知,当数字
性质3 设数字
基于文献[15]提出的压缩HMAC算法,本文提出一种新的压缩HMAC算法。设HMAC编码输出有
$ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(x\right)=x\mathrm{m}\mathrm{o}\mathrm{d}{2}^{\tau } $ | (4) |
其中:
对于任意2个在
性质4 对于2个HMAC编码集合
证明 当
性质5 对于2个HMAC编码集合
证明 当
因此,本文主要讨论出现失误的概率
$ 1-\frac{\frac{{2}^{\mu }}{{2}^{\tau }}\cdot \theta }{{2}^{\mu }} $ | (5) |
而只有当HMAC集合
$ {\left(1-\frac{\frac{{2}^{\mu }}{{2}^{\tau }}\cdot \theta }{{2}^{\mu }}\right)}^{w} $ | (6) |
当发生失误时,即当
$ 1-{\left(1-\frac{\frac{{2}^{\mu }}{{2}^{\tau }}\cdot \theta }{{2}^{\mu }}\right)}^{w} $ | (7) |
显然,当
$ {P}_{e}=1-{\left(1-\frac{\frac{{2}^{\mu }}{{2}^{\tau }}\cdot v}{{2}^{\mu }}\right)}^{w} $ | (8) |
在范围查询算法中,设HMAC集合
算法主要包含数据上传、数据查询和数据验证3个阶段。反向0-1编码记为
感知节点采集多维的数据,以二维数据为例,采集二维数据:
$ \begin{array}{l}A=\{{a}_{1}, {a}_{2}, \cdots , {a}_{n}\}\\ B=\{{b}_{1}, {b}_{2}, \cdots , {b}_{n}\}\end{array} $ |
使用AES加密算法进行加密,得到数据密文
$ \phi =\left\{\mathrm{A}\mathrm{E}\mathrm{S}\right(A), \mathrm{A}\mathrm{E}\mathrm{S}(B\left)\right\} $ |
同时,获取二维数据中的最小值和最大值,即:
$ \{{A}_{\mathrm{m}\mathrm{i}\mathrm{n}}, {A}_{\mathrm{m}\mathrm{a}\mathrm{x}}, {B}_{\mathrm{m}\mathrm{i}\mathrm{n}}, {B}_{\mathrm{m}\mathrm{a}\mathrm{x}}\} $ |
使用AES加密算法进行加密得到加密索引链
$ \lambda =\mathrm{A}\mathrm{E}\mathrm{S}({A}_{\mathrm{m}\mathrm{i}\mathrm{n}}, {A}_{\mathrm{m}\mathrm{a}\mathrm{x}}, {B}_{\mathrm{m}\mathrm{i}\mathrm{n}}, {B}_{\mathrm{m}\mathrm{a}\mathrm{x}}) $ |
将二维数据的最小值和最大值进行反向0-1编码:
$ \begin{array}{l}\left\{\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\right({A}_{\mathrm{m}\mathrm{i}\mathrm{n}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({A}_{\mathrm{m}\mathrm{i}\mathrm{n}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}({A}_{\mathrm{m}\mathrm{a}\mathrm{x}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({A}_{\mathrm{m}\mathrm{a}\mathrm{x}})\\ \mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\left({B}_{\mathrm{m}\mathrm{i}\mathrm{n}}\right), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}\left({B}_{\mathrm{m}\mathrm{i}\mathrm{n}}\right), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\left({B}_{\mathrm{m}\mathrm{a}\mathrm{x}}\right), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}\left({B}_{\mathrm{m}\mathrm{a}\mathrm{x}}\right)\}\end{array} $ |
为减少感知节点上传的信息,获取二维最值数据反向0-1编码的最小集合:
$ \begin{array}{l}\left\{\mathrm{M}\mathrm{I}\mathrm{N}\right(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\left({A}_{\mathrm{m}\mathrm{i}\mathrm{n}}\right), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}\left({A}_{\mathrm{m}\mathrm{i}\mathrm{n}}\right)), \\ \mathrm{M}\mathrm{I}\mathrm{N}\left(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\right({A}_{\mathrm{m}\mathrm{a}\mathrm{x}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({A}_{\mathrm{m}\mathrm{a}\mathrm{x}}\left)\right), \\ \mathrm{M}\mathrm{I}\mathrm{N}\left(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\right({B}_{\mathrm{m}\mathrm{i}\mathrm{n}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({B}_{\mathrm{m}\mathrm{i}\mathrm{n}}\left)\right), \\ \mathrm{M}\mathrm{I}\mathrm{N}\left(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\right({B}_{\mathrm{m}\mathrm{a}\mathrm{x}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({B}_{\mathrm{m}\mathrm{a}\mathrm{x}}\left)\right)\}\end{array} $ |
先对其使用HMAC算法,再使用Hash算法进行优化,得到最值比较链
$ \begin{array}{l}\left\{\mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\right(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\left(\mathrm{M}\mathrm{I}\mathrm{N}\right(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\left({A}_{\mathrm{m}\mathrm{i}\mathrm{n}}\right), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}\left({A}_{\mathrm{m}\mathrm{i}\mathrm{n}}\right)\left)\right)), \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{M}\mathrm{I}\mathrm{N}\left(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\right({A}_{\mathrm{m}\mathrm{a}\mathrm{x}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({A}_{\mathrm{m}\mathrm{a}\mathrm{x}}\left)\right)\left)\right), \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{M}\mathrm{I}\mathrm{N}\left(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\right({B}_{\mathrm{m}\mathrm{i}\mathrm{n}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({B}_{\mathrm{m}\mathrm{i}\mathrm{n}}\left)\right)\left)\right), \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{M}\mathrm{I}\mathrm{N}\left(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\right({B}_{\mathrm{m}\mathrm{a}\mathrm{x}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({B}_{\mathrm{m}\mathrm{a}\mathrm{x}}\left)\right)\left)\right)\}\end{array} $ |
将数据密文、加密索引链、最值比较链组成最终数据
$ {d}_{1}= < \phi , \lambda , \psi > $ |
基站获取二维数据的查询范围区间:
$ [{A}_{\mathrm{l}\mathrm{o}\mathrm{w}}, {A}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}], [{B}_{\mathrm{l}\mathrm{o}\mathrm{w}}, {B}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}] $ |
对区间进行反向0-1编码:
$ \begin{array}{l}\left\{\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\right({A}_{\mathrm{l}\mathrm{o}\mathrm{w}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({A}_{\mathrm{l}\mathrm{o}\mathrm{w}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}({A}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({A}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}), \\ \mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\left({B}_{\mathrm{l}\mathrm{o}\mathrm{w}}\right), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}\left({B}_{\mathrm{l}\mathrm{o}\mathrm{w}}\right), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\left({B}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}\right), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}\left({B}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}\right)\}\end{array} $ |
对反向0-1编码的结果运用HMAC算法和Hash算法得到查询范围区间的压缩HMAC数据
$ \begin{array}{l}\left\{\mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\right(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\left(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\right({A}_{\mathrm{l}\mathrm{o}\mathrm{w}}\left)\right)), \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}\left({A}_{\mathrm{l}\mathrm{o}\mathrm{w}}\right)\left)\right), \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\left({A}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}\right)\left)\right), \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}\left({A}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}\right)\left)\right), \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\left({B}_{\mathrm{l}\mathrm{o}\mathrm{w}}\right)\left)\right), \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}\left({B}_{\mathrm{l}\mathrm{o}\mathrm{w}}\right)\left)\right), \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\left({B}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}\right)\left)\right), \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}\left({B}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}\right)\left)\right)\}\end{array} $ |
基站获取查询时间区间
$ \mathrm{q}\mathrm{u}\mathrm{e}\mathrm{r}\mathrm{y}=\left\{\right[{T}_{\mathrm{s}\mathrm{t}\mathrm{a}\mathrm{r}\mathrm{t}}, {T}_{\mathrm{e}\mathrm{n}\mathrm{d}}], \zeta \} $ |
存储节点接收到基站发送的
$ \begin{array}{l}\mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{R}\mathrm{Z}\mathrm{O}\left({A}_{\mathrm{l}\mathrm{o}\mathrm{w}}\right)\left)\right)\le \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{M}\mathrm{I}\mathrm{N}\left(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\right({A}_{\mathrm{m}\mathrm{i}\mathrm{n}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({A}_{\mathrm{m}\mathrm{i}\mathrm{n}}\left)\right)\left)\right)\le \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{R}\mathrm{Z}\mathrm{O}\left({A}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}\right)\left)\right)\end{array} $ | (9) |
$ \begin{array}{l}\mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{R}\mathrm{Z}\mathrm{O}\left({A}_{\mathrm{l}\mathrm{o}\mathrm{w}}\right)\left)\right)\le \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{M}\mathrm{I}\mathrm{N}\left(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\right({A}_{\mathrm{m}\mathrm{a}\mathrm{x}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({A}_{\mathrm{m}\mathrm{a}\mathrm{x}}\left)\right)\left)\right)\le \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{R}\mathrm{Z}\mathrm{O}\left({A}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}\right)\left)\right)\end{array} $ | (10) |
$ \begin{array}{l}\mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{M}\mathrm{I}\mathrm{N}\left(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\right({A}_{\mathrm{m}\mathrm{i}\mathrm{n}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({A}_{\mathrm{m}\mathrm{i}\mathrm{n}}\left)\right)\left)\right)\le \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{R}\mathrm{Z}\mathrm{O}\left({A}_{\mathrm{l}\mathrm{o}\mathrm{w}}\right)\left)\right)\wedge \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{R}\mathrm{Z}\mathrm{O}\left({A}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}\right)\left)\right)\le \\ \mathrm{H}\mathrm{a}\mathrm{s}\mathrm{h}\left(\mathrm{H}\mathrm{M}\mathrm{A}\mathrm{C}\right(\mathrm{M}\mathrm{I}\mathrm{N}\left(\mathrm{R}\mathrm{Z}{\mathrm{O}}_{0}\right({A}_{\mathrm{m}\mathrm{a}\mathrm{x}}), \mathrm{R}\mathrm{Z}{\mathrm{O}}_{1}({A}_{\mathrm{m}\mathrm{a}\mathrm{x}}\left)\right)\left)\right)\end{array} $ | (11) |
其中:当
如果所有维度的数据都满足上述三个条件之一时,表明该数据满足基站的查询要求,将数据中的数据密文
$ {d}_{2}= < \phi , \lambda > $ |
基站接收来自存储节点的信息,解密数据密文,获取二维数据的最小值和最大值,即:
$ \{{A}_{\mathrm{m}\mathrm{i}\mathrm{n}1}, {A}_{\mathrm{m}\mathrm{a}\mathrm{x}1}, {B}_{\mathrm{m}\mathrm{i}\mathrm{n}1}, {B}_{\mathrm{m}\mathrm{a}\mathrm{x}1}\} $ |
解密加密索引链,判断数据密文中的最值是否与加密索引链中的数据最值一致,如果不一致则数据被伪造或者篡改,再与查询区间进行比较,以第一维数据举例:
$ \begin{array}{l}{A}_{\mathrm{l}\mathrm{o}\mathrm{w}}\le {A}_{\mathrm{m}\mathrm{i}\mathrm{n}1}\le {A}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}\\ {A}_{\mathrm{l}\mathrm{o}\mathrm{w}}\le {A}_{\mathrm{m}\mathrm{a}\mathrm{x}1}\le {A}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}\\ {A}_{\mathrm{m}\mathrm{i}\mathrm{n}1}\le {A}_{\mathrm{l}\mathrm{o}\mathrm{w}}\wedge {A}_{\mathrm{h}\mathrm{i}\mathrm{g}\mathrm{h}}\le {A}_{\mathrm{m}\mathrm{a}\mathrm{x}1}\end{array} $ | (12) |
满足上述条件后数据才是完整的,在数据密文中筛选满足查询要求数据,并显示在查询程序界面中。
2.4 算法安全性分析在两层无线传感器网络中,范围查询方法的安全性分析分为隐私安全性分析和查询结果完整性分析。隐私安全性分析主要针对范围查询过程中感知数据,查询范围以及查询结果是否泄露,而查询结果完整性分析主要针对基站接收查询结果之后判断查询结果是否被伪造或者删除。
2.4.1 隐私安全性分析范围查询方法使用AES对称加密算法对感知节点采集数据进行加密,使数据不被破解,AES对称加密算法需要相同密钥才可进行解密,范围查询方法通过DH密钥交换(Diffie-Hellman key exchange)进行密钥的生成,第三方无法获取密钥信息,因此保障了感知数据的隐私安全性。
基站将查询范围进行反向0-1编码、HMAC加密和Hash算法优化,再发送至存储节点。反向0-1编码用于进行大小的比较,HMAC具有单向不可逆性质,Hash算法可以优化HMAC编码,加密后的数据依旧可以用于大小比较,并且不能逆推回原始数据,即使存储节点被捕获也无法获取其明文数据,从而确保了查询范围的隐私安全性。
感知节点上传数据密文,加密索引链和最值比较链到存储节点,存储节点接收数据并进行存储,基站发送查询命令给存储节点,存储节点利用最值比较链进行大小比较,将对应的信息发送至基站。在比较过程中使用最值比较链进行比较,第三方无法逆推出原始数据,上传的信息使用了AES对称加密,第三方无法在未知晓密钥的情况下进行破解。因此,保障了查询结果的隐私安全性。
综上,该范围查询算法可以保障感知数据、查询范围和查询结果的隐私安全性。
2.4.2 查询结果完整性分析存储节点返回的数据如下:
$ {d}_{2}= < \phi , \lambda > $ |
1)当存储节点返回数据中的
2)解密数据密文和加密索引链,若解密出错,则数据被伪造或者篡改,返回数据不完整。
3)将数据密文和加密索引链的最值进行比较,如果两者最值数据不一致,表明数据被伪造或者篡改,返回数据不完整。
4)将数据密文最值与查询区间进行比较,如果数据密文最值不满足查询区间要求,则表明数据被伪造或者篡改,返回数据不完整。
对于存储节点返回基站的数据,如果满足上述4个步骤,返回数据才是正常的,满足范围查询算法的查询结果完整性要求。
3 实验结果与分析 3.1 实验在实验中,存储节点开启Wi-Fi,感知节点和基站连接该Wi-Fi,并在相同的局域网内进行密钥交换和数据传输。在数据上传阶段,感知节点作为客户端,而存储节点作为服务器端,感知节点采集多维数据,并将感知数据上传至存储节点。在数据查询阶段,存储节点则作为客户端,而基站作为服务器端,基站向存储节点发送查询命令,存储节点响应查询请求并将相应数据上传至基站。在数据验证阶段,基站接收存储节点发送的查询结果并进行查询结果完整性验证。
3.2 感知节点程序流程感知节点采用上海诺行信息技术公司的AliOS Things Developer Kit开发板,搭载了阿里巴巴公司自主研发的AliOS系统,并包含有:音频编解码器,8个传感器,8位数码相机,LCD显示屏,sixes LEDs,PCIe模块,USB_OTG_FS模块和Wi-Fi模块。
开发板先连接存储节点开启的Wi-Fi,确保自己可以正常进行通信,再与基站进行DH密钥交换,在不被第三方窃取密钥的情况下安全获取相同密钥。在获取相同密钥后,再通过该开发板采集监测区域物理数据,并进行加密运算形成数据密文,同时构建加密索引链和最值比较链,最终将数据密文、加密索引链和最值比较链传输到存储节点。图 2所示为感知节点的程序流程,图 3为AliOS Things Developer Kit开发板。
![]() |
Download:
|
图 2 感知节点程序流程 Fig. 2 Program procedure of perception node |
![]() |
Download:
|
图 3 AliOS Things Developer Kit开发板 Fig. 3 AliOS Things Developer Kit development board |
存储节点采用迅为电子公司的iTOP-4412核心板,使用三星的Exynos 4412四核处理器,系统为Linux系统,主频为1.4 GHz,内置了8 GB存储空间,具有9路的DC/DC和28路LDO输出电源,在-20~70 ℃范围的高低温测试中运行良好。
在存储节点通电后,先开启Wi-Fi,确保感知节点和基站可以正常通信。如果感知节点和基站没有成功连接Wi-Fi,则循环等待连接。在连接成功后,当存储节点接收到感知节点上传的数据时,判断该数据是密钥交换信息还是隐私数据信息,如果是密钥交换信息则发送给基站,如果是隐私数据信息,则需要进行存储。判断当天的数据表是否已经创建,如果已创建则将数据存入数据表,如果未创建,则先创建数据表再存入相应数据。图 4所示为存储节点程序流程,图 5为iTOP-4412核心板。
![]() |
Download:
|
图 4 存储节点程序流程 Fig. 4 Program procedure of storage node |
![]() |
Download:
|
图 5 iTOP-4412核心板 Fig. 5 iTOP-4412 core board |
基站用电脑程序模拟,电脑型号为SAMSUNG 500R5H,系统为Windows 8.1,软件环境为Visual Studio 2015,编程语言为Visual Basic.NET。
基站启动后先连接存储节点开启的Wi-Fi。连接Wi-Fi成功后,与感知节点进行DH密钥交换,获取相同的加密密钥,如果交换密钥失败,则重新连接Wi-Fi。当需要进行范围查询时,加密查询区间,将查询命令发送至存储节点,存储节点接收到查询命令后返回对应的查询结果。基站接收查询结果并进行查询结果完整性验证,如果满足验证,则筛选相应数据并在程序界面进行显示,如果不满足验证,则数据出错,结束查询。图 6为基站的程序流程,图 7为基站程序界面,图 8为DH密钥交换过程,图 9为感知节点上传数据,其中,data表示数据密文,index表示加密索引链,comparer表示最值比较链,图 10是基站范围查询结果,其中,Illuminance表示光照度,Temperature表示温度,Atmos表示大气压,Humidity表示湿度。
![]() |
Download:
|
图 6 基站程序流程 Fig. 6 Program procedure of base station |
![]() |
Download:
|
图 7 基站程序界面 Fig. 7 Base station program interface |
![]() |
Download:
|
图 8 DH密钥交换过程 Fig. 8 Process of DH key exchange |
![]() |
Download:
|
图 9 感知节点上传数据过程 Fig. 9 Process of sensing node uploading data |
![]() |
Download:
|
图 10 基站范围查询结果 Fig. 10 Base station range query results |
在感知节点通信过程中,电流做功使得电能转化成其他形式能量,有多少电能转化成其他形式能量即表明电流做了多少功,也即是电功的大小[22-23]。电子元件的电功大小与跟电流的大小、电压的高低和通电时间长短都有关系,有电功公式
为描述方便,将本文提出的隐私保护范围查询方法称为优化HMAC方法。HMAC加密算法使用HMAC-MD5算法,Hash算法中的参数
实验1 以单个周期采集数据个数N为自变量,其他参数如表 1所示,优化HMAC方法和CSRQ方法的通信时间如表 2所示,N对能量消耗的影响如图 11所示。
![]() |
下载CSV 表 1 实验1参数 Table 1 Parameters of Experiment 1 |
![]() |
下载CSV 表 2 实验1通信时间 Table 2 Communication time of Experiment 1 |
![]() |
Download:
|
图 11 N对能量消耗的影响 Fig. 11 Effect of N on energy consumption |
当N增大时,感知节点所需要进行处理的数据增多。CSRQ方法需要构建比较项和加密约束链,数据增多后需要构建更长的加密约束链,同时需要构建更多的比较项,使得该方法中的加密约束链的长度逐渐增大,比较项逐渐增多,感知节点的能量消耗也逐渐增大。而对于优化HMAC方法,数据密文是通过对采集数据进行AES对称加密运算生成,加密索引链则通过对采集数据的数据最值进行AES对称加密运算生成,最值比较链是通过对采集数据的数据最值进行反向0-1编码和压缩HMAC算法生成,N的增大只会增加采集数据总量,而不会增加采集数据中数据最值的个数,因而不影响加密索引链以及最值比较链的长度,只影响数据密文的长度。随着N的增大,数据密文长度逐渐增大,加密索引链和最值比较链长度不变,优化HMAC方法通信能耗相比CSRQ方法降低4.1倍。
实验2 以感知节点数据位数bit为自变量,其他参数如表 3所示,优化HMAC方法和CSRQ方法的通信时间如表 4所示,数据位数对能量消耗的影响如图 12所示。
![]() |
下载CSV 表 3 实验2参数 Table 3 Parameters of Experiment 2 |
![]() |
下载CSV 表 4 实验2通信时间 Table 4 Communication time of Experiment 2 |
![]() |
Download:
|
图 12 数据位数对能量消耗的影响 Fig. 12 Effect of data digits on energy consumption |
当数据位数增大时,在CSRQ方法中加密约束链长度会缓慢增大,同时需要进行处理的数据位数变多,对加密约束链中的约束因子进行计算生成的比较项也会增多,使得通信能耗逐渐增大。而在优化HMAC方法中,数据密文以及加密索引链都是使用AES对称加密算法生成,数据密文和加密索引链不需要逐个比特位进行处理,感知节点数据位数增多后,AES对称加密算法需要进行加密的数据量增大,使得数据密文以及加密索引链的长度缓慢增大,而最值比较链采用了反向0-1编码,需要对每一个比特位进行处理获取相应的编码结果,感知节点数据位数增多后,得到的编码结果也会随之增多,同时最值比较链使用了压缩HMAC算法,其中的元素长度得到有效压缩,使得元素长度较短并能完成相应的大小比较功能,最值比较链的长度会逐渐增大。随着数据位数的增大,优化HMAC方法通信能耗相比CSRQ方法降低3.5倍。
实验3 以采集数据维度dim为自变量,其他参数如表 5所示,优化HMAC方法和CSRQ方法的通信时间如表 6所示,数据维度对能量消耗的影响如图 13所示。
![]() |
下载CSV 表 5 实验3参数 Table 5 Parameters of Experiment 3 |
![]() |
下载CSV 表 6 实验3通信时间 Table 6 Communication time of Experiment 3 |
![]() |
Download:
|
图 13 数据维度对能量消耗的影响 Fig. 13 Effect of data dimensions on energy consumption |
当数据维度增大时,在CSRQ方法中需要为每一维度的数据构建加密约束链,同时构建对应的比较项,比较链以及加密约束链的增多使得CSRQ方法的通信能量消耗逐渐增大。而对于优化HMAC方法,感知节点需要对新增维度的采集数据进行AES对称加密算法处理,使得数据密文的长度逐渐增大,而加密索引链和最值比较链中只需要对相应维度采集数据的数据最值进行处理,数据最值自身所占字节数较少,经过AES对称加密算法加密生成新增的加密索引链以及经过反向0-1编码和压缩HMAC算法处理生成新增的最值比较链较短,从而有效减少了发送的数据信息,使得通信的能量消耗较低。随着数据维度的增大,优化HMAC方法的通信能耗相比CSRQ方法降低2.8倍。
4 结束语本文提出一种多维数据的安全高效范围查询方法。在数据上传阶段,感知节点采集数据后构建数据密文,加密索引链得到最值比较链,加密索引链中的数据用于进行数据的完整性验证,最值比较链则用于进行密文形式的大小比较。采用反向0-1编码和压缩HMAC算法,能够缩短最值比较链的长度,降低感知节点通信能量消耗。实验结果表明,相比SafeQBloom、QuerySec、SecRQ和ESRQ等方法,优化HMAC方法通信能耗较低,具有良好的安全性和可行性。但本文方法基于强安全模型,主要针对存储节点被俘获的情况,在预防共谋攻击方面,即感知节点与存储节点同时被俘获时仍有不足,下一步将对此进行研究改进。
[1] |
LOGANATHAN S, ARUMUGAM J. Energy efficient clustering algorithm based on particle swarm optimization technique for wireless sensor networks[J]. Wireless Personal Communications, 2021, 119(1): 815-843. DOI:10.1007/s11277-021-08239-z |
[2] |
KUMAR D A, AWADESH K S. I-FBECS: improved fuzzy based energy efficient clustering using biogeography based optimization in wireless sensor network[J]. Transactions on Emerging Telecommunications Technologies, 2020, 32(2): 235-246. |
[3] |
HUY N N, KIM M K. Link quality estimation from burstiness distribution metric in industrial wireless sensor networks[J]. Energies, 2020, 13(23): 6430-6430. DOI:10.3390/en13236430 |
[4] |
JASPREET S, RANJIT K, DAMANPREET S. A survey and taxonomy on energy management schemes in wireless sensor networks[J]. Journal of Systems Architecture, 2020, 111: 101-113. |
[5] |
DEEPIKA A. Optimization of cluster heads through harmony search algorithm in wireless sensor networks[J]. Journal of Intelligent & Fuzzy Systems, 2020, 39(6): 8587-8597. |
[6] |
胡雨婷. 物联网环境下可验证隐私保护多维数据查询研究[D]. 湘潭: 湘潭大学, 2020. HU Y T. Research on verifiable privacy protection multidimensional data query in Internet of things[D]. Xiangtan: Xiangtan University, 2020. (in Chinese) |
[7] |
TSOU Y T, LU C S, KUO S Y. SER: Secure and efficient retrieval for anonymous range query in wireless sensor networks[J]. Computer Communications, 2017, 108(1): 1-16. |
[8] |
LIANG J, JIANG C, MA X, et al. Secure data aggregation for top-k queries in tiered wireless sensor networks[J]. Adhoc & Sensor Wireless Networks, 2016, 32(2): 51-78. |
[9] |
马行坡, 梁俊斌, 马文鹏, 等. 面向双层传感网的安全Top-k查询协议[J]. 计算机研究与发展, 2018, 55(11): 2490-2500. MA X P, LIANG J B, MA W P, et al. Secure top-k query protocol for double-layer sensor networks[J]. Journal of Computer Research and Development, 2018, 55(11): 2490-2500. (in Chinese) |
[10] |
DAI H, WEI T, HUANG Y, et al. Random secure comparator selection based privacy-preserving MAX/MIN query processing in two-tiered sensor networks[J]. Journal of Sensors, 2016(6): 1-13. |
[11] |
王敏. 面向无线传感器网络的安全MAX/MIN查询技术[D]. 南京: 南京邮电大学, 2018. WANG M. Secure max/min query technology for Wireless Sensor Networks[D]. Nanjing: Nanjing University of Posts and Telecommunications, 2018. (in Chinese) |
[12] |
CHEN F, LIU A X. Privacy-and integrity-preserving range queries in sensor networks[J]. IEEE/ACM Transactions on Networking, 2012, 20(6): 1774-1787. DOI:10.1109/TNET.2012.2188540 |
[13] |
陈正宇, 戴华, 叶庆群, 等. 两层WSN安全范围查询技术综述[J]. 计算机工程与应用, 2017, 53(19): 26-32, 39. CHEN Z Y, DAI H, YE Q Q, et al. Overview of security range query technology in two-tier WSN[J]. Computer Engineering and Applications, 2017, 53(19): 26-32, 39. (in Chinese) |
[14] |
DAI H, YE Q, YANG G, et al. CSRQ: communication-efficient secure range queries in two-tiered sensor networks[J]. Sensors, 2016, 16(2): 259. DOI:10.3390/s16020259 |
[15] |
戴华, 杨庚, 秦小麟, 等. 面向隐私保护的两层传感网Top-k查询处理方法[J]. 计算机研究与发展, 2013, 50(6): 1239-1252. DAI H, YANG G, QIN X L, et al. Top-k query processing method for two-layer sensor network for privacy protection[J]. Journal of Computer Research and Development, 2013, 50(6): 1239-1252. (in Chinese) |
[16] |
KRAWCZYK H, CANETTI R, BELLARE M. HMAC: keyed-hashing for message authentication[EB/OL]. [2021-06-10]. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.383.2086&rep=rep1&type=pdf.
|
[17] |
BERLIN M A. A HMAC algorithm based secure online transaction system using block chain technology[EB/OL]. [2021-06-10]. https://www.researchgate.net/publication/346769100.
|
[18] |
KHARE S K. Fast-track message authentication protocol for DSRC using HMAC and group keys[J]. Applied Acoustics, 2020, 165(1): 107-131. |
[19] |
HARIKRISHNA B, KIRAN D S, DEEP K M. Network as a service model in cloud authentication by HMAC algorithm[J]. International Journal of Advanced Networking and Applications, 2018, 9(6): 458-467. |
[20] |
SRINIVASAN S, SHIVAKUMAR K B, MUAZZAM M. HMAC-RSA: a security mechanism in cognitive radio for enhancing the security in a radio cognitive system[J]. Journal of Intelligent & Fuzzy Systems, 2019, 36(5): 4449-4459. |
[21] |
HARBA E S I. Secure data encryption through a combination of AES, RSA and HMAC[J]. Engineering, Technology & Applied Science Research, 2017, 7(4): 1781-1785. |
[22] |
刘瑛琳. 三端混合直流输电线路保护方法研究[D]. 北京: 北京交通大学, 2019. LIU Y L. Research on protection method of three-terminal hybrid DC transmission line[D]. Beijing: Beijing Jiaotong University, 2019. (in Chinese) |
[23] |
张友骞. 含可再生能源发电的概率可用输电能力研究[D]. 贵阳: 贵州大学, 2019. ZHANG Y Q. Research on probabilistic available transmission capacity of power generation with renewable energy[D]. Guiyang: Guizhou University, 2019. (in Chinese) |