The Communication Complexity of Threshold Private Set Intersection-2019:解读
记录阅读论文的笔记。
什么是阈值PSI?
Alice和Bob当两者的交集大小不小于\(n-t\)时(两者的不同元素的数量不大于阈值\(2t\)时),才会求交集。
所以阈值PSI会分为两步:
1、检测
2、求交
主要内容:
基于阈值的两方PSI协议(HE)构造,并给出扩展为多方的设想,通信复杂度是亚线性的(sublinear)(集合大小有关)。
摘要

1、简单介绍了阈值PSI
2、分析了阈值PSI协议的通信复杂度的上下界。
3、两方协议可以扩展到多方
4、阈值PSI应用广泛
5、给出协议的通信复杂度取决于阈值\(t\),并和集合大小\(n\)呈亚线性关系(对数)
介绍

1、阈值PSI的应用
(1)生物特征认证
对于给定指纹与数据库中的指纹进行匹配,不关心具体的交集是什么,也不关心具体的交集大小,只需要得到是/否的答案,表示指纹是否在库中。
(2)隐私拼车
假设两个(或更多)方正在使用拼车应用程序,如果他们的路线有很大的交集,它允许他们共享车辆。然而由于隐私问题,他们不想公开他们的行程。阈值PSI可以解决该问题,各方可以联合执行一个阈值PSI协议,了解路线的交叉点,如果交叉点足够大,共享一辆车,否则,他们就不共享一辆车,也能保证用户的路线隐私。
(3)在线聊天好友发现
聊天软件中对于共同兴趣爱好较多(存在阈值)的两人,会互相推荐。
2、以往的PSI的通信复杂度分析
(1)通信复杂度与最小输入集合大小呈线性
(2)而阈值PSI通信复杂度只取决于阈值大小,而与输入集合大小无关。
3、主要技术
(1)Cardinality Testing
(2)Linear Algebra
(3)Additively Threshold Homomorphic Encryption
(4)Secure Two-Party Computation
(5)Oblivious Linear Function Evaluation
(6)set reconciliation【Set reconciliation with nearly optimal communication complexity】
4、文章框架
(1)先介绍基础知识
(2)再分析文章的通信复杂度
(3)再基于FHE和set reconciliation构造的协议
(4)再介绍不安全的Cardinality Testing
(5)再介绍安全的Cardinality Testing
(6)再给出不安全的两方阈值PSI
(7)再给出安全的两方阈值PSI
(8)最后给出扩展多方阈值PSI的设想方案
基础知识
Alice将集合\(S_A=(a_1,...,a_n)\)编码为多项式\(p_A(x)=\prod_{i=1}^{n}(x-a_i)\),Bob将集合\(S_B=(b_1,...,b_n)\)编码为多项式\(p_B(x)=\prod_{i=1}^{n}(x-b_i)\)
代数基础
1、多项式
(1)单项式(monomials)
对于多项式\(P_A(x)=\sum_{i=1}^{n}x^{a_i}\)中的每一项\(x^{a_i}\)就是一个单项式
(2)多项式级数(deg(p))
最高次项的幂
(3)首一多项式(monic)
首项系数为1的多项式
(4)多项式的稀疏性(t-sparse)
若多项式\(p(x)\)中的单项式最多为\(t\)个,则该多项式就叫做\(t-sparse\)
(5)有理多项式(rational polynomial或rational function)
\(h(x)=p(x)/q(x)\)就是有理多项式,其中\(p(x)\)和\(q(x)\)的级数分别为n和m
(6)多项式插值
一个级数为\(d\)的多项式,需要\(d+1\)个点值对插值,若该多项式是首一多项式,则只需要\(d\)个点值对。
2、矩阵
(1)奇异矩阵(singular)
就是不可逆矩阵,即行列式为0的方阵
(2)汉克尔矩阵(Hankel matrix)

引理
1、引理1

在后面计算点加噪音时用到。
2、引理2

表明\(p(x)\)和\(R(x)\)是互素的,即没有公共元素。
set reconciliation
来自【Set reconciliation with nearly optimal communication complexity】

主要思想是:将集合\(S_A=(a_1,...,a_n)\)编码为一个首一多项式(monic polynomials)\(p_A(x)=\prod_{i=1}^{n}(x-a_i)\)。
多项式的级数(deg(pA))为\(n\),所以也可以由\(n\)个点值对插值而来。
从上面可以看出,有理函数(rational function)\(p(x)\)由\(P_A(x)/P_B(x)\)构成,消去交集,剩下的分子是集合\(S_A\)除去交集的部分\(S_{A\setminus B}\),分母是集合\(S_B\)除去交集的部分\(S_{B\setminus A}\)。
满足\(|S_{A\setminus B}\)+\(S_{B\setminus A}|\leq 2t\),即可以用\(2t\)个点值对插值出\(p(x)\)。
那如何才能插值呢?


假设已经经过了检测,接下来就是求交了。
首先,两方各自将集合编码为多项式,协商出一组计算点\((\alpha_1 ,...,\alpha_n )\),并分别求值\((p_A(\alpha_{1}),...,p_A(\alpha_{2t}))\)和\((p_B(\alpha_1),...,p_B(\alpha_{2t}))\)。
然后双方经过通信后可以根据\(p(x)=p_{A\setminus B}(x)/p_{B\setminus A}(x)\)的关系,再利用那些点得到\(2t\)个点\((p(\alpha_1),...,p(\alpha_{2t}))\),即可插值出多项式\(p(x)\)。
如何求交呢?
以Alice为例,根据\(p(x)\)他可以得到\(p_{A\setminus B}(x)\),然后就可以得到交集多项式\(p_{A\cap B}(x)=p_A(x)/p_{A\setminus B}(x)\)。
这里存一个问题,如何根据\(p(x)\)得到\(p_{A\setminus B}(x)\)?
基于上述思想,我们可以结合安全的两方计算(secure two-party computation)构造一个亚线性的PSI协议:
(1)双方输入多项式的计算点
(2)使用安全两方计算对\(p(x)\)进行插值
(3)两方分别输出\(p_{A\setminus B}(x),p_{B\setminus A}(x)\)
但存在问题是,该协议并不实用或者说不满足高效渐进性(asymptotically efficient)。
如何优化?
我们给出了一种不同的方法,仅使用“minimal secure two-party computation”获得带噪音的点值,进而插值出$p(x),之后求出交集。
具有过程见:
安全的两方计算(Secure Two-Party Computation)
主要讲的是UC安全模型,即方案的安全性证明方法。
更多的UC安全见:安全性证明
加法同态加密

这里的加法同态性,可以立即为密文相乘,解密相等于明文相加。
不经意的线性计算(Oblivious Linear Function Evaluation)

主要功能就是receiver只能得到\(f(x)\),sender不知道\(x\),和OPRF是不是很像!

Cardinality Testing

Cardinality Testing,可以翻译为集合势检测,主要就是求交前的检测。
集合的势可以从这里多了解一些:
- 集合交集问题的安全计算:解读
- 云环境下集合隐私计算-解读
- 有理数域上两方集合的高效保密计算-2020
以上三篇论文是一个实验室的哟!
对于:
- 判断交集大小是否不小于\(n-t\),即\(S_A\cap S_B\geq (n-t)\)
- 判断集合不同元素(sets do not differ)的数量是否不大于\(n-t\)即$|(S_A\setminus S_B)\cup (S_B\setminus S_A)|\leq 2t $
两种说法是一样的!
如何检测呢?
通常是先将集合\(S_A=(a_1,...,a_n)\)编码到多项式中,之前方案是将元素作为多项式的根,即\(Q(x)=(x-a_1)...(x-a_n)\),而这里是将每个元素单独编码到一个多项式(polynomial)中的单项式(monomials)中,即\(p_A(x)=\sum_{i=1}^{n}x^{a_i}\)。
检测的核心思想是:求多项式\(p(x)=P_A(x)-P_B(x)\)中的单项式的个数是否小于\(2t\),因为\(p(x)\)中的单项式最多为\(2t\)个。通过这种编码方式,再利用一种多项式的稀疏性检测方法【polynomial sparsity test】,来自【A local decision test for sparse polynomials】。
多项式的稀疏性:
若多项式\(p(x)\)中的单项式最多为\(t\)个,则该多项式就叫做\(t-sparse\),【A local decision test for sparse polynomials】给出了一种随机化算法(randomized algorithm),只需要\(2t\)次计算就可以检测出\(p(x)\)是否是\(t-sparse\)。
最后结合加法同态加密和隐私线性计算实现检测,通信复杂度为\(\widetilde{O}(t^2)\)
不安全的

上面介绍了cardinality testing protocol,这是阈值PSI协议的核心部件,这里提出一个基于多项式稀疏性检测的方式实现cardinality testing protocol,通过检测矩阵的行列式是否为0,判断矩阵是否是奇异矩阵,进而判断两个集合是否相似!
多项式稀疏性检测来自【A local decision test for sparse polynomials】,这是对该技术的直接应用。

安全的

安全的cardinality testing是指加入了加密运算,下面是理想情况下的cardinality testing协议:

这里的\(F_{INV}\)可以当作一个可信第三方。
协议通信量

1、使用FHE构造的阈值PSI的通信复杂度最多为\(\widetilde{O}(t)\),但在密文下进行插值多项式,计算量巨大。
将set reconciliation和FHE结合,构造阈值PSI协议。

这里利用了同态性质,即计算\(Enc(p_A(\alpha _i))/p_B(\alpha _i)\)时,\(p(x)\)需要\(2t\)个点值对同态插值得到。

2、使用GC构造的阈值PSI的通信协议为\(\widetilde{O}(t^3)\)。

基于GC+OT+单项函数构成的阈值PSI,实用性不大。
3、我们的协议介于两者之间,比2更优,同时使用加法同态(部分同态)在保证计算复杂度可控内,实现高效通信。
主要内容
两方阈值PSI
还是两步走,先检测,再求交。
理想情况下的两方阈值PSI协议为:

检测使用的是\(F_{PICT}^{2t}\)协议,然而在求交时,协议还是不安全,以Alice为例,他不仅能从\(p(x)\)中得到\(P_{A\setminus B}\)还能得到\(P_{B\setminus A}\),这就获取了Bob的额外信息。
我们采用的方法是,使用带噪音的计算点(evaluation points),从而掩盖了对方信息,这里关键点就是\(V(x)=p_A(x).R_1(x)+p_B(x).R_2(x)\)的构造。

注意这里插值\(p(x)\)时有\(3t+1\)个点,我们选择\(2t\)个分子分母互素的点即可。
正确性证明:

这里依旧存有疑问:如何根据\(p(x)\)求\(P_{A\setminus B}\)?
非对称场景下
上面介绍协议都是假设在对称场景下,即参与方的数据集大小相同,那如果在非对称场景下,两方的数据集大小一致,如何解决?
这里给出的方法是:填充
假设Alice的集合位\(S_A\),Bob的集合为\(S_B\),且\(|S_A|<|S_B|\),则两个集合中不同的元素至少为\(t_{min}=|S_B|-|S_A|\),将对\(S_A\)进行填充\(|S_B|-|S_A|\),如下:

这样无疑通信复杂度会增加。
加入“噪音”
在上面提到,Alice不仅会得到\(P_{A\setminus B}\)还能得到\(P_{B\setminus A}\),这就获取了Bob的额外信息,所以需要加入“噪音”掩盖\(P_{B\setminus A}\),在协议中体现在\(V(x)=p_A(x).R_1(x)+p_B(x).R_2(x)\),下面介绍如何构造\(V(x)=p_A(x).R_1(x)+p_B(x).R_2()\)!
理想情况的功能:

该思想来自【An algebraic approach to maliciously secure private set intersection】:
1、输入
sender:编码得到多项式\(p_A(x)\)和随机多项式\(R(x)\)
receiver:编码得到多项式\(p_B(x)\)
2、输出
返回给sender:\(p_A(x)+R(x).p_B(x)\)
具体协议:

感觉很像密钥协商,最后双方都得到了\(S_A'(\alpha_i)+S_B'(\alpha_i)\),即\(p(\alpha_i)\)。

对于Alice而言,因为\(U_B(x)\)是随机的,所以根据\(s_B'(\alpha_i)\)得不到额外的信息。Bob同样也是。

注意这里的,\(R_1^A(x)+R_1^B()\)相当于\(R_1()\),\(R_2^A(x)+R_2^B()\)相当于\(R_2()\)
多方阈值PSI
这篇论文还是以介绍两方为主,最后给出一个扩展多方的想法。这里以三方为例:
Alice,Bob,张三,数据集分别是\(S_A,S_B,S_C\)(大小为n),编码为多项式\(p_A(x)=\prod_{i=1}^{n}(x-a_i),p_B(x)=\prod_{i=1}^{n}(x-b_i),p_C(x)=\prod_{i=1}^{n}(x-c_i)\)。
方案中给出的基于阈值的FHE方案是来自【Threshold cryptosystems from threshold fully homomorphic encryption-2018】。
多方也是两步走,先检测,后求交。
检测(Cardinality Testing)
就是判断\(|S_A \cap S_B \cap S_C|\)是否大于\(n-t\)。
三方的多项式满足:

需要\(2t\)个点就能插值出来。但是存在一个问题就是,分子和分母中可能会约有公共的根(share additional roots),这样就会影响分子分母约分。
这点我不太明白,公共的根肯定是会约去的,怎么会影响呢?
解决的办法就是加入随机值:

这样,Alcie、Bob和张三,协商出一个公钥\(pk\),每人一个私钥分割值\(sk_A,sk_B,sk_C\),解密时需要所有人的私钥分割值。
1、Bob和张三分别发送加密的\((p_B(\alpha_1),...p_B(\alpha_{2t}),p_B(z)),(p_C(\alpha_1),...p_C(\alpha_{2t}),p_C(z))\)给Alice,其中\(z\)是一个随机值。
2、Alice使用这\(2t\)个点值对进行同态插值,求出\(p(x)\),并带入\(z\),判断\(p(z)\)是否等于\((p_B(z)+rp_C(z))/p_A(z)\),如果相等则为1的加密,否则是0的加密。
3、最后三方联合解密,做最后判断。
这里留一个疑问:如何判断\(p(z)\)是否等于\((p_B(z)+rp_C(z))/p_A(z)\),做同态减法,同态除法?
总的来说,检测步骤的通信复杂度为\(\widetilde{O}(t)\)。
求交
理想情况下的功能:

具体过程:
1、Alice,Bob,张三输入自己的数据:\((p_A(x),R_1^A(),R_2^A(),R_3^A(),U_A()),(p_B(x),R_1^B(),R_2^B(),R_3^B(),U_B()),(p_C(x),R_1^C(),R_2^C(),R_3^C(),U_C())\)
2、各自得到\(3t+1\)个点\((\alpha_1,...,\alpha_{3t+1})\)值对\(p_A(x)R_1(x)+p_B(x)R_2(x)+p_C(X)R_3(x)\)
3、以Alice为例,Alice最后插值出\(p(x)\),进而求出\(p_{A\setminus (A\cap B \cap C)}(x)\),最后求出交集。

总结
1、插值是在密文域,所以计算量很大
2、检测和求交中的同态加密方案,可以用同一个,比如TFHE
3、该论文只是给出一个模型、思路,具体实用性不强。
4、后续在下一篇论文介绍改进,增强实用性!
参考
1、什么是亚线性和超线性?
(1)线性
数学上看:一阶导数不随自变量的变化而变化
例如:\(y=a+bx\)

亚线性和超线性都称为非线性
(2)亚线性
数学上看:一阶导数随自变量的增大而减少
例如:\(y=ln x\)

(3)超线性
数学上看:一阶导数随自变量的增大而增大
例如:\(y=a+bx^n\)

2、数学当中的非平凡解和平凡解如何理解?非平凡性呢?
(1)平凡
平凡解就是显而易见的解、没有讨论的必要但是为了结果的完整性仍需要考虑的结果。
通常我们运用数学归纳法解题的时候,会先讨论\(n=0\)或者\(n=1\)时的简单情况,然后假设\(n\)时成立,那么对于\(n+1\)时也成立。\(n=0\)或1时的解就是平凡解。
比如Ax=0中的零解,即x=0,即为平凡解。
(2)非平凡
我们更关心的是非平凡(nontrivial)解,也就是非零解。
比如求一个数的因子,正负的1和它本身是这个数最显而易见的解,所以这两个因子就是平凡解,其他的是不平凡的。
3、渐进标准

The Communication Complexity of Threshold Private Set Intersection-2019:解读的更多相关文章
- Multi-Party Threshold Private Set Intersection with Sublinear Communication-2021:解读
记录阅读论文的笔记. 摘要 总结: (1)CRYPTO 2019:The Communication Complexity of Threshold Private Set Intersection- ...
- Multiparty Cardinality Testing for Threshold Private Set-2021:解读
本文记录阅读该论文的笔记. 本文基于阈值加法同态加密方案提出了一个新的允许\(N\)方检查其输入集的交集是否大于\(n-t\)的IPSI方案,该协议的通信复杂度为\(O(Nt^2)\). 注意:\(N ...
- 【论文考古】分布式优化 Communication Complexity of Convex Optimization
J. N. Tsitsiklis and Z.-Q. Luo, "Communication complexity of convex optimization," Journal ...
- National Contest for Private Universities (NCPU), 2019 C Boxes(双向链表)
题目中的要求如果x在y的左边,不需要移动,x在y的右边,2操作不需要移动. 有一个问题是,如果x与y相邻,这时的swap操作变成了三个而不是四个,这点尤其需要注意,不然就会死循环.注意x是和y相邻,这 ...
- 阈值PSI代码
阈值PSI 若交集数量超过某个给定阈值时,允许分布式的各个参与方在自己集合中找到交集,且除了交集外,得不到其他额外信息. 实现论文: Multi-Party Threshold Private Set ...
- [转]Peer-to-Peer Communication Across Network Address Translators
Peer-to-Peer Communication Across Network Address Translators Bryan Ford Massachusetts Institute of ...
- Scalable Multi-Party Private Set-Intersection-解读
本文记录阅读该paper的笔记. 摘要 本文给出两种MPSI协议,采用的是星型拓扑结构,即有一个leader,需要和其他参与者交互.优点是并非所有各方都必须同时在线: (1)能抗半诚实攻击 通信复杂度 ...
- Inter-partition communication in multi-core processor
A multi-core processor includes logical partitions that have respective processor cores, memory area ...
- Simple, Fast Malicious Multiparty Private Set Intersection-解读
文本记录阅读该论文的笔记. 这是文章框架,来自视频. 介绍 本文主要解决恶意攻击下安全的多方PSI,主要用到两大技术OPPRF和OKVS,构造合谋和不合谋的协议. 基础知识 OPPRF 这部分在OPR ...
- Architectures for concurrent graphics processing operations
BACKGROUND 1. Field The present invention generally relates to rendering two-dimension representatio ...
随机推荐
- 基于Java+SpringBoot心理测评心理测试系统功能实现九
一.前言介绍: 1.1 项目摘要 心理测评和心理测试系统在当代社会中扮演着越来越重要的角色.随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态.诊断心理问题.制定心理治疗方案的工 ...
- 基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现四
一.前言介绍: 1.1 项目摘要 随着信息技术的迅猛发展和数字化时代的到来,传统文化与现代科技的融合已成为一种趋势.古诗词作为中华民族的文化瑰宝,具有深厚的历史底蕴和独特的艺术魅力.然而,在现代社会中 ...
- 符合ASTM标准的雨流计数法及其不同的改进方法
随着研究的深入,人们发现采用时间序列计算载荷谱太麻烦了,处理的工作量太大,我们不需要将每个时刻点的载荷都做运算,疲劳计算只需要提供幅值.均值和循环次数,鉴于此发展出了很多不同的计数方法,雨流法是最常见 ...
- Vulhub Apache Httpd漏洞复现
目录 前言 多后缀解析漏洞 换行解析漏洞(CVE-2017-15715) 2.4.49 路径穿越漏洞(CVE-2021-41773) 2.4.50 路径穿越漏洞(CVE-2021-42013) SSR ...
- java,属性覆盖,方法覆盖
class Rootb {int x = 1;public Rootb(int i){}public int getI(){return x;}public void setI(int x){this ...
- 基于rsync+sersync的服务器文件同步
参考:https://github.com/wsgzao/sersync 原理 Synchronize files and folders between servers -using inotiy ...
- httpclient 连接池测试
为什么需要使用http连接池 1.降低延迟:如果不采用连接池,每次连接发起Http请求的时候都会重新建立TCP连接(经历3次握手),用完就会关闭连接(4次挥手),如果采用连接池则减少了这部分时间损耗, ...
- COS数据工作流+云函数最佳实践 - 自定义音视频转码
01 背景 音视频作为信息传播中流量占比最大的部分在各行业的业务中都弥足重要,而不同的业务场景中对音视频的处理逻辑可能具备行业的特殊性. 公有云虽然提供大量的视频处理服务供用户选择,但依然不能做到全面 ...
- 鸿蒙应用开发从入门到入行 - 篇1:HarmonyOS介绍——带你深入理解鸿蒙特性
鸿蒙应用开发从入门到入行 第一天 - HarmonyOS介绍 导读:在本篇文章里,您将了解到HarmonyOS是什么,以及有哪些振奋人心的特性.并且猫林老师会在本篇文章里给出结论:鸿蒙必能蚕食安卓份额 ...
- 技术实践|数据迁移中GBK转UTF8字符集问题分析
导语:在国产化创新的大背景下,数据库迁移项目逐渐增多,在数据库迁移过程中,源数据库和目标数据库字符集有时会不同,这时如何进行字符集转换则成为了一个重要的问题,同时在转换过程中还需要确保数据的完整性和一 ...