Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
coderSun20201112 opened this issue Apr 27, 2024 · 3 comments
Closed

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

coderSun20201112 opened this issue Apr 27, 2024 · 3 comments
Assignees

Comments

@coderSun20201112
Copy link

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.

@6fj 6fj transferred this issue from secretflow/secretflow Apr 28, 2024
@qxzhou1010
Copy link
Contributor

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

根据目前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
Copy link
Author

老师,你好,我看到消息后,又重新看了《隐私计算学习笔记:第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
Copy link
Contributor

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

@6fj 6fj closed this as completed May 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants