[发明专利]一种可验证的密文数据范围查询方法有效
申请号: | 201810025747.0 | 申请日: | 2018-01-11 |
公开(公告)号: | CN108197499B | 公开(公告)日: | 2020-08-07 |
发明(设计)人: | 赖俊祚;张江河;王传胜;李燕玲;熊婕 | 申请(专利权)人: | 暨南大学 |
主分类号: | G06F21/64 | 分类号: | G06F21/64;H04L9/06;H04L29/06 |
代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 郑浦娟 |
地址: | 510632 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 验证 数据 范围 查询 方法 | ||
1.一种可验证的密文数据范围查询方法,其特征在于,步骤如下:
步骤S1、针对于数据拥有者需要上传至云服务器的各本地数据,首先在数据拥有者终端根据从大到小或者从小到大的顺序针对需要上传至云服务器的各本地数据进行排序,然后针对于各本地数据,同时记录下各本地数据的前后数据,得到各本地数据的三元组数据;同时将各本地数据转换成前缀集合,并且根据各本地数据的排序,将各本地数据的前缀集合存储在一个树状的PBtree中;
步骤S2、针对于各本地数据加密:将各本地数据对应的三元组数据进行非对称加密,然后将加密后的密文存储在PBtree中对应存储该本地数据前缀集合的叶节点中;
针对于PBtree中各节点存储的前缀进行加密:针对于PBtree中每个节点,将该节点存储的各前缀集合进行并集,得到并集后的前缀集合,针对于该节点并集后的前缀集合,将其中的各前缀进行哈希函数的加密处理,将通过哈希函数加密处理后的各前缀对应存储于各布隆过滤器上;
将数据拥有者终端将上述处理后得到的PBtree发送给云服务器;
步骤S3、当数据使用者需要查询某范围所包含的数据时,首将该查询范围转换为一个最小的前缀集合,针对于前缀集合中的各前缀,分别计算其多个哈希值,然后将各前缀的多个哈希值组合形成一个矩阵,作为该查询范围的陷门;最后将该查询范围的陷门通过终端发送至云服务器;
步骤S4、当云服务器接收到陷门时,使用该陷门在PBtree中从根节点开始从上至下开始搜索,其中针对于各节点,通过陷门以及该节点中对应存储加密后的各前缀的各布隆过滤器检查是否满足以下条件:该节点中存储的并集后的前缀集合和该陷门对应查询范围最小的前缀集合的交集不为空集;若满足,则针对于该节点的后续节点再检测是否满足上述条件,直到寻找到满足上述条件的所有叶节点,将搜索到的满足上述条件的叶节点中存储的密文作为查询结果返回给数据使用者的终端;
步骤S5、数据使用者终端接收到云服务器返回的各密文后,通过私钥进行解密,得到各组解密后的数据,数据使用者根据各组解密后的数据判断其所获取到的数据大小是否连续,若连续,则表示云服务器返回的查询结果是完整的;否则表示云服务器返回的查询结果是不完整的;
若数据使用者通过终端发送陷门给云服务器后,云服务器没有查询到结果,则云服务器返回PBtree根节点存储的数据给数据使用者终端,数据使用者终端验证云服务器范围的PBtree根节点存储的数据和陷门所对应的查询范围的交集是否为空集,若否,表示服务器未返回符合范围的数据;
所述步骤S2中,针对于PBtree中每个节点中的前缀进行加密的过程如下:
步骤S2a、首先将该节点存储的各前缀集合进行并集,得到并集后的前缀集合;
步骤S2b、获取数据拥有者和数据使用者共享的r个密钥;针对于该节点并集后的前缀集合中的每个前缀,与r个密钥组合使用哈希函数计算得到:
HMAC(k1,pi),…,HMAC(kr,pi);
其中k1,…,kr为数据拥有者和数据使用者共享的r个密钥,pi为该节点并集后的前缀集合中的第i个前缀;
步骤S2c、针对于该节点,生成一个与密钥比特位长度相同的随机数,再使用该随机数依次计算出该节点并集后的前缀集合中的每个前缀的r个哈希值:
HMAC(vx.R,HMAC(k1,pi)),…,HMAC(vx.R,HMAC(kr,pi));
其中vx.R即为针对于节点vx生成一个与密钥比特位长度相同的随机数;
步骤S2d、针对于该节点,通过步骤S2c获取到该节点并集后的前缀集合中的各前缀的r个哈希值后,即得到经过哈希函数加密后的各前缀,然后通过以下操作,将通过哈希函数加密处理后的各前缀对应存储于各布隆过滤器上:
vx.Bi[HMAC(vx.R,HMAC(kj,pi))mod M]:=1;
x=1,2,3,…X;j=1,2,3,…r;i=1,2,3,…I,
其中vx.Bi[HMAC(vx.R,HMAC(kj,pi))mod M]:=1表示将节点vx并集后的前缀集合中通过哈希函数加密后的第i个前缀pi在布隆过滤器Bi中对应所存储的位置置为1;X为PBtree中节点总数,I为节点vx并集后的前缀集合中前缀的总数;M为布隆过滤器的长度,在布隆过滤器上将相应存储加密后的前缀的位置置为1。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于暨南大学,未经暨南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810025747.0/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置