数据加密和编程中使用的随机数包括使用定量算法生成的伪随机数和使用CPU和通信设备噪声生成的物理随机数。一个使用放射性物质生成高度可靠的量子随机数的设备出现在GitHub上,随机数生成器的规格和源代码已经发布。
GitHub-nategri / chernobyl_dice:一种具有冷战美学的量子随机数生成器。
https://github.com/nategri/chernobyl_dice
“切尔诺贝利骰子”是一种量子随机数生成器,它使用弱放射性物质的裂变反应作为熵源。切尔诺贝利骰子由Arduino Nano作为基板,辐射计的盖革计数器,6个铀玻璃和辉光管组成,并使用以下程序进行操作。
1. 根据盖革计数器是否响应,每毫秒在环形缓冲区中记录 0 或 1。
2. 使用冯·诺依曼的稳定性分析,消除生成的初始随机数的偏差。
3. 使用mod2对第二步中生成的位进行XO运算,进一步消除了偏差,mod2是自器件上电以来以微秒为单位的时间,除以4。
下面展示了切尔诺贝利骰子是如何运作的。
将拨盘转至“CL”以进入显示当前时间的时钟模式。有三种模式:一种是流模式,其中随机数重复生成并从USB输出,另一种是骰子模式,其中按下按钮一次时显示一个随机数。
如果将拨盘转为“DC”,您将处于骰子模式,每次按下按钮时都会显示一个随机数。
带有旋钮的数字之和对应于生成的随机数的范围。向上打开旋钮 4 和 8 将生成一个介于 0 和 12 之间的随机数。
按下按钮...
二进制数显示在辉光管上,随机数生成开始。
这次生成了“2”。
如果将旋转设置为“ST”,则可以使用流模式从 USB 重复生成随机数和输出。
根据Python的统计测试,所有测试都被清除了。它表明切尔诺贝利骰子是一个非常无偏的随机数生成器。
下图提供了用于创建切尔诺贝利骰子的零件清单。
接下来是实际上是在组装切尔诺贝利骰子。
将垫片安装在外壳 。
组装逻辑板。
将 辉光管连接到逻辑板 ...
组装存储模块。
将盖革计数器组装到机柜中。
然后附上铀玻璃大理石。
连接控制面板板后,连接按钮即可完成。
此外,在切尔诺贝利骰子的运行过程中,铀玻璃大理石被紫外线照射成绿色,但这与放射性物质无关。
版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除