我的隐私计算学习——隐私集合求交(1)

笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具,经由自己阅读后整理而成。

(一)PSI的介绍

隐私计算关键技术:隐私集合求交(PSI)原理介绍

隐私计算关键技术:隐私集合求交(PSI)的性能扩展

笔记分享 | 组队学习密码学 —— 隐私求交的关键路径及其应用

笔记分享 | 组队学习密码学 —— 隐私求交之不经意的伪随机函数构造

​ 隐私集合求交( Private Set Intersection,PSI)是多方安全计算领域中的经典问题,它要求参与方在互相不公开本地集合的前提下,共同计算得出多个参与方的集合的交集,且不能向任何参与方泄露交集以外的信息。

​ 在纵向联邦学习场景中,PSI 也被称为样本对齐 ( Sample Alignment ) 或者数据库撞库,即各参与方需要首先求出各自的训练样本 ID 集合之间的交集,基于计算得到的训练样本 ID 交集进行后续的纵向联邦模型训练。

样本对齐概念

​ 样本对齐是纵向联邦学习中不可或缺的一环。纵向联邦学习的样本分属于不同的组织,各个组织的样本的覆盖范围各有差异,所以需要找出参与方 A 与参与方 B 共有的训练样本 ID,且除了A和B双方共有的样本 ID(例如,一家银行和另一家电商共同的客户的 ID,可以用手机设备号的哈希值作为客户的 ID 标识,找出交集,以外,不能泄露其他样本 ID 给彼此。这个过程需要用到加密样本 ID 对齐机制。交集的方式一般是通过 Join 键(比如 ID 证件号),这些敏感信息不适合直接进行交集的计算,需要进行签名处理,并且要保障不被破解。样本对齐的方式有多种,例如基于映射的散列算法、比特承诺,基于RSA加密体系的茫然传输等。

​ 隐私集合求交技术通常是基于 ID 来实现交集的计算,即在计算的过程仅通过样本集的 ID 列参与计算,在求得 ID 集合的交集后,再同步相对应的特征标签列给其他参与方或是仅在节点内同步特征列为后续的其他计算做准备。

image-20230513205344999

(二)PSI的方法

    1. 基于 Diffie-Hellman 密钥交换的 DH 算法(公钥)

      image-20230516164405375

    1. 基于盲签名的 Blind-RSA 算法(公钥)

      以基于 RSA 盲签名和哈希算法的 PSI 技术为例,简单介绍其工作原理:

      image-20230306191653759

RSA 计算复杂度较高,协议中 RSA 的计算次数会随着数据量的增大呈线性增长,使得基于 RSA 的求交方法,在数据量较大时会产生性能问题。由于 RSA 盲签名算法在运行时只对一端的数据进行 RSA 加密,使得在求交数据量级差距较大时,可以把数据量较小的一端作为 Client 端,这样可以获得非常大的性能优势。另外,RSA 算法的流程适合并行处理,方便利用并行计算来提升性能。

RSA 盲签名协议能够在恶意对手模型下,为隐私集合求交提供安全保障,但由于非对称加密的次数随比对的数量量的增加呈线性增长,所以无法处理海量数据的隐私集合求交场景。

    1. 基于同态加密的算法

    ​ 比较适合拥有较小集合的一方将数据加密后发送给另一方进行计算,然后将结果返回给加密方进行解密的场景。但实际上,这种原型协议实现起来效率特别差,因为同态加密密文长度都不算太小。另外,同态加密电路的深度随着集合元素数量增加而快速增加,导致方案性能较差。

image-20230514001841357

​ 此协议应用相同元素的差为0的原理进行交集判断,使用 HE 算法来完成密文求差操作。为了防止差不为 0 的元素值泄露,每一次求差操作后会乘一个随机数 r。为了提高协议的实际性能,Chen 等人使用了一些优化方法。包括 PSI 领域的 hash、切分技术,还使用了 HE 领域的批处理、分窗、模数转换技术。上面的过程简化下来就是:

image-20230404111425966

基于同态加密实现 PSI 的经典论文:

  • [1] Chen, H., Huang, Z., Laine, K., & Rindal, P. (2018). Labeled PSI from Fully Homomorphic Encryption with Malicious Security. Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security.

  • [2] Cong, K., Moreno, R.C., Gama, M.B., Dai, W., Iliashenko, I., Laine, K., & Rosenberg, M. (2021). Labeled PSI from Homomorphic Encryption with Reduced Computation and Communication. Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security.

    1. 基于不经意传输的算法(目前速度最快最流行)

    首先是基于布隆过滤器和 OT 的实现方案,有关布隆过滤器及其变种,可参考上面的布隆/混淆布隆过滤器。

    GBF 与 OT 结合解决 PSI 问题:

    image-20230324165432222

    image-20230324165536691

    ​ 接下来仍以社交软件的发现共有联系人功能为例,假设服务器端有用户集合 S,客户端有联系人集合 C,客户端通过以下步骤可最终获得双方集合的交集 C ∩ \cap S.

    1. 服务器端、客户端约定用于 B F BF BF 以及 G B F GBF GBF 的相关参数:存储的数组的长度 m,使用的哈希函数集合{ ho,…, ht-1 }。

    2. 服务器端针对集合 S 使用 G B F GBF GBF 进行映射,获得字符串数组 G B F s GBF_s GBFs .

    3. 客户端针对集合 C 使用 B F BF BF 进行映射,获得位数组 B F c BF_c BFc .

    4. 客户端使用 OT 协议从服务器端接收 G B F s GBF_s GBFs 信息,服务器端准备 m 个字符串对(xi,0 ,xi,1) ,其中 xi,0 为随机生成的字符串,xi,1 G B F s [ i ] GBF_{s}[i] GBFs[i]。客户端遍历数组 B F c BF_c BFc 。对于 0 ≤ i ≤ m-1,如果 B F c [ i ] BF_c[i] BFc[i] 值为 0,客户端获得随机字符串;如果 B F c [ i ] BF_c[i] BFc[i] 值为 1,客户端获得 G B F s [ i ] GBF_{s}[i] GBFs[i]。最终,客户端获得的结果为 G B F C ∩ S GBF_{C\cap S} GBFCS .

    5. 客户端遍历集合 C 中的所有元素,使用以下方法利用 G B F C ∩ S GBF_{C\cap S} GBFCS 判断自己所拥有的元素是否在集合 S 中。

      image-20230324165654783

    基于不经意传输的 PSI 工作原理:

    • OT:利用不经意传输完成隐私集合求交

    • OT Extension: PSI系列(2)组件 | OT Extension (IKNP)

    ​ 2014 年,Pinkas 等人提出了基于 OT 扩展协议的高效隐私集合求交方案,该方案使用 OT 扩展,传输数据使得通信双方获得一个伪随机函数,并使用此伪随机函数对双方持有的数据进行加密比对。方案主要分为三个阶段来执行,哈希阶段,隐匿传输阶段和求交阶段。在哈希阶段,通信 Alice 和 Bob 把各自持有的数据通过哈希运算均匀分布在一个给定大小的地址空间内,并使用随机数填充空余的哈希位置。在隐匿传输阶段,Bob 根据自己持有数据的比特信息作为选择位,使用 OT 扩展安全地获取 Alice 持有同样比特位置上的伪随机生成数据。最后在求交阶段,Bob 解密伪随机数据,并和自己持有的数据进行比较。

    ​ 2016 年,Kolesnikov 使用批量 OT 扩展传输和布谷鸟哈希实现了更高效的隐私集合求交方案,基于 OT 的隐私集合求交成为性能上仅次于朴素哈希求交技术的隐私集合求交方案。2019 年,Pinkas 等人提出了基于稀疏扩展的隐私集合求交方案,方案首先把秘密信息分成三份,这样在未获取到要求交的数据之前,可以提前随机生成两份秘密信息,以便在离线阶段进行 OT 扩展传输,提前获取伪随机生成函数。在在线阶段,为了避免传输大量的秘密信息,方案使用了多项式技术,把要传输的数据融入多项式,仅传递多项式的参数来代替传输大量数据。根据该方案的测试结果,在要对比的数据量庞大,或者带宽受限制场景下,此方案相较于目前最优的基于 OT 的隐私集合求交方案,提供了更好的性能优势。

    ​ 虽然基于不经意传输的隐私集合求交技术仍然是使用非对称加密技术作为其实现原理,但不经意传输使用有限次非对称加密,来完成任意数量的安全数据传输。基于不经意传输的隐私集合求交方案,是目前研究最为活跃的隐私集合求交方案,对该方案的研究是基于安全性和性能平衡后的一种考量,研究的思路主要在减少非对称加密次数和通信双方传输的数据量。

    1. 基于混淆电路等 MPC 技术的算法

    ​ 使用混淆电路通用框架来计算交集有易扩展特性,这是因为使用通用的多方安全计算协议,计算交集的函数是通过电路实现的,而将计算交集的电路的输出连到其他计算电路作为输入就可以计算交集的大小、交集中元素的和等,而且全部过程都能满足保护输人隐私的要求。这种易于扩展的性质是基于公钥加密或基于不经意传输的 PSI 所没有的,因此其是一种有实际应用价值的方案。

​ 总之,以上方法都可以解决两方的 PSI 问题,当遇到多方 PSI 问题时,它们是通过两两求交集的替代方法来实现“等效的多方 PSI”。这一方法可以降低计算的复杂度,却会带来一个非常严重的安全隐患,即会泄露那些属于两方交集但不属于多方交集的数据。

image-20230322164309910

  • 隐私计算关键技术:多方隐私集合求交(PSI)从原理到实现

​ 针对此问题,基于 Freedman 协议提出了一种严格的多方安全 PSI 协议,可以保证除了多方样本 ID 交集信息之外,任何其他信息均不会泄露。多方 PSI 协议的核心思想是将样本 ID 集合编码成特殊的数据结构,即不经意多项式,其中每一个样本 ID 均为不经意多项式的根。利用半同态加密算法对多项式参数进行保护,使多个参与方可以在密文空间下进行多项式求值,同时又无法读取多项式参数的明文。

​ 然而,大整数多项式系数展开和求值的计算复杂度均为 O(n3) ,为了解决这一计算瓶颈,提出了一种基于哈希分桶的优化方法。具体而言,利用哈希分桶技术将 ID 集合均匀映射到若干 ID 分桶中,这里要求各参与方使用相同的哈希函数,以便确保相同的样本 ID 被映射到相同的分桶中。这样一来,只需要进行“桶内计算、桶间合并”即可得到完整的多方 ID 集合的交集。将单个桶内样本数量视为一个常数,算法的计算复杂度可以优化到 O(n) 。


10月份新开了一个GitHub账号,里面已放了一些密码学,隐私计算电子书资料了,之后会整理一些我做过的、或是我觉得不错的论文复现、代码项目也放上去,欢迎一起交流!Ataraxia-github

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/233221.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【基于Flask、MySQL和Echarts的热门游戏数据可视化平台设计与实现】

基于Flask、MySQL和Echarts的热门游戏数据可视化平台设计与实现 前言数据获取与清洗数据集数据获取数据清洗 数据分析与可视化数据分析功能可视化功能 创新点结语 前言 随着游戏产业的蓬勃发展,了解游戏销售数据对于游戏从业者和游戏爱好者都至关重要。为了更好地分…

【Python数据结构与算法】—— 搜索算法 | 期末复习不挂科系列

​ 🌈个人主页: Aileen_0v0🔥系列专栏: 数据结构与算法💫个人格言:"没有罗马,那就自己创造罗马~" 这篇博客主要探索的是计算机科学常见问题---搜索算法 “时间紧,任务重!” 话不多说,开始今天…

高工氢电年会 | 未势能源解超朋博士受邀出席并做主题演讲

12月4日,以“战略重构 商业觉醒”为主题的2023高工氢电年会在深圳举办,未势能源副总裁解超朋博士受邀出席开幕式论坛,以《把握机遇、直面挑战,迎接氢车规模化推广时代》为主题发表演讲,并参与圆桌论坛研讨。 氢势已来&…

Linux系统中进程的背景(只从数据层面和硬件层面分析)

目录 1、冯诺依曼体系 2、管理的本质 3、 操作系统是如何对硬件进行管理的 4、 计算机的软硬件结构 5、 进程的组成 1、冯诺依曼体系 冯诺依曼是很早就提出的一个体系结构,他是将计算机分成五个部分,输入设备、输出设备、存储器、运算器和控制器。其中运…

Nature Communications 高时空分辨率的机器人传感系统及其在纹理识别方面的应用

前沿速览: 现有的触觉传感器虽然可以精确的检测压力、剪切力和应变等物理刺激,但还难以像人类手指一样通过滑动触摸,同时获取静态压力与高频振动来实现精确的纹理识别。为了解决这一问题,来自南方科技大学的郭传飞团队提出了衔接…

英伟达危机大爆发!一夜之间,四面楚歌

今年以来,AI大模型明争暗斗、百花齐放。 但不管各种大模型打的有多厉害,很多人都认为“卖铲子”的英伟达才是最大赢家。 看一下英伟达今年的股票就知道英伟达赚的是多么盆满钵满。 英伟达CEO黄仁勋在发布 H200显卡时,应该是今年最意气风发的…

Gan论文阅读笔记

GAN论文阅读笔记 2014年老论文了,主要记录一些重要的东西。论文链接如下: Generative Adversarial Nets (neurips.cc) 文章目录 GAN论文阅读笔记出发点创新点设计训练代码网络结构代码测试代码 出发点 Deep generative models have had less of an impac…

C/C++ 判断str1能不能由str2里面的字符构成,如果可以,返回true;否则,返回false

题目: 给两个字符串:str1和str2,判断str1能不能由str2里面的字符构成。 如果可以,返回true; 否则,返回false。 限制: str2 中的每个字符只能在str1中使用一次。 示例 1: 输入:str1 "a&q…

CSS3技巧36:让内容垂直居中的三种方式

让内容垂直居中,是一个很重要的应用情景,在很多场合都会需要。这也是面试的时候,一些考官喜欢拿来初面的小题目。 这里,小结下让内容垂直居中的三种方式。 当然,读者如果有更好的方法,也可以提出来。 基本…

使用Java实现汉诺塔问题

文章目录 汉诺塔问题 今天和大家来看看汉诺塔问题,这也是一个经典的算法 汉诺塔问题 分治算法经典问题:汉诺塔问题 汉诺塔的传说 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的…

面试必考精华版Leetcode875. 爱吃香蕉的珂珂

题目&#xff1a; 代码(首刷看解析&#xff09;&#xff1a; class Solution { public:int minEatingSpeed(vector<int>& piles, int h) {int low 1;int high 0;for(int pile:piles){highmax(high,pile);}int k high;while(low<high){int speed (high-low)/2l…

『 MySQL数据库 』聚合统计

文章目录 前言 &#x1f951;&#x1f95d; 聚合函数&#x1f353; COUNT( ) 查询数据数量&#x1f353; SUM( ) 查询数据总和&#x1f353; AVG( ) 查询数据平均值&#x1f353; MAX( ) 查询数据最大值&#x1f353; MIN( ) 查询数据最小值 &#x1f95d; 数据分组GROUP BY子句…

期待一下elasticsearch还未发布的8.12版本,由lucene底层带来的大幅度提升

现在是北京时间23年12月10日。当前es最新版本还是es8.11版本。我们可以期待一下不久的将来&#xff0c;es的8.12版本看到大幅度的检索性能提升。受益于 Lucene 9.9版本&#xff0c;内核带来的大幅提升&#xff01; 此次向量检索利用底层指令fma会性能提升5%。并且还提供了向量点…

零一万物模型折腾笔记:官方 Yi-34B 模型基础使用

当争议和流量都消失后&#xff0c;或许现在是个合适的时间点&#xff0c;来抛开情绪、客观的聊聊这个 34B 模型本身&#xff0c;尤其是实践应用相关的一些细节。来近距离看看这个模型在各种实际使用场景中的真实表现和对硬件的性能要求。 或许&#xff0c;这会对也想在本地私有…

NLP项目实战01--电影评论分类

介绍&#xff1a; 欢迎来到本篇文章&#xff01;在这里&#xff0c;我们将探讨一个常见而重要的自然语言处理任务——文本分类。具体而言&#xff0c;我们将关注情感分析任务&#xff0c;即通过分析电影评论的情感来判断评论是正面的、负面的。 展示&#xff1a; 训练展示如下…

Android笔记(十七):PendingIntent简介

PendingIntent翻译成中文为“待定意图”&#xff0c;这个翻译很好地表示了它的涵义。PendingIntent描述了封装Intent意图以及该意图要执行的目标操作。PendingIntent封装Intent的目标行为的执行是必须满足一定条件&#xff0c;只有条件满足&#xff0c;才会触发意图的目标操作。…

HCIP —— BGP 基础 (上)

BGP --- 边界网关协议 &#xff08;路径矢量协议&#xff09; IGP --- 内部网关协议 --- OSPF RIP ISIS EGP --- 外部网关协议 --- EGP BGP AS --- 自治系统 由单一的组织或者机构独立维护的网络设备以及网络资源的集合。 因 网络范围太大 需 自治 。 为区分不同的AS&#…

C#,图算法——以邻接节点表示的图最短路径的迪杰斯特拉(Dijkstra)算法C#程序

1 文本格式 using System; using System.Text; using System.Linq; using System.Collections; using System.Collections.Generic; namespace Legalsoft.Truffer.Algorithm { public class Node // : IComparable<Node> { private int vertex, weigh…

CNN发展史脉络 概述图整理

CNN发展史脉络概述图整理&#xff0c;学习心得&#xff0c;供参考&#xff0c;错误请批评指正。 相关论文&#xff1a; LeNet&#xff1a;Handwritten Digit Recognition with a Back-Propagation Network&#xff1b; Gradient-Based Learning Applied to Document Recogniti…

【工具使用-JFlash】如何使用Jflash擦除和读取MCU内部指定扇区的数据

一&#xff0c;简介 在调试的过程中&#xff0c;特别是在调试向MCU内部flash写数据的时候&#xff0c;我们常常要擦除数据区的内容&#xff0c;而不想擦除程序取。那这种情况就需要擦除指定的扇区数据即可。本文介绍一种方法&#xff0c;可以擦除MCU内部Flash中指定扇区的数据…