可搜索加密基础知识的归纳与总结-程序员宅基地

技术标签: ann  加密解密  深度搜索  可搜索加密  

可搜索加密(Searchable Encryption,SE)

以博主看过的文献或查阅的资料为基础,本博文将介绍可搜索加密(Searchable Encryption,SE)的相关知识点,以及归纳与总结。这也是博主个人的学习过程,长期更新,建议收藏,也欢迎指正!

可搜索加密旨在将数据文件进行加密后存储到云端,然后对密文进行检索的一种技术。

例如:用户为节约自身的资源开销,将文件外包给云服务器,但又不想云服务知道存储的文件内容,因此需要对文件采用某种加密方式加密后存储。此外,用户若想从云服务器中查询文件中的特定数据,只有合法的用户基于关键词检索对应的密文数据。

一、可搜索加密的诞生

如果在读此篇博文之前,读者有了解过SE的背景,想必都知道SE的开篇之作。即使不了解的读者也没关系,这里将隆重介绍一下SE的诞生。SE的开篇之作名为"Practical techniques for searches on encrypted data "。这是作者首次研究出支持对数据加密后进行搜索的密码技术,由此开辟了密码学中的全新研究方向——可搜索加密(Searchable Encryption)

  • 作者:Dawn Xiaoding Song, D. Wagner, and A. Perrig.
  • 单位:University of California, Berkeley
  • 发表刊物:Proceedings of the 2000 IEEE Symposium on Security and Privacy(国际顶级会议,中国计算机学会(CCF)推荐的 A 类网络与信息安全国际学术会议)
  • 时间:2000年5月
  • 被引次数:3894(截至2021年4月29日,来源Google Scholar)

后来的研究者写可搜索加密时基本会引用Song2000

二、可搜索加密的分类

2.1 按照应用模型分类

  • 1)单用户 — 单服务器模型:用户加密个人文件并将其存储到不可信的服务器。只有该用户具备基于关键词检索的能力,服务器无法获取明文文件和待检索关键词的信息。
    一对一

  • 2)多用户 — 单接收者(单服务器)模型:多个发送者加密文件后,将其上传至不可信的服务器,以达到与单个接收者传送数据的目的。只有接收者具备基于关键词检索的能力,服务器无法获取明文文件信息,不同于单用户模型,多用户 — 单服务器模型要求发送者和接收者不能是同一用户。
    多对一

  • 3)单用户 — 多接收者(单服务器)模型:与上一类型类似,但为单个发送者将加密文件上传至不可信服务器,然后多个接收者共享数据。
    单对多

  • 4)多用户 — 多接受者(单服务器)模型:在多对单模型的基础上,任意用户都可成为接受者,通过访问控制和认证策略后,具备关键词的密文检索方式提取共享文件的能力。只有合法的用户具备基于关键词检索的能力,服务器无法获取明文文件信息,具备广阔的应用前景。
    多对多

2.2 按照解决策略分类

  • 1)对称可搜索加密(Symmetric searchable encryption, SSE):旨在加解密过程中采用相同的密钥之外,陷门生成也需要密钥的参与,通常适用于单用户模型,具有计算开销小、算法简单、速度快的特点。
  • 2)非对称可搜索加密(Asymmetric searchable encryption, ASE):旨在加解密过程中采用公钥对明文信息加密和目标密文的检索,私钥用于解密密文信息和生成关键词陷门。非对称可搜索加密算法通常较为复杂,加解密速度较慢,其公私钥相互分离的特点,非常适用于私钥生成待检索关键词陷门,通常适用于多对一模型。
  • 3)对称+非对称可搜索加密:由于非对称SE本身支持最基本形式的隐私数据共享,可通过共享密钥拓展到多对多的应用场景。对称SE虽然使用单用户模型,但计算开销小、速度快,更适用于大型文件数据的加密和共享。通过混合加密与基于属性加密技术相结合,或与代理重加密结合,也可构造共享方案。
  • 4)属性基加密(Attribute-based encryption, ABE):它是指通过对用户私钥设置属性集(或访问结构)为数据密文设置访问结构(或属性集),由属性集和访问结构之间的匹配关系确定其解密能力。特别是密文策略的属性基加密(CP-ABE),其密文上的访问策略本身就是一种搜索策略,访问策略的表达能力从一定程度上反映了可搜索能力。

2.3 按照检索关键词数分类

  • 1)单关键词搜索:旨在用户在检索的过程中使用单关键词进行检索。
  • 2)多关键词搜索:顾名思义,用户在检索的过程中使用多个关键词进行检索。

2.4 按照准确度分类

  • 1)精确搜索:旨在搜索的过程中,只有当输入的关键词完全等于文件的索引值时才能检索出结果。
  • 2)模糊搜索:与精确搜索不同,旨在搜索的过程中,用户输入的关键词与数据或索引中存在的关键词之间存在某种模糊的关系,并以这种模糊关系进行关键词匹配。(例如,我们输入打乱的关键词“ture”,能够搜索到索引中包含关键词“true”的数据文件,这可以帮助用户输入错误的检索问题。)

三、可搜索加密相关技术的名词解释

可搜索加密是一项结合各种密码学原语信息检索的技术,旨在能够以某种方式对数据和数据的关键词索引进行加密,使得用户能够通过提交关键词进行方便灵活且高效的搜索,同时又保证负责存储的云服务器对密文数据本身以及关键词相关信息一无所知。

目前研究热点,分为三个维度:表达能力、安全性和检索效率。

  • 1)相似度度量:以欧式距离、余弦距离、陆地移动距离或词移距离来度量被输入的多个关键词与索引对应的数据文件之间的匹配符合程度。
  • 2)语义文本相似度:旨在衡量两段文本在语义上的相似程度。通常,文本的语义相似度数值越小,则说明两个文本之间的语义差异性越大;反之,该数值越大,则说明这两个文本所表达出的语义越相似。
语义文本相似度计算
基于字符串
基于统计
基于知识库
基于深度学习
VSM模型
主体模型
LSA
PLSA
LDA
基于本体-WordNet等
基于网络百科-Wikipedia等
无监督方法
监督方法
孪生网络架构
交互模型架构
  • 3)语义搜索:在各种搜索引擎中应用最广泛,也是最迎合用户体验的搜索功能,它能够充分地理解用户的搜索意图,返回尽可能符合用户本意和需求的搜索结果。
  • 4)编辑距离:通常被用于句子的快速模糊匹配领域,以表示两个文本之间,由一个转换成另一个所需的最少编辑操作次数,其中编辑操作包括增、删、改三种。
  • 5)向量空间模型(VSM):主要思想是假设一个文本的语义只与该文本中的单词有关,而忽略其语序和单词之间的相互关系,然后通过基于词频统计的方法,将文本映射成向量,最后通过向量间的距离计算以表征文本间的相似度。
  • 6)TF-IDF函数:用于表征词在文本中的权重,TF代表某个词在单份文件中出现的频率,IDF代表包含某个词的文件与全部文件数量比例的倒数,TF-IDF为两者的乘积。
  • 7)Top-K排名搜索:旨在获取相似度后,将其作为打分结果,根据匹配到的文件的分数,按照顺序返回给用户分数排名最高的K份数据,是搜索引擎中最常见的模式。
  • 8)安全最近邻((k-Nearest Neighbors, kNN)算法:旨在向量空间模型(VSM)中,将真实的数据文件表示成空间向量,将用户提交的多个关键词描述为虚拟文件向量,在空间中计算和寻找最符合用户描述的k份真实数据问题,这与Top-K排名搜索高度适应。
  • 9)N-gram分割:旨在把关键词按照一定规则进行字符分割,便于将语义相关的关键词表示为词向量时,仍保持语义关系。
  • 10)词嵌入:旨在用机器学习的方法,通过对大量文本数据集进行训练,将单词表示为固定维度100/200/300的词向量,当两个单词之前存在语义关系时,则对应的向量较为相似。
  • 11)词向量计算:旨在用词嵌入获取词向量后,在某个模型中对词向量进行计算,完成包括搜索在内的特定计算任务。
  • 12)基于自然语言处理模(NLP)型:旨在用词嵌入获取词向量后,对数据文本用机器学习的方法进行计算,完成某种文本处理任务,包含对数据文本的关键词搜索。
  • 13)贪心算法:通过将全局问题分为多个子问题,分布求出各个子问题的局部最优解,对权重大的节点为贪心的选择,则全局最优解为各个局部最优解之和。(转载:漫画式理解
  • -14)深度优先搜索算法:是指通过产生目标树的相应拓扑排列表,利用该表可以方便的解决很多查找路径问题。可简单理解为对每个可能的分支路径深入到不能再深入为止。
  • 15)近似最近邻(Approximate Nearest Neighbor,ANN):主要分为基于树的方法(KD-tree、Ball-tree、Annoy和B树等)、哈希方法(局部敏感哈希)和矢量量化方法(Product Quantization)三类。

四、存在问题及未来方向

  • 1)在可搜索加密的理论研究方面:主要集中在研究密文搜索语句的表达能力、可搜索加密方案的安全性、可搜索加密方案的高效性等方面。

    • 表达能力:不仅需要让用户精确地定位所需要的加密文件,而且要让用户能够更加灵活地表述搜索需求。因此,主要集中密文搜索能力的复杂性的探索、研究支持模糊搜索、有序搜索、区间搜索,以及子集搜索等复杂性密文搜索能力。
    • 安全性:针对不同需求,不同表达能力,定义不同SE的安全级别,在不同安全级别的基础上,寻求简单高效的难题假设证明SE的安全性。
    • 高效性:研究SE的搜索凭证、搜索关键字与密钥、密文间的关系,探索用越短的密钥、密文来实现表达能力越丰富的SE方案,进一步地,结合不同的需求和安全级别,探索高效安全的SE。
  • 2)利用属性基加密(ABE)实现安全搜索方面,效率是一个主要因素,研究属性基加密以及签名的安全搜索与隐私保护的一般理论,主要集中在属性基加密以及签名的高效性上,包括表达能力、通信效率、计算效率和属性特征等方面。

    • 表达能力丰富的ABE
    • 更短密文、短密钥、短公开参数的ABE
    • 高效的解决方案及加密数据外包计算方案
    • 简单的难题假设
    • 基于属性的隐私保护
  • 3)在安全搜索与隐私保护的基础理论研究的基础上,探索安全搜索与隐私保护的一般规律与方法,并在此基础上进行方案的轻量化的研究,并探索在安全搜索与隐私保护的过程中一次使用有关的公钥加密方案,以适用于存储、计算资源受限网络环境。

    • 探索SE轻量化方法
    • 探索ABE实现安全搜索的轻量化和高效实现方法

文献引用:

[1] 李经纬,贾春福,刘哲理,李进,李敏.可搜索加密技术研究综述[J].软件学报, 2015,26(1):109-128.
[2] 董晓蕾,周俊,曹珍富.可搜索加密研究进展[J].计算机研究与发展,2017,54(10):2107-2120.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/A33280000f/article/details/116270371

智能推荐

Oracle 12cR1 RAC集群安装(二)--使用图形界面安装-程序员宅基地

文章浏览阅读132次。Oracle 12cR1 RAC集群安装文档:Oracle 12cR1 RAC集群安装(一)--环境准备Oracle 12cR1 RAC集群安装(二)--使用图形界面安装Oracle 12cR1 RAC集群安装(三)--静默安装-------------------------------------------------------------------------------..._configuration type admin managed police managed

【Golang】go编程语言适合哪些项目开发?_go语言开发的项目有哪些-程序员宅基地

文章浏览阅读1.9w次,点赞106次,收藏109次。Go编程语言凭借其简洁、高效和可靠的特性,适用于各种项目开发。无论是网络编程、大数据处理、云计算、Web开发还是嵌入式系统,Go语言都能够提供出色的性能和可扩展性。希望本文能够帮助读者了解Go语言的优势,并在项目开发中做出明智的选择。如果大家对相关文章感兴趣,可以关注公众号"架构殿堂",会持续更新AIGC,java基础面试题, netty, spring boot, spring cloud等系列文章,一系列干货随时送达!_go语言开发的项目有哪些

openlayers加载0级一张的TMS和加载0级两张的WMTS标准的切片地图服务_openalyers 加载tms标准瓦片-程序员宅基地

文章浏览阅读398次,点赞12次,收藏8次。在使用openlayers加载影像地图的过程中,遇到加载TMS标准的本地离线切片显示异常的问题,包括显示层级的异常,和我其他的数据无法对应的问题,查阅资料后发现是坐标系和0级地图分幅的问题,特此记录。解决方法也很简单,要么下载地图切片时候,选择和openlayers一致的0级别地图张数,要么通过openlayers代码进行调整,这里附一下第二种解决方法。查阅后发现问题主要在以下几点。_openalyers 加载tms标准瓦片

ubuntu若干快捷设置问题:高分辨率缩放、免密码等_ubuntu高分辨率缩放-程序员宅基地

文章浏览阅读815次。默认情况高分屏下 UI 元素显得过小,因此需要调整界面的缩放比例。Ubuntu20.04 默认是 GNOME 桌面,GNOME 可以在 Settings>Displays(设置>显示)中开启 HiDPI 支持,以整数倍来调整屏幕比例。第二步:找到 %sudo ALL=(ALL:ALL) ALL 这一行,修改为 %sudo ALL=(ALL:ALL) NOPASSWD:ALL。为了避免每次使用 sudo 命令时都输入密码,我们可以将密码关闭。关闭 sudo 密码。_ubuntu高分辨率缩放

使用GeoScene Pro发布托管要素服务_geoscene pro托管-程序员宅基地

文章浏览阅读483次,点赞8次,收藏9次。使用GeoScene Pro发布托管要素服务_geoscene pro托管

华为云-容器引擎CCE-基本概念-程序员宅基地

文章浏览阅读1.4w次。云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。云容器引擎提供Kubernetes原生API,支持使用kubectl,且提供图形化控制台,让您能够拥有完整的端到端使用体验,使用云容器引擎前,建议您先了解相关的基本概念。集群(Cluster)集群指容器运行所需要的云资源组合,关联了若干云服务器节点、负载均衡等云资源。您可以理解为集群_cce

随便推点

Google Breakpad的使用_breakpad rtlcapturecontext-程序员宅基地

文章浏览阅读1.1k次。在Windows下使用breakpad的方法很简单,只需要创建一个ExceptionHandler的类即可1.进程内抓取Dump文件进程内抓取Dump文件是最简单的breakpad的用法。使用方法很简单:const std::wstring s_strCrashDir = L"c:\dumps"; bool InitBreakpad(){ google_breakpad::Exce..._breakpad rtlcapturecontext

用SQL建用户和赋权限_sql赋权-程序员宅基地

文章浏览阅读1.8k次。http://blog.csdn.net/hui_0924/article/details/5877981在SQL Server中有三种特殊的用户:系统管理员、用户数据库所有者(建立相应数据库的数据库用户)DBO、一般用户。系统管理员对整个系统有操作权;用户数据库所有者对他所建立的数据库具有全部操作权利;一般用户对给定的数据库只有被授权的操作权限。 数据库用户一般可分为用户组,_sql赋权

torch.where用法介绍-程序员宅基地

文章浏览阅读504次,点赞6次,收藏10次。torch.where用法介绍_torch.where

IBM存储产品常见问题汇总_ibm服务器更护热备盘-程序员宅基地

文章浏览阅读7.7k次。IBM存储产品常见问题汇总 一、DS3000DS3000微码v06.70.24.00升级指南主要介绍了DS3000相关部件的微码升级步骤,以及相关注意事项: 主要内容包括: 一.相关链接: 二.微码v06.70.24.00新特性: 三.限制及注意事项: 四.升级微码步骤概述: 升级存储系统 升级ESM 模块微码_ibm服务器更护热备盘

sam机架和kx连线图_创新声卡KX 3552驱动连线搭载SAM机架-程序员宅基地

文章浏览阅读3.5k次。一般情况下我们的创新声卡要使用宿主机架都选择安装KX 3552驱动,而这个KX 3552驱动对Win 10系统兼容性不是很好,这主要是在搭载宿主机架加载KX 3552驱动的ASIO上,部分Win 10系统会出信号错乱,还有会出现(无法初始化)的问题,这个需要宿主机架设置(Win 7兼容性),问题还存在的,无解,只能换Win 7系统。还有需要注意,在安装KX 3552驱动的时候,请把所以的杀毒软件和..._创新声卡kx 3552驱动连线搭载sam机架

Springboot毕设项目核酸检测采集管理系统jfxxo(java+VUE+Mybatis+Maven+Mysql)_jfx后台管理系统-程序员宅基地

文章浏览阅读372次。Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。若包含,则为maven项目,否则为非maven项目。Springboot毕设项目核酸检测采集管理系统jfxxo(java+VUE+Mybatis+Maven+Mysql)Springboot + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。其他版本理论上也可以。_jfx后台管理系统