隐私计算实训营第四期:隐私求交PSI
- 安全求交集(PSI)定义
- PSI功能和分类
-
- [最基础的PSI:Two-Party Semi-Honest PSI](#最基础的PSI:Two-Party Semi-Honest PSI)
- [如何设计Two-Party Semi-Honest PSI](#如何设计Two-Party Semi-Honest PSI)
-
- 方法1:一个基于Hash的PSI
- 方法2:基于Diffie-Hellman密钥交换的PSI
- 方法3:基于不经意伪随机函数(OPRF)的PSI
-
- [Oblivious Pseudo-Random Function,OPRF](#Oblivious Pseudo-Random Function,OPRF)
- [Cuckoo Hashing and Simple Hashing](#Cuckoo Hashing and Simple Hashing)
- 应用
- PSI最新进展
-
- 离线优化阶段
- [使用新方法替换掉Cukcoo hashing](#使用新方法替换掉Cukcoo hashing)
- 在交集上支持安全计算
- 亿级计算
- 分钟级别完成
- PSI和其他隐私计算技术结合
-
- [PSI + DP](#PSI + DP)
-
- [case1:PSI Intersection Use](#case1:PSI Intersection Use)
- case2:性能提升
- [PSI + TEE](#PSI + TEE)
安全求交集(PSI)定义
- 安全求交集:Private Set Intersection(PSI)
- Ailce 有集合X,Bob 有集合Y,在进行了PSI之后,Alice可以拿到X与Y的交集,但是不会知道Y中的其他元素。
PSI功能和分类
最基础的PSI:Two-Party Semi-Honest PSI
-
用途:计算交集。
- 交集可以被双方或者一方看到;
- 保护非交集元素;
-
什么是半诚实安全?
- 假设双方为Alice和Bob,其中Alice是攻击者,Alice严格遵守和执行协议,但是对Bob的隐私感兴趣。
如何设计Two-Party Semi-Honest PSI
- 挑战1:隐藏非交集元素(hiding)
- 密码学级别的安全隐藏。
- 可以通过添加噪声来实现信息隐藏。
- 挑战2:计算交集元素(comparing)
- 当两元素相等时,即使添加了噪声也应该被计算出来。
- 挑战3:效率高(efficiency)
- PSI应用范围广泛,所以应该保证高效率。
方法1:一个基于Hash的PSI
实际上这种方法并不安全。
- 基础想法:对元素进行Hash后进行比较。
- 这里的Hash函数应该是密码学上的Hash,不能进行逆运算。
- 不能出现碰撞,或者碰撞概率极低。
- 方法示意图如下:
接收者和发送者分别对他们持有的元素进行Hash,然后对Hash结果进行比较。
- 方法属性:
- Hiding:Hash函数不可逆。
- Comparing:相同的元素有相同的Hash值。
- Efficiency:Hash函数运算效率高。
- 方法存在的问题:
- 如果双方的元素是高熵的,那么方法1是大致可行的。
- 如果X集合和Y集合是无限长的,那么 穷举攻击大概就失效了。但是现实生活中集合不可能是无限长的,而是有限长度的(如身份证号)。
方法2:基于Diffie-Hellman密钥交换的PSI
-
基础想法:该方法看起来像"Double Encryption"
- Alice对自己的集合进行"加密"发送给Bob,Bob再对自己的集合进行"加密"发送给Alice,双方对对方发来的密文再"加密"一次,如果元素相同的话再次"加密"得到的数据是一样的。
-
方法属性:
- Hiding:明文数据被加密为"密文"数据。
- Comparing:"加密"满足交换律,与加密次序无关。
- Efficiency:DH加密效率高。
-
Diffie-Hellman 密钥交换
- Discrete Logarithm Problem(DLP):给定四个大整数 p 、 g 、 x 、 y p、g、x、y p、g、x、y,满足 g x = y m o d p g^x=y\ mod\ p gx=y mod p,其中 p p p 是一个大素数。满足这样的公示下找到 x x x 是困难的。
- 计算 g x m o d p g^x\ mod \ p gx mod p 是高效的。(Efficiency)
- 给定 y 、 g 、 p y、g、p y、g、p 来求解 x x x 是困难的。(Hiding)
- g x y m o d p g^{xy}\ mod\ p gxy mod p 与 g y x m o d p g^{yx}\ mod\ p gyx mod p 是相等的。(Comparing)(交换律)
-
方法示意图如下:
接收方先把自己的元素通过密钥a做Hash发送给发送方,发送方对接收到的数据通过自己的密钥b再做Hash后发送给接收方,接收方使用自己的密钥a计算接收到的密文,然后做比较。
方法3:基于不经意伪随机函数(OPRF)的PSI
- 不经意伪随机函数(OPRF)
- 基础想法:发送方在自己的集合上计算伪随机函数,然后讲结果发送给接收方;接收方在自己的集合上通过与发送方交互来计算相同的伪随机函数。
- 方法属性:
- Hiding:发送方不会得到接收方的明文数据,接收方不知道伪随机函数的计算细节。
- Comparing:相同的数据使用相同的伪随机函数计算后得到的结果是相同的。
- Efficiency:OPRF效率高。
Oblivious Pseudo-Random Function,OPRF
- 什么是不经意伪随机函数(Oblivious Pseudo-Random Function,OPRF)
- OPRF:给定一个 k k k,它来自发送方,给定一个输入元素 e e e ,它来自接收方。
- 双方交互地计算 F k ( e ) F_k(e) Fk(e);
- 接收方知道输出值 F k ( e ) F_k(e) Fk(e) 但是不知道密钥 k k k;
- 发送方不知道输出值 F k ( e ) F_k(e) Fk(e) 和输入值 e e e 。
- OPRF:给定一个 k k k,它来自发送方,给定一个输入元素 e e e ,它来自接收方。
- OPRF for PSI
- 接收方在自己的集合上使用发送方发来的密钥 k k k 计算OPRF;
- 发送方在自己的集合上评估OPRF,并把结果发送给接收方;
- 接受方通过OPRF计算交集。
- OPRF示意图如下:
Cuckoo Hashing and Simple Hashing
- 接收方使用cuckoo hash来插入他的元素到哈希表;
- 发送方使用简单hash讲他的元素插入到哈希表;
- 该方法把OPRF的 O ( n 2 ) O(n^2) O(n2) 次比较减少到 O ( n ) O(n) O(n).
- 该方法如图:
- 基于OPRF的方法(KKRT PSI Protocol)总结如下图:
应用
- 设计黑/白明单,撞库等等
交集使用
- 动机
- 交集可能并不是自身数据,而是属于第三方。
case1:交集是秘密的,但是交集的元素个数是可知的。
- 只有交集的元素个数对授权方可见。
- 实现方法:
- PHE + Polynomial evaluation
- DH-based PSI with shuffle
case2:交集是秘密的,但是和交集相关的数据是可用的。
- 交集是加密的,但是交集里的相关数据对于授权方可见。
- 实现方法:
- 基于电路的PSI
- DH-PSI with permutation and PHE
case3:交集是秘密的,但是交集的统计信息可见。
- 实现方法:
- FHE PSI + Differential Privacy
- DH-PSI + Differential Privacy
多方PSI
常规多方PSI
- 动机
- 只有 N N N 方的交集才可见。
- 挑战
- 任意两方的交集不可见;
- 实现方法:
- PHE + Polynomial representation
- OPPRF
特殊多方PSI
- 动机
- 交集在某些两方之间计算,然后结果对一些特殊的参与者可见。
- 挑战
- 需要次次修改系统;
- 需要定制算法。
- 实现方法:
- PSI protocol with customization based on requirements
计算模型
One-way Model
- 动机
- 只有一方知道交集。
- 实现方法:
- OPRF-based PSI
Mutual Model
- 动机
- 两方都能看到交集。
- 实现方法:
- DH-PSI
安全模型
半诚实安全PSI
- 动机
- 简单、高效
- 大部分隐私计算都是用半诚实PSI
- 挑战
- 安全假设太强。
恶意安全PSI
- 动机
- 更强的安全性。
- 更现实的安全性假设。
- 定义了恶意敌手。
- 挑战
- 更多的计算和通信开销。
- 实现方法:
- PSI protocol with extra verification
非对称PSI
-
动机
- 一方比另一方持有多的元素;
- 现实中的场景更多。
-
挑战
- 在非对称PSI情境下对称PSI的方法效率较低。
-
实现方法:
- ECC-OPRF-PSI
- FHE PSI
PSI最新进展
离线优化阶段
- 使用最新的OT
- 使用VOLE替换OT
使用新方法替换掉Cukcoo hashing
- 引入 Probe-and-Xor-of-Strings(PaXos)
- 引入 Oblivious Key-Value Store(OKVS)
在交集上支持安全计算
- Programmable OPRF
- PSI with DP
亿级计算
- 高带宽
- 高算力
分钟级别完成
PSI和其他隐私计算技术结合
PSI + DP
- 差分隐私是用来保护个体元素的。
case1:PSI Intersection Use
- 动机
- 添加噪声,在统计学上是正确的,但是一个元素是否是交集元素变成 "DP难"问题。
- 挑战
- 交集是加密的,一方需要在密文上调价噪声很困难。
- 实现方法:
- FHE-PSI + DP
- DH-PSI + DP
case2:性能提升
- 通过DP减少padding的大小。
PSI + TEE
- 原始想法:
- TEE creates salt;
- 参与方使用salt哈希数据;
- TEE知道交集;
- TEE可以将结果发送给参与方。
- 简单、高效、灵活。
- 并不是密码学的方法,是硬件方法。