Github链接传送:JasonCeng/MultipartyPSI-Pro
大家好,我是阿创,这是我的第29篇原创文章。
今天是一篇纯技术性文章,希望对工程狮们??有所帮助。
向大家推荐一个我最近改造的算法库(JasonCeng/MultipartyPSI-Pro)
主要涉及隐私计算、联邦学习领域,是一个支持多方的隐私求交算法库,主要是是基于osu-crypto/MultipartyPSI****的增强实现。
详细介绍就是下方的README啦~
Programmable Oblivious PRF & multi-party PSI
本算法库是基于osu-crypto/MultipartyPSI的增强实现。
该算法的原论文来自 CCS 2017 : Practical Multi-party Private Set Intersection from Symmetric-Key Techniques[ePrint]
BoostMiraclNTLlibOTe注:对于libOTe,它需要支持PCLMUL、AES-NI和SSE4.1的CPU。 可选:nasm 用于改进 SHA1 性能。
git clone https://github.com/JasonCeng/MultipartyPSI-Pro.git
代码已经在 Windows (Microsoft Visual Studio) 和 Linux 上进行了测试。安装所需的库:
cd ./thirdparty.\all_win.ps1 (该脚本适用于 Visual Studio 2015。对于其他版本,您应该修改 MSBuild 脚本中的几个地方。)cd ./thirdpartybash .\all_linux.get.注意:如果您遇到构建 boost、miracl 和 libOTe 的 all_win.ps1 或 all_linux.get 的问题,请按照 libOTe 上的更多手动说明进行操作)
cryptoTools、libOTe 和libOPRF项目。bOPRFmain项目添加参数(例如:-u)bOPRFmainCMake, Make, g++)./bin/frontend.exe -u输出包括online/offline/total平均运行时长。
-u 单元测试:computes PSI of 5 paries, 2 dishonestly colluding, each with set size 2^12 in semihonest setting-n 参与方数量-p 参与方ID,ID最大的参与方为结果接收方-m set size-t 恶意参与方数量(在不诚实模型设置中生效)-a 以增强半诚实模型模式运行。默认使用Table-based OPPRF算法。 0: Table-based; 1: POLY-seperated; 2-POLY-combined; 3-BloomFilter-r 当 r = 1 时使用优化的3方PSI算法-f 输入数据的文本文件(绝对路径或相对路径均可以)-ip 其他参与方ip,且相对顺序需与-p的编号保持一致。比如-p 0所带的-ip的顺序需为<-p 1 ip>,<-p 2 ip>./bin/frontend.exe -u在半诚实模型设置中,计算3方的PSI,其中包含2个不诚实方,数据存储在data.bin中。
三台机器的ip分别是:192.168.1.10,192.168.1.11,192.168.1.12
# 机器1-192.168.1.10:./bin/frontend.exe -n 3 -t 2 -m 12 -p 0 -f ./data.bin -ip 192.168.1.11,192.168.1.12 > log01.log# 机器2-192.168.1.11:./bin/frontend.exe -n 3 -t 2 -m 12 -p 1 -f ./data.bin -ip 192.168.1.10,192.168.1.12 > log02.log# 机器3-192.168.1.12:./bin/frontend.exe -n 3 -t 2 -m 12 -p 2 -f ./data.bin -ip 192.168.1.10,192.168.1.11 > log03.log注意:-ip后所带的ip为其他参与方ip,且相对顺序需与-p的编号保持一致。比如-p 0所带的-ip的顺序需为<-p 1 ip>,<-p 2 ip>
1. git clone https://github.com/JasonCeng/MultipartyPSI-Pro.git 2. cd thirdparty/3. bash all_linux.get 4. cd ..5. cmake .6. make -j7. 在三台机器上执行:# 机器1:./bin/frontend.exe -n 3 -t 2 -m 12 -p 0 -f ./data.bin -ip 192.168.1.11,192.168.1.12 > log01.log# 机器2:./bin/frontend.exe -n 3 -t 2 -m 12 -p 1 -f ./data.bin -ip 192.168.1.10,192.168.1.12 > log02.log# 机器3:./bin/frontend.exe -n 3 -t 2 -m 12 -p 2 -f ./data.bin -ip 192.168.1.10,192.168.1.11 > log03.log-m-f传入文本文件数据-ip进行多机通信有关构建或运行该算法库的任何问题,请联系 JasonCeng by email: zengzhaochuangx@qq.com
如果你觉得写得不错
麻烦给个赞~
关注我,带你了解区块链行业
推荐阅读:
1、《区块链是构建产业互联网的可信基础设施》
2、《隐私计算布局思考》
3、读书 |《数据资产论》:数据如何资产化?
4、区块链产业发展五大趋势:数据安全、科技监管、自主可控、双碳战略、数字经济
5、揭秘北京冬奥会开幕式“数字雪花”背后的区块链技术
6、Web3对于我们普通人意味着什么?
7、最近火爆的数字藏品究竟是什么?
提前看到未来的人,
和花一辈子都看不清的人,
注定是截然不同的命运。
点击下方卡片关注101链视界,和1000+读者**一起**
洞察技术本质

101链视界
区块链、隐私计算与金融科技领域的专业知识分享者。
29篇原创内容
公众号
▲ 点击上方卡片关注101链视界,洞察技术本质
技术交流 | 行业研报 | 前沿洞察 | 转载开白 | 加入社群
请在公众号后台回复 合作
欢迎把文章分享到朋友圈
点击JasonCeng/MultipartyPSI-Pro直达Github****链接