云辅助隐私集合求交(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的过程. 思路比较简单,测 ...
随机推荐
- 前端性能优化:使用 Web Workers 实现轮询
// pollWorker.js import { Base64 } from 'js-base64'; import RsaAndAes from '~/composables/RsaAndAes' ...
- 拯救php性能的神器webman-使用后台webman-admin
在webman的插件市场里面发现了这个 webman-admin 安装的话很简单,就是在已经安装了 webman 的目录里面执行 composer require -W webman/admin 安 ...
- php使用汉字作为进制转换
突然想到英文字符26个,大小写共52个,数字10个,加起来也不过62,再算上特殊字符,也就90个,可以看这篇文章 那可不可以扩大这个进制呢?我想到了汉字. 中文汉字,博大精深,我们就用常用汉字2500 ...
- python get请求传array数组
前言 使用传统的http发get请求时,如果传参为array数组,参数名称为a时,可以这样传值a=1&a=2&a=3,但是当只有一个时,这种方式就不合理了. get请求还有另外一种方式 ...
- Kafka之使用
windows下的管理工具: kafka-tool: https://www.kafkatool.com/download.html [Windows] 常用命令: # 查看topic 列表 ./b ...
- uniapp 画布
1.前言 uniapp中的canvas与HTML中的canvas用法并不同,他的使用文档请参考微信小程序画布 2.基本使用 1.准备canvas容器,并为其设置canvas-id和宽高(为了兼容H5, ...
- canvas(三)绘制矩形
1.绘制矩形轨迹 相关语法:ctx.rect(x,y,width,height),根据传入的参数(起始坐标和宽高)用来绘制一个矩形轨迹 注意:ctx.rect()和ctx.lineTo()绘制的都是轨 ...
- 前端每日一知之opcity/visiblity/display隐藏元素对比
脑图在线链接 本文内容依据CSDN博主FEWY精彩文章总结而来原文链接
- Three.js案例-360全景房看
在 360° 看房功能中,我们需要在浏览器中创建一个类似虚拟现实的场景,使得用户能够查看环境的每一个角落.这一功能的实现本质上是利用 球体映射技术,即通过将全景图作为纹理贴图映射到一个反向的球体上,用 ...
- 裸辞一年狂肝了一个AI搜索!我要硬刚Google和Perplexity!
Hika AI 是一款 AI 加持的「知识搜索工具」,它主要的目的是帮助你在搜索问题时通过Hika的「不同视角的思路」,为你快速延伸问题相关的知识领域,或者深挖问题中某个关键点,获得更加全面的结果. ...