idcm交易所3.3.4版本下载|趣说安全多方计算:如何用密码学玩转暗军棋游戏?
提起军棋游戏,相信不少人儿时都玩过。
军棋游戏的玩法有三种:第一种是明棋,双方棋子都朝上摆放进行游戏;第二种是翻棋,棋子朝下摆放,双方依次翻开进行游戏;第三种,就是今天我们要特别说的:暗棋。
暗军棋除了对决双方外,还需要增加一个裁判,其游戏规则是:双方把本方棋子明面朝向自己进行摆放,仅自己和裁判可见,当双方棋子对碰时,由裁判按棋子大小进行判定并告诉双方结果。
棋子大小规则
由于暗军棋中,双方都不知道对方对碰的棋子,只能根据自己的棋子进行有限判断,极大增加了游戏博弈的复杂度和趣味性,因而深受很多玩家喜爱。
不过,在日常玩暗军棋时也会遇到一些问题。比如:李雷和韩梅梅,孤男寡女共处一室,没有第三方裁判或者不想让第三方裁判参与的时候,两个人还能玩暗军棋游戏吗?
当然可以!这时候密码算法的作用就凸显出来了。
简单起见,我们先不考虑特殊棋子(炸弹和地雷),对其他棋子按顺序进行编号:司令 =9、军长 =8、师长 =7、旅长 =6、团长 =5、连长 =4、排长 =3、工兵 =2。
李雷和韩梅梅对碰的棋子分别为 x 和 y,根据比较表的规则写一个比较函数 f(x,y),规定:f(x,y) 等于 1 时李雷胜,f(x,y) 等于 0 时同尽,f(x,y) 等于-1 时韩梅梅胜。
当李雷出师长(7)与韩梅梅的团长(5)对碰时,7>5,f(x,y)=1, 李雷获胜。
那么,在没有第三方(人或计算机)裁判的情况下,对碰双方又不知道对方棋子,该如何进行比较判断呢?
回答这个问题前,要先了解一下姚氏百万富翁问题。
原理:姚氏百万富翁问题
姚氏百万富翁问题由华裔计算机科学家、图灵奖获得者姚启智教授首先提出。该问题表述为:两个百万富翁 Alice 和 Bob 想知道他们两个谁更富有,但他们都不想让对方和第三方知道自己的财富数额,该如何实现?姚教授设计一种巧妙的算法,Alice 的财富为 a,Bob 的财富为 b (a,b, m,n 为整数且 a,b∈[m,n]),Alice 有一个公钥 Ea 和私钥 Da。双方按以下步骤执行:
1) Alice 将公钥 Ea 给 Bob;
2) Bob 选取一个大整数 x,并用 Alice 给的公钥 Ea 进行加密得到密文 K,然后将 c=K-b 发给 Alice;
3) Alice 拿到密文 c,用自己的私钥 Da 对 c+m,c+m+1……c+n 进行解密得到 n-m+1 个数字;
再选取一个适当大小的素数 p, 把这 n-m+1 个数字对 p 进行 mod 运算得到 dm,dm+1……dn;
对于 dm,dm+1……dn 前 a 个数不动,后面的数每个加 1。然后将处理所得数字发给 Bob;
4) Bob 拿到这串数字并检查第 b 个数字 db,如果 db==x mod p,证明这个数字没有被加 1,所以 a >= b,反之,则证明 a < b。
因为交互的数据都是处理过的,所以双方在这个进行计算的过程中都没有泄露自己信息,并且得到了想要的判断比较结果。这就是安全多方计算(MPC)中的两方计算。
下图为演示代码输出结果:
回过头看暗军棋的对碰比较,和百万富翁问题本质是一样的,按照计算协议双方输入对碰棋子对应的数值即可。当然为了防止作弊,双方需要各自进行一次计算得到一致结果。各自把每一次对碰自己的棋子和结果记录,结束后按照步骤重现进行检查。
安全多方计算还可以取代狼人杀、暗兽棋等游戏的裁判,其原理都是 MPC 两方比大小或其扩展。
扩展:安全多方计算实际应用
MPC 除可以解决各类暗游戏问题外,还可以在更多不依赖第三方来进行任何博弈的场景中应用。比如以下几种:
1、医疗数据协同计算
当前,医疗数据大都掌握在各个互不相通医疗机构手中,形成一个个数据孤岛,无法充分发挥价值。同时,由于医疗数据涉及大量个人敏感信息,要协同利用这些数据必须要解决隐私保护问题。通过 MPC,可以在保证个人隐私数据安全的前提下,打通数据孤岛,实现医疗数据价值的最大化。
2、联合征信
银行或保险业,往往需要联合多家征信机构进行个人信用评分计算,而各征信机构通常不希望自己的核心数据被「拿走」。通过 MPC 可以在不归集各方数据的情况下,进行联合信用评估计算。
3、投票 / 拍卖
使用 MPC 进行投票 / 拍卖,既可保证用户隐私,又能有效避免跟投、恶意提价等作弊行为。
对于安全多方计算(MPC)这项「黑科技」,你觉得还有哪些用途?欢迎留言和我们交流。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。