真随机数生成器 (TRNG)、Haskell 和经验/形式方法

Posted

技术标签:

【中文标题】真随机数生成器 (TRNG)、Haskell 和经验/形式方法【英文标题】:True random number generator (TRNG), Haskell and an empirical / formal method 【发布时间】:2013-04-06 13:42:30 【问题描述】:

我想对特定硬件生成的真随机数生成器 (TRNG) 数字进行验证,但我不习惯这样做。

首先,我想通过经验方法测试真随机数生成器(TRNG)的一致性(AKA,我想检查它们是否真的是真随机数(TRN));我不知道我是否可以用正式的方法来检查。

有没有关于这个主题的具体讲座?一些提示呢?是否有用于这种经验方法测试的工具?

【问题讨论】:

第二段的意思是TRNG而不是PRNG吗? 查看this answer。区分伪随机和随机是非常棘手的。建立在其他人的解决方案之上。查找 NIST 并从头开始。 就像你上次问这个问题一样,你能澄清一下使用形式化方法验证 PRNG 对你意味着什么吗?您可能意味着很多事情,例如“验证它与 RNG 算法的高级描述相匹配”或“验证输出通过随机性测试或被禁止”或许多其他事情。另外,你知道 Cryptol 语言吗? @AndrewC 哦,是的!我正确编辑了问题。 【参考方案1】:

我建议您不要尝试复制现有工具,因为这将是很多工作。 Marsaglia 的Diehard tests 应该可以工作,或者您可以使用dieharder,这是一个GPL 重新实现。来自网页:

顽固派(就像之前的顽固派)的主要目的是让时间和测试(伪)随机数生成器变得容易,包括软件和硬件,用于研究和密码学中的各种目的。该工具完全建立在 GSL 的随机数生成器接口之上,并在其操作中使用了各种其他 GSL 工具(例如排序、erfc、不完全伽玛、分布生成器)。

【讨论】:

以上是关于真随机数生成器 (TRNG)、Haskell 和经验/形式方法的主要内容,如果未能解决你的问题,请参考以下文章

国民技术 NS3300 配件认证身份识别安全芯片

国民技术 NS3300 配件认证身份识别安全芯片

带有漂亮 API 的 Haskell 的纯伪随机生成器?

解密随机数生成器——真随机数生成器(转)

使用硬件(真)随机数生成器的 Linux 脚本

Linux真随机数的生成