VaultDB: A Real-World Pilot of Secure Multi-Party Computation within a Clinical Research Network
摘要
数据持有方:多方;
安全性:仅泄露最后的结果;
数据集:CAPriCORN - 13M病人,上百个参与方
结果:三个系统上效率和可扩展性高
1. 介绍
DUAS 规范了病人数据隐私性,数据共享的方法,以及其合法的用途。
以前的研究引入了 Honest Broker 或者 TTP 作为中介,不管收集各站点的数据是否加密,都引入了为危险。加密时,分析数据持有房和Broker之间的通信可能也会泄露势等信息。
隐私保护的分析 可以不需要 Honest Broker 或者 DUAS,引入安全计算使得输出的数据仅对数据拥有者可见。之前对去识别化的数据安全计算,现引入差分隐私 DP 和 近似查询处理 approximate query processing。
2. 设计和实现
VaultDB 隐私保护分析 隐私数据联合 Private Data Federation
工作流程:
- VaultDB 把密码协议发送给数据持有方
- 数据持有方发送查询结果的加密后的秘密份额给 VaultDB
- VaultDB 集合份额,返回结果给分析方
与传统的数据联合接口相同:输入SQL语句,返回查询结果
安全多方计算非常昂贵,图灵完备。
后端基于 EMP Toolkit 开发 (2016开始,动态维护)目标有两个:(1)方便研究者建立高效的密码学原型系统 (2)提供易用的密码学借口给开发者以实现隐私保护的应用
利用了 EMP 的两方半诚实的协议。用现有的算法相较于无隐私保护版会有量级的速度下降
安全查询的执行过程是不经意的,过程与输入无关,因此所有执行的时间 都要与最长的协调以免运行时间泄露信息。攻击单个参与方无用,侧信道攻击也无用。
c++;Linux;部署在防火墙后,对网络资源访问受限;工业标准加密产品;远程访问需要双重认证;
3. 试点研究设计&方法
两个目标:
- 重复已有的一个 CRN研究的协议 通过 VaultDB
- 为了把 VaultDB 的输入的规模扩大,扩展了研究的协议
在一个已有的项目 CAPriCORN 上做的 (多方,人口和医务数据,大量病人数据)
两个群组(数据库?):
- 高血压的人
- 高血压的病人和 血压测量高于 140/90
查询:
ENRICH研究从两个相关队列的ehr中获取人口统计学数据:1)已知患有高血压的个体(分母);2)被诊断为高血压的患者,并且最近在每个医疗站点的血压测量值大于140/90(分子)。它按年龄、性别、种族和民族对研究参与者进行了分层,并记录了多个位点的患者。这项研究只包括在门诊和没有住院的患者。如果一个人在研究期间死亡、最近怀孕、患有肾脏疾病、最近接受了肾移植或住院,则被排除在研究之外。如果一个患者符合一个研究点的排除标准,该方案要求排除他们的所有记录,即使他们在多个研究点被看到。
此处是 任意两个参与方 进行安全两方运算(如果采用其他协议,可能多方)
把排除的元祖用 Dummies 或者 数据占位符 ,满足不经意性
不经意聚合会对数据进行排序,把应聚合的元祖放到一起,然后线性(连贯)扫描一次做聚合
VaultDB 计算数据立方 不断对结果卷起(?)
优化
两种使得 VaultDB计算查询 更快适用于更大数据集的优化:
- Multi-Site 使用 semi-join 技术,这是一种常见的关系数据库的优化
数据持有方仅计算 共有病人的元祖(交集?),会添 dummy
在计算的节点 计算完多个站点的数据立方体后,会加入一个 单点的聚合(从各方的数据中) - Batch 分批。相较于一次算完 分为更小的批次进行计算(如利用安全的哈希函数)
分布式数据库系统原理(?):查询更快,但是需要格外的安全计算来组装整合每批的结果
递增地处理这些批次,就可以适用于大规模的数据,不然内存不够
::
这文章真是很 划水,像我的论文。。。。。。