python百万富翁的程序_百万富翁问题的介绍与实现

参考自

YAO A C.Protocols for secure computation[C].In Proc. of the 23rd Annual Symposium on Foundations of Computer Science,1982.

4.《联邦学习》杨强 刘洋等

安全多方计算

安全多方计算最初是针对一个安全两方计算问题,即所谓的“百万富翁问题”而被提出的,并与1982年被姚期智提出和推广。在安全多方计算中,目的是协同地从每一方的隐私输入中计算函数的结果,而不用将这些输入展示给其他方。

通常情况下,安全多方计算能够通过三种不同的框架来实现:不经意间传输(Oblivious Transfer,OT)、秘密共享(Secret Share,SS)和阈值同态加密(Threshold Homomorphic Encryption,THE).从某种程度上来讲,不经意传输协议和阈值同态加密方法都是用了秘密共享的思想,这可能就是为什么秘密共享被广泛认为是安全多方计算的核心。

百万富翁问题

两个富翁,分别为Alice和Bob。他们自己都清楚自己有几百万财产,也即,他们心里清楚 1~10中的一个数(代表自己百万级的财富);他们想知道到底谁的数更大一些。

这里假定:

· 两人都值得信任,不会作假

· 两人都希望诚实地比较出谁更服务(即谁的数更大)

· 两人又都希望知道对方财产到底是多少,如果可能的话,拿到具体数字最好了

· 其实这里假定的是一个安全多方计算的模型 - 半诚实对手模型,即计算方存在获取其他计算方原始数据的需求,但仍然按照计算协议执行。另外有恶意敌手模型,在这种模型中,参与方可以造假,即不按照计算协议执行计算过程。这就要复杂很多。为简化期间,本文仅讨论半诚实对手模型。

不经意传输的解决方案

一个简单的解决方案就是一下步骤:

Alice找10个一模一样的箱子,按照1~10的顺序摆好,并按照自己的财富值分别往里面放入苹果梨和香蕉,具体放法为:如果序号小于自己的财富之,放入苹果,相等,则放入梨,大于自己的财富值,放入香蕉;把10个盒子都叫上锁;

<


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部