AND:《复联3》中的密码学:随机数和伪随机数_GOV

作者:村头二旧

上一讲讲到,维基尼亚加密法的应用,有一个大的前期,就是这个钥匙能不被破解,至少钥匙的长度不被破解。

将维吉尼亚加密法升级一次变成2.0版本:钥匙变长

那么,如果这个钥匙非常长呢,长到和原文一样长呢,那么相当于用《金刚经》加密《道德经》——把他们全部换成英语字母的情况下。

举这个例子并非无厘头,因为这两部经典“书籍”的长度都是5000字左右,,这样,是不是就会完全没有办法用频率破解法破解了呢?

其实不一定的。钥匙是《金刚经》的经文,这经文中的重复非常多,比如“如是我闻”“须菩提”在文中出现的频率非常高,“佛说世界,非世界,是名世界”这类句式也非常多。

那么,你说,拿着《哈姆雷特》原文对《道德经》的英文版,进行加密总行了吧。也不行,因为,“and”“the”“a”“an”“he”“she”这样的连接词、冠词、人称代词到处都是,不断重复,如果要破解还是很有办法的。

FUBT将于5月10日上线Cloud:据FUBT官方公告,FUBT将于2020年5月10日上线Cloud,并支持USDT创新板块交易。Cloud云际是一个分布式智能艺术品价值流通平台,旨在利用区块链技术和物联网技术,基于智能合约,汇集社区共识,打造一个艺术品真伪鉴定、流通和交易功能的智能艺术品价值金融平台。[2020/5/7]

那怎么办?

不要用文章或者有规律的诗文进行加密了,用随机数。

维吉尼亚加密法再升级:钥匙变成随机数

但是,什么是随机数?随机产生的数吗?什么是随机?

你在跑步或者休息的时候,打开QQ音乐或者网易云音乐,然后你点击随机播放,这就是随机数吗?

并不是的。如果有100首歌要听,而你用真正的随机播放的话,这一百首音乐,可能需要非常长的时间才能听完,因为随机播放的时候,是不会考虑这首歌是不是在十分钟前已经播放过了。苹果公司的音乐软件曾经用随机播放,然后客户抱怨这个不是很“随机”呀,然后苹果公司改了算法,变成了“循环同余随机”,就是你听到的音乐感觉是随机的,随机地听完了100首音乐。现在基本上音乐播放器都是这套规则。所以,QQ音乐或者酷狗等等音乐播放器,你选100首歌,在随机的情况下,基本上不会有太多重复。

FUBT将于3月11日上线LUCKY:据FUBT官方公告,FUBT将于将于3月11日20:00上线LUCKY,并支持USDT创新区交易。LUCKY是基于ERC2.0发布的通证,也是双宿智能生态中唯一流通的通证,它将锚定双宿物联网数据的商业价值。双宿智能目前是物联网行业少数结合软件、硬件、物联网、区块链的解决方案的科技公司之一。[2020/3/10]

还有一个例子,一名数学教授给学生讲概率论,让学生回去掷100次硬币,然后每次的结果需要记下来然后交给老师。教授看了学生提交的作业后,很快就知道谁是一次一次的投硬币了,谁没有。秘密就是:真正自己投掷硬币的话,好几次甚至几十次都是正面或者反面,都是有可能的,而那些不用手去做,只是在脑中思考的人会按照一定的规律交替出现正面和反面,因为看起来非常的随机。

行情 | HDFS上线FUBT,日涨幅逾1000%:HDFS今日上线FUBT,日涨幅逾1000%,现报0.49USDT,涨幅现稳定在1044%。HDFS是一个基于 Proof Of Capacity(POC)的数字加密货币和支付系统;同时也是一个安全、可扩展的区块链底层技术开发平台。旨在打造一个全球性的加密环保支付系统,形成包括资产交易、DAPP、数据存储、信息传递、侧链、区块链浏览器、节点竞选、矿机、矿池、矿工、技术社区及项目等一系列生态系统;实现HDFS系统的自治和价值创造,布局整个POC共识生态圈。数字资产是一种创新产品,价格波动较大,请您理性判断自己的风险承担能力,审慎做出决策。[2020/1/16]

同样的,你在键盘上乱七八糟的打字母,出来的也不是真随机,给你足够长的时间,规律就出来了。凡是软件制造的随机都是伪随机,真随机是非常少见的情况。

行情 | 港股收盘:前进控股收跌1.96%,火币科技收涨2.12%:今日港股收盘,恒生指数报27959.60点,收涨0.52%;欧科集团旗下前进控股(01499.HK)报0.25点,收跌1.96%;火币科技(01611.HK)报3.86点,收涨2.12%。[2020/2/17]

这样使用随机数,单次密码本的维吉尼亚加密法是可以非常安全的加密,但是,诞生之初没有人去用,因为效率太低了。

所以密码学一开始就有着效率和安全的双重要求,就和区块链暂时不好突破的所谓不可能三角“去中心化、安全、效率”一样,这三样密码学的发展就占了其中两样,毕竟,区块链是密码学下的蛋。

扩展内容:

深化了解随机数和伪随机数

对于懂一些编程的朋友,会知道rand()或random(),这两个函数就是计算机程序用来生成随机数的,这产生的随机数也是伪随机数,我们尽力的去接近随机数但是并不是真的随机数。

火币HADAX第二期第四轮投票上币排行榜更新:截止4月23日12:00,海达克斯(https://www.hadax.com) 投票上币排行榜前三位的币种为: indaHash(IDH)641321分; Bit Capital Vendor(BCV)391209分;ProChain (PRA) 322190分。本轮选择2个项目上线,得分排名第一的项目将会获得火币Pro优先上币审核的机会。IDH已获得3个超级节点支持,1票赠送 3 IDH;BCV已获得4个超级节点支持,1票赠送 6 BCV;PRA已获得5个超级节点支持,1票赠送 0.5PRA。据HADAX公告显示,本轮胜出的项目需要获得至少60万以上的得分。距离本轮投票结束时间还剩4天零1小时。[2018/4/23]

引出了密码学中随机数的定义:

1,统计学上的随机性:对于机器来说,所有的信息都可以转化成0和1,也就是一段信息中,0和1的数量是接近的,但是,给你一个十位的二进制随机数,最好不可以是0000011111,为什么呢?肉眼一看就不是随机的,01100011这样的数组也数量接近,以此类推,这样的情况下,人类看上起这就是随机的。

2,码学安全伪随机性。其定义为,给定随机样本的一部分和随机算法,不能有效的演算出随机样本的剩余部分。

3,真随机。

也就是随机样本不可重现。这个是一个非常玄乎的东西。历史上出现过的人类,从一定程度上就是真随机的,不可能出现一模一样的人。但是这么说就太不学术了,实际上只要给定边界条件,就没有真随机数。

当然,你从网上也可以找到一些“真随机数”生成器之类的程序,去生成“真随机数”。如果将“真随机数”和“伪随机数”图像化,大概就是如下图这样。

你一眼就看出了下面这个不够“随机”呀。上面的才是“真随机数”。

事实上,从根本上来说,计算机本身并不能生成真随机数。只是高端的“伪随机数”和不高端的“伪随机数”

目前所有真随机数必须通过物理方法获得,怎么获得真随机数呢?除了google,还有一个途径。

http://www.oscca.gov.cn/

这是国家密码管理局的网站。

相当的威武霸气。大家可以偶尔上上这个网站看看。

http://www.sca.gov.cn/sca/zxfw/2017-04/25/content_1011723.shtml

这个就是网站上的真随机数生成法之一。

那么,思考一个好玩儿的问题,《复仇者联盟3》中的灭霸同志,打一个响指随机消灭了宇宙中的一半生命是“真随机”吗?

答案:不是。

因为几个原因一看就不是随机:

1,灭霸自己要养老,养老计划就做好了,说明这个响指一打,他知道自己不会消失;

2,很多CP是杀一个留一个,连神盾局的同事们都是一半的挂掉,如果是真随机,可以全死了,或者全活着,或者不这么有规律性;

3,应该有个别星球的人是一个都没死的,宇宙那么多生命,说不好就有一个星球可以全活。实际上,灭霸心中所想更像是,每个星球的生命“随机”减少一半。

所以,灭霸的随机,是伪随机。.

其实很多时候,用不着那么多的真随机数,只是如果你有一千个或者几万个比特币要弄个钱包,根据“千金之子,坐不垂堂”的古训,还是要慎重一些选择钱包。

随机数是当代密码学的基础部分,本文只是粗略的介绍入门,修行在个人,大家可以一起讨论和学习。

未来讲到的更加深入的高级的加密法和数字货币知识,离不开随机数这个概念。

欢迎私信沟通。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:15ms0-3:845ms