分享好友 最新动态首页 最新动态分类 切换频道
SPU赋能PSI:探秘隐私集合求交核心技术与高级调度架构实践
2024-12-27 11:23

1.PSI的定义和种类

隐私集合求交(Private Set Intersection, PSI)是一种在密码学和安全多方计算(MPC)领域中的关键技术,允许两个或多个参与者在不泄露各自输入集合中非交集部分的前提下,找出他们所拥有的共同元素。隐语在 PSI 技术方面提供了相关的解决方案。

SPU赋能PSI:探秘隐私集合求交核心技术与高级调度架构实践

根据不同的实现机制和技术原理,PSI 可以分为以下几种类型:

  1. 基于公钥密码学的 PSI 方案

    • 基于判定型Diffie-Hellman (DDH):利用 DDH 难题设计的 PSI 协议,允许在不暴露额外信息的情况下计算集合交集。
    • 基于RSA盲签名:通过 RSA 密码系统和盲签名技术实现集合求交,保证数据隐私性。
  2. 基于不经意传输 (Oblivious Transfer, OT):OT 是构建 PSI 的基础组件之一,通过 OT 实现让一方能够得知某些信息而无法获知其他无关信息,从而实现在不知情的情况下完成集合求交操作。

  3. 基于通用MPC的PSI方案

    • 基于混淆电路 (Garbled Circuit, GC):使用混淆电路技术,将逻辑运算转化为加密形式,使得计算过程能够在不解密数据的情况下得出交集结果。
  4. 基于同态加密 (Homomorphic Encryption, HE):通过支持某种数学运算的同态加密算法,可以在加密数据上直接执行计算,解密后得到交集结果,而无需在明文状态下交互数据。

此外,按照参与方的数量,PSI 还可以分类为:

  • 两方PSI:仅涉及两个参与方之间的集合求交。
  • 多方PSI:涉及三个或更多参与方之间的集合求交。
  1. 用户接口层
    这一层主要是对最终用户或者应用程序提供接口,让用户能够方便地提交待求交的私有数据集合,并获取求交结果。这一层通常会对原始数据进行预处理和格式转换,以便适应底层 PSI 协议的要求。

  2. 数据加密层
    在这一层,用户提交的原始数据被转化为加密形式,这是 PSI 安全性的关键步骤。可以采用多种加密技术,如同态加密、不经意传输(OT)、基于身份的加密(IBE)、或是基于零知识证明(ZKP)等方法,确保数据在传输和计算过程中始终保持加密状态。

  3. 协议层
    协议层具体实现 PSI 的核心算法和通信流程,例如基于哈希的 PSI、基于加法同态加密的 PSI 或基于 oblivious transfer 的 PSI。此层的设计要确保即使在多方参与的情况下,除了交集部分外,任何一方都无法得知对方集合的具体内容。

  4. 通信层
    负责执行协议层所需的网络通信任务,包括但不限于数据交换、消息同步和错误恢复等。这一层确保了 PSI 协议能在分布式环境下正确执行。

  5. 计算层
    包括对加密数据进行高效计算的方法,如基于半同态加密的计算、基于 garbled circuit 的计算等,用于在不解密情况下直接在加密数据上进行交集操作。

3.SPU实现的PSI种类

SPU(Secure Process Unit)作为一个专注于隐私计算和安全多方计算(MPC)的模块或框架,在实现 PSI(Private Set Intersection,隐私集合求交)功能时,支持多种协议和算法。以下是一些SPU实现的PSI种类:

  1. 基于DDH(Decisional Diffie-Hellman)的PSI协议
    SPU实现了基于DDH难题的PSI协议,这是一种经典的密码学协议,允许两方在不知道对方完整集合内容的情况下,仅计算出各自的交集部分。

  2. KKRT协议
    KKRT是一种高效的多方PSI协议,SPU提供了KKRT协议的实现,它适用于多方之间进行隐私集合求交的操作。

  3. 基于BC22PCG的协议
    BC22PCG可能是另一种具体的PSI协议变体,但确切含义未在已有资料中详细说明,推测可能是针对特定应用场景优化过的PSI协议。

除此之外,SPU可能还支持其他的PSI变种,比如针对数据量不平衡情况的非平衡PSI协议(Unbalanced PSI),以及可能结合其他密码学工具如同态加密(HE)或不经意传输(Oblivious Transfer, OT)技术实现的更复杂版本的PSI协议。

SPU PSI 调用框架是一种用于处理大规模数据集的隐私计算技术。该框架主要由以下几个部分组成:

  1. 统一入口:用户可以通过 函数进入系统,这是高级API的一个入口点。
  2. 支持分桶求交:为了处理大量数据,SPU PSI 使用了分桶策略。这使得系统能够处理高达10亿规模的数据集。
  3. 输入输出处理:在数据处理过程中,系统会检查求交id列的数据完整性,并确保没有重复项。这些操作有助于保证数据质量。
  4. 输出处理:最后,系统会对求交结果进行排序,并生成完整的label列,以便于后续分析或应用。

在具体实现上,SPU PSI 调用框架包含两个关键的API:

  • bucket_psi: 这个高级API通过Hash分桶方法支持海量数据,并涵盖了数据查重、分桶求交、结果广播及结果排序等全生产流程。
  • mem_psi: 与 bucket_psi 不同,mem_psi 是一个低级API,它提供了算法内核的高性能,并且具有统一易用的接口。

此外,Operator 层起到了重要的作用:

  • 它作为算法接入层,向上提供统一接口,方便用户使用。
  • 工程化封装提高了系统的可维护性和扩展性。
  • 注册工厂模式的应用提升了协议工程化的效率,使系统更加灵活和高效。

总的来说,SPU PSI 调用框架提供了一个全面、系统的方法来处理大规模数据集中的隐私计算问题,从而满足现代数据安全和隐私保护的需求。

1.启动Ray集群

启动ray集群的方法有两种,一种是Alice首先启动ray集群,另一种是Bob首先启动ray集群。以下是两种方法的具体步骤:

  1. Alice首先启动ray集群:

    • 注意这里的命令是启动Ray的主节点。
    • 输入以下命令来启动ray集群:
      
      
    • 其中,“ip”是要分配给主节点的IP地址,“port”是主节点要监听的端口。
  2. Bob首先启动ray集群:

    • 输入以下命令来启动ray集群:
      
      
    • 同样,这里“ip”是要分配给主节点的IP地址,“port”是主节点要监听的端口。

注意,每个节点都需要知道其他节点的IP地址和端口号,以便它们可以相互通信。当所有节点都启动后,它们就组成了一个ray集群,可以在其中运行分布式任务和actor。

2.初始化SecretFlow

初始化 SecretFlow 的步骤如下所示:

  1. 创建一个名为 的字典对象,用于配置 SecretFlow 的集群设置。在这个字典中,你需要定义参与方的信息。例如,对于参与者 “alice” 和 “bob”,你可以这样设置:

请注意,需要替换实际的 IP 地址和端口号。
2. 创建一个名为 的字典对象,用于配置 TLS/SSL 加密通信。在这个字典中,你需要指定 CA 根证书、服务器证书和私钥文件路径。例如:


请注意,如果你是 Alice,则需要使用 Alice 的证书和私钥;如果你是 Bob,则需要使用 Bob 的证书和私钥。
3. 使用 SecretFlow 库的 方法来初始化 SecretFlow。你需要提供 Ray 集群头节点的地址和上面创建的 和 对象。例如,如果当前参与方是 Bob,则可以这样做:


请将 “bob ray head node address” 替换为 Bob 的 Ray 头节点的实际地址。

同样地,如果当前参与方是 Alice,则应该将 “bob ray head node address” 替换为 Alice 的 Ray 头节点的实际地址。

3.启动SPU设备

  1. 定义一个名为 的字典对象,用于描述 SPU 节点的配置。这个字典应包含一个名为 的列表,其中包含了所有参与 SPU 计算的节点信息。例如:

在此示例中,有两个节点分别属于 Alice 和 Bob。你需要将 和 替换成每个节点的实际 IP 地址和端口号。

  1. 使用 SecretFlow 框架中的 函数来启动 SPU 设备。你需要将前面定义的 字典传递给这个函数,如下所示:

这将在每个节点上启动 SPU 设备,并准备执行相应的计算任务。

需要注意的是,在实际使用时,你可能需要根据你的硬件环境和网络条件调整 和 的值,以确保它们指向正确的 IP 地址和可用的端口号。同时, 和 参数也需要根据你的特定需求进行选择和配置。

4.执行PSI并获取结果

1.使用 spu.psi_csv() 方法执行 PSI 协议


2.接收 PSI 结果
spu.psi_csv() 方法返回一个 reports 对象,它包含有关输入数据量总数和交集数量的信息。
可以通过 reports[‘original_count’] 和 reports[‘intersection_count’] 来获取这些信息。

最新文章
如何触发亚马逊店铺二审?实用技巧与方法全解析!
最近,亚马逊店铺的二审问题似乎稍有缓和,但依然是许多卖家心中的一块“绊脚石”。尽管情况有所改善,二审依旧令不少亚马逊卖家感到困惑和焦虑。在此背景下,XX互联的注册部门自6月初便开始积极探索应对二审的策略,然而直至今日,依然未
百度地图北斗导航最新版
百度地图北斗导航最新版本app支持在这浏览到很多的导航信息,全部的城市位置都可以帮你定位到,城市布局也是很清晰的,最全的道路给你来切换,不同的模式给你来切换,多样化供你切换。1、应用程序结合了AR技术和GPS定位技术,导航也是带你
白茶一斤售价如何才能不亏本
其次,合理安排生产计划也是提高生产效率的重要手段。根据市场需求量进行合理预测,并制定相应的采摘和加工计划,避免资源浪费和库存积压。供应链管理对于降低成本、提升竞争力至关重要。建立稳定可靠的供应链网络能够确保原材料及时到达并
SEO介绍质量,详细分析关键词布局的艺术
在当今互联网时代,搜索引擎优化(SEO)已经成为企业提升网站排名、增加流量、提高品牌知名度的重要手段。SEO的核心在于对网站内容的优化,而的则是优化过程中的关键环节。本文将从关键词布局的角度,探讨如何进行SEO评估,以提升网站质量
刀疤王是如何捕获远古泰坦雪魔的? #哥斯拉大战金刚2 #哥斯拉 #金刚 #科幻电影
{{if !data.isVip && data.isActText}}{{else if !data.isVip && !data.isActText}}{{else}}{{if !data.isNormalVip}}{{if data.expiredVip && data.isActText}}{{else if data.expiredVip && !data.isActText}}{{else}}{{/if}}{{else if d
游戏APP广告变现零撸介绍开发软件
游戏APP广告变现零撸介绍一、引言随着移动互联网的蓬勃发展,游戏APP作为重要的娱乐方式之一,其用户规模持续增长。为了实现盈利和可持续发展,游戏APP广告变现成为了一种重要的商业模式。而“零撸”作为近年来在游戏及广告领域兴起的概念
谷歌SEO中,Canonical标签与301重定向有何区别?
在搜索引擎优化的浩瀚宇宙中,Canonical标签与301重定向如同两颗璀璨的星辰,各自在引导搜索引擎爬虫、维护网站权威性和提升用户体验方面发挥着不可或缺的作用。作为一名在SEO领域摸爬滚打多年的实践者,我深知这两者虽目标相似,但实现方
百度手机网站关键词排名,如何快速提升并稳定排名?
在这个信息爆炸的时代,手机网站已成为我们获取信息、享受服务的重要渠道。而作为一名深耕互联网领域的实践者,我深知百度手机网站关键词排名对于网站流量、用户粘性乃至商业价值的决定性影响。通过我多年的实战经验,我发现,掌握一套有效
跨境电商平台和独立站有什么区别?
做跨境电商有两种形式,一是独立站,一是平台。那么独立站和平台有什么不一样?区别有哪些呢?定位区别首先定义上,独立站是拥有独立域名,自主、自由宣传推广媒体与渠道的新型网站;跨境电商平台则是跨境企业或个人进行网上交易洽谈的平台
[教育行业新趋势]在职教育学硕士研究生热度直线上升
随着职场竞争的加剧,越来越多的在职人员开始选择提升学历与专业技能,特别是在教育行业。在职教育学硕士研究生项目作为一种灵活的教育选择,吸引了众多想要提升自我、转换职业方向或加深教育领域知识的职场人士。近年来,这类项目的热度持
相关文章
推荐文章
发表评论
0评