文档章节

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

林中漫步
 林中漫步
发布于 2017/07/23 11:43
字数 522
阅读 4
收藏 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无法破解。有关非对称加密,参考 如何用通俗易懂的话来解释非对称加密?

© 著作权归作者所有

共有 人打赏支持
林中漫步
粉丝 96
博文 55
码字总数 33247
作品 0
深圳
架构师
利用反等价鞅策略,建立最佳头寸管理

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

BotVS
06/29
0
0
【通俗向】假设检验(三):卡方检验和t检验

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

yunru_yang
2017/03/09
0
0
不做高频,量化策略到底能不能战胜抛硬币?

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

JDquant
2017/07/25
0
0
想去谷歌 AI 工作?请收下这20道面试题

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

雷锋字幕组
04/18
0
0
40+ 行 JS 代码打造你的 2048 游戏 AI

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

01/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

树莓派上安装 Nextcloud 云

# install docker and docker composesudo apt-get updatesudo apt-get install git docker-composecurl -sSL https://get.docker.com | sh# fetch projectcd ~git clone https://git......

How11
1分钟前
0
0
python 基本语法

布尔值:True False,操作符有 and, or, not; 常量通常使用大写表示,如PI = 3.14159265359; 除法操作符有 /, //, %,如 10 / 3 = 3.3333333333333335,10 // 3 = 3, 10 % 3 = 1; 在计算机内存中...

bug_404
3分钟前
0
0
centos 下安装 elastic search 启动的问题

正常步骤 1Download and unzip Elasticsearch 2 Run bin/elasticsearch 3 Run curl http://localhost:9200/ 异常信息: root 账户启动报错,Exception in thread "main" Java.lang.RuntimeE......

xiaomin0322
9分钟前
0
0
mysql_exceptions.OperationalError: 1054

错误:python连接Mysql错误:_mysql_exceptions.OperationalError: (1054, "Unknown column 'CVE' in 'field lis解决办法 注:要根据自己具体情况进行判断,可以 print sql % args,来判断该...

fang_faye
12分钟前
0
0
分布式数据库DDM Sidecar模式负载均衡

简介 1.分布式数据库中间件 DDM 分布式数据库中间件(Distributed Database Middleware)是解决数据库容量、性能瓶颈和分布式扩展问题的中间件服务,提供分库分表、读写分离、弹性扩容等能力...

中间件小哥
16分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部