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

news2024/9/20 14:36:07

笔记内容来自多本书籍、学术资料、白皮书及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

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

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

相关文章

美食大赛的题解

目录 原题描述: 题目描述: 输入格式: 输出格式: 样例输入: 样例输出: 数据规模: 题目大意: 主要思路: 注: 代码: 原题描述&#xff1a…

updateBatch批量更新

java代码 Dao层 int updateBatch(Param("userList") List<User> userList);sql配置文件 <update id"updateBatch" parameterType"java.util.List" ><foreach collection"userList" item"user" separator&quo…

Next.js中的App Router与Page Router,各自的作用和使用方式,如何理解和配置使用?

App Router介绍 Next.js中的App Router是全局的路由器&#xff0c;它用于在应用程序的所有页面之间进行导航。它可以用于在页面之间传递状态和数据&#xff0c;类似于React中的Context。 App Router是通过_app.js文件中的getInitialProps方法来配置的。 在 Next.js 中&#xf…

算法通关村第十三关—数学与数学基础问题(青铜)

数学与数学基础问题 一、统计专题 1.1 符号统计 LeetCode1822给定一个数组&#xff0c;求所有元素的乘积的符号&#xff0c;如果最终答案是负的返回-1&#xff0c;如果最终答案是正的返回1&#xff0c;如果答案是0返回0。  题目比较简单&#xff0c;正数对结果完全没影响&…

RK3568驱动指南|第八篇 设备树插件-第75章ConfigFS的核心数据结构

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

【Docker】进阶之路:(九)Docker网络

【Docker】进阶之路&#xff1a;&#xff08;九&#xff09;Docker网络 Docker网络模式简介bridge网络模式host网络模式none网络模式container网络模式user-defined网络模式1.创建自定义的bridge网络2.使用自定义网络 高级网络配置docker network命令 为什么要了解容器的网络模…

谈谈MYSQL主从复制原理

目录 概述 要点binlog日志 主从复制过程 总结 概述 MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。 MySQL 默认采用异步复制方式。从节点不用一直访问主服务器来更新自己的数据&#xff0c;数据的更新可以在远程连接上进行&#xff0…

Python应用利器:缓存妙用,让你的程序更出色更快速!

在 Python 应用程序中&#xff0c;使用缓存能够显著提高性能并降低资源消耗。本文将详细介绍如何在 Python 中实现缓存机制&#xff0c;包括内置 functools 模块提供的 lru_cache 装饰器以及自定义缓存机制。 使用 functools 模块的 lru_cache functools 模块提供了 lru_cach…

【CDP】CDP 集群通过Knox 访问Yarn Web UI,无法跳转到Flink Web UI 问题解决

一、前言 记录下在CDP 环境中&#xff0c;通过Knox 访问Yarn Web UI&#xff0c;无法跳转到Flink Web UI 的BUG 解决方法。 二、问题复现 登录 Knox Web UI 找到任一 Flink 任务 点击 ApplicationMaster 跳转 Flink WEB UI 出问题 内容空白&#xff0c;无法正常跳转到…

【MySQL】mysql | mysql5.7升级8.0注意事项

一、说明 1、应公司要求&#xff0c;mysql5.7安全漏洞较多&#xff0c;需要升级到8.0 2、记录注意事项备不时之需 二、注意事项 1、加密算法 1&#xff09;加密算法8.0改了&#xff0c;导致navicat无法连接 2&#xff09;解决&#xff1a; use mysql; ALTER USER root% IDENT…

利用冒泡排序了解如何将数组作为参数传递给函数

目录 前言:冒泡排序简介步骤动图演示 错误的冒泡排序函数数组名正确的冒泡排序函数 前言:冒泡排序 简介 冒泡排序是一种简单直观的排序算法。 它重复地访问要排序的数&#xff0c;一次比较两个元素&#xff0c;如果他们的顺序错误就把他们交换过来。访问数需要重复地进行直到…

DS冲刺整理做题定理(一)二叉树专题

&#xff08;只总结博主自己记得不熟的~&#xff09; 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下&#xff0c;精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技…

微服务——分布式事务

事务理论基础 分布式锁保证多线程下数据库操作安全保障 分布式事务发生异常可以回滚. 使用postman发送请求插入一条新订单。 然后现在库存只剩下8个商品&#xff0c;如果买10个的话应该统一失败。 CAP定理 假如node03在独立时将所有请求都堵塞并等待恢复和其余节点的连接的话以…

【Spring Boot】快速入门

一、引言 1、什么是spring boot&#xff1f; Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff…

【c++】stl_priority_queue优先级队列

目录 一、priority_queue的介绍 二、 priority_queue的本质 三、priority_queue的使用 四、priority_queue的模拟实现 总结 一、priority_queue的介绍 首先让我们通过阅读优先级队列的官方文档 简单翻译一下 1. 优先队列是一种容器适配器&#xff0c;根据严格的弱排序标准…

内存不够用怎么办?整理了几个必备的方法!

内存越大&#xff0c;运行越快&#xff0c;程序之间的切换和响应也会更加流畅。但是随着时间的增加&#xff0c;还是堆积了越来越多的各种文件&#xff0c;导致内存不够用&#xff0c;下面就像大家介绍三种好用的清理内存的方法。 方法一&#xff1a;通过电脑系统自带的性能清理…

关于Android studio新版本和NEW UI显示返回按钮的设置

1.新版Android studio问题 因为在新版本的Android Studio中&#xff0c;默认情况下是没有直接的选项来显示返回上一步按钮在状态栏上的&#xff0c;可以通过以下方法来实现返回上一步的功能&#xff1a; 在Android Studio的顶部菜单栏中&#xff0c;选择"View"。在…

量子纠错率提高100倍!亚马逊云科技开启量子创新时代

由AWS开发和制造的包装组件中的超导量子芯片&#xff08;图片来源&#xff1a;网络&#xff09; 作为一项尖端技术&#xff0c;量子计算能提供前所未有的计算能力。美国亚马逊云科技&#xff08;AWS&#xff09;近期推出了一款量子芯片&#xff0c;展示出该技术取得了重大飞跃…

为什么选择国产WordPress:HelpLook的优势解析

如今网站建设可以说已经是企业必备。而在众多的网站建设工具中&#xff0c;WordPress无疑是其中的佼佼者。作为一款开源的CMS&#xff08;内容管理系统&#xff09;&#xff0c;WordPress拥有丰富的插件和主题&#xff0c;以及强大的功能&#xff0c;使得用户可以轻松地构建出符…

golang 操作Jenkins

1.創建Agent/Node func CreateAgent(username string, password string, nodeName string, nodeDescription string, numExecutors string, remoteFS string, labelString string, host string) {var obj stringobj "{name:" nodeName ",nodeDescription:&q…