secretflow / psi

The repo of Private Set Intersection(PSI) and Private Information Retrieval(PIR) from SecretFlow.
https://www.secretflow.org.cn/docs/psi
Apache License 2.0
22 stars 16 forks source link

关于Labeled PSI交互流程的疑问 #118

Closed coderSun20201112 closed 2 months ago

coderSun20201112 commented 2 months ago

Issue Type

Others

Source

source

Secretflow Version

1.5.0.dev240319

OS Platform and Distribution

centos 7.9

Python version

3.10

Bazel version

6.5.0

GCC/Compiler version

11.2.1

What happend and What you expected to happen.

老师,我在查看Labeled PSI(APSI)时根据官方的资料,其整个流程要经过4个阶段,分别是:Request Params -> Setup Server DB -> Request OPRF -> Request Query,我又结合《星河杯“黑名单共享查询”赛题基于隐语实现baseline》对keyword PIR的解释,我有如下疑问:
Q1:Request Params要获取什么方面的参数,这些参数在未来阶段起到什么作用?具体参数是felts_per_item,还是hash_func_count、table_size、max_items_per_bin,还是其他内容?
Q2:Setup Server DB是不是负责拆分key-value为查询多项式、插值多项式的阶段?这个阶段需要客户端公钥参与吗?
Q3:为什么会存在Request Query,既然通过OPRF得出了同态计算结果,直接返回给客户端即可,那客户端为什么要再发一次Query?

Reproduction code to reproduce the issue.

qxzhou1010 commented 2 months ago

您好,您说的官方的资料具体指的是?

根据目前repo中的实现回答如下:

  1. 是为了获取PSIParams,其中包含的参数有 item_bit_count_min/max, ItemParams, TableParams, QueryParams......,APSI方案中包含的参数较多,此处就不一一列举了,请参考源码。
  2. “Setup Server DB”, 应该对应本repo实现中的 ISenderDB::SetData。不需要客户端公钥参与。
  3. OPRF是协议用来对Sender和Receive的原始keyword做处理的,和最后的真正的Label PSI 的计算是两件事情。
coderSun20201112 commented 2 months ago

老师,你好,我看到消息后,又重新看了《隐私计算学习笔记:第6讲 隐语PIR介绍及开发实践》(https://bbs.csdn.net/topics/618346089),同时结合自己的理解,又有几个问题想请教下: Q1:服务端预处理(setup)阶段中,是不是只对prf前128bit求哈希,然后再对该哈希值求匹配多项式、插值多项式? Q2:服务端预处理(setup)阶段中,将插值多项式系统packing到同态算法明文,这里提到的明文,就是明文,而不是密文,对吧? Q3:客户端和服务端(query)阶段中,执行oprf协议,这里服务端应该传入一个密钥k,客户端传入一个x,最后客户端得到一个Fk(X),因此我想问一下这个服务端密钥k是来源于哪里? Q4:客户端和服务端(query)阶段中,使用同态私钥解密,这里的同态私钥就是oprf的前128bit吗? Q5:客户端和服务端(query)阶段中,使用oprf后128bit解密lable,这块能细说一下吗,因为我没见服务端是在哪个环节对lable加密的,同时,后端又是如何查询的?

qxzhou1010 commented 2 months ago

建议参考 https://github.com/microsoft/APSI 中 README 的介绍部分,可以对该方案有一个全面细致的理解。相比我直接告诉你答案,你自己探索并且回答能够学习到更多,也更深入。并且,非常期待你看完其中的介绍部分,能够回到这个issue,回答出你提出的这些问题。