有人指出,我们缺少关于如何从想法到硬件到硬件的逐步指南,以在Xous中为前体的完全实现的功能。所以,这是。
因为前体为其SoC使用FPGA,所以我们可以为硬件“在飞行”中添加新功能。在这种情况下,我们将为我们的基本托管TRNG块添加一些改进。审查,现有的TRNG包括雪崩噪声源和环形振荡器噪声源,作为基于硬件的“真实”熵的源。出于以下原因,使用两个发电机:
外部离散发电机易于检查(仅在雪崩噪声源上放置示波器),但更难地防止物理访问攻击
芯片的片上发生器更难破解(对执行短到地面攻击的一对镊子或RF干扰攻击的对镊子更加强大),但更难检查(是来自TRNG的数据,或仅仅是诱饵csprng植入物?)
所有硬件机制都是缺乏缺乏的;拥有两个来源可以改善对瞬态辍学或衰老失败的鲁棒性
我们已经完成了对Trng来源的广泛,数月长的表征,并发现它们产生可通过的原始熵。但是,系统仍缺少两个功能通常被认为是最佳实践:
独立的,在线健康监视器的原始Trng输出。重要的是,在原始数据发生的任何调理或混合之前发生健康监测,并且显着地,没有一定尺寸适合的全部健康监视器:它建议(nist sp 800-90b sec 4.4)对噪声源定制的测试。
原始数据的调理。尽管最好的努力使TRNGS无偏不倚,但它们真的很难正确。此外,它们仅能够以有限的数据速率生产高质量的熵。因此,大多数实际系统采用TRNG输出并通过加密流密码运行以生成最终数据流;这同时防止TRNG中的轻微缺陷,同时提高了随机数的可用性。
以下冗长的帖子通过添加这些功能的思维过程,实现和调试过程来步行。很少有人甚至会注意到这些功能,如果一切正常正在做的工作权(即,Trng的原始数据正常工作)无法从所有这些努力之前无法区分。但是,我们在这里认真对待Trgs;如此多地乘坐这些随机数的质量,这可能是值得努力解决失败的努力,他们无意中,恶意或只是设计错误。
我必须诚实地,我花了很多时间来检查一个人很少关心的盒子,但我来实现这是一个写作的操作系统代码和固件的东西。您可以在下午的工作中创造更多的名望和多巴胺,从创造一个酷炫的UI主题。对日常的人来说,你对所有这一点和努力做的事情都非常难以理解;但如果没有潜在的框架,使东西耐用可靠,我们都可能在侧面绘制粉笔图片。
无需进一步的ADO,这里有两个用于添加功能的指南,帖子之间存在一些重复,因此可以独立读取它们。
我还将从这些Wiki文章中拍摄亮点并在此处转发给博客,创建一个“TL; DR”版本,该版本也整齐地传送到我的博客电子邮件用户的收件箱。