可搜索加密笔记-第一节绪论

绪论

  • 1 动机
      • 数据外泄(Data breaches)
      • 端到端加密
      • 可加密搜索
      • 本课程的内容
  • 2 解决方案总览
      • 完全同态加密(Fully-homomorphic encryption)
      • 茫然随机访问机(Oblivious RAM)
      • 属性保护加密(Property-preserving encryption)
      • 函数加密(Functional encryption)
      • 安全多方计算(MPC)
      • 私有信息检索(PIR)
      • 权衡

1 动机

数据外泄(Data breaches)

端到端加密

是指数据在离开用户的设备之前需要经过用户加密。加密的密钥由用户进行管理,这样数据就只能被用户显式解密。
基于端到端加密的系统和服务被称作零知识系统。零知识系统几乎不或完全不了解它们所处理的数据的内容,可以提供比当前系统更强的隐私和安全保障。但是这要以用户负责密钥管理及其涉及的所有问题为代价。
零知识系统的挑战在于它的端到端加密实现会导致在远端被加密的数据无法被用户检索或查找,因为只有用户才能解密

可加密搜索

密文计算的目标是通过制作新的加密系统来解决端对端加密产生的问题,这个加密系统能够在加密的数据上进行多种形式的操作
绝大多数的零知识系统都需要的基本数据操作就是搜索。而且也可用于非端到端的加密中。

本课程的内容

  1. 可搜索加密以及已经提出的多种解决方案遇到的问题。
  2. 如何将这些解决方案的安全规范化,以及它们最前沿的构建。
  3. 这些解决方案的局限性以及如何攻击这些方案。
  4. 可加密搜索解决方案如何整合到大型系统中以及相关案例。
  5. 该领域中的一些尚未解决的问题以及新的研究方向。

2 解决方案总览

完全同态加密(Fully-homomorphic encryption)

FHE方案是一种支持任意计算的加密方案。
给定一组信息(m1, m2, …, m3)的一组加密(ct1,…, ctn),对于任何一个可计算的函数f都可以生成f(m1,…, mn)的一个密文ct。
FHE为任意的加密搜索问题都提供了一种自然的解决方案:

  1. 加密数据;
  2. 要查询信息,加密查询q并在密文上直接计算加密后的q即可得到结果。

这样就能得到查询的结果了。
个人理解:完全同态加密的特点,即在密文空间所做运算的结果解密后与在对应的明文上所做相同运算的结果一致。

茫然随机访问机(Oblivious RAM)

一个ORAM将一个数组作为输入,而且用一种支持茫然读写的方式进行预处理。茫然是指模型在执行指定操作时并不知情操作所访问的地址。ORAM也为任何的可搜索加密问题提供了一个自然的解决方案:

  1. 以数组形式存储数据并使用ORAM进行预处理;
  2. 模拟一个搜索算法并将其中的所有读写操作用茫然读写加以替换,以执行搜索。

注意这种方法是使用ORAM进行搜索的一种原始做法,仍有改进空间。

属性保护加密(Property-preserving encryption)

PPE方案是一种展示明文属性的加密方案。
(举例:确定性加密可以通过比对密文来确定明文的一致性,保序加密和ORE加密可以通过比对密文的顺序来确定明文的顺序)
给定PPE方案,就可以对基于等价性测试和比较的任何可加密搜索问题加以解决。
(例如:一个关系型加密数据库可以通过适当的PPE方法通过加密每个表的格子来实现对数据库的构建。)
要通过一个SQL查询q来查询加密数据库,查询会被分解成一个由等值和比较运算组成的序列,这些操作之后会在加密的表上直接执行。此外也有一种类似的用于非关系型EDB的方法。

函数加密(Functional encryption)

FE方案会对信息m进行加密,通过对于某个函数和密文给出一个令牌,这样就能够在不获取其他信息的情况下计算出f(m)。
基于身份的加密(IBE)是函数加密的一个特例。在IBE中,信息具有<id,m>的形式,其中id是一个任意比特的字符串,函数的形式如下:

f i d ′ ( < i d , m > ) = { m i d = i d ′ ; ⊥ i d ≠ i d ′ . f_{id'}() = \begin{cases}m & id = id'; \\⊥ & id \not= id'.\end{cases} fid(<id,m>)={mid=id;id=id.

通用目的的FE可以处理任何的能行可计算函数(efficiently-computable function),可以用来解决任何的加密搜索问题:

  1. 将数据加密;
  2. 要通过q查询数据,为函数f生成一个令牌用来执行数据查询。

这将为查询提供一个明文结果(这与完全同态加密FHE是不同的)。IBE可以按以下步骤用于建立一个加密的搜索引擎。

  1. 使用一个标准加密方案来加密文档集中的每个文档D;
  2. 对于文档中的每个词w,为w生成一个令牌并查询加密后的结构。

其他形式的StE如图加密法为设计加密的图式DB提供了自然的解决方案。

安全多方计算(MPC)

MPC协议允许n个相互不可信的端在不相互暴露自己的任何信息(不仅仅是可以从结果中可以推测出来的结果)的情况下对他们输入内容的集合执行计算。
与FHE类似,MPC也是一个通用目的的工具,可以被用来安全地计算任何的能行可计算函数。MPC为任何的加密搜索提供了一种自然的解决方案:

  1. 使用一种标准的(对称)加密方法加密数据;
  2. 要查询数据,执行一个函数,这个函数的参数有加密的数据、密钥和查询,然后解密数据,完成这些查询并输出结果。

私有信息检索(PIR)

PIR协议能够在不展现读取数据位置的情况下允许客户端从一个数组中读取一个元素。PIR可以用以下方法来设计加密搜索的解决方案:

  1. 将数据存储在一个数组里;
  2. 使用一种对称密钥加密方案来加密每个元素;
  3. 要搜索,模拟一个搜索算法并将每一个读取操作更换为对应的PIR查询。

这与上面使用ORAM的情况类似,也是一种将PIR用于搜索的原始方法。

权衡

严格地说,当最大化考虑安全和查询表达能力而将效率作为代价的话,最佳的解决方案是基于ORAM和FHE的。
当最大化考虑效率和查询表现力而将安全作为代价的话,最佳的解决方案是基于PPE的方案。
当最大化考虑安全性和效率而将查询表现力作为代价的话,最佳的解决方案是基于STE的。

你可能感兴趣的:(可搜索加密)