Efficient multi-party private set intersection protocols for large participantsand small sets 2024

目录

Abstract

introduction

related work

Preliminaries

Security definitions

MP-PSI protocols

Security analysis and proof

Malicious secure MP-PSI

Implementation and performance

Conclusion

  • Abstract

私有集交集(PSI)是近年来在合作处理私有数据以实现隐私保护方面的研究热点。传统的PSI协议允许两个参与者与每个私有集交互计算交集,而不透露任何额外的信息。多方私有集交集(MP-PSI)不能直接从两方私有集交集中获取的问题,与传统的两方私有集交集有很大不同,成为不同私有数据所有者协同数据分析中的一个新兴课题。然而,大多数现有的MP-PSI协议总是考虑到少的参与者的数量与大的集合,随着参与者数量的增加性能会下降。此外,小集合的参与者也带来了沉重的通信和计算开销。为了克服上述缺点,我们提出了两个有效的MP-PSI协议,用于大量的参与者和小的集合大小,并正式证明了安全的碰撞攻击在半诚实模型和恶意模型。实验结果表明,当参与者数量从5增加到50,集合规模从2^7到2^10,我们的协议比最有效的MP-PSI协议的速度更快。因此,我们的MP-PSI协议被认为是实用的解决方案,适合越来越多的参与者的小集合规模的场景。

  • introduction

私有集合交集(PSI)被定义为一个基本的加密协议,允许许多参与者进入他们的集合并产生交集,而不会泄露除了交集之外的任何关于他们集合的额外隐私[1-4]。PSI通常用于在安全多方计算场景中探索分布式数据应用的潜在私有数据价值。例如,Poddar等人[5]提出了一种系统,允许多方协作运行分析SQL查询,而不会相互泄露各自的数据,并实现了用于协作分析的恶意安全MPC平台。此外,Wu等人[6]使用快速PSI协议来对齐公共样本,而无需在垂直联邦学习场景中的各个数据所有者之间共享所有数据集。它通常是大多数垂直联邦学习方案的第一步,因为各个数据集共享具有不同特征的相同样本身份。Kulshrestha和Mayer [7]提出了一种新的私有集交集的变体,命名为多方私有集交集与并与交multiparty private set intersection with union and sum (MPSIU-Sum)(MPSIU-Sum),并证明了它在大规模环境中表现良好。

事实上呢,根据参与者的集合大小设置,可以将两方/多方PSI协议划分为以下三种场景:大到大集合设置、大到小集合设置和小到小集合设置。 

Large-to-large set scenarios.

       所有参与者都拥有一个由数千或数百万个元素组成的集合,并且拥有大量的计算资源,  为了提高计算效率和降低大集合场景下的通信复杂度,密码学家构造了一种新的原语,称为不经意传输扩展(OTE)[18-20],在两方/多方PSI的快速执行中具有更好的性能[3,4,7 - 10,14,21 -24]。OTE通过很少的公钥密码操作生成大量的不经意传输实例,其中公钥密码操作的数量仅取决于计算安全参数而不是私有集合的大小。

Large-to-small set scenarios.

    随着云计算和移动的设备的发展,针对一方拥有具有巨大计算资源的大集合而另一方拥有具有有限资源的小集合的场景,已经提出了非对称PSI [25,26]。这种不平衡的PSI适用于在集合大小和计算资源方面存在较大差距的客户端-服务器场景。以私人联系人发现为例[27]。服务器端总是保存着数百万甚至数十亿条的联系人记录,比那些存储在相对较弱的客户端中的联系人记录多数千次,因此一些不平衡的PSI协议试图将计算外包给服务器,以减少客户端的通信成本。如何降低PSI协议的通信复杂度,设计不依赖于大集合的PSI协议,使其更容易为弱客户端所接受,是研究者们关注的焦点。与基于OTE(不经意传输扩展)的PSI相比,它要求PSI的通信开销不会根据最大集合的数量线性增长。Chen等人。[25]提出了基于同态加密(HE)的PSI协议,该协议仅根据弱客户端的集合大小实现最佳通信复杂度。客户端对私有集合中的元素进行加密并外包给服务器,而服务器在密文域中计算并返回结果。

Small-to-small set scenarios.

随着物联网中移动的设备的部署越来越多,参与者拥有他们的小尺寸集合(例如,少于一千或几百)。在这种情况下,有必要减少通信成本和计算开销,由于这些弱参与者的能力。这些应用程序包括PrivateDrop [28],匿名投票[29],跟踪COVID隐私保护联系人中的高风险个人[12]。这些参与者所拥有的集合数小于1000甚至小于100,其中通信开销和计算开销对这些弱参与者来说是非常重要的。

     目前大多数PSI协议[4,7,9 -14]考虑了大到大场景和大到小场景。然而,这些协议不适合小集合场景。简单的想法是在大集合场景中执行那些有效的PSI协议,直接移动到小集合场景。这是不可能成功的,因为这些基于OTE的PSI协议总是带来沉重的通信开销,而那些基于同态加密的PSI协议产生沉重的计算开销,这是物联网设备所不能承受的。当用于小集合场景参与者数量增加时,效率会下降[29]。与相关工作相比,现有的解决方案不能很好地适应小集合场景。Kolesnikov等人[4]采用秘密共享来抵抗共谋攻击,但他们也带来了额外的开销,这是由于使用了一种新的不经意可编程伪随机函数(OPPRF)原语。在他们的协议中,由于参与者的数量,开销线性增加,如果参与者的数量很大,最终变得低效。 

        在此基础上,研究人员重点研究了这些PSI协议的计算性能和通信效率。最近,Rosulek等人。[30]提出了小集合场景下的密码原语OTE是否是最优的问题,然后他们提出了基于密钥协商(KA)的双方之间的PSI协议,其在通信和计算效率两方面都比基于OTE的PSI协议以及HE的PSI协议实现更好的性能。基于PSI的协议在小集合的情况下,特别是当集合小于29时。然而,他们的方法仅在两方场景下有效,无法在多个参与者之间部署。与此同时,Bay等人[29]提出小集合场景的MP-PSI协议,并列出了大量参与者的许多实际应用。提出了一种基于同态门限公钥加密(TPKE)的MP-PSI协议。然而,他们的协议,加密的每一个元素在服务器上heavy encryption,是只有在非常小的集(小于2^6)是有效的,当集合是大于2^6变得低效。因此,他们的工作适合多个参与者和小集合大小设置的场景。

      在本文中,我们专注于如何设计一个在小集合设置中实用的MP-PSI协议的问题且具有更好的性能,并适应不断增加的参与者。具体来说,我们考虑了具有小集合设置的MP-PSI场景,其中参与者的数量远小于集合大小,与传统的MP-PSI协议相比,这在通信和计算上实现了更好的性能[4]。此外,我们考虑在小集合设置中,MP-PSI协议的参与者数量增加到很大的情况,这并没有被先前的MP-PSI协议考虑。

现版本的贡献可以概括为三个方面:

1.本文提出了第一个MP-PSI协议,它适合于小集合设置,通过采用零共享和一轮密钥协商技术。该协议可以被证明是安全的,能抵抗多个参与者合谋。 

2.理论分析表明,该协议在理论上实现了最优通信轮数。它实现了通信成本的复杂性依赖于统计安全参数,而不是计算安全参数。

3.实验表明,当参与者数量扩展到50,集合的上界增加到2^10时,协议的性能比相关工作[4,29]的性能好得多。

  • related work

1. Rosulek等人[30]设计了基于DH的PSI协议,并将安全模型从半诚实模型改进为恶意模型。它们通过在多项式中嵌入密钥协议而不是私有相等测试(PEQT)来减少通信开销和计算成本。它成为目前恶意模型中最有效的两方PSI协议,适用于最多2^9个恶意模型 协议pdf

2.Rindal等人[24]A提出了一种使用SilentOT [20]B的PSI协议,以进一步降低通信复杂度

3.Garimella等人。[14]提出了一个更一般的概念,即不经意的OKVS中映射值的随机性可以隐藏之前用于生成值的键。OKVS可以减少交集中的项比较次数,并有效隐藏关于键的详细信息。之后,Bui [10]等人发现,与OKVS相比,基于Silent-OT的PCG PSI在基于Cuckoo哈希的PSI的通信成本方面具有更好的性能。Raghuraman等人。[9]使用LPN构建VOLE和可更新的OKVS,并获得最有效的两方PSI。Aranha等人。[8]提出了一种基于双线性对的简洁的两方PSI,它只实现了两轮通信。然而,计算成本已经成为实际应用中的瓶颈。我们的MP-PSI协议也集中在多个参与者的通信开销,并实现只有两轮通信没有双线性对。

  • Preliminaries

        3.1. Diffie–Hellman key agreement

具有elligator编码机制的单轮Diffie-Hellman密钥协商(DHKA)[34]被Rosulek等人用于设计紧凑且恶意的安全两方PSI[30]。elligator编码机制[34]还定义了以下属性:

        3.2. Zero sharing technique

        3.3. Polynomial construction

  • Security definitions

         4.1. Ideal functionality of MP-PSI

4.2. Security models

半诚实安全模型使对手能够控制诚实参与者的执行,但从协议中收集信息,除了交集。恶意的安全模型使对手能够控制参与者,并偏离协议以获得私有集中的元素。在半诚实的安全模型中,模拟器必须诚实地将每个参与者的预定输入发送到理想的功能。然而,在恶意模型中,模拟器可以选择随机数作为参与者的输入,并将其发送到理想功能。当模拟器能够提取出与理想功能和真实的协议相同的输入时,则认为真实的协议是安全的。由于在恶意模型中,模拟器可以在理想的功能中提取具有足够信息的恶意参与者的输入。

  • MP-PSI protocols

首先介绍该协议 基于的 两方的小集合PSI协议:《Compact and Malicious Private Set Intersection for Small Sets》---基于Diffie-Hellman密钥协商+针对于小集合是最快的

论文翻译版本

1.为什么要关心Diffie-Hellman PSI?由于基于DH的PSI比基于OT的PSI慢得多(在项目数量上具有指数线性),研究它的价值是什么?提出几个理由:

  1.  一些场景下,通信成本要比计算成本更重要
  2. 考虑PSI在小集合上的机制。
  3. 对于基于DH的PSI,我们的新方法基本上缩小了半诚实和恶意之间的性能差距。
  4. 第一次大幅度提升 半诚实DH-PSI,并提出更有效的恶意模型下的DH-PSI

密钥协商协议KA不仅在概念上比字符串相等性测试协议简单,在效率上更具体有效,而且它们无需输入。对于双消息KA协议(如Diffie-Hellman),第二个消息是伪随机的这一事实确保了多项式隐藏了输入集。

多方协议如下:

详解:


​​​​​​​

  • Security analysis and proof

  • Malicious secure MP-PSI

  • Implementation and performance

通信复杂度只与统计安全参数有关,计算复杂度依赖于集合的大小。基于KA的PSI比任何基于OTE的PSI都快:

  • Conclusion

        在本文中,我们提出了第一个MP-PSI协议,这是非常适合于小集和大的参与者。我们的MP-PSI协议使用零共享技术进行双方密钥协商。在小集合场景下,MP-PSI协议的通信开销和运行时间都优于其他相关的MP-PSI协议,具有良好性能。

        未来,OKVS作为一种用于打包的紧凑数据结构,可以减少交集中的项比较次数,并有效隐藏键的详细信息。因此,OKVS可能是一个可能的方向,以优化协议。

  • 31
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,可以了解到Multi-label focal dice loss是多标签分类问题中的一种损失函数,结合了focal loss和dice loss的特点。下面是Multi-label focal dice loss的实现代码: ```python import torch import torch.nn as nn import torch.nn.functional as F class MultiLabelFocalDiceLoss(nn.Module): def __init__(self, gamma=2, alpha=None, size_average=True): super(MultiLabelFocalDiceLoss, self).__init__() self.gamma = gamma self.alpha = alpha if isinstance(alpha, (float, int)): self.alpha = torch.Tensor([alpha, 1 - alpha]) if isinstance(alpha, list): self.alpha = torch.Tensor(alpha) self.size_average = size_average def forward(self, input, target): if input.dim() > 2: input = input.view(input.size(0), input.size(1), -1) # N,C,H,W => N,C,H*W input = input.transpose(1, 2) # N,C,H*W => N,H*W,C input = input.contiguous().view(-1, input.size(2)) # N,H*W,C => N*H*W,C if target.dim() == 4: target = target.view(target.size(0), target.size(1), -1) # N,C,H,W => N,C,H*W target = target.transpose(1, 2) # N,C,H*W => N,H*W,C target = target.contiguous().view(-1, target.size(2)) # N,H*W,C => N*H*W,C elif target.dim() == 3: target = target.view(-1, 1) else: target = target.view(-1) target = target.float() # focal loss logpt = F.log_softmax(input, dim=1) logpt = logpt.gather(1, target.long().view(-1, 1)) logpt = logpt.view(-1) pt = logpt.exp() if self.alpha is not None: if self.alpha.type() != input.data.type(): self.alpha = self.alpha.type_as(input.data) at = self.alpha.gather(0, target.long().data.view(-1)) logpt = logpt * at loss = -1 * (1 - pt) ** self.gamma * logpt # dice loss smooth = 1 input_soft = F.softmax(input, dim=1) iflat = input_soft.view(-1) tflat = target.view(-1) intersection = (iflat * tflat).sum() A_sum = torch.sum(iflat * iflat) B_sum = torch.sum(tflat * tflat) dice = (2. * intersection + smooth) / (A_sum + B_sum + smooth) loss += (1 - dice) if self.size_average: return loss.mean() else: return loss.sum() ``` 其中,focal loss和dice loss的实现都在forward函数中。在这个函数中,首先将输入和目标数据进行处理,然后计算focal loss和dice loss,并将它们相加作为最终的损失函数。需要注意的是,这里的输入和目标数据都是经过处理的,具体处理方式可以参考代码中的注释。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值