惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Project Zero
Project Zero
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
C
Check Point Blog
S
SegmentFault 最新的问题
腾讯CDC
IT之家
IT之家
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
博客园 - Franky
V
Visual Studio Blog
The Register - Security
The Register - Security
GbyAI
GbyAI
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
U
Unit 42
Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
Y
Y Combinator Blog
云风的 BLOG
云风的 BLOG
博客园 - 三生石上(FineUI控件)
Schneier on Security
Schneier on Security
N
News and Events Feed by Topic
T
Troy Hunt's Blog
小众软件
小众软件
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
TaoSecurity Blog
TaoSecurity Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
C
CERT Recently Published Vulnerability Notes
aimingoo的专栏
aimingoo的专栏
T
The Exploit Database - CXSecurity.com
Know Your Adversary
Know Your Adversary
G
GRAHAM CLULEY
T
Tenable Blog
P
Palo Alto Networks Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
S
Schneier on Security
Simon Willison's Weblog
Simon Willison's Weblog
H
Help Net Security
WordPress大学
WordPress大学
The Cloudflare Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
MongoDB | Blog
MongoDB | Blog
Forbes - Security
Forbes - Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
W
WeLiveSecurity
I
InfoQ
P
Privacy International News Feed

祈雨的笔记

spark原理解析 kueue执行源码分析 spark on k8s执行源码分析 spark-operator源码解析 系统压测遇到的缓存击穿问题 我的世界PC与安卓联机 蚂蚁金服流量投放平台的AIG改造 G1大对象致Old区占用率高 日志打印导致接口响应率下跌分析 Groovy加载类导致OOM分析 ERROR日志打印导致CPU满载 记OceanBase死锁超时 应用发版期间服务响应超时 Ark Serverless初探 系统优化复盘一二三 The user specified as a definer does not exist Kong网关初探 API网关选型调研 CPU火焰图常用工具 配置中心选型调研 root操作Nginx导致用户组错误 基于Proxifier使用代理 FastJSON字段智能匹配踩坑 Nacos初探 记一次Nginx服务器CPU满荷载故障 基于券系统分库分表的思考 limit不参与SQL成本计算致索引失效 Linux常用性能监控命令 golang低版本http2偶现400 hostname in certificate didn't match 常见对称加密原理以及应用 tcp_tw_recycle引起的TCP握手失败 记一次mysql执行DDL导致锁表 mysql磁盘占用查看 mysql对text字段update致磁盘增长 elasticsearch报错index read-only TIME_WAIT与Http的Keep-Alive 记一次TIME_WAIT导致连接数报警 记一次生产事故OOM问题排查 redis分布式锁RedissonLock的实现细节 webservice复杂加密签名(2)java调用 webservice复杂加密签名(1)SoapUI mysql延时关联 利用中间人拦截实现APP内H5窜改 MySQL表字符集不同导致关联查询索引失效 通过SSH隧道远程办公 数据落盘方案 BeanDefinitionRegistryPostProcessor扩展 mysql空间索引 HTTPS攻击 spring循环依赖过程解析 elasticsearch性能优化 mysql IS NULL 使用索引 mysql字符集utf8mb4失效踩坑 常用加密算法 xml与javaBean转换 初探InnoDB MVCC源码实现 mysql索引原理 redis之list源码分析 redis之key过期源码分析 redis之string源码分析 redis之hash源码分析 线程池之ThreadPoolExecutor mysql数据页结构 Using temporary与Using filesort mysql回表致索引失效 springboot(28)HTTP连接池 定时任务之ScheduledThreadPoolExecutor elasticsearch常用script聚合 elasticsearch实现like查询 elasticsearch实现乐观锁 elasticsearch准实时原理 springboot(27)自定义缓存读写机制CachingConfigurerSupport optimizer tracing arthas常用命令 HTTP和HTTPS详解 redis集群选举机制 kafka消息重试 一点压力测试的经验 kafka架构概念 explain分析sql语句字段的解释 JVM问题分析处理手册 logstash过滤器(2)date logstash过滤器(3)dissect logstash编码器(1)json logstash编码器(2)multiline logstash表达式 logstash输入(1)通用选项 logstash输入(3)file logstash过滤器(1)通用选项 logstash输入(2)stdin logstash安装 记一次前端vConsole导致JSON序列化错误排查 解决多个异步操作嵌套问题 fastjson反序列化失败autoType is not support RTMP串流服务 POI自动调整列宽错误 Nginx+Lua实现动态黑名单 使用curl命令模拟POST和GET请求 ResponseEntity下载文件
安全多方计算MPC
祈雨的笔记 · 2025-01-01 · via 祈雨的笔记

介绍

隐私计算

随着数字化和大数据分析技术的迅猛发展,对多方数据的需求日益增长。例如,在评估个人信用风险时,需要综合考量多种属性特征,进行联合统计分析,其中需要依赖大量的隐私数据。然而,由于严格的法律法规限制及高昂的数据采集成本,使得数据共享变得困难重重。另外数据本身具备低成本复制性、所有权界定模糊、流通渠道难以控制以及使用范围不易限定等特点,这导致了即使是最微小的安全疏忽也可能引发严重的数据泄露问题。

因此,在确保数据安全与隐私保护的前提下实现征信数据的有效整合成为了一个急需解决的问题。同时,如何确保这些敏感信息在使用过程中的传播是可控的也显得尤为重要。

而隐私计算则是一种旨在保护数据隐私的同时,还能实现数据分析和共享的技术。它通过使用一系列技术手段(如安全多方计算、可信执行环境、联邦学习等),在不暴露原始数据的前提下,完成对数据的处理和分析,从而达到既利用了数据价值又保护了个人或机构隐私的目的。

什么是MPC

安全多方计算(Secure Multi-Party Computation,MPC)允许一个群组的多个参与方在不披露任意参与方私有输人的条件下实现联合计算。参与方约定一个待计算的函数,随后应用MPC协议,将每个人的秘密输入协议中,联合计算得到函数的输出,同时不泄漏私有输入。该技术的特点包括:输入的隐私性、计算的正确性、去中心化。

  1. 输入的隐私性:多方安全计算主要是针对在无可信第三方的情况下,能够安全地计算一个约定函数,同时保障协同计算时各用户的隐私数据安全。
  2. 计算的正确性:数据在各个节点根据固定的相关逻辑,从本地数据中进行采集并计算,最后将输出的计算结果发送至指定节点,从而多方完成协同计算任务,输出唯一性结果。在保证数据隐私的情况下,将计算结果反馈到整个计算任务系统,从而各方得到正确的数据反馈。
  3. 去中心化:在传统分布式计算中,都有中心节点来收集用户信息并进行运算 后派发给各个输入方,而多方安全计算协议进行去中心化处理,即保证各参与方权力平等,不存在拥有特权的输入方或者第三方。

简单地讲,MPC主要通过设计特殊的加密算法和协议,基于密码学原理实现在无可信第三方情况下,在多个参与方输入的加密数据之上直接进行计算,期间其他参与方无法解密出己方的加密输入而计算出最终结果。其主要涉及的协议有不经意传输、混淆电路、秘密分享、同态加密等。

MPC密码学协议

MPC还有专用MPC协议和通用MPC协议之分。通用MPC协议如秘密共享、混淆电路等理论上是可以支持任意计算,但是对于某些特定场景,其性能未必高,往往还是需要设计专用的MPC协议才能达到较好的实用性。目前,专用 MPC 协议主要在隐私求交(PSI),隐匿查询(PIR) 领域比较火热,如 PSI 技术当前可以达到十亿级/小时级别的实用性能。

MPC计算需要保证隐私和正确性。在存在对抗行为的情况下,必须保证安全属性。主要考虑两个经典的对手模型:半诚实(半诚实的对手遵循协议规范,但可能会尝试从协议记录中了解更多信息)和恶意(恶意对手可以运行任意攻击策略以试图破坏协议)。另外,如果一个含有多个参与实体的MPC协议中存在不超过一半的参与者可以作出包括合谋在内的不诚实行为,并且协议能保障除计算结果外不会泄露任何参与实体的隐私,则称该MPC协议为诚实大多数,相反超过一半则称为不诚实大多数。

目前,大多数落地的MPC协议还停留在半诚实模型和诚实大多数的前提下,这类MPC技术一般不涉及到同态加密等复杂密码计算,性能会比较好。虽然这类协议的计算相对较快,但是无法抵御大多数参与方的合谋攻击。而能够实现恶意模型和非诚信大多数的协议则一般设计复杂的密码学运算,并且性能远低于前者。

通用协议

不经意传输

描述

不经意传输(Oblivious Transfer, OT)是密码学和隐私计算领域中的一种基本协议,它允许一方(发送方)将信息以一种特殊的方式发送给另一方(接收方),使得接收方只能选择性地获取其中的一部分信息,并且发送方不知道接收方选择了哪部分信息。这种机制在保护数据隐私的同时实现了信息的选择性共享。

简单地讲,该协议涉及到两个参与方:

  1. 发送方S,持有多个秘密值{X0,X1,X2,…,Xn}
  2. 接收方R,持有一个选择值b∈{0,1,2,…,n}

不经意传输协议允许接收方R得到Xb,但无法得到其他秘密值的任何信息,且发送方S无法得到选择值b。

实现

通过经典的百万富翁问题,我们使用一个简单易懂的基于RSA算法实现的OT协议来讲解其中的交互细节

画板

画板

画板

画板

画板

画板

混淆电路

描述

混淆电路(Garbled Circuit, GC)主要用于实现安全的两方或多方位运算。它允许两个或多个参与方在不泄露各自输入的情况下共同完成一个计算任务(该计算任务加密成逻辑电路),并且只获得最终结果,而不会知道对方的具体输入值。这一技术在保护数据隐私的同时实现了有效的信息共享与合作。

在逻辑电路中,与门(AND)、或门(OR)和非门(NOT)被认为是基本的逻辑门。这三种逻辑门单独或者组合起来可以实现任何布尔函数,也就是说,理论上可以通过混淆电路支持任意计算。

实现

下图是一位数的加法电路图,为了简单理解,只抽取其中的与门运算来描述混淆电路的计算过程。

画板

画板

画板

画板

画板

秘密共享

描述

秘密共享(Secret Sharing, SS)允许将一个秘密(如密码、密钥等敏感信息)分割成多个部分,并分配给不同的参与者。这些部分单独来看是没有意义的,只有当满足特定条件下的部分被组合起来时,才能恢复出原始的秘密。这种方法不仅增强了数据的安全性,还支持了多方协作过程中对敏感信息的有效保护。

实现

$ y=f(x)=ax^n + bx^{n-1}+…+c $

n次多项式需要n+1个点,可以求得该方程组有唯一解,从而可以唯一确定多项式的系数。因此可以通过构建n次多项式,将一个常数值y=f(0)构建成需要n+1个分片才能恢复的秘密。

画板

画板

画板

画板

同态加密

同态加密(Homomorphic Encryption, HE)是一种特殊的加密形式,它允许直接对密文进行计算,得到的结果解密后与对原始明文执行相同操作得到的结果一致。这种技术使得数据可以在被加密的状态下进行处理,从而在不泄露数据内容的前提下实现数据的共享和利用。

  • 加法同态:如果一个加密方案支持两个密文相加后解密得到的结果等于这两个密文对应的明文之和,则称该加密方案具有加法同态性,即F(x)+F(y)=F(x+y)。
  • 乘法同态:类似地,如果一个加密方案支持两个密文相乘后解密得到的结果等于这两个密文对应的明文之积,则称其具有乘法同态性,即F(x)F(y)=F(xy)。
  • 全同态加密(Fully Homomorphic Encryption, FHE):当一个加密系统同时具备加法同态性和乘法同态性时,则称其为全同态加密。

目前虽然全同态加密的通用性更强,但其性能远低于半同态加密(加法同态和乘法同态),因此在许多实际应用中,人们更倾向于选择更加高效、简便且能满足基本需求的半同态加密技术。

秘钥交换

描述

密钥交换(Diffie-Hellman, DH)是一种允许两方在不安全的通信信道上安全地建立共享秘密的方法,它是现代密码学中非常基础且重要的一个组成部分。通过这个过程,双方可以生成相同的密钥,而无需直接传递该密钥本身,从而避免了密钥被中途截获的风险。

实现

$ f_x(g) = g^x\ mod\ p
$

$ f_b(f_a(g)) = f_b(g^a\ mod\ p)=(g^a\ mod\ p)^b\ mod\ p
$

已知$ (g^a\ mod\ p)^b\ mod\ p = (g^b\ mod\ p)^a\ mod\ p $

则$ f_b(f_a(g)) = f_a(f_b(g)) $

画板

画板

画板

画板

专用协议

以上的MPC协议都是基于电路的通用协议。此类协议的网络带宽开销与电路的规模是线性增长关系。对于大规模计算函数,此量级的网络带宽开销是无法承受的。

因此就存在了为特定问题设计专用协议。与通用协议相比,专用协议可以带来巨大的性能提升,但存在一些明显的缺点:

  1. 需要设计并证明专用协议的安全性
  2. 一般无法将专用协议和通用协议集成到一起。即使存在针对特定函数的高效专用协议,隐私保护应用程序还需要围绕此协议设计额外的预处理或后处理阶段,才能组合使用通用协议和专用协议。在不设计相应转换方案的条件下,一般不可能直接将专用协议和通用协议连接到一起使用
  3. 虽然已经存在针对通用协议的安全性增强技术,但可能无法直接(高效地)增强专用协议的安全性,使其经过简单的修改即可抵御恶意攻击

SPI

PSI(Private Set Intersection)是一种密码学技术,它允许两个或多个参与方在不泄露各自数据集其他信息的情况下,找出它们之间共同拥有的元素。这项技术对于促进跨组织间的数据合作同时保护用户隐私具有重要意义。

画板

HASH-PSI

在有限输入的场景下,HASH-PSI是不安全的。

画板

画板

DH-PSI

$ (g^a\ mod\ p)^b\ mod\ p = (g^b\ mod\ p)^a\ mod\ p $

$ f_b(f_a(g)) = f_a(f_b(g)) $

画板

画板

画板