【课堂笔记】隐私计算实训营第四期:隐私求交PSI

隐私计算实训营第四期:隐私求交PSI

安全求交集(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

  • Diffie-Hellman

  • 基础想法:该方法看起来像"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 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可以将结果发送给参与方。
  • 简单、高效、灵活。
  • 并不是密码学的方法,是硬件方法。
相关推荐
初学者7.13 分钟前
Webpack学习笔记(2)
笔记·学习·webpack
sjsjs1119 分钟前
【多维DP】力扣3122. 使矩阵满足条件的最少操作次数
算法·leetcode·矩阵
哲学之窗21 分钟前
齐次矩阵包含平移和旋转
线性代数·算法·矩阵
Sudo_Wang1 小时前
力扣150题
算法·leetcode·职场和发展
qystca1 小时前
洛谷 P1595 信封问题 C语言dp
算法
芳菲菲其弥章1 小时前
数据结构经典算法总复习(下卷)
数据结构·算法
新手上路狂踩坑1 小时前
Android Studio的笔记--BusyBox相关
android·linux·笔记·android studio·busybox
我是一只来自东方的鸭.1 小时前
1. K11504 天平[Not so Mobile,UVa839]
数据结构·b树·算法
星语心愿.2 小时前
D4——贪心练习
c++·算法·贪心算法
光头man2 小时前
【八大排序(二)】希尔排序
算法·排序算法