云辅助隐私集合求交(Server-Aided PSI)协议介绍:学习
原文来自:云辅助隐私集合求交(Server-Aided PSI)协议介绍,下面学习一波,并记录一些笔记。
背景

总结:
1、PSI-CA和PSI相比,前者在乎的是交集的大小,后者在乎的是交集本身。另外扩展一下,阈值PSI在乎的是交集大小与阈值的关系(不关心交集大小、交集本身,只想要知道答案:是/否)
2、云辅助,字面意思就是借助云进行PSI。
3、另外这里的Cardinality,这里理解为“基数”,我更愿意理解为“势”!
云辅助PSI的需求

总结:
1、当前工业级的PSI,肯定都是云辅助下的。
2、借助第三方云计算平台,性能(计算和通信)确实提升了,下面得重点考虑安全了!
云辅助PSI应用场景


总结:
1、第三方云计算平台是不可信的,数据需要盲化(加密、hash、加噪音、编码、PRF等)存储
2、在第三方云计算平台完成秘密求交,返回本地后去盲得到计算结果。
3、出现除参与者之外的第三方,还需要考虑合谋问题。
4、加入抗合谋后的协议主要用于两类场景:
(1)云平台和拥护交集完成PSI计算
(2)PSI计算完全放在云平台,用户只负责上传数据和处理计算结果
云辅助PSI具体协议
根据上面两类场景,下面介绍具体协议,其中场景(1)又可分为两种(Client-Server,Server-Server),场景(2)为(Client-Client)
S-S


分析:
1、该协议只用了PRF实现PSI,效率(计算和通信)肯定是高,但高安全性就很难保证了
2、两方中,需要两个密钥,即两次PRF。
3、这里云平台用了“洗牌”技术,打乱了伪随机值的顺序,使得服务器2逐个计算判断是否有相同的,但不确定位置,只能确定相同的个数,即交集的势
C-S

分析:
1、通过多项式插值和otd-OPRF实现PSI
2、这里的Otd-OPRF使得,若\(x=y\),则\(F(k,x)=F(k,y)\)。在云平台和强S之间执行OPRF
3、在强S中将伪随机值和随机数\(r\)插值成多项式发给云平台
4、云平台带入弱S的伪随机值,得到key,返回给弱S
5、弱S比较对应的随机值是否一样,判断交集。
6、云平台通过“洗牌”打乱随机值顺序,只能比较有一个重复的,不能判断具体是哪一个,所以只能得到交集的势。
扩展
1、伪随机生成器/pseudorandom generator/PRG
主要参考:现代密码学3.3--伪随机生成器/PRG
功能:能用“短的、均匀的”字符串(seed) 生成 “长的,看起来均匀的”字符串
2、密钥为 (s, k) 的不经意伪随机函数:BaRK-OPRF

若\(x=y\),则可以消去\(C(.)\wedge s\),得到OPRF值;否则,就是一个随机数。
3、不经意两方分布式伪随机函数 (oblivious two-party distributed pseudorandom function, Otd-PRF)

其中,\(C()\)是具有XOR同态性的线性编码函数;\(\wedge\)表示按比特与(AND)。
这里若\(x_1=x_2\),则\(F_s(k,y)=t=F(k,x_1\bigoplus x_2)\)。
C-C

分析:
1、这里具体如何计算PSI,加密是对称/流加密,还需看原论文!
2、在云平台计算出密态交集结果,分发给个参与方,各自解密。
3、当需增填/删除参与者时,需要重新协商密钥。另外密钥是一个参与方生成的,安全能否保证?
可验证
存在第三方云平台,就会存在恶意行为,比如:云计算平台返回任意结果作为交集(例如仅返回部分交集元素、返回空交集、返回输入集(认为所有元素都是交集)),所以需要参与方可以验证结果(完整性)。
C-C
恶意(云平台)

分析:
1、这里使用了\(D_0,D_1,D_2,公共数据\)D_0\(防止云平台返回空交集;\)D_i\(防止云平台方返回全部输入集(怎么输入,怎么输出)
2、参与者将数据\)S_i\(复制\)r\(份,每份后串接\)r$,防止云平台仅返回部分交集元素。
这点不太理解,,
恶意(云平台、参与方)
上面说的恶意的云品台,若是存在恶意的参与者,即提供一个错误的输入,导致获得一个无效的输出,但恶意参与者还是能获得有效交集。

分析:
1、“提供一个错误的输入,导致获得一个无效的输出,但恶意参与者还是能获得有效交集”,这个怎么理解?
2、改造后的协议,增加了各参与方可以籽云平台上验证。具体验证方法还得看论文!
3、这里为什么用到\(K_1.K_2\),回看论文!
待补充
可验证,可重复,可决定
下面协议实现了云计算平台的全部理想功能:
(1)计算交集的任务完全委托给云计算平台
(2)一旦数据集加密外包后即可进行无数次的PSI计算,无需对数据集再次加密和上传
(3)同时弱客户端具有允许哪些弱客户端使用他们集合的决定


分析:
1、数据外包阶段,就是数据处理阶段,先将数据hash,填入到hash表中,同一行使用相同密钥计算PRF,然后对每个元素(第\(j\)行\(i\)列)的伪随机值(PRF值)进行盲化,将盲化值“串成”向量发送给云平台
2、这部分符号有些乱,需要去看原文【Improved secure efficient delegated private set intersection】
待补充
可更新
以上PSI协议中上传到云计算平台的数据均为静态数据不可更新,下面实现云计算平台全部理想功能外还实现了加密数据可更新的功能:

分析:
1、加入更新操作,使用BF(布隆过滤器)
2、看起来比较复杂,后面再看原论文【Feather: lightweight multi-party updatable delegated private set intersection】。
待补充
总结
1、给出云-PSI求交、求势的具体协议
2、给出云-PSI中恶意攻击的解决办法(三种情况)
3、给出可更新数据的云-PSI。
云辅助隐私集合求交(Server-Aided PSI)协议介绍:学习的更多相关文章
- 一个好用的多方隐私求交算法库JasonCeng/MultipartyPSI-Pro
Github链接传送:JasonCeng/MultipartyPSI-Pro 大家好,我是阿创,这是我的第29篇原创文章. 今天是一篇纯技术性文章,希望对工程狮们有所帮助. 向大家推荐一个我最近改造的 ...
- [java] 求2个集合的交 差 并集
要求2个集合的交 差 并集. set集合,如下 import java.util.HashSet; import java.util.Set; public class SetTest { publi ...
- ray与triangle/quad求交二三事
引擎中,ray与quad求交,算法未细看,但有求解二次方程,不解.ray与triangle求交,使用的是97年经典算法,仔细看过论文,多谢小武同学指点,用到了克拉默法则求解线性方程组.想模仿该方法,做 ...
- javascript集合的交,并,补,子集,长度,新增,删除,清空等操作
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...
- python集合set{ }、集合函数及集合的交、差、并
通过大括号括起来,用逗号分隔元素,特点 1.由不同元素组成,如果定义时存在相同元素,处理时会自动去重 2.无序 3.元素只能是不可变类型,即数字.字符串.布尔和元组,但集合本身可变 4.可直接定义集合 ...
- hdu 5111 树上求交
hdu 5111 树上求交(树链剖分 + 主席树) 题意: 给出两棵树,大小分别为\(n1\),\(n2\), 树上的结点权值为\(weight_i\) 同一棵树上的结点权值各不相同,不同树上的结点权 ...
- 一步一步实现基于GPU的pathtracer(二):求交算法
不管是哪种全局光照算法,最根本的都要落实到光线与物体的求交.主要分为光线与参数曲面和非参数曲面的求交,典型的参数曲面有球.盒.圆柱等基本体及基本体的组合体,以及一些更为复杂的参数曲面.非参数曲面就是所 ...
- 线性基求交(2019牛客国庆集训派对day4)
题意:https://ac.nowcoder.com/acm/contest/1109/C 问你有几个x满足A,B集合都能XOR出x. 思路: 就是线性基求交后,有几个基就是2^几次方. #defin ...
- 阿里云重磅发布RDS for SQL Server AlwaysOn集群版
2018年双十一刚过,阿里云数据库发布RDS for SQL Server AlwaysOn集群版,这是业界除微软云SQL Database外,首家云计算公司基于SQL Server最新AlwaysO ...
- 【Weiss】【第03章】练习3.4、3.5:有序链表求交、并
[练习3.4] 给定两个已排序的表L1和L2,只使用基本的表操作编写计算L1∩L2的过程. [练习3.5] 给定两个已排序的表L1和L2,只使用基本的表操作编写计算L1∪L2的过程. 思路比较简单,测 ...
随机推荐
- Codeforces Round 988 (Div. 3) E题解析
E题 题目链接 Codeforces Round 988 (Div. 3) 题目描述 题目的思路 根据题目的意思,我们可以推断出算法时间复杂度应该在O(N) 对于这道题而言,我们可以分析下思路 首先我 ...
- Linux中vim快捷键+vim报错解决
vim快捷键+vim报错解决 vim 快捷键 编辑器 yum -y install vim 快捷键: 视图模式: 0 Home ^ 快速移动光标到行首 $ End 快速移动光标到行尾 u 撤销 ...
- Java方法参数太多怎么办—Part 1—自定义类型
本文由 ImportNew - 王村平 翻译自 dzone.如需转载本文,请先参见文章末尾处的转载要求. 本文是这个系列的第一篇文章,介绍了采用自定义类型处理参数过多的问题.如果你也希望参与类似的系列 ...
- Java垃圾回收器总结
什么是Java垃圾回收器 Java垃圾回收器是Java虚拟机(JVM)的三个重要模块(另外两个是解释器和多线程机制)之一,为应用程序提供内存的自动分配(Memory Allocation).自动回收( ...
- Ansible 运维自动化
Ansible 概述Ansbile是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,列如持续部署,滚动更新.Ansible 适用于管理企业IT基础设施,从具有少数主机的小规模到数 ...
- arthas 通过stack 命令查看堆栈调用
https://arthas.gitee.io/stack.html 很多时候我们都知道一个方法被执行,但这个方法被执行的路径非常多,或者你根本就不知道这个方法是从那里被执行了,此时你需要的是 sta ...
- Node.js 介绍和特点
1.node.js是什么 node.js不是一门语言,而是一个开发平台,是一个基于 Chrome V8 引擎的 JavaScript 运行环境. 何为开发平台:有对应的语言和实现特定功能的api 2. ...
- 案例 | 销讯通加持药企SFE部门效能提升
为了获取更大的市场空间,医药健康行业正迎来一波前所未有的产业升级.尽管不少企业取得了许多成绩,但仍面临诸多挑战. 江苏某制药公司在心脑血管.中枢神经.胃肠内科.心脏科.内分泌科.皮肤科和风湿科等领域均 ...
- vscode代码注释插件koroFileHeader配置(自用)
前言 一直以来写注释都是让人头疼的问题,力求保持注释风格统一也很麻烦,偶然间发现的这款vscode中的注释插件koroFileHeader,配置好后可以大大提高写注释的效率与积极性♪(∇*) 安装插件 ...
- 【Amadeus原创】centos中挖矿病毒kdevtmpfsi的终极解决方法
试了很久,最终的解决方法如下: 1,编写sh脚本:rm_wk.sh #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr ...