百万富翁问题--安全多方计算

article/2025/9/13 18:38:40

百万富翁问题—安全多方计算
是由图灵奖获得者姚期智提出的。

有A、B两个富翁,A资产i亿元,B资产j亿元,i、j均在0-10范围内,在互不让对方知道自己资产的情况下,比较A和B的资产谁多谁少。
那么如何去比较呢?
这里放十个箱子:
在这里插入图片描述

如果A有i亿元,那么A将第i个箱子之前的所有箱子里都放个纸条,写着0;从第i个箱子开始,写1,一直写到最后一个箱子。写完后将十个箱子全部锁上。由于B没有钥匙,所以打不开箱子,因此看不到纸条,不知道A的资产。
在这里插入图片描述

于是B将自己资产对应的那个箱子拿出来给A,然后B将剩下的箱子全部销毁,于是A也不知道B给他的是第几个箱子,但是能打开这个箱子。
如果箱子里纸条是0,则A的资产>B的资产;
如果箱子里纸条是1,则A的资产<=B的资产。

以上就是百万富翁问题,那么如何用密码学来解决这个问题呢?

上述问题中的锁代表公钥,钥匙代表私钥。

具体方案:
1、B无私钥,只有公钥。
1-B先选一个大数X,然后用公钥对X加密-> E(X)=k;

2-B计算k-j+1=m,然后B将m发送给A,虽然在m中包含了B的资产j,但是A不知道k,所以无法获取具体值。

2、A有公私钥。
1-计算k-j+1, k-j+2, k-j+3……k-j+10。在这之中,必有一个数据是k-j+j,即k。

2-解密这十个值,得出解密结果:Yu=D(k-j+u) —y1,y2,y3……yj……y10
这个yj即D(k),即B选择的大数X。但是A不知道哪个是j,所以还是无法知晓B的资产。

3-求模
Zu=Yu mod p, p为质数
得出z1…zj…z10

4-A要将自己的资产i融入zu数列
那么如何融入?:
保持z1,z2…zi不变,让zi+1,zi+2…z10加1,然后将Z数列传给B。

3、B检验
若X mod p =Zj,说明Zj没有经过加1的步骤,即Zj在Zi之前,j<=i
若X mod p不等于Zj,说明Zj加1了,Zj在Zi之后,j>i

这里j与i的等号与最初提的百万富翁例子中的等号不同,因为这里是前i为0,i+1至10为1,之前例子是前i-1为0,i至10为1.

以上就是如何用密码学实现百万富翁问题,这也就是安全多方计算。在实际应用中,一定不是10这个范围,是一个无法推导出的范围。


http://chatgpt.dhexx.cn/article/DpgkLs6D.shtml

相关文章

隐私保护技术之安全多方计算

安全多方计算(Secure Multi-Party Computation&#xff0c;SMPC)用于解决一组互不信任的参与方各自持有秘密数据&#xff0c; 协同计算一个既定函数的问题。安全多方计算在保证参与方获得正确计算结果的同时&#xff0c;无法获得计算结果之外的任何信息。 在整个计算过程中&…

基于同态加密体制的安全多方计算

本文首发公众号VenusBlockChain&#xff0c;关注公众号后可免费阅读&#xff01;VenusBlockChain致力于区块链技术研究&#xff0c;传播区块链技术和解决方案、区块链应用落地、区块链行业动态等。有兴趣的小伙伴们&#xff0c;欢迎关注。 安全多方计算&#xff08;Secure Mu…

多方安全计算

说明&#xff0c;本文是转载的&#xff0c;个人觉得作者讲解清晰明了&#xff0c;收录用于学习&#xff0c;原文链接&#xff1a;https://blog.csdn.net/yuxinqingge/article/details/104588197。 如今&#xff0c;互联网已经完成了从IT时代向DT时代转变&#xff0c;数据已经成…

多方安全计算MPC

1.多方安全计算的价值 MPC是密码学的一个重要分支&#xff0c;旨在解决一组互不信任的参与方之间保护隐私的协同计算问题&#xff0c;为数据需求方提供不泄露原始数据前提下的多方协同计算能力。 在目前个人数据毫无隐私的环境下&#xff0c;对数据进行确权并实现数据价值显得…

安全多方计算(MPC)

MPC既适用于特定的算法&#xff0c;如加法、乘法、AES&#xff0c;集合交集等&#xff1b;也适用于所有可表示成计算过程的通用算法。 根据计算参与方个数不同&#xff0c;可分为只有两个参与方的2PC和多个参与方&#xff08;≥3&#xff09;的通用MPC 1&#xff09;安全两方&a…

安全多方计算之二:一文搞懂百万富翁问题

百万富翁问题 1. 解决方案2. 协议描述3. 协议说明4. 协议举例5. 协议扩展 两个百万富翁Alice和Bob想知道他们两个谁更富有&#xff0c;但他们都不想让对方及其他第三方知道自己财富的任何信息&#xff0c;这是由中国计算机科学家、2000年图灵奖获得者姚启智教授于1982年在论文《…

安全多方计算-入门学习笔记(三)

四、基于非噪音的安全多方计算介绍 1概念 非噪音方法一般是通过密码学方法将数据编码或加密&#xff0c;得到一些奇怪的数字&#xff0c;而且这些奇怪的数字有一些神奇的性质&#xff0c;比如看上去很随机但其实保留了原始数据的线性关系&#xff0c;或者顺序明明被打乱但人们…

基于隐私保护的安全多方计算区块链融合技术的智能合约

安全多方计算与区块链的融合技术 SMPC-安全多方计算综述安全的定义安全模型SMPC效率问题 区块链应用&#xff1a;智能合约智能合约的问题SMPC需求引入 基于SMPC的智能合约辅助&#xff1a;MPI协议-效率提升 SMPC-安全多方计算综述 随着物联网、移动计算、大数据、云计算的快速…

安全多方计算之GMW协议

安全多方计算之GMW协议 一、背景 论文原文《How to play any mental game》。作者&#xff1a;Micali S, Goldreich O, Wigderson A. 发表在&#xff1a;Proceedings of the Nineteenth ACM Symp on Theory of Computing, STOC. GMW协议可以同时适用在布尔电路和算术电路&am…

多方安全计算概述

多方安全计算&#xff08;Secure Multi-Party Computation&#xff0c; MPC&#xff09;是密码学的一个分支&#xff0c;在无可信第三方的情况下&#xff0c;仍可安全地按照公开的计算逻辑&#xff0c;进行数据协同计算&#xff0c;并输出结果。 即使参与各方输入的数据只有自…

安全多方计算之一:什么是安全多方计算

安全多方计算 1. 安全多方计算简介2. 基本概念2.1 参与者2.2 攻击者 3. 安全多方计算的模型4. 安全多方计算的密码学工具5. 学习参考 1. 安全多方计算简介 安全多方计算问题SMC&#xff0c;Secure Multi-party Computation&#xff09;由由中国计算机科学家、2000年图灵奖获得…

安全多方计算简介

文章目录 一、安全多方计算定义二、安全多方计算安全模型1.行为模型2.安全门限 三、安全多方计算关键技术1.秘密共享(Secret Sharing, SS)2.不经意传输(Oblivious Transfer, OT)3.混淆电路(Garbled Circuit, GC) 参考资料 一、安全多方计算定义 安全多方计算(Secure Multi-Par…

安全多方计算 # 个人笔记

一个优美令人如痴如醉的领域。 Data is the oil of the 21st century 欢迎读者拍砖和提供本文修改建议。本文长期维护。 第二次编辑于2021/10/20&#xff0c;新增了部分阅读材料&#xff0c;调整了文章内容的组织。 0 研究背景 【最后更新于2021/10/20】 时代背景&#xff1…

Verilog操作符

操作符优先级表 Verilog中的大小(size)与符号 Verilog根据表达式中变量的长度对表达式的值自动地进行调整; Verilog自动截断或扩展赋值语句中右边的值以适应左边变量的长度; 当一个负数赋值给无符号变量如reg时,Verilog自动完成二进制补码计算; 算术运算符 加(+)、减(-…

C语言——操作符详解

目录 一、算术操作符 二、移位操作符 三、位操作符 四、赋值操作符 五、单目操作符 六、关系操作符 七、逻辑操作符 八、条件操作符 九、逗号表达式 十、下标引用、函数调用和结构成员 以上就是C语言中涉及到得操作符&#xff0c;我将用代码实例配合说明&#xff0c…

教妹学Java(十一):操作符简介

大家好&#xff0c;我是沉默王二&#xff0c;一个和黄家驹一样身高&#xff0c;和刘德华一样颜值的程序员。本篇文章通过我和三妹对话的形式来谈一谈“Java 中的操作符”。 教妹学 Java&#xff0c;没见过这么有趣的标题吧&#xff1f;“语不惊人死不休”&#xff0c;没错&…

位运算操作符详解

文章目录 一. 移位操作符>> <<1. 整数的二进制表示Ps:怎么确定一个数在内存中占几位呢&#xff1f; 2. <<左移操作符3. >>右移操作符 二. 位操作符& &#xff5c;^1. &按&#xff08;二进制&#xff09;位与2. &#xff5c;按&#xff08;二进…

【C语言】操作符详解

文章目录 前言一、操作符分类二、用法详述1.算数操作符2.移位操作符2.1左移操作符2.2右移操作符2.3警告&#xff1a; 3.位操作符3.1 & 按位与3.2 | 按位或3.3 \^ 按位异或 4.赋值操作符5.单目操作符5.1逻辑反操作符 !5.2 自增、自减操作符 、--5.3 按位取反 ~ 6.关系操作符…

集合类型的操作符(共10个)

注意&#xff1a;本次所有的举例均为s{1,2,3,4,5},t{4,5,6,7} 1.S - T 或 S.difference(T): 返回一个新集合&#xff0c;包括在集合S中但不在集合T中的元素 eg:2.S - T或S.difference_update(T): 更新集合S&#xff0c;包括在集合S,包括在集合S中但不在集合T中的元素。 eg: 3.S…

c++ 操作符大全-算术操作符、关系操作符、逻辑操作符、位操作符、自增自减操作符、赋值操作符、条件操作符、逗号操作符、操作符优先级

文章目录 操作符1、算术操作符2、关系操作符3、逻辑操作符4、位操作符5、自增自减操作符6、赋值操作符7、条件操作符8、逗号操作符9、操作符优先级 操作符 计算机程序可以看作一串运算式&#xff0c;可以对各种运算类型进行运算。这种运算不仅仅是代数上的加减乘除&#xff0c…