我的隐私计算学习——隐私集合求交(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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

事务--03---TCC空回滚、悬挂、幂等解决方案

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Seata TCC 模式设计思路TCC存在的问题1、空回滚以及解决方案解决方案: 2、幂等问题以及解决方案解决方案: 3、悬挂问题以及解决方案解决方案…

PCIe设备热插拔-理论篇

硬件层面理解热插拔 PRSNT1#和PRSNT2#信号与PCIe设备的热插拔相关。在基于PCIe总线的Add-in 卡中,PRSNT1# 和PRSNT2#信号直接相连,而在处理器主板中,PRSNT1#信号接地,而PRSNT2#信号通过上 拉电阻接为高。 不同的处理器系统处理PC…

【Mysql】InnoDB的表空间(九)

概述 表空间是一个在 InnoDB 中比较抽象的概念,对于系统表空间来说,对应着文件系统中一个或多个实际文件;而对于每个独立表空间来说,对应着文件系统中一个名为表名.ibd 的实际文件。可以把表空间想象成由很多个页组成的池子&…

【Unity 实用工具篇】| 游戏多语言解决方案,官方插件Localization 实现本地化及多种语言切换

前言 【Unity 实用工具篇】| 游戏多语言解决方案,官方插件Localization 实现本地化及多种语言切换一、多语言本地化插件 Localization1.1 介绍1.2 效果展示1.3 使用说明 二、 插件导入并配置2.1 安装 Localization2.2 全局配置 三、多语言映射表3.1 创建多语言文本配…

字符处理 C语言xdoj52

问题描述 从键盘输入一个字符,若为小写字母,则输出其对应的大写字母;若为大写字母,则输出对应的小写字母;其他字符原样输出。 输入说明 输入一个字符 输出说明 输出一个字符 输入样例 样例1输入 a 样例…

分布式块存储 ZBS 的自主研发之旅|元数据管理

重点内容 元数据管理十分重要,犹如整个存储系统的“大黄页”,如果元数据操作出现性能瓶颈,将严重影响存储系统的整体性能。如何提升元数据处理速度与高可用是元数据管理的挑战之一。SmartX 分布式存储 ZBS 采用 Log Replication 的机制&…

论文修改润色平台 PaperBERT

大家好,今天来聊聊论文修改润色平台,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 标题:论文修改润色平台――助力学术研究,提升论文质量 一、引言 在学术研究中&am…

复制粘贴——QT实现原理

复制粘贴——QT实现原理 QT 剪贴板相关类 QClipboard 对外通用的剪贴板类,一般通过QGuiApplication::clipboard() 来获取对应的剪贴板实例。 // qtbase/src/gui/kernel/qclipboard.h class Q_GUI_EXPORT QClipboard : public QObject {Q_OBJECT private:explici…

单片机——通信协议(FPGA+c语言应用之spi协议解析篇)

引言 串行外设接口(SPI)是微控制器和外围IC(如传感器、ADC、DAC、移位寄存器、SRAM等)之间使用最广泛的接口之一。本文先简要说明SPI接口,然后介绍ADI公司支持SPI的模拟开关与多路转换器,以及它们如何帮助减少系统电路板设计中的数…

ChatGLM大模型推理加速之Speculative Decoding

目录 一、推测解码speculative decoding 1、自回归解码 2、speculative decoding 3、细节理解 二、核心逻辑代码 1、算法流程代码 2、模型自回归代码 a、带缓存的模型自回归实现代码 b、优化版本带缓存的模型自回归实现代码 c、ChatGLM的past_key_values的回滚 三、…

EM的理论基础

1 EM定义​ 电迁移(Electro-Migration)是指在外加电场下,电子和金属原子之间的动量转移导致材料的运动。这种动量传递导致金属原子(比如Cu原子)从其原始位置移位,如图7-1。这种效应随着导线中电流密度的增加而增加,并且在更高的温度下,动量传递变得更加严重。因此,在先…

[WMCTF2020]Make PHP Great Again require_once 特性

php源码分析 require_once 绕过不能重复包含文件的限制-安全客 - 安全资讯平台 这里是特性 我们首先来解释一下 <?php highlight_file(__FILE__); require_once flag.php; if(isset($_GET[file])) {require_once $_GET[file]; }这个是我们的源代码 PHP包含的格式是将 已…

考验的是技术!如何绕过微软设计的安装Windows 11的硬件要求

这篇文章解释了绕过微软设计的硬件要求的三种方法,允许你在几乎任何电脑上安装Windows 11。 注意:绕过Windows 11要求所涉及的一些过程需要更深入的技术知识。请不要编辑计算机的注册表,除非你对此乐此不疲,因为它可能会损坏你的设备。 绕过Windows 11要求 虽然绕过Wind…

AUTO.js连接电脑时,握手失败

使用模拟器上的autox.js连接vscode。ipv4正确&#xff0c;但总是握手失败。 检查了一下vscode安装的插件&#xff0c;最开始安装的是这个&#xff1a; 将之前安装的插件禁用。 更换这个插件&#xff1a; 然后启动服务后就可以连接成功了。

Nginx服务器配置SSL证书

本文将全面介绍如何在Nginx或Tengine服务器配置SSL证书&#xff0c;具体包括下载和上传证书文件&#xff0c;在Nginx上配置证书文件、证书链和证书密钥等参数&#xff0c;以及安装证书后结果的验证。成功配置SSL证书后&#xff0c;您将能够通过HTTPS加密通道安全访问Nginx服务器…

成分党品牌

现在越来越多的成分党品牌崛起&#xff0c;主打成分护肤&#xff0c;不添加任何成分&#xff0c;其中有Timeless、The Ordinary、John Jeff、欧邦琪&#xff08;Obagi&#xff09;、修丽可&#xff08;SkinCeuticals&#xff09;、HFP 。 参考文章&#xff1a;成分党都会良心推…

试以单链表为存储结构实现简单选择排序的算法

简单选择排序&#xff0c;就是每趟把剩余元素最小或者最大的选出来排到前面 这道题值得推敲的是&#xff0c;p作为一个链表结点也是可以作为for循环的初始条件和判断条件的&#xff0c;至于查找到最小值之后&#xff0c;可以把两者的数值进行一个交换&#xff0c;就不用删结点…

怎么抠图换背景?这三个方法让你轻松抠图

怎么抠图换背景&#xff1f;抠图是每个独立站商家每天必不可少的工作&#xff0c;简单一张图用PS进行抠图还好&#xff0c;但如何多张图&#xff0c;用PS就效率非常低&#xff0c;且需要专业的PS技能才能上手实现精准抠图的目的&#xff0c;那么怎么快速抠图换背景呢&#xff0…

risc-v system instruction

ECALL ecall 指令以前叫做 scall&#xff0c;用于执行环境的变更&#xff0c;它会根据当前所处模式触发不同的执行环境切换异常, 用来执行需要更高权限才能执行的功能; 简单来说&#xff0c;ecall 指令将权限提升到内核模式并将程序跳转到指定的地址。操作系统内核和应用程序…

检测车牌的SIFT特征并匹配

# 代码5-14 检测车牌的SIFT特征并匹配 import cv2img1 cv2.imread(../data/plate.jpg) img2 cv2.imread(../data/car.jpg)sift cv2.SIFT_create() # 利用sift.detectAndCompute()函数找到特征点&#xff0c;计算描述符&#xff1b; kp1, des1 sift.detectAndCompute(img1, …