一款名为 Entropy32 Plus 的新型开源设备应运而生。该设备通过利用放射性衰变的不可预测性来生成比特币助记词。其项目旨在通过从物理来源获取随机性,而非依赖确定性软件随机数生成器,从而增强加密安全性。
Entropy32 Plus 的工作原理依赖于盖革计数器(Geiger counter),用于检测来自放射性源或环境背景源的衰变事件。每个被检测到的事件都会产生一个独特的电脉冲,并通过 3.5mm 音频接口传输以供收集。这些脉冲提供了熵(entropy)——即安全加密密钥生成所需的关键随机性度量。
该设备使用 LM393 比较器将模拟信号转换为数字读数,并将偏置阈值设定在约 0.5V,以确保输出的一致性。微控制器会测量连续衰变脉冲之间的时间间隔,并将其作为原始随机数据使用。
为了提高熵的质量,系统采用 SHA-256 条件处理机制对原始数据进行“白化”处理,在将其映射到符合 BIP39 标准的 2048 词列表之前减少统计偏差。最终生成的助记词完全适用于离线保护比特币钱包,最大限度地减少了无线连接或互联网暴露等攻击面。
随附的文档指出,该设备“简单、可审计,且任何人只要拥有 readily available(易于获取)的组件即可自行构建”,除了包含的固件外,无需任何外部软件支持。”
开发者表示,目前生成的熵质量尚未根据 NIST SP 800-90B 标准进行验证。该标准为评估物理和基于软件的随机数生成器提供了指南。
Entropy32 Plus 的核心是一块定制 PCB,采用了 ATmega328P 微控制器,这是一种紧凑且广泛使用的芯片。固件占用了芯片 30,720 字节闪存中的 30,006 字节,为未来的更新留下了极小的空间。内存限制影响了设计选择,特别是包含了 BIP39 英文词表,仅这一部分就占用了 13,117 字节,占总存储容量的约 43%。
| BIP39 词表 | 13,117 | SHA-256 例程 | 2,278 | 状态机 & UI | 3,000+ | 固件总计 | 30,006 | 闪存容量 | 30,720 |
由于这些限制,常见的显示库如 Adafruit_GFX 和 Adafruit_SSD1306 无法集成。因此,固件转而采用内存高效的 U8x8 文本模式来驱动 OLED 屏幕。该设备还配备了按钮驱动菜单,进一步支持独立、安全的操作。
有兴趣自行构建该项目的用户可以在公共仓库中找到完整的 Arduino 代码、SHA-256 实现方案、KiCad 电路图、制造文件以及可 3D 打印的外壳设计。开发者强调,Entropy32 Plus 是一个实验性构建版本,未经过独立审计或外部验证,建议用户独立验证其熵源。