[发明专利]基于累加器和布隆过滤器的外包数据查询验证方法及系统在审
申请号: | 201410339782.1 | 申请日: | 2014-07-16 |
公开(公告)号: | CN104102714A | 公开(公告)日: | 2014-10-15 |
发明(设计)人: | 周憬宇;张成强;过敏意 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海思微知识产权代理事务所(普通合伙) 31237 | 代理人: | 郑玮 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 累加器 过滤器 外包 数据 查询 验证 方法 系统 | ||
1.一种基于累加器和布隆过滤器的外包数据查询验证方法,包括如下步骤:
步骤一,数据主生成验证所需的参数并上传云端服务器;
步骤二,所述数据主生成所有原始文档的针对每一个关键字/词的反向索引,计算每一个关键字/词的索引集合的累加器值和布隆过滤器,并将所有原始文档与所有的反向索引、累加器值和布隆过滤器一起上传到所述云端服务器;
步骤三,所述数据主发起查询请求,将查询的多个关键字/词发送到所述云端服务器;
步骤四,所述云端服务器执行查询操作,分别找到每个关键字/词的反向索引,然后计算这些反向索引的交集,生成查询结果的结果正确性的证明,并利用基于集合非成员证明或基于布隆过滤器的方法生成结果完整性的证明,一并发送到所述数据主;
步骤五,所述数据主根据查询结果的结果正确性的证明验证从云端服务器接收的查询结果是否正确,并利用基于集合非成员证明或基于布隆过滤器的方法根据查询结果的结果完整性的证明验证查询结果的完整性。
2.如权利要求1所述的一种基于累加器和布隆过滤器的外包数据查询验证方法,其特征在于,步骤一还包括如下步骤:
所述数据主根据给定的参数k随机生成一个k-bit长的RSA模n=pq,并随机从模n的平方剩余中产生数字g,其中,k的取值大于或等于1024,p、q的长度相同且都是安全素数,g为正整数;
所述数据主选择第一哈希函数和第二哈希函数,其中,所述第一哈希函数用于将任意长度的数字映射到一个固定长度的数字,所述第二哈希函数用于将一个固定长度的数字映射到一个三倍固定长度的素数;
所述数据主选择一个计数布隆过滤器的参数,包括计数器的数量和哈希函数;
所述数据主将参数n和g、第一哈希函数、第二哈希函数以及布隆过滤器参数作为验证所需的参数上传至所述云端服务器。
3.如权利要求2所述的一种基于累加器和布隆过滤器的外包数据查询验证方法,其特征在于,步骤二进一步包括如下步骤:
所述数据主生成原始文档的每一个关键字/词(对于任一字、词)的索引集合,其中每一个关键字/词的ID用e来表示,e为任意正整数,每个关键字/词的索引集合用Xe={x1,x2...,xm}表示,Xe中的每个元素xi={docIDi,TFi,Pi1,Pi2...},i=1,2,…,m,m为正整数,docIDi、TFi、Pi1、Pi2分别表示包含该关键字/词的原始文档的ID、出现次数和出现的各个位置;
采用第一哈希函数HASH1和第二哈希函数HASH2将每个索引集合Xe={x1,x2...,xm}映射为集合Y={y1,y2...,ym},其中i=1,2,…,m,m为正整数,如果Xe中的元素的长度不足所述固定长度(o-bit),则略过该步骤映射;
获取Y中所有元素的乘积作为u,根据公式c=gumodn获取每个索引集合Xe相应的RSA累加器的值c,并生成每个RSA累加器的值(c)的对应的数据签名;
计算每个索引集合Xe的布隆过滤器B(X),B(X)利用Xe中每个元素的文档ID来计算;
将每个索引集合Xe和相应的RAS累加器的值c、数据签名作为所述反向索引,将所有原始文档、所有的反向索引以及所有布隆过滤器B(X)一起上传到云端服务器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410339782.1/1.html,转载请声明来源钻瓜专利网。