标题:Epsolute: Efficiently Querying Databases While Providing Differential Privacy
Dmytro Bogatov
Boston University
dmytro@bu.edu
Georgios Kellaris
kellaris@bu.edu
George Kollios
Boston University
gkollios@cs.bu.edu
Kobbi Nissim
Georgetown University
kobbi.nissim@georgetown.edu
Adam O’Neill
University of Massachusetts, Amherst
adamo@cs.umass.edu
arXiv:1706.01552v2 [cs.CR] 2 Feb 2021
研究目标
在保证数据查询安全的情况下,提高查询效率。
- 提出了一个新的差异私有外包数据库系统的模型,及其安全定义、查询类型和效率措施
- 描述了一种新的结构Epsolute,它满足所提出的安全定义,并为范围和点查询类型提供了详细的算法
- 提出了实际的改进和优化技术,以显著减少获取的噪声量和网络往返的数量。
- 提供并开源了一个高质量的系统C++实现。
研究背景
ORAM
ORAM(Oblivious Random Access Machine,茫然随机访问机)是一种可以用来完全隐藏IO操作的数据访问模式的加密方案。访问模式是指IO操作访问文件的顺序、访问文件的频率、读写顺序等,当用户把数据存储在不可信的第三方时,即使数据是加密的,第三方仍能通过收集用户访问模式信息推断出用户隐私,在ORAM方案中,若两次访问序列长度相同,则其访问模式是相同的,使得第三方无法通过访问模式获取用户隐私。简单来说,ORAM将用户的一个文件访问请求转换成多个文件访问请求,从而模糊化用户访问文件的概率、模式等信息
ORAM简介
Outsourced Database System
将数据库抽象为有n条数据的集合r,每条数据有自己的ID,有search key(SK),可以表示为D={(r1,r1ID,SK1)…rn,rnID,SKn}。对于一个查询q,对数据库D进行操作,有结果result=q(D)={ri|q(SKi)=1}所有满足条件的集合。
User和Server之间有两个协议:
- Setup protocol Πsetup:U接受输入D,S没有输入,S输出数据结构DS,U没有输出
- Query protocol Πquery:U接受查询q,S接受数据结构DS,U输出q(D),S没有输出
Differential Privacy and Sanitization
D1 ∈ X𝑛 and D2 ∈ X𝑛 over domain X neighboring (denoted D1 ∼ D2) if they differ in exactly one record.
定义1:我们说A(随机算法)是差异化隐私(𝜖, 𝛿)-differentially private的,如果满足对所有的(D1 ∼ D2)和A所有的子集O,有以下等式:
When 𝛿 = 0 we omit it and say that A preserves pure differential privacy, otherwise (when 𝛿 > 0) we say that A preserves approximate differential privacy.
我们将使用一些机制来回答具有不同隐私的计数查询。这种机制会干扰了它们的输出,以掩盖任何单一记录对其结果的影响, Laplace Perturbation Algorithm (LPA),其主要思想是将从拉普拉斯分布中抽取的随机噪声添加到计数中,添加后的查询结果称为敏感度。每个对数据库RN的查询q的敏感度为:
拉普拉斯分布:
当u=0时,分布的正半部分正好是参数为1/λ的指数分布
定义2:𝑞:D→R𝑁。算法A将具有尺度𝜆=Δ(𝑞)/𝜖的零-拉普拉斯分布独立产生的噪声添加到𝑞(D)的每个𝑁坐标中,称为满足𝜖微分隐私。————满足了单个计数查询的要求
定义3:Q是一个查询的集合,一个对Q的 (𝜖, 𝛿, 𝛼, 𝛽)-差分隐私消毒算法是一对算法 (A, B)
- A是定理1中的 (𝜖, 𝛿)-differentially private
- B:
差异化隐私下,回答点和范围的查询:
- 回答点查询直接用LPA能满足错误𝛼 = O(log 𝑁)
- 回答域查询可以使用hierarchical method,其主要思想是在域上构建一个聚合树,并向每个节点添加与树高成比例的噪声,然后使用最小的树节点数量来回答每个范围查询
定理4:若A1…An提供𝜖𝑖-differential privacy,那么让另一个A分别独立执行A1到An得到他们的输出,那么A是
差分隐私的
内容简介
差异化隐私外包数据库系统(DP-ODB)
敌手模型
我们说该系统Π是(Lsetup,Lquery)-secure的,如果双方输出的答案不可区分
L∗query 接受输入 (𝑞, SK1, . . . , SK𝑛) 并输出 𝑞 .
Π是(𝜖,𝛿)-differentially private的,如果存在泄漏函数Lsetup 使得Π(Lsetup, L∗query)-secure,满足所有邻居D~D’,和所有区分器A满足下面式子
如果一个函数的输出在计算上与差分私有函数无法区分,则说它在计算上是差分私有的。
效率措施
若效率存储和通信都满足a1>=0,a2>=0,那么如果一个外包数据库系统具有(1,0)的存储效率,那么它就具有最佳的存储效率和通信效率
存储效率
它被定义为数据库中记录的位长之和相对于相应的加密数据库的位长之和(前者和后者的关系)。若外包数据库满足(a1,a2)的存储效率,固定D = {(𝑟1, 𝑟1ID, SK1), . . . , (𝑟𝑛, 𝑟𝑛ID, SK𝑛)},S< State >是当Πsetup 中 U 接受D为输入时,S的输出。则有𝑛2 ≤ 𝑎1𝑛1 + 𝑎2.
通信效率
它被定义为其搜索键满足查询的记录的位长相对于查询结果发送回的实际比特长的总和(前者和后者的关系)。若外包数据库满足(a1,a2)的通信效率。固定Πsetup输出的 𝑞 和 DS,U和S执行Πquery,U接受输入q,输出R,S接受输入DS
𝑚1为整个Πquery过程中R和S之间的所有数据量
m2为|R|
EPSOLUTE
通用构造
EPSOLUTE需要使用以下构建模块,其中Q是一个查询集合
- (𝛾1,𝛾2)-ORAM protocol ORAM(·)
- (𝜖, 𝛿, 𝛼, 𝛽)-differentially private sanitizer (A, B) for Q and negligible 𝛽它满足非负噪声保证。
- A pair of algorithms CreateIndex and Lookup
- CreateIndex使用D,生成索引数据结构I,I映射SK和rID
- Lookup使用I和q,返回满足要求的rID集合
EPSOLUTE 的协议Π = (Πsetup, Πquery)
其中ORAM的输入y=(w, 𝑟𝑖ID, 𝑟𝑖)| 𝑛𝑖=1, w表示写,rIDi表示存储地址,ri表示数据
安全与效率
Epsolute is (𝛽+𝛾2)-correct and (𝜖, 𝛿+𝛾1)-differentially private.
正确性服从一个联合约束,差分隐私要满足:证明:在Algorithm 2中,当我们从一个数据库D转换到D‘,setup第四行中每个ri变换成ri’,到这步时,我们称为(D,D‘)的联合视图,为了满足差分隐私有:在第6行将所有的SKi替换为SKi’,为了满足差分隐私,有:
两者相加就有最终的差分隐私要求。
然后本文作者构造的Epsolute满足以下属性:
扩展到多属性查询
具体来说,索引I和DP结构DS是根据每个属性和查询类型生成的,而U和S的ORAM状态只生成一次。这种设计是实用的,因为DS小得可以忽略不计,而且与ORAM状态相比,索引I相对较小。
当索引很多的时候,将索引存储在外包服务器上,然后根据查询需要下载对应索引是很实用的,隐私方面这种解决方案相当于操控不同的Epsolute实例,根据定理4多属性系统的总隐私预算将是每个属性/索引的个人预算之和。
Epsolute for point queries
Sanitizer:LPA:确保差异隐私,噪声从 the Laplace distribution with mean 𝛼𝑝 and scale 𝜆 = 1/𝜖中提取,为了对Sanitizer有至少𝛽的错误保障,满足an (𝜖, 𝛿, 𝛼, 𝛽)-differentially private 通过Laplace的分布函数可得,此时Laplace分布u=0,转化为指数分布的分布函数,再用定理4可得概率:
以得到𝛼𝑝的精确最小要求值
Epsolute for range queries
Sanitizer:聚合树:为给定的𝑘,在域上构建了一个完整的𝑘叉树。一个叶子节点包含落入每个箱子中的记录数加上一些噪声,父节点包含该节点覆盖范围内的叶子节点值加上噪声的和。每次发出查询时,我们都会找到覆盖该范围的最小节点数量,并通过将这些节点值相加来确定所需的返回记录的数量。然后,我们要求服务器检索该范围内的记录,并检索多个随机记录,以便检索到的记录总数与所需的返回记录数相匹配。
噪声从满足下列要求的Laplace分布中提取
和点查询一样,为了避免高概率的负值,我们必须设置𝛼ℎ,使得如果值来自Laplase(𝛼ℎ,log𝑘𝑁/𝜖)的话,以高概率1−𝛽(𝛽可忽略),至少是树中节点数量的几倍,且都是正的。
这样计算出的ah最小值为
树节点的总量为
AN EFFICIENT PARALLEL EPSOLUTE
有两种变体方法,他们都使用m个ORAM,每个ORAM存储n/m个数据。它们构建和存储DP结构DS的方式不同,因此它们提出的ORAM请求的数量也不同
No-𝛾-method: DP structure per ORAM(Πno−𝛾)
对于数据集的每个ORAM子集,构建一个DP索引,此时正好可使用研究背景中提到的定理4
通信效率的改变由两个方面引起:
- 本质上添加𝑚记录子集来回答查询,每个最多有𝛼个额外的随机记录
- 每个ORAM保存的记录比以前更少,从而导致高度变成log 𝑛/𝑚的树。
因为并不能保证查询q的结果均匀分布在每个ORAM,所以通信成本并不能真正降低到log(n/m),假设Xj=1表示一个记录用于回答q查询ORAMj,Xj=0表示没有。很显然P[Xj=1]=1/m。假设查询q需要k0个记录,那么ORAMj中为了回答查询q的最大记录数满足:(why?)
那么有
点查询和范围查询效率如下:
𝛾-method: shared DP structure(Π𝛾)
维护了一个单一的共享的DP结构DS,但是要确保从每个ORAM中检索到的记录的数量是相同的。
根据所需的噪声记录数˜𝑘0,我们需要从每个ORAM中最多检索(1 + 𝛾) (˜𝑘0 /m)。同Πno−𝛾一样因为
对范围查询有:~k0=k0+(log1.5N)/e
对点查询有:~k0=k0+(logN)/e
于是满足查询效率
具体流程如下
实际提升
ORAM request batching
其核心思想是首先读取所有路径,处理请求,然后写回所有路径。通过这种方式,客户端发出单个读取请求,其执行速度比许多小请求要快得多。然后在主内存中处理请求,包括重新加密。最后,客户端使用重映射的叶子节点作为单个操作来执行写请求,一次性进行保存。
Lightweight ORAM servers
我们发现执行并行ORAM协议的Epsolute在主存访问、加密操作和网络使用方面是高度密集的。瓶颈是硬件——在一台机器上,RAM和网络已经迅速饱和,从而防止了线性缩放。所以将用户方U分成多个轻量级机器,它们彼此本地连接,并驻留在单个信任域中(例如相同的数据中心)。具体来说,维护一台接收用户请求并准备ORAM读请求的客户端机器,还有最多𝑚轻量级ORAM机器,它们唯一的工作是并行运行ORAM协议。
轻量级的ORAM机器原理图。用户向建模为客户端机器的U发送查询,U使用本地数据索引和DP结构来准备一组ORAM请求,这些请求被发送到各自的ORAM机器。这些机器对S的不可信存储执行ORAM协议。
思考方向
- 文章中ORAM使用的是基于laplace的思想,如果改为基于高斯或者基于指数的思想的ORAM会不会有所提升?
- 文章中所提及的select语句没有很完善,作者也提出了Group by或者join语句是之后的研究方向。
- 本文的主要思想是利用现有的加密存储方式ORAM,在此基础之上使用缓冲区和并行的思想来进行效率的改进,其实思想很简单但数学方面比较困难