1.一种两层传感器网络隐私保护Skyline查询系统的查询方法,其特征在于:该系统包括Sink节点、存储节点和感知节点:Sink节点,发送查询命令给存储节点,Sink节点对存储节点响应的查询结果进行最终的Skyline查询结果计算;
存储节点,响应Sink节点的查询命令,存储感知节点发送的数据,根据查询命令将相应的感知节点的加密数据集返回给Sink节点;
感知节点,感知数据并对源数据加密,构建感知数据的Z-O编码,并进行数值化和HAMC处理,最后将加密数据和感知数据的HMAC数值化Z-O编码集合发送给存储节点;该方法包括以下阶段:前期准备阶段:Sink节点与所有感知节点共享数据加密密钥;
网络拓扑结构构建阶段:将两层传感器网络划分为多个单元,每个单元包括一个存储节点和多个感知节点,每个单元内部节点构成一个路由树,其中存储节点为根节点;
Skyline查询发布阶段:Sink节点将查询命令发送给指定查询单元的存储节点,查询命令的内容包括周期号t、查询单元C和查询类型Skyline查询;当存储节点收到Sink节点的查询命令,将该查询命令广播给该查询单元中所有感知节点;
感知节点响应存储节点阶段:当感知节点收到本单元内的查询命令,感知节点用与Sink共享的密钥对查询周期内的感知数据加密;将感知数据进行Z-O编码,将编码的数据进行数值化和HMAC处理,形成感知数据的HMAC数值化Z-O编码集合;最后通过多跳的方式将加密数据和HMAC数值化Z-O编码集合传输至所在单元的存储节点;
存储节点响应Skyline查询阶段:存储节点收到所有感知节点的加密数据和该数据的HMAC数值化Z-O编码集合后进行如下处理:根据Z-O编码的数值比较特性,在无需感知节点明文的情形下就能够判断出数据的支配关系,如果数据是最终的Skyline查询结果集中的元素,则将该数据的密文和感知节点的ID放入密文查询结果集;当处理完所有的数据后,存储节点将密文查询结果集发送给Sink节点;
查询结果解密阶段:Sink收到存储节点的返回结果后,用与感知节点共享的密钥解密密文,得到最终的Skyline查询结果集;在感知节点响应存储节点阶段,将源数据构造成新数据的具体过程为:使用Z-O编码技术,将数据构造成0,1编码集合,然后用数据编码首位前添加1来进行数值化,对数值化的数据进行HMAC处理,防止攻击者反向推出数据,因此数据在无线环境中传输是安全的;在存储节点响应Skyline查询阶段,存储节点接收所有感知节点的数据,利用Z-O编码的数值比较特性来判断数据的支配关系,其中只涉及数据的HMAC数值化Z-O编码集合,并未用到数据的明文,因此能够在查询处理阶段存储节点在不能获知数据隐私的情况下完成查询处理;并且由于HMAC的单向性,使得存储节点无法反向推出数据的明文,故而感知节点的数据在存储节点进行处理是安全的;
感知节点收到查询命令Q后,对感知数据进行加密处理、Z-O编码、数值化、HAMC处理和生成HMAC数值化Z-O编码集合,并将最后的结果通过多跳的方式发送给存储节点;在查询周期t内感知节点Sij的感知数据为 Sij收到查询命令Q后先用共享秘钥Ki,j加密得到然后对感知数据的每个属性进行Z-O编码得再经数值化函数处理得 最后经
HAMC处理 得到
最后感知节点Sij将得到的
和ID全部发送给
存储节点。