一文搞懂百万富翁问题

news2025/1/12 1:43:45

百万富翁问题

  • 1. 解决方案
  • 2. 协议描述
  • 3. 协议说明
  • 4. 协议举例

两个百万富翁Alice和Bob想知道他们两个谁更富有,但他们都不想让对方及其他第三方知道自己财富的任何信息,这是由中国计算机科学家、2000年图灵奖获得者姚启智教授于1982年在论文《Protocols for secure computations》中提出的姚氏百万富翁问题,开创了密码学研究的新领域:安全多方计算(Secure Multi-party Computation)。

1. 解决方案

假设两个百万富翁 A A A B B B的财产在 1 1 1 10 10 10之间, A A A 4 4 4 B B B 9 9 9

  • A A A选择 10 10 10个相同的个盒子,按照顺序代表 1 1 1 10 10 10
    在这里插入图片描述
  • A A A用自己财产的数字与盒子的数字进行比较,如果小于该数字,则放一个黑球,若大于等于则放一个蓝球。

在这里插入图片描述

  • A A A将盒子上锁,并按 1 1 1 10 10 10的顺序发交给 B B B

  • B B B选择自己财产的数字对应的箱子,即第 9 9 9个盒子,然后交个 A A A

  • A A A打开盒子,共同判定结果:蓝球,因此 B B B更富有。

现实中,上述方案一般通过密码学工具实现。

2. 协议描述

姚氏百万富翁问题可形式化描述为:对两个秘密输入 i i i j j j,判断函数值 f ( i , j ) = i − j ≤ 0 f(i,j)=i-j\le 0 f(i,j)=ij0还是 f ( i , j ) = i − j ≥ 0 f(i,j)=i-j\ge 0 f(i,j)=ij0

假定 1 ≤ i , j ≤ N 1 \le i,j \le N 1i,jN。为了在不让任何第三方参与的情况下比较 i i i j j j的大小,又不向对方泄漏各自的数值,则可执行如下的协议:

  • step1 A A A B B B共同协商一种公钥加密体制( E E E为加密算法, D D D为解密算法)。

  • step2 A A A随机选择一个大随机数 x x x,用B的公钥加密得 E ( x ) E(x) E(x),然后将 E ( x ) − i E(x)-i E(x)i发送给 B B B

  • step3 B B B首先计算 N N N个数 y u = D ( E ( x ) − i + u ) , u = 1 , 2 , . . . , N y_u=D(E(x)-i+u),u=1,2,...,N yu=D(E(x)i+u),u=1,2,...,N然后随机选择大素数 p p p,再计算 N N N个数 z u ≡ y u   m o d   p , u = 1 , 2 , … , N z_u \equiv y_u \bmod p,u=1,2,…,N zuyumodp,u=1,2,,N接着验证对于所有的 0 ≤ a ≠ b ≤ N − 1 0 \le a \neq b \le N-1 0a=bN1是否都满足 ∥ z a − z b ∣ ≥ 2 \|z_a-z_b|≥2 zazb2,若不满足,则重新选择大素数 p p p重新验证。 最后, B B B p p p及以下的 N N N个数串发送给 A A A: z 1 , z 2 , . . . , z j , z j + 1 + 1 , z j + 2 + 1 , … , z N + 1 z_1,z_2,...,z_j,z_{j+1}+1,z_{j+2}+1,…,z_N+1 z1,z2,...,zj,zj+1+1,zj+2+1,,zN+1.- step4:设 A A A收到 N N N个数串的第 i i i个数 z i ≡ x   m o d   p z_i \equiv x \bmod p zixmodp,则结论是 i ≤ j i \le j ij;否 i ≥ j i \ge j ij

  • step5 A A A 将结果告诉 B B B

3. 协议说明

(1) 由于 z i ≡ y i   m o d   p ≡ D ( E ( x ) − i + i ) ≡ x   m o d   p z_i \equiv y_i \bmod p \equiv D(E(x)-i+i)\equiv x \bmod p ziyimodpD(E(x)i+i)xmodp,因此
当且仅当 i ≤ j i\le j ij时,数列 z 1 , z 2 , . . . , z j , z j + 1 + 1 , z j + 2 + 1 , … , z N + 1 z_1,z_2,...,z_j,z_{j+1}+1,z_{j+2}+1,…,z_N+1 z1,z2,...,zj,zj+1+1,zj+2+1,,zN+1中才存在数 z i ≡ x   m o d   p z_i \equiv x \bmod p zixmodp;否则该数列中任何数模 p p p都不与 x x x同余,此时 i > j i > j i>j。该步骤是协议的核心步骤,通过构造数列,实现了 i i i j j j大小的判断,类似于放置黑球与蓝球。

但该协议无法判断出 i = j i=j i=j的情况,是该协议的一个缺点,后续相关研究对此进行了改进

(2)要求 z n z_n zn中的任何两个数 z a , z b z_a,z_b za,zb满足 ∥ z a − z b ∣ ≥ 2 \|z_a-z_b|≥2 zazb2是为了保证 B B B发送给 A A A N N N个数的数列 z 1 , z 2 , . . . , z j , z j + 1 + 1 , z j + 2 + 1 , … , z N + 1 z_1,z_2,...,z_j,z_{j+1}+1,z_{j+2}+1,…,z_N+1 z1,z2,...,zj,zj+1+1,zj+2+1,,zN+1中任意两个数不同,一般称这样的数列为“好数列”。因为若数列中存在两个数 z m = z n , m < n z_m=z_n,m<n zm=znm<n,则 A A A可以判断出 B B B的秘密数大致范围为 m ≤ j < n m\le j<n mj<n

(3)A比B先知晓了最终的结果,若 A A A欺骗 B B B告诉他相反的结论,则该协议是不公平的。为了增加公平性, B B B可以要求与 A A A交换角色,即原来 A A A执行的步骤现由 B B B执行,而由 B B B执行的步骤改由 A A A执行。这样 B B B也可以首先得出结论。

(4)协议只涉及两方的安全计算,可将上述协议推广到任意多方的安全计算协议。

4. 协议举例

A A A B B B两个百万富翁的财富, A A A的财富是 900 900 900万, B B B的财富是 400 400 400万,都不超过 1000 1000 1000万。即 A A A B B B的秘密数分别为 i = 9 i=9 i=9 j = 4 j=4 j=4 N = 10 N=10 N=10

  • step1 A A A B B B选定RSA公钥算法对数据加密,其中 n = 221 n=221 n=221 B B B的公钥 35 35 35,私钥 11 11 11

  • step2 A A A随机选择整数 x = 92 x=92 x=92,计算 E ( x ) ≡ 9 2 35   m o d   221 = 105 E(x) \equiv 92^{35} \bmod 221=105 E(x)9235mod221=105,然后把 E ( x ) − i = 105 − 9 = 96 E(x)-i=105-9=96 E(x)i=1059=96发送给B。

  • step3:对 u = 1 , 2 , … , 10 u=1,2,…,10 u=1,2,,10 B B B分别计算 y u = D ( E ( x ) − i + u ) = D ( 96 + u ) y_u=D(E(x)-i+u)=D(96+u) yu=D(E(x)i+u)=D(96+u) y 1 = D ( 96 + 1 ) ≡ 9 7 11   m o d   221 = 193 y_1=D(96+1)\equiv 97^{11}\bmod 221=193 y1=D(96+1)9711mod221=193 y 2 = D ( 96 + 2 ) ≡ 9 8 11   m o d   221 = 106 y_2=D(96+2)\equiv 98^{11}\bmod 221=106 y2=D(96+2)9811mod221=106 y 3 = D ( 96 + 3 ) ≡ 9 9 11   m o d   221 = 44 y_3=D(96+3)\equiv 99^{11}\bmod 221=44 y3=D(96+3)9911mod221=44 y 4 = D ( 96 + 4 ) ≡ 10 0 11   m o d   221 = 94 y_4=D(96+4)\equiv 100^{11}\bmod 221=94 y4=D(96+4)10011mod221=94 y 5 = D ( 96 + 5 ) ≡ 10 1 11   m o d   221 = 186 y_5=D(96+5)\equiv 101^{11}\bmod 221=186 y5=D(96+5)10111mod221=186 y 6 = D ( 96 + 6 ) ≡ 10 2 11   m o d   221 = 136 y_6=D(96+6)\equiv 102^{11}\bmod 221=136 y6=D(96+6)10211mod221=136 y 7 = D ( 96 + 7 ) ≡ 10 3 11   m o d   221 = 103 y_7=D(96+7)\equiv 103^{11}\bmod 221=103 y7=D(96+7)10311mod221=103 y 8 = D ( 96 + 8 ) ≡ 10 4 11   m o d   221 = 195 y_8=D(96+8)\equiv 104^{11}\bmod 221=195 y8=D(96+8)10411mod221=195 y 9 = D ( 96 + 9 ) ≡ 10 5 11   m o d   221 = 92 ‾ \underline{y_9=D(96+9)\equiv 105^{11}\bmod 221=92} y9=D(96+9)10511mod221=92 y 10 = D ( 96 + 10 ) ≡ 10 6 11   m o d   221 = 98 y_{10}=D(96+10)\equiv 106^{11}\bmod 221=98 y10=D(96+10)10611mod221=98

取素数 p = 109 p=109 p=109,计算 z u ≡ y u   m o d   p ≡ y u   m o d   109 , u = 1 , 2 , … , 10 z_u \equiv y_u \bmod p \equiv y_u\bmod 109,u=1,2,…,10 zuyumodpyumod109,u=1,2,,10
z 1 ≡ y 1   m o d   109 ≡ 193   m o d   109 = 84 z_1\equiv y_1 \bmod 109\equiv 193\bmod 109=84 z1y1mod109193mod109=84 z 2 ≡ y 2   m o d   109 ≡ 106   m o d   109 = 106 z_2\equiv y_2 \bmod 109\equiv 106\bmod 109=106 z2y2mod109106mod109=106 z 3 ≡ y 3   m o d   109 ≡ 44   m o d   109 = 44 z_3\equiv y_3 \bmod 109\equiv 44\bmod 109=44 z3y3mod10944mod109=44 z 4 ≡ y 4   m o d   109 ≡ 94   m o d   109 = 94 z_4\equiv y_4 \bmod 109\equiv 94\bmod 109=94 z4y4mod10994mod109=94 z 5 ≡ y 5   m o d   109 ≡ 186   m o d   109 = 77 z_5\equiv y_5 \bmod 109\equiv 186\bmod 109=77 z5y5mod109186mod109=77 z 6 ≡ y 6   m o d   109 ≡ 136   m o d   109 = 27 z_6\equiv y_6 \bmod 109\equiv 136\bmod 109=27 z6y6mod109136mod109=27 z 7 ≡ y 7   m o d   109 ≡ 103   m o d   109 = 103 z_7\equiv y_7 \bmod 109\equiv 103\bmod 109=103 z7y7mod109103mod109=103 z 8 ≡ y 8   m o d   109 ≡ 195   m o d   109 = 86 z_8\equiv y_8 \bmod 109\equiv 195\bmod 109=86 z8y8mod109195mod109=86 z 9 ≡ y 9   m o d   109 ≡ 92   m o d   109 = 92 ‾ \underline{z_9\equiv y_9 \bmod 109\equiv 92\bmod 109=92} z9y9mod10992mod109=92 z 10 ≡ y 10   m o d   109 ≡ 98   m o d   109 = 98 z_{10}\equiv y_{10} \bmod 109\equiv 98\bmod 109=98 z10y10mod10998mod109=98

B B B对数列进行验证,并将 p = 109 p=109 p=109及以下数列发送给 A A A z 1 = 84 , z 2 = 106 , z 3 = 44 , z 4 = 94 , z 5 + 1 = 78 , z 6 + 1 = 28 , z 7 + 1 = 104 , z 8 + 1 = 87 , z 9 + 1 = 93 ‾ , z 10 + 1 = 99 z_1 = 84,z_2=106,z_3=44,z_4= 94,z_5+1= 78,z_6+1=28,z_7+1=104,z_8+1=87,\underline{z_9+1=93},z_{10}+1=99 z1=84,z2=106,z3=44,z4=94,z5+1=78,z6+1=28,z7+1=104,z8+1=87,z9+1=93,z10+1=99

  • step4 A A A检查该数列中的第 9 9 9个数是 93 93 93,由于 93 ≠ 92   m o d   109 93 \neq 92\bmod 109 93=92mod109,因此 i > j i>j i>j,即 A A A B B B更富有。

  • step5 A A A 将结果告诉 B B B

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/94609.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新手小白做跨境电商有哪些注意的地方?

近两年&#xff0c;受疫情刺激&#xff0c;线上电商出现前所未有的高速增长&#xff0c;中国品牌纷纷出海&#xff0c;跨境电商腾飞。此外&#xff0c;国内电商市场发展趋于平淡&#xff0c;市场需求不断萎缩&#xff0c;也让越来越多的大卖家和平台盯上了这块大蛋糕。不仅中小…

300左右半入耳蓝牙耳机推荐:南卡、漫步者、JBL蓝牙耳机谁值得入手?

现在的年轻人&#xff0c;出门都会随身携带的一副蓝牙耳机&#xff0c;所以很多品牌商加入其中&#xff0c;导致大多数人选购难度变大&#xff0c;很多人总是不知道哪个不知道品牌蓝牙耳机最好&#xff0c;半入耳式蓝牙耳机相比入耳式蓝牙耳机有着天然的舒适性&#xff0c;因而…

如何利用MOS管设计一个LED亮度可调电路

首先大家可以看下下面的MOS管亮度可调的演示视频 如何利用MOS管设计一个LED亮度可调电路这个电路大致电路图如下 MOS管的栅极放了一个电容&#xff0c;当按按键1的时候&#xff0c;电源通过R1给电容充电&#xff0c;&#xff0c;MOS管栅极的电压慢慢增大&#xff0c;流过MOS管的…

计算机毕业设计HTML+CSS+JavaScript——基于HTML花店购物网站项目的设计与实现

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

Essential singularity

In complex analysis, an essential singularity of a function is a “severe” singularity near which the function exhibits odd behavior. The category essential singularity is a “left-over” or default group of isolated singularities that are especially unm…

跳转指令 —— B、BL

跳转指令可以跳转到标号的下一条指令&#xff0c;本质就是修改了PC寄存器的值。&#xff08;标号并非指令&#xff0c;只是用来定位&#xff0c;相当于记录了当前位置的下一条指令的地址&#xff09; 这里的MAIN就是一个标号 MAIN: MOV R1, #1 这里的FUNC就是一个标…

实验3 路由器基本配置及路由配置

实验3 路由器基本配置及路由配置一、实验目的二、实验要求三、实验步骤&#xff0c;数据记录及处理四&#xff0e;实验总结一、实验目的 1、路由器几种模式。 2、基本的配置命令。 3、路由器各接口的配置方法。 4、会查看检测接口状态。 二、实验要求 写出自己学习使用了哪些…

Redis框架(十五):大众点评项目 共同关注方案实现?双指针筛选DB数据:Redis取交集

大众点评项目 好友关注 共同关注需求&#xff1a;好友关注 共同关注业务逻辑展示点击关注功能实现判断当前用户是否关注了此博主共同好友列表查询业务逻辑实现双指针筛选DB数据Redis取交集总结SpringCloud章节复习已经过去&#xff0c;新的章节Redis开始了&#xff0c;这个章节…

字节一面:select......for update会锁表还是锁行?

select查询语句是不会加锁的&#xff0c;但是select .......for update除了有查询的作用外&#xff0c;还会加锁呢&#xff0c;而且它是悲观锁。 那么它加的是行锁还是表锁&#xff0c;这就要看是不是用了索引/主键。 没用索引/主键的话就是表锁&#xff0c;否则就是是行锁。…

sklearn基础篇(十)-- 非负矩阵分解与t-SNE

1 非负矩阵分解(NFM) NMF(Non-negative matrix factorization)&#xff0c;即对于任意给定的一个非负矩阵V\pmb{V}VVV&#xff0c;其能够寻找到一个非负矩阵W\pmb{W}WWW和一个非负矩阵H\pmb{H}HHH&#xff0c;满足条件VW∗H\pmb{VW*H}VW∗HVW∗HVW∗H,从而将一个非负的矩阵分解…

物联网架构实例—解决Linux(Ubuntu)服务器最大TCP连接数限制

1.前言&#xff1a; 在对物联网网关进行压测的时候&#xff0c;发现在腾讯云部署网关程序&#xff0c;设备接入数量只能达到4000多个长连接&#xff0c;之后就再也无法接入终端了。 之前在阿里云部署的时候明明可以到达2万左右&#xff0c;而且腾讯云的这个服务器比阿里云的硬…

蓝桥杯嵌入式综合实验真题-联网电压测量系统设计与实现

目录 实验要求&#xff1a; 实验思路&#xff1a; 核心代码&#xff1a; &#xff08;1&#xff09;变量声明 &#xff08;2&#xff09;函数声明 &#xff08;3&#xff09;main主函数 &#xff08;4&#xff09;按键&#xff08;长按/短按&#xff09; &#xff08;5&…

K8s——Service、代理模式演示(二)

Service 演示 SVC 创建svc-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata:name: myapp-deploynamespace: default spec:replicas: 3selector:matchLabels:app: myapprelease: stabeltemplate:metadata:labels:app: myapprelease: stabelenv: testspec: c…

学习UI设计有哪些figma插件

自2016年推出以来&#xff0c;Figma已发展成为市场领先者UI设计工具之一。 因为它不仅简单易用&#xff0c;功能优秀&#xff0c;而且基于云服务&#xff0c;可以实时编辑&#xff0c;节省大量手动下载或复制文件的时间。不仅如此&#xff0c;Figma还提供合作功能&#xff0c;…

一文读懂PFMEA(过程失效模式及后果分析)

PFMEA是过程失效模式及后果分析(Process Failure Mode andEffects Analysis)的英文简称&#xff0c;是由负责制造/装配的工程师/小组主要采用的一种分析技术&#xff0c;用以最大限度地保证各种潜在的失效模式及其相关的起因/机理已得到充分的考虑和论述。 名词解释&#xff1a…

springboot介绍

笔记来源于 动力节点springboot Javaconfig xml方式 在创建模块时&#xff0c;idea2022新版选择internal即可&#xff1a; pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xs…

圆顶光源特点及应用——塑料包装袋、PCB板检测

照明系统是机器视觉系统较为关键的部分之一&#xff0c;机器视觉光源直接影响到图像的质量&#xff0c;进而影响到系统的性能。其重要性无论如何强调都是不过分的。好的打光设计能够使我们得到一幅好的图象&#xff0c;从而改善整个整个系统的分辨率&#xff0c;简化软件的运算…

Java JNA 调用DLL(动态连接库) 回调函数

首先准备好动态链接库dll 参考连接 visual studio 2017 创建dll文件并使用https://blog.csdn.net/miss_na/article/details/113524280 Visual Studio 2017 动态链接库(.dll)生成与使用的简明教程https://blog.csdn.net/Hide_on_Stream/article/details/109172054 jni之jni与…

【记录】U盘安装Ubuntu20.04系统

之前电脑安装的Centos7系统&#xff0c;但是在启动过程中遇到了文件异常&#xff0c;就开不了机了&#xff0c;另外貌似Centos7已经停止维护了&#xff0c;想了下&#xff0c;果断不要数据了&#xff0c;直接重装系统吧&#xff0c;这次选用的是Ubuntu 20.04【ps: 没有选择最新…

「含元量」激增,这届世界杯的看点不止足球

文|智能相对论 作者|青月 半决赛结束&#xff0c;卡塔尔世界杯已经正式进入倒计时阶段。 这届世界杯诞生了不少精彩瞬间&#xff0c;在小组赛中&#xff0c;日本、韩国、沙特接连打败西班牙、葡萄牙、阿根廷等传统强队&#xff0c;摩洛哥也代表非洲球队首次挺进四强&#xf…