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

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

前篇可见:我的隐私计算学习——隐私集合求交(1)


(三)PSI应用场景问题

​在目前的实际应用中,衍生出一些新的需求,例如除了不泄露参与计算的集合的ID和特征的基础上,要求集合的基数也不泄露; 或者是在隐私集合求交过程中,只返回交集大小,不返回具体的交集 ID; 或者是在进行集合求交的过程中,增加了集合筛选条件,只返回满足筛选条件的交集。
此外,最流行的基于不经意传输协议的隐私集合求交方案是限定对手模型是半诚实模型的前提下的安全求交协议。隐私集合求交技术作为基础应用技术,其性能仍有提升需求。目前的各种技术方案,缺少标准的对抗手段来证明其确实在实际应用中保护了数据安全。以及缺少基于隐私集合求交的各种标杆性应用。

​ 由于 PSI 协议的求交结果般都首先由一方获得并同步给另一方,为了方便描述,此处我们定义首先获得求交结果的一方为结果方,另一方为数据方。恶意模型主要存在以下两个问题:

(1)大多数高效的 PSI 使用 Cuckoo Hash 作为数据结构,那么数据方的每一个元素都必须发送其 n 个对应位置(假设 Cuckoo Hash 使用 n 个 hash)的伪随机函数值给结果方,若数据方恶意少发送数据,则求交结果会缺失。

(2)求交结果一半都存在于一方(结果方),然后同步给另一方,如果此时恶意的结果方隐瞒一些结果集,那么数据方将无法获得完整求交结果。

​ 在恶意模型中,协议需要使用额外的手段来防止上述攻击的可能,因此恶意模型下安全的协议的复杂程度和开销往往远大于半诚实模型下安全的协议,如何设计性能接近半诚实方案的恶意 PSI 方案仍旧是一个挑战。另外,这也引发我们的进一步思考,即恶意模型下 PSI 是否有必要,是否可以通过多方安全计算技术以外的手段来避免恶意模型的发生?例如,设置足够严厉的处罚措施,并设立不定期抽查机制来防止恶意行为的发生。

几种典型的应用场景问题如下:

  1. 非对称隐私集合求交

    • 隐私计算技术|非平衡隐私集合求交(Unbalanced PSI)协议介绍

    在某些实际应用场景里。一个参与方 A 的样本量远远小于另一参与方 B,这里称拥有样本量少的 A 为弱势方,称拥有样本量多的 B 为强势方,也就是出现非对称隐私集合求交的问题。

    解决方案:针对上述非对称联邦学习场景,在 PSI 流程中,提出从强势方的ID集合中随机抽取部分密文 ID 数据混入最终交集中,可以得到如下效果。

    (1)最终计算得到的 PSI 交集由真实交集和混淆集合组成,其中混淆集合全部来自强势方的样本 ID。

    (2)弱势方可以获得 PSI 交集,同时可以通过对比本地 ID 集合和 ID 交集得到真实的样本 ID 交集,但是无法获取混淆交集部分的样本 ID( 由密文保护) ,保护了强势方的数据安全。

    (3)强势方可以获得 PSI 交集,但是无法判断哪些样本属于真实 ID 交集。

    (4)在实际场景中,当弱势方和强势方数据量之比在 1: 100 时,只需要取真实交集与强势方集合数据量之比为 1: 10,即可将弱势方数据的安全性提升 10 倍。

  2. 金融领域的斜向联邦学习

    • 金融联合建模
    • 金融联合统计
    • 金融联合营销

    — —斜向联邦学习?

    — —在斜向联邦学习场景里,参与方 A 和参与方 B 各拥有一部分特征,且两个参与方分别拥有一部分由两方 PSI 获得的交集中的样本的标签信息。两方斜向联邦学习适用的场景是联邦学习的两个参与方 A 和 B 的训练数据有重叠的数据样本,两方拥有的数据特征却不同,两方数据特征空间形成互补,类似于纵向联邦学习场景。与纵向联邦学习不同的是,在两方斜向联邦学习里,参与方 A 和参与方 B 各拥有一部分 PSI 交集里的样本对应的标签信息,甚至参与方 A 和参与方 B 可能同时拥有一部分样本的标签信息。因此,从标签信息维度看,斜向联邦学习又类似于横向联邦学习。

    image-20230306113935137

    斜向联邦学习的应用场景常见于金融领域。不同的金融机构( 如银行与支付平台) 拥有的数据特征不一样,且可能各自拥有一部分样本的标签信息。

    斜向联邦学习的算法协议可以从纵向联邦学习演化发展得到。例 如,在两方纵向联邦逻辑回归 ( LogisticRegression,LR ) 协议里,拥有标签信息的一方称为Guest,另外一方称为 Host。在两方斜向联邦 LR 协议里,可以请两个参与方 A 和 B 分别轮流担任 Guest 和 Host 的角色,这样就可以分别使用参与方 A 和 B 拥有的标签信息。需要注意的是,在进行小批次 ( Mini-batch) 数据划分时,每个小批次中的训练样本的标签信息必须属于同一个参与方。

  3. 阈值PSI

    阈值 PSI 指当交集的基数大于或等于门限值时,接收方才能获得隐私集合交集.如网约顺风车,在不泄露陌生人路径的情况下如何共享双方的公共路径是该场景的重点问题。

(四)典型的PSI算法过程

​ 掌握了核心思想,就可以再理解 PSI 的整个过程。以纵向联邦学习的 PSI 算法为例,纵向联邦的模式是一个主体的特征分布在两家以上的组织,那么在一起联合训练的时候,需要把一个主体的特征进行串联,这个过程包含:

  • 初始化:
    1. Server侧的样本 ID 集合 { hc1, hc2, …,hcv },Client 侧的样本 ID 集合 { hs1, hs2, hsw }
    2. Server产生 RSA 加密的公钥与秘钥,秘钥保留在 Server 端,公钥(e,n)下发到 Client 端。
    3. Full-Domain Hash H。(小于 n,并且与 n 互质,数据量特别大的情况下要考虑空间问题)。
    4. Client 随机数 R。(小于 n,并且与 n 互质)
  • 交互:

image-20230308133613036

image-20230308111420453

image-20230308111441764

​ 首先基于 RSA 公钥加密算法。Client 侧拥有公钥 e 和随机数,Server 侧用于私钥 d 和公钥 e,最终加密的拼接键通过私钥 d 进行加密,基于 RSA 因式分解的复杂性,client 侧通过加盲然后去盲的方式获得基于私钥 d 的加密,但是他自己没法生成。Server 侧当然可以生成,但是 Server 侧也无法解开 Client 侧发来寻求协助私钥 d 生成的加密的拼接键,因为有盲。所以除了端到端的方式中间过程没法破解。


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

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

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

相关文章

【操作系统和计网从入门到深入】(三)进程控制

前言 这个专栏其实是博主在复习操作系统和计算机网络时候的笔记,所以如果是博主比较熟悉的知识点,博主可能就直接跳过了,但是所有重要的知识点,在这个专栏里面都会提到!而且我也一定会保证这个专栏知识点的完整性&…

【大数据-Hadoop】从入门到源码编译-概念篇

【大数据-Hadoop】从入门到源码编译-概念篇 Hadoop与大数据生态(一)Hadoop是什么?(二)Hadoop组成1. HDFS1.1 NameNode(nn)1.2 DataNode(dn)1.3 Secondary NameNode&#…

如雨后春笋般层出不穷的人工智能,究竟可以为我们的生活带来些什么?

似乎是从chatgpt爆火以后,各种各样的和AI、人工智能有关的产品层出不穷,似乎只有带有人工智能,才能体现一个产品的功能之强大,才能在众多产品中具有一定的竞争力,那么这样的现象会给我们的生活带来什么影响呢&#xff…

如何用scratch画正多边形

各边相等,各角也相等的多边形叫做正多边形。 正多边形的外接圆的圆心叫做正多边形的中心。 正多边形的外接圆的半径叫做正多边形的半径。 中心到圆内接正多边形各边的距离叫做边心距。 正多边形各边所对的外接圆的圆心角都相等,这个圆心角叫做正多边…

各行各业模板ppt模板打包下载

下载地址 https://download.csdn.net/download/douluo998/88624912 超多ppt模板 136-高级古风PPT 135-高端艺术PPT 134-高端A4竖版PPT 133-露营活动PPT 132-雷锋主题PPT 131-退休欢送会PPT 130-转正述职报告PPT 129-谷雨PPT 128-课堂互动游戏PPT 127-读书分享PPT -2023-07-22 1…

多线程 (上) - 学习笔记

前置知识 什么是线程和进程? 进程: 是程序的一次执行,一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。 线程: 进程中的一个执行流&#xff0…

计算机操作系统原理分析期末复习

一、理解与识记 三种基本的OS类型及各自的特点: 批处理系统(内存同时存放几个作业。优点:资源利用率高、作业吞吐量大、系统开销小;缺点:用户无交互性、作业平均周转时间长)、分时系统(时间片技…

后端项目全局异常处理-使用RuntimeException自定义异常异常分类简单举例

接上篇:后端项目操作数据库-中枢组件Service调用Mapper 自定义异常: 手动抛出异常,为了后续统一捕获,需要异常自定义; 如:当使用抛出异常的方式表示“操作失败”时,为了后续统一捕获&#xff0c…

信息过载的反思

在今天微信、短视频、图文不停的密集的信息轰炸之下,你“察觉”到你的精力不济没有?你时常会觉得耳鸣、目涩,注意力无法集中;你懒于记忆,甚至爱人的手机号都想不起来,习惯于用移动电话找人名,不…

Docker - Android源码编译与烧写

创建源代码 并挂载到win目录 docker run -v /mnt/f/android8.0:/data/android8.0 -it --name android8.0 49a981f2b85f /bin/bash 使用 docker update 命令动态调整内存限制: 重新运行一个容器 docker run -m 512m my_container 修改运行中容器 显示运行中容器 d…

使用飞书自定义机器人发送消息

使用飞书机器人可以很方便的获取自动化任务的反馈: 在群里创建一个机器人: 记住下面的 webhook地址,这个是标识机器人的唯一ID,比如它的webhook地址是:"https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxx-a…

【1.计算机组成与体系结构】流水线技术

目录 1.流水线的定义2.相关参数计算2.1 流水线计算公式2.2 流水线的吞吐率2.3 流水线加速比计算 3.超标量流水线 1.流水线的定义 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令…

STM32——超声波传感器

需求: 使用超声波测距,当手离传感器距离小于 5cm 时, LED1 点亮,否则保持不亮状态 接线: 定时器配置: 使用 TIM2 ,只用作计数功能,不用作定时。 将 PSC 配置为 71 ,…

笔记 - 现代嵌入式芯片封装识读

0.引用: 配图、资料并非一处采集,我不太容易找到图片的原始链接。这里的图片仅作示例,无商业用途。如果涉及侵权,请随时联系。谢谢! PCB封装欣赏了解之旅(下篇)—— 常用集成电路_ufqfpn封装…

什么是Z-Wave,技术特点,各国支持的频段

1.1 背景 Z-Wave是一种无线通信的协议,主要应用于智能家居网络,而其Z-Wave联盟主要是推动家庭自动化领域采用Z-Wave协议,其联盟成员都是智能家居领域非常有名的厂商,基本上覆盖了全球。 2.1 技术特点 低功耗、高可…

『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略

『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略 1 Appium-Inspector简介2 Appium Desktop中的Appium-Inspector3 安装Appium-Inspector4 Appium-Inspector网页版5 Appium-Inspector界面说明5.1 Appium Server配置5.2 Selec…

飞致云与上海吉谛达成战略合作,获得Gitea企业版中国大陆地区独家代理权

2023年12月13日,中国领先的开源软件提供商FIT2CLOUD飞致云宣布与上海吉谛科技有限公司(以下简称为上海吉谛)正式达成战略合作,FIT2CLOUD飞致云获得上海吉谛旗下代码托管平台Gitea企业版中国大陆地区独家代理权。 Gitea项目&…

使用 Pnpm 和 Vite 构建 Vue 项目

文章目录 本地 Node 环境安装 Pnpm 包管理工具使用 Vite 创建 Vite 官网:https://cn.vitejs.dev/ 本地 Node 环境 首先,确保已经安装了 Node.js 和 npm。可以在命令行中运行 node -v 和 npm -v 来检查它们是否已经正确安装: 安装 Node.js 通…

【Git 小妙招】走进 Git 的分支管理(万字图文讲解)

文章目录 前言1. 理解分支2. 创建分支3. 切换分支4. 合并分支5. 删除分支6. 合并冲突7. 分支管理策略7.1 一个简单的分支策略(仅参考) 8. bug 分支9. 删除临时分支总结 前言 本文开始介绍 Git 的杀手级功能之⼀:分⽀。本文涉及分⽀创建,切换&#xff0c…

2. 基础数据结构-数组

2. 基础数据结构-数组 2.1 概念 数组是一种数据结构,它是一个由相同类型元素组成的有序集合。在编程中,数组的定义是创建一个具有特定大小和类型的存储区域来存放多个值。数组可以是一维、二维或多维的。每个元素至少有一个索引或键来标识。 2.2 数组特…