略
是指数据在离开用户的设备之前需要经过用户加密。加密的密钥由用户进行管理,这样数据就只能被用户显式解密。
基于端到端加密的系统和服务被称作零知识系统。零知识系统几乎不或完全不了解它们所处理的数据的内容,可以提供比当前系统更强的隐私和安全保障。但是这要以用户负责密钥管理及其涉及的所有问题为代价。
零知识系统的挑战在于它的端到端加密实现会导致在远端被加密的数据无法被用户检索或查找,因为只有用户才能解密。
密文计算的目标是通过制作新的加密系统来解决端对端加密产生的问题,这个加密系统能够在加密的数据上进行多种形式的操作。
绝大多数的零知识系统都需要的基本数据操作就是搜索。而且也可用于非端到端的加密中。
FHE方案是一种支持任意计算的加密方案。
给定一组信息(m1, m2, …, m3)的一组加密(ct1,…, ctn),对于任何一个可计算的函数f都可以生成f(m1,…, mn)的一个密文ct。
FHE为任意的加密搜索问题都提供了一种自然的解决方案:
这样就能得到查询的结果了。
个人理解:完全同态加密的特点,即在密文空间所做运算的结果解密后与在对应的明文上所做相同运算的结果一致。
一个ORAM将一个数组作为输入,而且用一种支持茫然读写的方式进行预处理。茫然是指模型在执行指定操作时并不知情操作所访问的地址。ORAM也为任何的可搜索加密问题提供了一个自然的解决方案:
注意这种方法是使用ORAM进行搜索的一种原始做法,仍有改进空间。
PPE方案是一种展示明文属性的加密方案。
(举例:确定性加密可以通过比对密文来确定明文的一致性,保序加密和ORE加密可以通过比对密文的顺序来确定明文的顺序)
给定PPE方案,就可以对基于等价性测试和比较的任何可加密搜索问题加以解决。
(例如:一个关系型加密数据库可以通过适当的PPE方法通过加密每个表的格子来实现对数据库的构建。)
要通过一个SQL查询q来查询加密数据库,查询会被分解成一个由等值和比较运算组成的序列,这些操作之后会在加密的表上直接执行。此外也有一种类似的用于非关系型EDB的方法。
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'}(
通用目的的FE可以处理任何的能行可计算函数(efficiently-computable function),可以用来解决任何的加密搜索问题:
这将为查询提供一个明文结果(这与完全同态加密FHE是不同的)。IBE可以按以下步骤用于建立一个加密的搜索引擎。
其他形式的StE如图加密法为设计加密的图式DB提供了自然的解决方案。
MPC协议允许n个相互不可信的端在不相互暴露自己的任何信息(不仅仅是可以从结果中可以推测出来的结果)的情况下对他们输入内容的集合执行计算。
与FHE类似,MPC也是一个通用目的的工具,可以被用来安全地计算任何的能行可计算函数。MPC为任何的加密搜索提供了一种自然的解决方案:
PIR协议能够在不展现读取数据位置的情况下允许客户端从一个数组中读取一个元素。PIR可以用以下方法来设计加密搜索的解决方案:
这与上面使用ORAM的情况类似,也是一种将PIR用于搜索的原始方法。
严格地说,当最大化考虑安全和查询表达能力而将效率作为代价的话,最佳的解决方案是基于ORAM和FHE的。
当最大化考虑效率和查询表现力而将安全作为代价的话,最佳的解决方案是基于PPE的方案。
当最大化考虑安全性和效率而将查询表现力作为代价的话,最佳的解决方案是基于STE的。