[发明专利]一种云存储中基于KCB树和布隆过滤器的高效密文检索方法在审
申请号: | 201710153067.2 | 申请日: | 2017-03-15 |
公开(公告)号: | CN106874516A | 公开(公告)日: | 2017-06-20 |
发明(设计)人: | 钟婷;宋鸽;周帆 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 610054 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种云存储中基于KCB树和布隆过滤器的高效密文检索方法,为一种基于关键字完全二叉树和布隆过滤器的高效检索密文数据方案。由于在完全二叉树上数据查询与更新的时间复杂度都与树高相关,因此能保证操作时间维持在O(log n),与现有的最优方案效率相当。在此基础上,本发明利用布隆过滤器再次对索引结构进行优化,在保持查询效率与现有的最优方案相当的同时,减少数据在服务器上的存储开销。该方案目的在于结合关键字完全二叉树在时间和布隆过滤器在空间方面的巨大优势,提出一种高效的可搜索加密索引结构,在实现关键字高效检索的同时,降低加密索引在服务器上的存储开销。 | ||
搜索关键词: | 一种 存储 基于 kcb 过滤器 高效 检索 方法 | ||
【主权项】:
一种云存储中基于KCB树和布隆过滤器的高效密文检索方法,其特征在于,包括以下几个步骤:(1)、初始化方案所需的密钥利用密钥生成算法Gen(1k)→K,初始化本发明所需的密钥K1和K2,其中1k是系统安全参数,在安全参数1k下,生成伪随机函数的密钥K1以及对称加密算法的密钥K2;(2)、利用算法BuildIndex(F,W,K)为明文文件集构造文件索引树T文件索引树T实质是一颗未加密的KCB树(Keyword Complete Binary Tree),输入明文文件集合F={f1,…,fn}和关键字集合W={w1,w2,…,wm},其中,n是文件集合中文件的个数,m是关键字集合中关键字的个数,n和m的个数均可增减,我们通过如下步骤构造KCB树:a)、KCB树的叶节点对应文件集合F中的所有文件,因此KCB树的层数l可由文件个数n决定,即完全二叉树的叶节点个数为若则用空节点填充剩余叶节点;b)、定义KCB树的节点为uab(1≤a≤l,1≤b≤2(a‑1)),其中a为节点uab所在的层数,b为节点uab在第a层的序号,在节点uab上存储二元组(id(uab),dataab),id(uab)为节点标识符,dataab为一个长度为m的数组,dataab的第i位定义为dataab[i],其中i∈{1,…,m};若节点uab是叶子节点:将id(uab)定义为该节点对应的文档fj的文档标识符IDj,定义dataab[i]=11(1≤i≤m),当且仅当文件fj中包含关键字wi,定义dataab[i]=00,当且仅当文件fj中不包含该关键字wi,若该叶节点为填充节点,则设置dataab[i]=10;若节点uab是非叶子节点:若其左孩子和右孩子都存在包含关键字wi的叶节点,则将该内部节点数组dataab的对应位置dataab[i]置为11,若只有其左孩子存在包含关键字wi的叶节点,则将该内部节点数组dataab的对应位置dataab[i]置为10,若只有其右孩子存在包含关键字wi的叶节点,则将该内部节点数组dataab的对应位置dataab[i]置为01,若其左孩子和右孩子都不存在包含关键字wi的叶节点,则将该内部节点数组dataab的对应位置dataab置为00;KCB树能保证在最差的情况下操作时间为O(logn),尽管KCB树高效查找的优势能够实现关键字的快速检索,但若将完全二叉树T的2n‑1个节点都存储到云服务器上,又将给服务器带来巨大的存储开销,因此本发明利用布隆过滤器再次对索引结构进行优化,加快关键字的检索效率,降低服务器的存储开销;(3)、由文件索引树T生成加密索引I利用布隆过滤器将文件索引树T生成加密索引I,输入密钥K,文件集合F={f1,…,fn},文件索引T,之后执行以下步骤:a)、对文件索引树T中所有节点uab(1≤a≤l,1≤b≤2(a‑1))以及所有的关键字wi(1≤i≤m),计算并利用y个相互独立的哈希函数映射到布隆过滤器上:hp(id(uab)||PK1(wi)||dataab[i])(1≤p≤y,1≤a≤l,1≤b≤2(a-1),1≤i≤m)]]>b)、为了防止云服务器上数据丢失,将文件索引树T保留在本地服务器,服务器上存储加密索引I;由于文件索引T采用的是完全二叉树结构,该结构上的每一个节点标识符可以通过计算得到,从u11节点起,服务器能够知道下一个要访问的节点标识符,因此无需上传KCB结构,只需将加密文件和加密索引上传到云端;当可以承受一些误报时,布隆过滤器拥有很大的空间优势,对于一个有1%误报率的布隆过滤器而言,存储所有元素只需要(9.6m(2n‑1))bits(其中m为关键字个数,n为文件个数);(4)、利用算法SrchToken生成搜索令牌当用户需要对某个关键字进行检索时,利用算法SrchToken(K,wi)→τ,输入密钥K和关键字wi,输出搜索令牌(5)、服务器接收搜索令牌τ,利用算法Search对加密关键字进行检索服务器接收搜索令牌τ,通过加密索引I对密文文件进行检索,返回满足条件的密文文件集合C(x,y),执行步骤如下所示:设判断符π1=00、π2=01、π3=10、π4=11,从u11开始,根据命中的判断符的值计算接下来要检索的节点的标识符id(uab),接着进行递归查找,直至找到满足查询条件的密文文件集合;将标识符id(uab)、和πi(1≤i≤4)做以下运算:hp(id(uab)||PKI(wi)||πi),(1≤p≤y,1≤i≤4,1≤a≤l,1≤b≤2(a-1))]]>当前检索的是内部节点:a)、若π1命中,表示不存在含有关键字wi的文件,云服务器向用户返回没有找到;b)、若π2命中,表示当前节点的右孩子存在包含关键字wi的文件,计算接下来要检索的节点为u(a+1)(2b);c)、若π3命中,表示当前节点的左孩子存在包含关键字wi的文件,计算接下来要检索的节点为u(a+1)(2b‑1);d)、若π4命中,表示当前节点的左孩子和右孩子都存在包含关键字wi的文件,计算接下来要检索的节点为u(a+1)(2b‑1)和u(a+1)(2b);当前检索的是叶子节点:a)、若π1命中,表示文件fj不含关键字wi;b)、若π4命中,表示文件fj含有关键字wi;c)、若π3命中,表示该叶节点为填充节点;根据以上步骤,从云服务器上找到与搜索令牌对应的密文文件集合C(x,y)。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710153067.2/,转载请声明来源钻瓜专利网。
- 上一篇:网上信息抓取方法及系统
- 下一篇:矢量地图服务的处理方法和装置