资料介绍
描述
介绍
描述
切尔诺贝利骰子是一种量子随机数发生器 [0],它使用来自弱放射性样本的核衰变作为熵源。你可以在这里查看GitHub仓库和所有构建所需的文件:
https://github.com/nategri/chernobyl_dice
它由四个主要部分组成:
使用以下算法将盖革计数器事件(“点击”)转换为随机位:
1. 在环形缓冲区中,对于每个毫秒记录,要么是 0 要么是 1,具体取决于盖革事件是否发生
2. 使用 von Neumann 的方法 [0] 对这个 0 支配的流进行初始去偏
3. 通过将上一步中生成的位与自设备开机以来经过的 4 微秒间隔的 mod2 进行异或运算,进一步消除偏置
在每次盖革事件中,铀玻璃样品都会被一系列紫外线 LED 照亮,从而发出明亮的绿色荧光。这与样品的放射性无关,但它看起来确实很酷。
手术
该设备具有三种操作模式,可通过旋转开关进行选择:
时钟模式
显示当前时间,盖革板未通电。可以通过打开和关闭拨动开关来设置时间(“16”拨动增加小时,“8”拨动增加 10 分钟,“4”拨动增加 1 分钟,“1”拨动重置秒).
串流模式
重复生成由切换指定大小的随机数(如果未设置切换,则为 0-255 的随机字节)。在此模式下生成的数字通过 USB 通过串行传输。此模式还有一个“turbo”设置以方便统计测试,可以通过按住按钮启用。当启用“turbo”时,显示屏上的 LED 会指示位生成,并且 Geiger“咔嗒”声将无声。
骰子模式
在骰子模式下,随机数生成是通过按钮启动的,要生成的随机数的大小由切换开关的总和设置(未设置开关,设备将生成 0-255 范围内的随机字节)。按一次生成号码,再按一次清除显示。要生成的号码的大小以闪烁的数字显示。
统计表现
需要进一步测试以确认结果的一致性,但目前切尔诺贝利骰子能够生成 1.5+ 兆位的文件,该文件通过了 NIST 统计测试套件 [1] 的 Python 实现。这意味着切尔诺贝利骰子可能是一个非常公平的骰子。
SUMMARY
-------
monobit_test 0.279698915238 PASS
frequency_within_block_test 0.404035783453 PASS
runs_test 0.0688862287393 PASS
longest_run_ones_in_a_block_test 0.959135200804 PASS
binary_matrix_rank_test 0.532456847429 PASS
dft_test 0.000155432528185 FAIL
non_overlapping_template_matching_test 0.999998184707 PASS
overlapping_template_matching_test 0.55898054206 PASS
maurers_universal_test 0.224223569722 PASS
linear_complexity_test 0.672504584189 PASS
serial_test 0.424389760139 PASS
approximate_entropy_test 0.425255814114 PASS
cumulative_sums_test 0.348500456103 PASS
random_excursion_test 0.0753308212732 PASS
random_excursion_variant_test 0.207160448911 PASS
SUMMARY
-------
monobit_test 0.105735760191 PASS
frequency_within_block_test 0.436487225319 PASS
runs_test 0.648059641506 PASS
longest_run_ones_in_a_block_test 0.184787158208 PASS
binary_matrix_rank_test 0.310400523277 PASS
dft_test 0.156504142574 PASS
non_overlapping_template_matching_test 1.00000015958 PASS
overlapping_template_matching_test 0.629208901365 PASS
maurers_universal_test 0.938296605093 PASS
linear_complexity_test 0.0880093291441 PASS
serial_test 0.131826155057 PASS
approximate_entropy_test 0.137234909215 PASS
cumulative_sums_test 0.112328349057 PASS
random_excursion_test 0.17207234069 PASS
random_excursion_variant_test 0.299605480729 PASS
设备生成的两个212667字节随机二进制序列(“rand.binary.1”和“rand.binary.2”)的统计测试套件结果。专家注意:第一个序列的最后两个测试生成消息:“J 太小(J=181 < 500),结果不可靠”,因此对于该数据集,这些测试可能会被忽略。
该目录statistical_testing
包含一些用于从设备评估和收集数据的实用程序,包括示例随机二进制数据文件rand.binary.1
和rand.binary.2
.
CAD制图
可以通过以下 URL 查看和下载该设备的 Fusion 360 CAD 绘图:
感谢以下 GrabCAD 用户提供的模型:
- 亚历克斯(数码管)
- 迈克·史密斯(Arduino Nano)
- Dragos Ionescu (各种排针)
概述和零件清单
警告:这些说明和资源未经完善,并且未经测试。这是一个面向高级制造商的项目,您应该充分期待在构建自己的切尔诺贝利骰子时进行一些冒险!也就是说:如果您遇到麻烦,请给我发消息,我会尽力帮助您并改进说明。
以下是组装所需步骤的粗略概述:
1. 从 GitHub 存储库中的文件打印或制作以下自定义部件
- 外壳(使用 3D 打印机或 3D 打印服务)
- 逻辑、数码显示和控制面板定制 PCB(使用 OSHPark 等电路板制造服务)
- 不锈钢前面板(使用 OSHCut 等服务)
- 亚克力背板(使用 Sculpeo 等服务)
2. 订购其他组件(参见零件列表中的 URL)
3. 将黄铜支架嵌入外壳(这就是前后面板和定制 PCB 的安装方式)
提示
- 在将它们压入之前,应将一滴氰基丙烯酸酯(强力胶)放入外壳的支架孔中(十字头螺丝刀的尖端可以很好地完成这项任务)
- 如果顶部的一些孔从打印机出来时有点变形,那么可以通过在孔中拧动较大的十字头螺丝刀直到孔的顶部足够宽来轻松加宽它们。
4. 使用构建照片作为指南组装定制 PCB 和“exixe”数码管驱动板
提示
- 用于数码管驱动器 PCB 的 Nixie Display Board 上的母头可以仅使用四个长母头条组装(例如,无需单独连接 16 个 7 针母头---见照片)
- “CS”8 针公头目前是紧密配合的,因此您可能需要使用尖嘴钳将针脚推过电路板
- 对于控制面板 PCB,您可以暂时将拨动开关安装在前面板,然后将 PCB 压在开关背面的顶部以确保对齐良好——然后您可以将整个板和拨动组件从前面板焊接它,甚至将它焊接到位然后将其拉下
- 提供文件“nixie_holder.stl”作为放置数码管的有用位置,同时将它们焊接到“exixe”驱动板上
5. 将丙烯酸背板和面板安装 USB 电缆连接到外壳后部
6. 在外壳内安装定制 PCB 并进行布线(参见布线示意图和构建照片)
7. 部分拆卸旋转开关以将其连接到“锁板”(lock_plate.stl)
8. 对不锈钢前面板进行任何必要的整理
提示
- 一些用于拨动和开关的安装孔可能需要加宽(为此使用圆形文件)
- 激光切割零件的表面光洁度可以通过使用 ~300 目砂纸打磨来改善(首先在背面测试)
9. 在前面板上安装开关和 PCB 组件、带支架的 LED 组件、旋转开关和锁板组件以及按钮
小费
- 将 LED 连接到灯座时,滴一滴氰基丙烯酸酯(强力胶)以防止 LED 从灯座前部掉落
10. 进行控制面板的接线(见接线示意图和搭建照片)
11. 将八个数码显示驱动板安装到数码显示板的母头中
12. 将控制面板连接到逻辑板
13. 将前面板安装到外壳上,注意确保旋转开关锁板上的孔与放射性样品架前部的左上角对齐
支架尺寸指南
注意:对于较大的内部支架距离(例如数码显示器支架),可以堆叠两个支架以获得所需的距离。
接线图
如何连接切尔诺贝利骰子的内部接线。
构建照片
插入支架的外壳
您可以忽略外壳左侧的白色面包板。这些有助于项目的早期迭代,并且不需要组装。
逻辑板安装
请注意,UV LED 阵列的电线在逻辑板下方。
数码管接线
数码显示板安装和逻辑板接线
盖革板安装
注意:您必须将 JMP2 跳线拉到 Geiger 板的中心附近(这会关闭板的内置扬声器——我们希望这些咔嗒声是可选的,而是由固件控制)。单击此处查看大图。
铀样品架下半部细节
UV LED 和压电扬声器使用氰基丙烯酸酯(强力胶)粘合剂粘合安装到位。当安装上半部分时,铀玻璃弹珠将被机械固定到位。单击此处查看大图。
铀样品架下半安装
中间支座用螺母固定在底部。单击此处查看大图。
铀样品架上半安装
单击此处查看大图。
控制面板电路板有线
单击此处查看大图。
控制面板电路板接线详图
致谢
非常感谢 Emily Velasco ( @MLE_Online ) 对不锈钢表面打磨的建议,以及对这个项目的热情。
参考
[0] “量子随机数发生器。” M. Herrero-Collantes 和 JC Garcia-Escartin。https://arxiv.org/abs/1604.03304
[1] “用于加密应用程序的随机和伪随机数生成器的统计测试套件”。https://csrc.nist.gov/publications/detail/sp/800-22/rev-1a/final
- 基于多级反馈环形振荡器的真随机数发生器设计
- 用于生成随机数的电子骰子
- 单片机C语言如何产生随机数
- 单片机STM32F1随机数生成探索与实践(基于CUBEMX和KEIL5)
- 【STM32】随机数发生器详解
- STM8单片机产生随机数
- 基于FPGA的伪随机数发生器设计方案 4次下载
- STM8学习之通过UID码实现开机产生随机数 10次下载
- 如何使用FPGA实现伪随机数发生器 24次下载
- PIC32系列参考手册之加密引擎和随机数发生器(RNG)
- 为max765x微处理器的伪随机数生成程序 1次下载
- 产生随机数 13次下载
- 基于FPGA的随机数性能检测设计 45次下载
- 真随机数发生器的容差分析 26次下载
- 基于FPGA的真随机数发生器设计 72次下载
- 雅特力AT32 MCU的随机数生成 74次阅读
- 如何在FPGA中实现随机数发生器 329次阅读
- 基于时分复用光学参量振荡器的5比特全光量子随机数发生器 367次阅读
- 噪声发生器电路原理图 1259次阅读
- FPGA的伪随机数发生器学习介绍 1377次阅读
- CKS32F4xx系列RNG功能设置 483次阅读
- 分享一个棋盘游戏电子骰子电路 2234次阅读
- 三个简单的电子骰子电路分析 5765次阅读
- 如何在200 smart中生成伪随机数 6025次阅读
- 基于AT89C205构建的电子骰子的电路图 2178次阅读
- 真随机数发生器在安全控制器解决方案中的应用 1831次阅读
- 单片机产生随机数的方法 2.1w次阅读
- 如何在C语言中使用随机数 5070次阅读
- NIST的研究人员开发出一种用量子力学生成随机数字的方法 3748次阅读
- 利用FPGA的自身特性实现随机数发生器 1.2w次阅读
下载排行
本周
- 1Keysight B1500A 半导体器件分析仪用户手册、说明书 (中文)
- 19.00 MB | 4次下载 | 免费
- 2使用TL431设计电源
- 0.67 MB | 2次下载 | 免费
- 3BT134双向可控硅手册
- 1.74 MB | 2次下载 | 1 积分
- 4一种新型高效率的服务器电源系统
- 0.85 MB | 1次下载 | 1 积分
- 5LabVIEW环形控件
- 0.01 MB | 1次下载 | 1 积分
- 6PR735,使用UCC28060的600W交错式PFC转换器
- 540.03KB | 1次下载 | 免费
- 751单片机核心板原理图
- 0.12 MB | 1次下载 | 5 积分
- 8BP2879DB支持调光调灭的非隔离低 PF LED 驱动器
- 1.44 MB | 1次下载 | 免费
本月
- 1开关电源设计原理手册
- 1.83 MB | 54次下载 | 免费
- 2FS5080E 5V升压充电两串锂电池充电管理IC中文手册
- 8.45 MB | 23次下载 | 免费
- 3DMT0660数字万用表产品说明书
- 0.70 MB | 13次下载 | 免费
- 4UC3842/3/4/5电源管理芯片中文手册
- 1.75 MB | 12次下载 | 免费
- 5ST7789V2单芯片控制器/驱动器英文手册
- 3.07 MB | 11次下载 | 1 积分
- 6TPS54202H降压转换器评估模块用户指南
- 1.02MB | 8次下载 | 免费
- 7STM32F101x8/STM32F101xB手册
- 1.69 MB | 8次下载 | 1 积分
- 8基于MSP430FR6043的超声波气体流量计快速入门指南
- 2.26MB | 7次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935119次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73807次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65987次下载 | 10 积分
评论
查看更多