The Communication Complexity of Threshold Private Set Intersection-2019:解读

记录阅读论文的笔记。

什么是阈值PSI?
Alice和Bob当两者的交集大小不小于nt时(两者的不同元素的数量不大于阈值2t时),才会求交集。
所以阈值PSI会分为两步:
1、检测
2、求交

主要内容:
基于阈值的两方PSI协议(HE)构造,并给出扩展为多方的设想,通信复杂度是亚线性的(sublinear)(集合大小有关)。

摘要#

image

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

介绍#

image
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将集合SA=(a1,...,an)编码为多项式pA(x)=i=1n(xai),Bob将集合SB=(b1,...,bn)编码为多项式pB(x)=i=1n(xbi)

代数基础#

1、多项式
(1)单项式(monomials)
对于多项式PA(x)=i=1nxai中的每一项xai就是一个单项式
(2)多项式级数(deg(p))
最高次项的幂
(3)首一多项式(monic)
首项系数为1的多项式
(4)多项式的稀疏性(t-sparse)
若多项式p(x)中的单项式最多为t个,则该多项式就叫做tsparse
(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)
image

引理#

1、引理1
image
在后面计算点加噪音时用到。
2、引理2
image
表明p(x)R(x)是互素的,即没有公共元素。

set reconciliation#

来自【Set reconciliation with nearly optimal communication complexity】

image

主要思想是:将集合SA=(a1,...,an)编码为一个首一多项式(monic polynomials)pA(x)=i=1n(xai)
多项式的级数(deg(pA))n,所以也可以由n个点值对插值而来。

从上面可以看出,有理函数(rational function)p(x)PA(x)/PB(x)构成,消去交集,剩下的分子是集合SA除去交集的部分SAB,分母是集合SB除去交集的部分SBA
满足|SAB+SBA|2t,即可以用2t个点值对插值出p(x)

那如何才能插值呢?
image
image
假设已经经过了检测,接下来就是求交了。
首先,两方各自将集合编码为多项式,协商出一组计算点(α1,...,αn),并分别求值(pA(α1),...,pA(α2t))(pB(α1),...,pB(α2t))

然后双方经过通信后可以根据p(x)=pAB(x)/pBA(x)的关系,再利用那些点得到2t个点(p(α1),...,p(α2t)),即可插值出多项式p(x)

如何求交呢?
以Alice为例,根据p(x)他可以得到pAB(x),然后就可以得到交集多项式pAB(x)=pA(x)/pAB(x)

这里存一个问题,如何根据p(x)得到pAB(x)

基于上述思想,我们可以结合安全的两方计算(secure two-party computation)构造一个亚线性的PSI协议:
(1)双方输入多项式的计算点
(2)使用安全两方计算对p(x)进行插值
(3)两方分别输出pAB(x),pBA(x)

但存在问题是,该协议并不实用或者说不满足高效渐进性(asymptotically efficient)。

如何优化?
我们给出了一种不同的方法,仅使用“minimal secure two-party computation”获得带噪音的点值,进而插值出$p(x),之后求出交集。

具有过程见:

安全的两方计算(Secure Two-Party Computation)#

主要讲的是UC安全模型,即方案的安全性证明方法。
更多的UC安全见:安全性证明

加法同态加密#

image
这里的加法同态性,可以立即为密文相乘,解密相等于明文相加

不经意的线性计算(Oblivious Linear Function Evaluation)#

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

Cardinality Testing#

image
Cardinality Testing,可以翻译为集合势检测,主要就是求交前的检测。
集合的势可以从这里多了解一些:

以上三篇论文是一个实验室的哟!

对于:

  • 判断交集大小是否不小于nt,即SASB(nt)
  • 判断集合不同元素(sets do not differ)的数量是否不大于nt|(SASB)(SBSA)|2t

两种说法是一样的!

如何检测呢?
通常是先将集合SA=(a1,...,an)编码到多项式中,之前方案是将元素作为多项式的根,即Q(x)=(xa1)...(xan),而这里是将每个元素单独编码到一个多项式(polynomial)中的单项式(monomials)中,即pA(x)=i=1nxai

检测的核心思想是:求多项式p(x)=PA(x)PB(x)中的单项式的个数是否小于2t,因为p(x)中的单项式最多为2t个。通过这种编码方式,再利用一种多项式的稀疏性检测方法【polynomial sparsity test】,来自【A local decision test for sparse polynomials】。

多项式的稀疏性:
若多项式p(x)中的单项式最多为t个,则该多项式就叫做tsparse,【A local decision test for sparse polynomials】给出了一种随机化算法(randomized algorithm),只需要2t次计算就可以检测出p(x)是否是tsparse

最后结合加法同态加密隐私线性计算实现检测,通信复杂度为O~(t2)

不安全的#

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

安全的#

image
安全的cardinality testing是指加入了加密运算,下面是理想情况下的cardinality testing协议:
image
这里的FINV可以当作一个可信第三方。

协议通信量#

image

1、使用FHE构造的阈值PSI的通信复杂度最多为O~(t),但在密文下进行插值多项式,计算量巨大。
将set reconciliation和FHE结合,构造阈值PSI协议。
image
这里利用了同态性质,即计算Enc(pA(αi))/pB(αi)时,p(x)需要2t个点值对同态插值得到。
image
2、使用GC构造的阈值PSI的通信协议为O~(t3)
image
基于GC+OT+单项函数构成的阈值PSI,实用性不大。
3、我们的协议介于两者之间,比2更优,同时使用加法同态(部分同态)在保证计算复杂度可控内,实现高效通信。

主要内容#

两方阈值PSI#

还是两步走,先检测,再求交
理想情况下的两方阈值PSI协议为:
image
检测使用的是FPICT2t协议,然而在求交时,协议还是不安全,以Alice为例,他不仅能从p(x)中得到PAB还能得到PBA,这就获取了Bob的额外信息。

我们采用的方法是,使用带噪音的计算点(evaluation points),从而掩盖了对方信息,这里关键点就是V(x)=pA(x).R1(x)+pB(x).R2(x)的构造。
image
注意这里插值p(x)时有3t+1个点,我们选择2t个分子分母互素的点即可。
正确性证明:
image

这里依旧存有疑问:如何根据p(x)PAB

非对称场景下#

上面介绍协议都是假设在对称场景下,即参与方的数据集大小相同,那如果在非对称场景下,两方的数据集大小一致,如何解决?

这里给出的方法是:填充
假设Alice的集合位SA,Bob的集合为SB,且|SA|<|SB|,则两个集合中不同的元素至少为tmin=|SB||SA|,将对SA进行填充|SB||SA|,如下:
image
这样无疑通信复杂度会增加。

加入“噪音”#

在上面提到,Alice不仅会得到PAB还能得到PBA,这就获取了Bob的额外信息,所以需要加入“噪音”掩盖PBA,在协议中体现在V(x)=pA(x).R1(x)+pB(x).R2(x),下面介绍如何构造V(x)=pA(x).R1(x)+pB(x).R2()

理想情况的功能:
image

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

具体协议:
image
感觉很像密钥协商,最后双方都得到了SA(αi)+SB(αi),即p(αi)
image

对于Alice而言,因为UB(x)是随机的,所以根据sB(αi)得不到额外的信息。Bob同样也是。
image
注意这里的,R1A(x)+R1B()相当于R1(),R2A(x)+R2B()相当于R2()

多方阈值PSI#

这篇论文还是以介绍两方为主,最后给出一个扩展多方的想法。这里以三方为例:

Alice,Bob,张三,数据集分别是SA,SB,SC(大小为n),编码为多项式pA(x)=i=1n(xai),pB(x)=i=1n(xbi),pC(x)=i=1n(xci)

方案中给出的基于阈值的FHE方案是来自【Threshold cryptosystems from threshold fully homomorphic encryption-2018】。

多方也是两步走,先检测,后求交。

检测(Cardinality Testing)#

就是判断|SASBSC|是否大于nt

三方的多项式满足:
image
需要2t个点就能插值出来。但是存在一个问题就是,分子和分母中可能会约有公共的根(share additional roots),这样就会影响分子分母约分。

这点我不太明白,公共的根肯定是会约去的,怎么会影响呢?

解决的办法就是加入随机值:
image
这样,Alcie、Bob和张三,协商出一个公钥pk,每人一个私钥分割值skA,skB,skC,解密时需要所有人的私钥分割值。
1、Bob和张三分别发送加密的(pB(α1),...pB(α2t),pB(z)),(pC(α1),...pC(α2t),pC(z))给Alice,其中z是一个随机值。
2、Alice使用这2t个点值对进行同态插值,求出p(x),并带入z,判断p(z)是否等于(pB(z)+rpC(z))/pA(z),如果相等则为1的加密,否则是0的加密。
3、最后三方联合解密,做最后判断。

这里留一个疑问:如何判断p(z)是否等于(pB(z)+rpC(z))/pA(z),做同态减法,同态除法?

总的来说,检测步骤的通信复杂度为O~(t)

求交#

理想情况下的功能:
image

具体过程:
1、Alice,Bob,张三输入自己的数据:(pA(x),R1A(),R2A(),R3A(),UA()),(pB(x),R1B(),R2B(),R3B(),UB()),(pC(x),R1C(),R2C(),R3C(),UC())
2、各自得到3t+1个点(α1,...,α3t+1)值对pA(x)R1(x)+pB(x)R2(x)+pC(X)R3(x)
3、以Alice为例,Alice最后插值出p(x),进而求出pA(ABC)(x),最后求出交集。

image

总结#

1、插值是在密文域,所以计算量很大
2、检测和求交中的同态加密方案,可以用同一个,比如TFHE
3、该论文只是给出一个模型、思路,具体实用性不强。
4、后续在下一篇论文介绍改进,增强实用性!

参考#

1、什么是亚线性和超线性?
(1)线性
数学上看:一阶导数不随自变量的变化而变化
例如:y=a+bx
image

亚线性和超线性都称为非线性

(2)亚线性
数学上看:一阶导数随自变量的增大而减少
例如:y=lnx
image

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

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

作者:Hang Shao

出处:https://www.cnblogs.com/pam-sh/p/16393100.html

版权:本作品采用「知识共享」许可协议进行许可。

声明:欢迎交流! 原文链接 ,如有问题,可邮件(mir_soh@163.com)咨询.

posted @   PamShao  阅读(924)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-06-23 linux:搭建 WordPress 个人站点
2020-06-23 linux:lnmp环境
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu