1.一种WSN中基于Top-k查询的数据隐私保护和完整性验证方法,所述WSN包括若干个查询单元C,每个查询单元C内包含一个主节点M和传感器节点Si{i=1……N},其特征在于,包括以下步骤:
101、数据提交阶段:传感器节点Si{i=1……N}首先对时间t内采集的感知数据di,j(j=1……ui),以及所有传感器节点Si{i=1……N}公共的已知的极大值MAX和极小值MIN降序排序,其中ui为传感器节点采集的数据个数;然后传感器节点Si{i=1……N}用函数f(·)对感知数据进行处理得到Di,j,即Di,j=f(di,j),最后将Di,j根据节点id直接发送到主节点M进行存储,传感器节点Si用与汇聚节点Sink共享的秘钥ki,t对MAX和极小值MIN以及时间t进行端到端的加密处理形成数据项加密链发送到主节点M进行存储,传感器节点Si{i=1……N}根据Leach算法建立路由协议,即传感器节点Si{i=1……N}之间根据节点之间的距离动态的选择本单元内的簇头节点;
102、查询处理阶段:当主节点M收到查询请求Qt=
103、完整性验证阶段:汇聚节点Sink收到查询响应结果Rt后,利用di,j与Di,j一一对应的关系和数据项加密链是否完整来验证查询结果的完整性。
2.根据权利要求1所述的WSN中基于Top-k查询的数据隐私保护和完整性验证方法,其特征在于:步骤103中的完整性验证阶段具体包括以下步骤:A、汇聚节点Sink解密和每个数据Di,j相对应的数据项加密链 检验
f(di,j)是否和Di,j相等,如果不等,则判断Rt被篡改,认为Rt不完整,反之,Rt未被篡改;
B、汇聚节点Sink验证对于Si∈S的传感器节点是否有感知数据满足Top-k查询,即查询响应结果Rt中是否有节点Si{i=1……N}的感知数据;然后,在没有数据的条件下:如果Si∈S发送数据项加密链 到了汇聚节点Sink,则解密验证数据项加密链中的时间t是否和查询请求Qt中的时间t'相等,或者如果Si∈S只发送数据项加密链到了汇聚节点Sink,则解密验证数据项加密链中的时间t是是否和查询请求Qt中的时间t'相等以及di,j是否小于Top-k查询结果Rt中的最小感知数据;
C、在有数据的条件下:如果Si∈S发送的信息中包含数据项加密链
则解密验证数据项加密链中的时间t是否和查询请求Qt中的时
间t'相等以及数据项加密链是否完整,或者如果Si∈S发送的信息中包含数据项加密链则解密验证数据项加密链中的时间t是否和查询请求Qt中的时间t'相等,数据项加密链是否完整以及 是否小于Top-k查询的最小数据。
3.根据权利要求1所述的WSN中基于Top-k查询的数据隐私保护和完整性验证方法,其特征在于:步骤101中函数f(·)为公共单调排序函数,原始感知数据di,j和Di,j是一一对应的,即如果 那么 其中,Di,j=f(di,j)。
4.根据权利要求1所述的WSN中基于Top-k查询的数据隐私保护和完整性验证方法,其特征在于:步骤101中所述的汇聚节点Sink和传感器节点Si{i=1……N}共享的秘钥ki,t为周期性变化的,其表达式为ki,t=hash(ki,t-1),其中hash表示哈希函数。
5.根据权利要求1所述的WSN中基于Top-k查询的数据隐私保护和完整性验证方法,其特征在于:步骤101中传感器节点Si{i=1……N}分别发送以下信息到主节点M进行存储:
6.根据权利要求1所述的WSN中基于Top-k查询的数据隐私保护和完整性验证方法,其特征在于:传感器节点Si∈S有ni个感知数据满足查询请求Qt,传感器节点Si∈S需要发送如下相应信息到汇聚节点Sink形成查询响应结果Rt: