查看原文
其他

一起学MPC:(一)百万富翁问题

张钊淞 隐私计算研习社 2023-04-07

多方安全计算是一门重要的隐私计算技术,研习社希望通过开展《一起学MPC》系列对MPC的基本知识进行讲解,让读者对MPC有一定的了解,在此基础上,大家相互学习、交流,营造一个良好的隐私计算技术学习氛围。本次介绍的是百万富翁财产比较问题:两个百万富翁Alice和Bob,他们想要比较一下谁的财富更多,但是又不想让对方知道自己的具体财产,这种情况下应该如何比较呢?这个百万富翁问题是姚期智院士在1982年提出的问题,也就此打开了多方安全计算的大门。

问题描述:Alice有亿元,Bob有亿元,为方便描述,我们限定现在想在不暴露的情况下,比较的大小。
解决思路:假设有10个宝箱,编号为1到10,Alice可以打开这10个箱子,而Bob不能。第一步Alice找到编号为的箱子,并将编号为1到的箱子里都放个纸条"no",编号为的箱子里放个纸条"yes",然后锁上箱子。第二步Bob根据自己的资产选择编号为的箱子,并把这个箱子的编号撕掉并返回给Alice。(撕掉编号是为了让Alice也不知道Bob到底选了哪个箱子)第三步Alice把Bob发的箱子打开,看一下里面的纸条,如果是"no"就说明, "yes"就说明由此可以在互不知道对方财产的前提下,比较二人的财富。
当然上述描述的是一种实际的解决方法,下面将用数学过程来描述。
数学过程
我们假设Alice手里有一对密钥,并把公钥发给Bob。
第一步:Bob选择一个大数,并利用公钥进行加密得到 ,接着计算,并把发送给Alice。第二步:Alice通过可以计算,并对每个计算结果都通过私钥进行解密,即得到,,...
再将上面10个结果对素数p进行模运算,得到,,...然后Alice让都不变,让都加1,再把这十个数都发送给Bob。(类似于在箱子里写纸条)最后Bob进行"开箱操作",拿到,如果等于则说明,若不等于则说明
上述表达如果有误请在留言区指出,欢迎交流。
END

往期推荐


学术报告|Trustworthy Machine Learning

隐私保护机器学习中,应用MPC进行实验碰到的常见问题与解答

为什么不可以直接在实数上进行秘密分享?
隐私计算岗高薪酬冲上热搜!

欢迎投稿邮箱:pet@openmpc.com参与更多讨论,请添加小编微信加入交流群

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存