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

SealPIR数据库进行预处理的相关问题 #107

Open integrationex01 opened 3 months ago

integrationex01 commented 3 months ago

对于算法实现的一些疑问: 对于SealPIR,进行多次查询时 是否 每一次都需要重新对数据库进行预处理? 数据预处理形成的setup文件夹 是否 就是数据库的HE明文数据存储的位置? 当数据量较大时如何进行分桶处理,分桶之后是对每个桶进行一次查询吗?

Yinbenxin commented 3 months ago

1.sealPir如果数据保持不变,可以一次数据预处理,之后重用预处理后的结果。但是一旦数据变化就需要重新进行数据预处理。

  1. setup是否是指PirServerSetup后的结果,隐语框架中Pir并非使用sealPIR而是lablePSI。
  2. 参考sealpir论文中,分桶是使用查询方使用cuckoo hash,数据方使用simple hash 使用每一个位置对应一个桶进行查询。
integrationex01 commented 3 months ago

1.sealPir如果数据保持不变,可以一次数据预处理,之后重用预处理后的结果。但是一旦数据变化就需要重新进行数据预处理。 2. setup是否是指PirServerSetup后的结果,隐语框架中Pir并非使用sealPIR而是lablePSI。 3. 参考sealpir论文中,分桶是使用查询方使用cuckoo hash,数据方使用simple hash 使用每一个位置对应一个桶进行查询。

对于2:查看该项目:secretflow/psi 内实现了seal_pir的相关功能,请问labelpir的相关功能实现在哪呢? 对于3:cuckoo hash主要一次进行多个查询时用于减少开销所用的方法,如若只进行一个查询,该方法还可用吗?对于数据量极大的情况(亿)如何处理呢?

Yinbenxin commented 3 months ago

对于2:secretflow/psi 内实现了seal_pir的相关功能,但是并未被上层的匿踪查询调用,上层pir服务调用的pir是使用lablepsi实现的。 对于3:如若只进行一个查询,该方法不会使用。 对于数据量极大的情况(亿)如何处理呢? 这个问题在seal_pir并未解决,如果想要解决这个问题首先需要克服内存问题,还用计算速度慢的问题。在工程应用上还存在差距。

github-actions[bot] commented 2 months ago

Stale issue message. Please comment to remove stale tag. Otherwise this issue will be closed soon.