A Secure and Dynamic Multi-Keyword Ranked Search Scheme over Encrypted Cloud Data (1)

2023-10-28 11:20

本文主要是介绍A Secure and Dynamic Multi-Keyword Ranked Search Scheme over Encrypted Cloud Data (1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系统框架

image.png
数据拥有者DO构建加密索引树,将加密文档和索引外包给云服务。
云存储服务根据数据使用者Data User发来的数据搜索token和已经存好的加密索引树进行搜索,返回top K个排序结果。
排序的计量方法根据TF-IDF公式计算相似度。
Term Frequency: the number of times a given term appears within a document
Inverse Document Frequency: dividing the cardinality of document collection by the number of documents containing the keyword.

创新点

  • 设计了一个树状的加密索引结构,可以支持更加灵活的动态更新操作,并且支持多关键字的排序Top K查询。
  • 检索时间和树高度相关,即对数级别,使用贪心的深度优先遍历搜索方法,达到搜索的高效性。
  • 保证了隐私:索引和查询的隐私;存储关键字的隐私;搜索token的隐私;数据文档的隐私

关注非加密索引树的构建:

  • 根据每个文档,建立对应的叶子结点。每个叶子结点都包含有信息:<ID,D,Pl,Pr,FID>. ID是叶子结点的标识符,D为规定m维度关键字向量,每一个维度是所包含对应关键字的规范化的TF值。
  • 中间结点的生成:中间节点是基于叶子结点计算而成。关于第i维度向量的计算,根据下面的公式:
    image.png
    两个叶子结点生成一个上层中间节点。两个中间节点进一步生成上层中间节点。所以索引树为一颗二叉树。
    上层节点中存储向量的对应位置为其两个子节点对应位置的最大值,这样过构建之后可以更加方便Top-K贪心算法的执行。
    观察这个例子,设定关键字的最大维度为4;一共有6个文件。
    image.png
    树需要确定对应关键字的最大维度,并且每一个节点都包含了对应维度大小的向量。(是否需要优化对应存储代价?)

利用非加密索引树的Top-K检索

搜索算法为一个基于递归的‘贪心深度优先搜索’算法。需要使用RList作为存储找到结果前的当前结果列表。RList中记录了对应文件的<RScore,FID>. RScore为文件和查询Q之间的相似度,FID为文件的编号。
Formula of the Relevance Score
在RList中,tuple是按照对应RScore降序排列的。在搜索的过程中可以动态更新RList以寻求Top-K结果。
非加密的搜索算法
步骤十分简单

  • 如果当前的搜索节点不是一个叶子结点,需要计算出此节点和查询Q之间的相似度RScore,如果RScore大于当前RList当中最小的相似度,则进一步搜索其两个子节点。注意,要先搜索对应相似度高的子节点,再搜索相似度低的子节点。这符合贪心算法的基本做法。

可能改进或应用到科研场景中的因素

  • 需要预先确定关键字的维度大小,即最多有多少关键字。这对于搜索树的构建有直接的影响。(考虑动态的关键字库将会导致对于IDF值的计算,每一次增加或删除文件都会导致关键字的变化,IDF的变化)
  • 尽管此系统支持数据的动态更新,数据拥有者必须预先对搜索树进行维护,将构建好的更新子树发送给服务提供者SP进行下一步更新。这对数据拥有者的计算资源是有要求的。
  • 应该考虑到非加密搜索树的Top-K搜索和传统的基于inverted index的Top-K 搜索之间的相同点和不同点。对构建索引的时间复杂度、搜索的时间复杂度、存储的空间复杂度都应有相应的分析。
    下一篇将会对加密算法进行理解。

这篇关于A Secure and Dynamic Multi-Keyword Ranked Search Scheme over Encrypted Cloud Data (1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/292877

相关文章

Spring Boot 3 整合 Spring Cloud Gateway实践过程

《SpringBoot3整合SpringCloudGateway实践过程》本文介绍了如何使用SpringCloudAlibaba2023.0.0.0版本构建一个微服务网关,包括统一路由、限... 目录引子为什么需要微服务网关实践1.统一路由2.限流防刷3.登录鉴权小结引子当前微服务架构已成为中大型系统的标

Spring Cloud LoadBalancer 负载均衡详解

《SpringCloudLoadBalancer负载均衡详解》本文介绍了如何在SpringCloud中使用SpringCloudLoadBalancer实现客户端负载均衡,并详细讲解了轮询策略和... 目录1. 在 idea 上运行多个服务2. 问题引入3. 负载均衡4. Spring Cloud Load

Sentinel 断路器在Spring Cloud使用详解

《Sentinel断路器在SpringCloud使用详解》Sentinel是阿里巴巴开源的一款微服务流量控制组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、... 目录Sentinel 介绍同类对比Hystrix:Sentinel:微服务雪崩问题问题原因问题解决方案请

mysqld_multi在Linux服务器上运行多个MySQL实例

《mysqld_multi在Linux服务器上运行多个MySQL实例》在Linux系统上使用mysqld_multi来启动和管理多个MySQL实例是一种常见的做法,这种方式允许你在同一台机器上运行多个... 目录1. 安装mysql2. 配置文件示例配置文件3. 创建数据目录4. 启动和管理实例启动所有实例

C# dynamic类型使用详解

《C#dynamic类型使用详解》C#中的dynamic类型允许在运行时确定对象的类型和成员,跳过编译时类型检查,适用于处理未知类型的对象或与动态语言互操作,dynamic支持动态成员解析、添加和删... 目录简介dynamic 的定义dynamic 的使用动态类型赋值访问成员动态方法调用dynamic 的

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快