隐私求交(PSI)技术原理分析
一、基础概念定义
1. 什么是隐私求交 PSI(Private Set Intersection)
两方参与场景:A 方持有集合 X,B 方持有集合 Y,双方仅能得到交集 X∩YX∩YX∩Y,且不能获取对方集合中不在交集中的任何元素。
核心约束(安全目标):
-
正确性:输出一定是真实交集;
-
隐私性:
-
A 无法知道 Y 中不属于交集的数据;
-
B 无法知道 X 中不属于交集的数据;
-
-
公平性:理想 PSI 双方同时拿到结果,无一方单方面窃取全部数据;
-
无第三方:主流 PSI 为两方本地计算,不需要可信第三方 TTP。
典型业务场景:广告人群匹配、金融多头借贷排查、医疗病例重合、政务数据互通、可信数据空间。
2. 安全模型分类
-
半诚实模型(Honest-but-Curious)
双方严格执行协议,但会记录所有交互数据尝试推导对方隐私;工业界绝大多数 PSI 采用该模型,性能最优。 -
恶意模型(Malicious)
参与方可篡改输入、伪造消息欺骗对方;安全性更强,但计算 / 通信开销极高,极少落地。
二、四大主流 PSI 技术路线原理拆解
路线 1:朴素哈希 PSI(基础入门,无密码学安全,仅脱敏)
原理流程
-
A、B 各自对本地集合元素做单向哈希 h(x)h(x)h(x),加盐防止彩虹表;
-
双方交换全部哈希值;
-
本地比对哈希重合项,还原交集。
缺陷(不满足严格隐私)
-
无盐泄露哈希可暴力枚举原始数据;
-
对方能完整获取你所有元素哈希,泄露集合大小、元素分布;
仅适用于低敏感场景,不属于密码学安全 PSI。
路线 2:基于不经意传输 OT 的 PSI(经典安全 PSI,通用标准)
不经意传输 OT 是底层密码原语:发送方持有 (m0,m1)(m_0,m_1)(m0,m1),接收方选 b∈0,1b∈{0,1}b∈0,1,仅获取 mbm_bmb,发送方不知道 b。
PSI 基于1-out-of-N OT扩展实现。
2.1 基础 OT-PSI 完整流程(半诚实)
设 A 输入集合 X,B 输入集合 Y
-
OT 初始化
B 作为接收方,生成 OT 选择向量;A 作为发送方,构造每个元素的密码掩码; -
集合布隆编码
双方将集合映射到布隆过滤器 / 二进制向量,压缩元素为固定长度比特串,降低 OT 交互次数; -
多轮不经意传输交互
对每一个编码位置执行 OT:-
A 持有两条加密数据;
-
B 仅取回与自身集合匹配的那条密文;
A 全程无法获知 B 选中哪些位置;
-
-
本地解密求交
B 用 OT 取回的密钥解密,得到双方共同匹配元素,即为交集;A 无法得到任何 B 的私有元素。
2.2 优化:OT 扩展 OT-Extension
原生 OT 运算开销极大(基于公钥加密),工业界用少量基础 OT 生成大量伪随机 OT,把百万级元素 PSI 成本降低百倍,代表实现:KKRT16(当前 OT-PSI 性能标杆)。
优缺点
-
优势:通用、支持任意字符串 / 数字输入、安全证明完备;
-
劣势:通信量随集合规模线性增长,超大规模集合(千万级)带宽压力大。
路线 3:基于同态加密 HE 的 PSI(云端友好,计算密集)
采用部分同态加密 PHE(Paillier、ElGamal),支持密文加法,不支持乘法。
核心原理
-
客户端 A 加密全部集合元素 Enc(xi)Enc(x_i)Enc(xi) 发送给服务端 B;
-
B 本地对密文做匹配运算:对每个本地 y,计算 ∏(Enc(xi)−Enc(y))\prod (Enc(x_i)-Enc(y))∏(Enc(xi)−Enc(y));
若存在相等 x=y,乘积密文为 0 密文; -
B 将所有乘积密文返回 A,A 解密;解密结果为 0 对应的元素就是交集。
变种:阈值同态 PSI
引入多项式映射:把集合元素映射到多项式根,密文计算多项式求值,大幅减少交互次数。
优缺点
-
优势:交互轮次极少(1-2 轮),适合跨地域、低带宽场景;计算可外包给第三方算力节点;
-
劣势:大数模运算 CPU 消耗极高,千万级集合延迟显著;密文膨胀严重。
路线 4:基于不经意布隆过滤器 / 伪随机函数 OPRF-PSI(工业落地最主流,高性能)
OPRF:不经意伪随机函数,核心原语:
-
客户端输入 x,服务端持有密钥 k;
-
客户端得到 Fk(x)F_k(x)Fk(x),但看不到 k;
-
服务端看不到 x,只能看到加密后的盲化值。
OPRF-PSI 完整流程(标准实现:RR17)
参与方:客户端 C、服务端 S
-
客户端盲化本地集合
C 对每个元素 x 生成随机盲因子 r,计算盲化值 Blind(x)=h(x)⋅rBlind(x)=h(x)·rBlind(x)=h(x)⋅r,全部发给 S; -
服务端 OPRF 加密
S 持密钥 k,对所有盲化值计算 Fk(Blind(x))F_k(Blind(x))Fk(Blind(x)) 回传给 C;S 全程不知道原始 x; -
客户端去盲
C 用本地 r 逆运算消去盲因子,得到 Fk(h(x))F_k(h(x))Fk(h(x))(仅客户端拥有自身集合加密结果); -
服务端本地生成加密集合
S 用密钥 k 本地计算自己全部集合 Y:Fk(h(y))F_k(h(y))Fk(h(y)),不对外泄露原始 y; -
双方交换短摘要
C 把自己的 OPRF 结果集合做压缩摘要发给 S,S 本地比对重合摘要; -
返回交集标识,完成匹配。
关键安全特性
-
S 看不到 C 原始数据;C 无法推导密钥 k,不能伪造 S 侧加密值;
-
可搭配布隆过滤器、Cuckoo 哈希压缩数据,通信量远小于 OT-PSI;
优缺点
-
优势:综合性能最强,千万级集合毫秒 / 秒级完成;通信、计算开销均衡,广告、金融广泛商用;
-
劣势:依赖 OPRF 密码原语,恶意模型下需额外零知识证明加固。
三、进阶优化技术原理(工程落地核心)
1. 布隆过滤器 Bloom Filter 压缩
双方集合先映射到定长二进制数组,存在元素则对应位置 1,大幅减少交互数据量;
配合 OPRF/OT 使用,解决海量元素逐条传输的带宽瓶颈;
代价:极低概率假阳性,可二次校验消除。
2. 分桶 PSI Hash Bucket
将集合按哈希分段分桶,仅同桶元素执行密码学匹配,桶间无交互;
将整体复杂度从 O(N∗M)O(N*M)O(N∗M) 降到接近线性,亿级集合必备优化。
3. 批量 OPRF / 批处理 OT
利用向量密码运算,一次密码操作批量处理上千个元素,降低单次公钥运算耗时。
4. 差分隐私结合 PSI
在交集结果中加入微小噪声,防止对方通过交集大小反推自身集合规模,适用于强合规监管场景。
四、四种技术路线横向对比
| 技术路线 | 底层原语 | 计算开销 | 通信开销 | 适用规模 | 商用成熟度 |
|---|---|---|---|---|---|
| 哈希匹配 | 单向哈希 | 极低 | 高 | 万级以内低敏感 | 低(无安全证明) |
| OT-PSI | 不经意传输 | 中 | 高 | 十万~百万 | 中高 |
| HE-PSI | 部分同态加密 | 极高 | 极低 | 十万以内、低带宽 | 低 |
| OPRF-PSI | 不经意伪随机函数 | 低 | 低 | 百万~亿级 | 极高(主流) |
五、安全风险与底层密码学约束
-
集合基数泄露
标准 PSI 会泄露交集大小;若需隐藏交集数量,需基于零知识证明的隐藏基数 PSI,性能大幅下降。 -
暴力枚举攻击
若元素值域狭小(手机号、身份证前缀),单纯 OPRF 存在枚举风险,需加盐、分层哈希加固。 -
中间人攻击
无 TLS / 身份认证时,攻击者可篡改交互密文,需双方证书身份绑定。 -
恶意输入攻击
恶意方可构造特殊输入试探对方集合,恶意 PSI 协议搭配 ZKP 零知识证明抵御。
六、完整安全 PSI 标准执行流程(OPRF 工业版)
-
双方双向身份认证(CA 证书);
-
协商 OPRF 密钥参数、哈希盐值、布隆过滤器长度;
-
客户端盲化元素上传服务端;
-
服务端执行 OPRF 加密返回;
-
客户端去盲得到己方加密集合;
-
服务端本地生成自身加密集合;
-
客户端下发加密集合摘要;
-
服务端本地匹配得到交集加密标识,返回客户端;
-
双方仅持有交集,无法获取对方独有的任意元素;
-
可选:差分隐私扰动交集统计数据。
七、PSI 延伸变体原理
-
PSU 隐私求并集:仅输出并集,隐藏独有数据;
-
PSM 隐私集合匹配(带标签):匹配后附带业务标签,标签同步加密;
-
多方 PSI MPSI:三方及以上求交,基于分布式 OPRF / 分布式 OT,多用于政务多部门数据互通;
-
跨域可信 PSI:结合可信执行环境 TEE(SGX / 国密 TEE),密码学 + 硬件双重安全,信创数据空间主流方案。
八、国密适配改造原理
商用密码改造 PSI 核心替换底层原语:
-
哈希:SHA256 → SM3;
-
非对称加密 OT/OPRF 底层:RSA/ECC → SM2;
-
同态加密替换为基于 SM2 的国产部分同态方案;
全程不泄露明文,符合等保、数据安全法、可信数据空间规范。
2301

被折叠的 条评论
为什么被折叠?



