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
21 stars 16 forks source link

关于unbalance psi中EcdhOprfPsiServer::FullEvaluate函数实现的疑问 #129

Closed shenpeilin closed 2 months ago

shenpeilin commented 2 months ago

EcdhOprfPsiServer::FullEvaluate是unbalance psi调用链路中的一个函数,我关注到在这个函数中调用了oprfserver->SimpleEvaluate(batch_items[0])来计算最后的oprf值,我想了解下这一实现是否存在问题,因为这看起来其实算出来的是一个HASH值。

按照https://www.secretflow.org.cn/en/docs/psi/v0.3.0beta/development/psi_protocol_intro#ecdh-oprf-based-psi 中的协议描述,此处似乎应该调用oprfserver->FullEvaluate(batch_items[0])?

6fj commented 2 months ago

hi @shenpeilin ,

SimpleEvaluate中最后一步会做一次hash,在此之前会做椭圆曲线上的点乘。

shenpeilin commented 2 months ago

@6fj 但按照文档的描述难道不是应该算H2(y,H1(y)^beta )?目前看起来实现上其实是H2(H1(y)^beta )是吗?

6fj commented 2 months ago

@6fj 但按照文档的描述难道不是应该算H2(y,H1(y)^beta )?目前看起来实现上其实是H2(H1(y)^beta )是吗?

文档的书写确实有点不清晰,我们会尽快调整文档,感谢!

6fj commented 2 months ago

EcdhOprfPsiServer::FullEvaluate是unbalance psi调用链路中的一个函数,我关注到在这个函数中调用了oprfserver->SimpleEvaluate(batch_items[0])来计算最后的oprf值,我想了解下这一实现是否存在问题,因为这看起来其实算出来的是一个HASH值。

按照https://www.secretflow.org.cn/en/docs/psi/v0.3.0beta/development/psi_protocol_intro#ecdh-oprf-based-psi 中的协议描述,此处似乎应该调用oprfserver->FullEvaluate(batch_items[0])?

更新一下回答,这里不是在计算oprf值,oprf在线阶段的计算是client完成的

6fj commented 2 months ago

目前文档的图片已经更新:https://www.secretflow.org.cn/en/docs/psi/v0.4.0.dev240521/development/psi_protocol_intro#ecdh-oprf-based-psi