【密码学】【安全多方计算】浅析隐私求交PSI

文章目录

    • 隐私求交的定义
    • 隐私求交方案介绍
      • 1. 基于DH的PSI方案
      • 2. 基于OT的PSI方案
      • 3.基于OPRF的PSI方案
    • 总结

隐私求交的定义

隐私集合求交使得持有数据参与方通过计算得到集合的交集数据,而不泄露任何交集以外的数据信息。

隐私求交方案介绍

1. 基于DH的PSI方案

基于DH的PSI方案[3]流程如图3.1所示,该方案基于DH密钥交换的思路,实现两次可以交换加密顺序的加密操作,使得参与双方对于交集数据,得到完全相同的不可逆密文。
【密码学】【安全多方计算】浅析隐私求交PSI_第1张图片

基于DH的PSI方案主要分为以下3个步骤:
a. Alice选择随机数作为私钥。对于每一个数据x,Alice首先对其进行哈希操作,再基于其哈希值使用私钥对其加密,生成密文,并将此密文发送给Bob。
b. Bob选择随机数作为私钥。对于每一个数据y,Bob首先对其进行哈希操作,再基于其哈希值使用私钥对其加密,并将此密文发送给Alice。对于接收到Alice的密文,Bob使用私钥对其进行二次加密。
c. Alice对于接收到的密文,基于私钥对其进行二次加密
结论:若Alice和Bob拥有相同的数据,则两次加密得到的密文一致。
基于DH的PSI方案思想简单,易于实现,但也具有一定的局限性,例如:基于公钥加密实现PSI功能会产生较大的计算开销。因此,适用于数据量较小的场景。

2. 基于OT的PSI方案

在本部分,我们简述经典的基于OT的PSI方案,其流程如图3.3所示。该方案的核心思想为执行多次二选一的不经意传输协议,并结合伪随机函数,使得参与双方对于交集数据得到相同的随机数。
【密码学】【安全多方计算】浅析隐私求交PSI_第2张图片
基于OT的PSI方案主要分为以下3个步骤:

  1. Alice生成随机数w;Bob生成随机数,并基于与本方数据的伪随机函数值生成.
  2. Alice与Bob基于w和执行次二选一的不经意传输,其中为的长度。
    Alice基于多次不经意传输结果生成q,Bob计算的哈希值。
  3. Alice计算本方数据的随机值。
    结论:若Alice和Bob拥有相同的数据,则两份数据得到相同的随机值
    我们以两种极端情况论述方案的正确性:
    【密码学】【安全多方计算】浅析隐私求交PSI_第3张图片
    基于OT的PSI方案规避了大量的公钥加密,使用效率更高的对称加密完成大部分操作,但通信开销较大,适用于数据量较大的场景。
    经典的基于OT的PSI方案仍具有很大的计算开销及通信开销,但是OT的扩展协议为构建高效的PSI方案提供了理论支撑。在3.3中,我们以OPRF为例,介绍基于OT扩展协议的高效PSI方案。

3.基于OPRF的PSI方案

预备知识
不经意伪随机函数(Oblivious Pseudorandom Function, OPRF)[5]属于不经意传输的扩展协议,它允许执行少量的基础OT,通过轻量级的对称加密来实现大量的OT实例。OPRF的功能如下图所示。
Alice生成伪随机函数的密钥k,可基于k获得本方数据x的伪随机函数值。Bob以本方数据y作为OPRF协议的输入,协议执行完成后,Bob可得到y的伪随机函数值,但无法获得关于k的任何信息。
【密码学】【安全多方计算】浅析隐私求交PSI_第4张图片
方案详解
在本部分,我们简述基于OPRF的PSI方案,其总体流程如上图所示。为便于阐述,我们将Alice作为数据拥有者,记为DO(Data Owner);Bob作为请求者,记为Re(Requester)。
【密码学】【安全多方计算】浅析隐私求交PSI_第5张图片
我们将基于OPRF的PSI方案分为以下步骤进行阐述:

  1. 请求者将数据映射为,映射过程如上图所示。首先,请求者随机生成m行w列的二进制矩阵A,其中m为数据集大小。对于每个数据,请求者计算其伪随机函数值,并将伪随机函数值与二进制矩阵A相结合,获取二进制比特串。同时,将对应位置标记为数据位(如上图中蓝色部分)。然后,基于二进制比特串执行哈希操作,得到数据映射值。
    【密码学】【安全多方计算】浅析隐私求交PSI_第6张图片
  2. 请求者生成矩阵B。请求者生成一个m行w列的全1矩阵D,将第1步标记的数据位部分置为0。然后,将矩阵A与矩阵D执行异或操作得到矩阵B。因此,矩阵A、B具有如下特性:矩阵A、B对于数据位的比特值相同;对于非数据位的比特值相反。这一步主要是为了二选一的不经意传输做准备。
    【密码学】【安全多方计算】浅析隐私求交PSI_第7张图片
  3. 数据拥有者获得矩阵C,这一步的核心思想是请求者与数据拥有者执行w次不经意传输,其执行过程如上图所示。通过1、2步,请求者已获得A、B矩阵;在第3步,数据拥有者生成长度为w的二进制比特串。在每一次OT执行中,请求者以A、B矩阵的第i列作为输入;数据拥有者以比特串s的第i位{s[i]}作为输入。若s[i]=0,则数据拥有者得到列;若s[i]=1,则数据拥有者得到列. 最终,数据拥有者得到矩阵C。矩阵A、B、C具有如下特性:此三个矩阵对于数据为的比特值相同;而通过不经意传输,矩阵C的非数据位已被置乱。
    【密码学】【安全多方计算】浅析隐私求交PSI_第8张图片
  4. 数据拥有者将数据映射为,映射过程如上图所示。对于每个数据,这一步与第1步的流程类似,其目的是为了对于参与双方的交集数据生成完全相同的随机映射值。首先,数据拥有者计算其本方数据的伪随机函数值,并将伪随机函数值与第3步得到的二进制矩阵C相结合,获取二进制比特串然后,基于二进制比特串执行哈希操作,得到数据映射值。
    【密码学】【安全多方计算】浅析隐私求交PSI_第9张图片
  5. 数据拥有者将其本方所有数据映射值发给请求者,请求者对比两方数据映射值确定交集数据,而其不会获得数据拥有者的任何非交集数据信息。至此,协议完成,

总结

本文介绍了基于两方对称数据集的三种隐私集合求交方案,其中基于DH的PSI方案适用于小数据的场景;基于OT的PSI方案适用于大数据集的场景,但其依然有较大的通信开销,因此,介绍了基于OPRF的PSI方案,其在计算开销和通信开销方面均具有良好的表现。

你可能感兴趣的:(密码学,安全,网络,区块链,mpc,多方安全计算,隐私计算)