文档章节

两个人如何在不见面的情况下通过电话玩 “抛硬币”游戏?

林中漫步
 林中漫步
发布于 2017/07/23 11:43
字数 522
阅读 5
收藏 0

    在数学中,有一个非常典型的“正则易、逆则难”的问题:你很容易算出两个数的乘积是多少,却没法迅速找出一个大数等于哪两个数的乘积。

    质数拥有很多美妙的性质,不但让数学家们如痴如醉,在信息安全领域也有许多漂亮的应用。选取两个质数,比方说 23 和 67,然后把它们乘在一起,能够得到一个新的数 1541。不过,除非一个数一个数地去试,否则你没办法判断出 1541 可以分成哪两个数之积。也就是说,对于“1541 能分成哪两个数的乘积”这个问题,回答起来相当困难,验证答案的正确性却很容易。

    利用这个思路,我们能得到如下公平的电子抛币方案。过程如下:

        1)A抛郑硬币,如果正面朝上,就选择两个 1000 左右的质数,否则选择三个100左右的质数;然后把选择的质数乘起来,将结果告诉B。(此时A并不知道输赢规则)

        2)B确定输赢规则,比如 "正面朝上, A赢;反面朝上,B赢" ,并告之A。(此时B并不知道哪面朝上)

        3)A揭晓答案,把刚才选的几个质数告诉B。

        4)B验证答案,用A给出的质数相乘,看是否等于之前A给的乘积。

    这样,A无法串改、抵赖, B无法破解。有关非对称加密,参考 如何用通俗易懂的话来解释非对称加密?

© 著作权归作者所有

共有 人打赏支持
上一篇: 区块链课堂
下一篇: 随手收藏
林中漫步
粉丝 97
博文 55
码字总数 33323
作品 0
深圳
架构师
私信 提问
【通俗向】假设检验(三):卡方检验和t检验

国际惯例,先看几个例子: 假设抛硬币,抛了12次,出现正面为1,反面为0,如果出现正面的次数为10次,问这个硬币是否均匀? 假设有一个正四面体,出现四个面的分别记为1,2,3,4;抛了120次,如...

yunru_yang
2017/03/09
0
0
利用反等价鞅策略,建立最佳头寸管理

利用反等价鞅策略,建立最佳头寸管理 NO.1 QUANT.LA 量化干货聚集地 宽客在线 看对走势并没有什么了不起的,在市场中总能找到很多在牛市早就看涨的人,在熊市早就看跌的人。但他们总是善于跟...

发明者量化FMZ
06/29
0
0
40+ 行 JS 代码打造你的 2048 游戏 AI

2048 游戏是什么? 2048 游戏如下图所示,它由一个 4*4 共 16 个方块组成。玩家可以通过「上下左右」四个方向操纵方块滑动,滑动时两个相邻且数值相同的方块会合并,新的方块,数值为两者之和...

01/11
0
0
想去谷歌 AI 工作?请收下这20道面试题

雷锋网按:Google AI Interview Questions— Acing the AI Interview 本文为雷锋字幕组编译的技术博客,原标题,作者为Vimarsh Karbhari。 翻译 | 郑前 整理 | 凡江 谷歌拥有世界上最聪明的A...

雷锋字幕组
04/18
0
0
不做高频,量化策略到底能不能战胜抛硬币?

在回答这个问题前我想先来讲一个故事。 50年代末,统计学家Kelly在贝尔实验室任实验室助理,师从Shannon(信息论鼻祖),提出了Kelly Criterion 凯利准则,即:通过计算edge和odds来选择最佳...

JDquant
2017/07/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Vue + Vue-CLI + Mint-UI 移动端开发新手示例实战 - by dogstar

Vue + Vue-CLI + Mint-UI 移动端开发新手示例实战 - by dogstar 项目源代码,在码云上:https://gitee.com/dogstar/a-vue-mint-demo 快速使用 # 安装依赖npm install# 本地开发调试 lo...

暗夜在火星
37分钟前
1
0
Docker 的 Web 管理工具 DockerFly

Dockerfly是基于 Docker1.12+ (Docker API 1.24+) 开发出Docker 管理工具,提供里最基本的基于 Docker 的管理功能,目的是能够方便广大Docker初学者以及 Docker 管理员能够快速的进行Docker 容...

linuxprobe16
39分钟前
3
0
java.util.concurrent.atomic.AtomicBoolean 源码

类图: 源码: package java.util.concurrent.atomic;import sun.misc.Unsafe;public class AtomicBoolean implements java.io.Serializable { private static final long ser......

狼王黄师傅
43分钟前
2
0
msql创建视图笔录

由于之前写视图都没有记录,这次客户公司要求我写三张视图,却发现自己忘了咋写的!于是有去百度了下,分分钟搞定了。但是,个人还是做个笔录吧!以后不用去看别人的写法咯。 #车辆会员查询...

em_aaron
53分钟前
3
0
年终回顾,为你汇总一份「后端架构技术清单」

2018年马上就要过去了说说我这一年的感想吧 很多人做Java开发3,4年后,都会感觉自己遇到瓶颈。什么都会又什么都不会,如何改变困境,为什么很多人写了7,8年代码还是一个码农,工作中太多被动...

James-
54分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部