姓名:李昊菲;学号:22011110007;学院:通信工程学院
转载自:https://mp.weixin.qq.com/s/Jym6D6KVmx647coo9laB-A
【嵌牛导读】一个随机数生成器,项目已开源。要知道,平日里用计算机生成的(比如Random()函数)都是可以预测的伪随机数。如果用来生成密码,不能保证绝对的安全。于是,研究人员就开始从大自然中寻找随机数,比如大气噪声、量子力学、宇宙微波背景辐射。香蕉,又是如何保证生成真·随机数的呢?
【嵌牛鼻子】随机数,非电离辐射
【嵌牛提问】水果还有其他科技妙用吗?
【嵌牛正文】
水果界“辐射之王”
香蕉确实有辐射,而且还不小。在水果界甚至还有着“辐射之王”的江湖称号。核心原因是香蕉中富含的钾元素在作祟:100g香蕉含有约350毫克的钾。目前天然存在的钾由三种同位素组成。其中只有少部分的原子核(约0.015%),即钾-40,具有放射性。这些原子自发衰变,释放出能量分离出电子(β 射线)和伽马射线,从而对蛋白质orDNA等生物分子造成损伤,从而引发放射性疾病或癌症。基于这样的原理,也就决定了香蕉属于是电离辐射,即核辐射。也就是世卫组织列为一类致癌物的那种。
要想达到真正的致死量,人类需要吃3500万根香蕉。再加上,我们身体大约含有120g钾的天然成分,通过新陈代谢,会将钾的数量维持在一个恒定的水平。钾-40想要在体内积聚,其实并不容易。而为了更好地向大众科普辐射强度,物理学家们喜欢用它来做对比,就专门设计了个名词。
香蕉等效剂量,用来描述辐射强度的非正式单位。一根香蕉的辐射剂量=0.0778微西弗(正式的计算单位);胸部CT扫描=7万根香蕉等效剂量;核电站对周边环境的最大允许辐射暴露=每年2500根香蕉等效剂量。
一个香蕉+300多元的硬件
所以说,香蕉就是个天然的钾-40放射源。利用钾-40放射衰变是完全随机的这一原理,就可以做成真随机数生成器。既然如此,具体是怎么做的呢?
硬件上只需准备一块Arduino开发板+一个盖革计数器。这两者加起来只要300多块(板约40元,计数器约300元)。盖革计数器全称盖革-米勒计数器(Geiger-Müller counter),从1928年开始就是一个专门用来探测电离辐射强度的记数仪了。
它涉及的算法非常简单,写一个主循环,让寄存器从0加到n,等于n时,寄存器重置为0。一旦在这个过程中检测到装置上方香蕉中的钾-40衰变放射出粒子,主循环就暂停,执行中断程序,将寄存器中的最后一个值作为随机数返回,然后寄存器再重置为0,继续循环。
比如,我们可以让寄存器从0加到15,并用十六进制表示这几个数(0-15也就为0-9、A-F),因此两位十六进制数就可以组成1个字节的随机数了,最终可以得到十进制范围内0-255的任意数。
ps.一个十六进制比如6F转换成二进制数就等于0110 1111,一共有8位,而一个字节正好等于8位二进制数。
这就是一个香蕉随机数生成器的诞生。
以往要想获得真正的随机数,常见的做法就是将一些大自然的物理现象产生的随机量转化成数字信息。比如电阻热噪声、半导体中的雪崩效应、电路混沌效应等。还有人甚至会用到更为复杂的量子现象,比如散粒噪声、光电效应,以及宇宙微波背景辐射,也就是前面提到的放射性衰变。
现在,只需要一个香蕉、300多块的硬件就可以做成,简直不要太方便。事实上,GitHub上其实已经有很多类似项目,推特上也有一个专门账号曾每天发200多个随机数坚持了一年。
原来香蕉不光只是可以吃呀
其实,有关香蕉的妙用还不止此。比如,它可以成为游戏手柄。就在今年,索尼申请了一项让人看起来觉得很有意思的专利,该专利立志把“便宜、简单、非电子的设备变为游戏外设”。他们就通过一些设备和技术把虚拟按键投射到了香蕉上,变成了手柄。
再比如,香蕉还可以用来感受物理学科的神奇,即正电子。因为钾-40在发生β+衰变为氩40时,会同时放出一个正电子。于是一位来自果壳的网友,提供了个方法:
买一根香蕉,捣烂涂在手上。
平均每1小时51分钟,就有一个正电子在你手上湮灭!”
最后,别忘了,一个人和香蕉的基因也是有41%的相似性哦~