根据上一篇对APSI简单例子的流程分析
核心有两个算法
1 OPRF交互
2 PSI交互
3 有标签的PIR
由于原算法库是APSI的C++算法库,为了Java调用方便寻找其他类库的相似算法,以mpc4j为例子。
github地址:https://github.com/alibaba-edu/mpc4j/
1 OPRF交互
mpc4j的mpc4j-s2pc-opf
mpc4j-s2pc-opf/src/main/java/edu/alibaba/mpc4j/s2pc/opf/oprf
2 PSI交互
不平衡PSI
mpc4j的mpc4j-s2pc-pso
mpc4j-s2pc-pso/src/main/java/edu/alibaba/mpc4j/s2pc/pso/psi
3 有标签的PIR(只实现了CCS2021)
mpc4j-s2pc-pir
4 私有集操作mpc4j-s2pc-pso
和 mpc4j-s2pc-pjc
4 测试类
在mpc4j的readme里有介绍包含算法库
- OPRF-PSI : CRYPTO 2020上发表的论文“Private Set Intersection in the Internet Setting From Lightweight Oblivious PRF”的实现。我们介绍其 OPRF 实现
mpc4j
。详情请oprf
参阅。mpc4j-s2pc-pso
- APSI : CCS 2021发表的论文“Labeled PSI from Homomorphic Encryption with Decred Computation and Communication”的实现。对于其源代码,我们了解如何使用完全同态加密 (FHE) 库SEAL。不平衡私有集交集 (UPSI) 的大部分代码部分来自 ASPI。我们还调整6857-private-categorization的编码部分以支持任意位长度元素。详情请参阅和
mpc4j-native-fhe
。mpc4j-s2pc-pso
APSI中使用的hash函数是布谷鸟hash
在mpc4j-s2pc-pso包中
测试类PsuTest 函数testPto 入参config选择GMR21