Testing 如何测试加密安全的随机数生成器

Testing 如何测试加密安全的随机数生成器,testing,random,cryptography,Testing,Random,Cryptography,或多或少出于好奇,是什么定义随机数生成器是加密安全的?非加密安全和加密安全生成器的测试会有所不同吗 相关帖子:1)至于“什么构成‘加密安全伪随机数生成器’(CSPRNG)?,维基百科有一个很好的标准列表: 2)至于“如何测试”,你可以考虑Chi方程式: 1)至于“什么构成‘加密安全伪随机数生成器’(CSPRNG)?,维基百科有一个很好的标准列表: 2)至于“如何测试”,你可以考虑Chi方程式: 测试通用随机数生成器的质量通常包括运行各种统计测试,这些测试表明其结果在某些方面没有偏差。NI

或多或少出于好奇,是什么定义随机数生成器是加密安全的?非加密安全和加密安全生成器的测试会有所不同吗

相关帖子:

1)至于“什么构成‘加密安全伪随机数生成器’(CSPRNG)?,维基百科有一个很好的标准列表:

2)至于“如何测试”,你可以考虑Chi方程式:

1)至于“什么构成‘加密安全伪随机数生成器’(CSPRNG)?,维基百科有一个很好的标准列表:

2)至于“如何测试”,你可以考虑Chi方程式:


测试通用随机数生成器的质量通常包括运行各种统计测试,这些测试表明其结果在某些方面没有偏差。NIST对此有一套测试,详情如下:


证明一个随机数生成器是加密安全的根本不是一个测试问题,而是一个证明问题。这通常归结为表明,要从RNG输出样本预测其未来(或猜测过去)输出(在某些情况下,甚至在控制其部分输入时),必须克服密码散列、密码或其他通常认为难以解决的问题。这是一个基本上由人驱动的过程;它不能机械地执行。

测试通用随机数生成器的质量通常包括运行各种统计测试,这些测试表明其结果在某些方面没有偏差。NIST对此有一套测试,详情如下:


证明一个随机数生成器是加密安全的根本不是一个测试问题,而是一个证明问题。这通常归结为表明,要从RNG输出样本预测其未来(或猜测过去)输出(在某些情况下,甚至在控制其部分输入时),必须克服密码散列、密码或其他通常认为难以解决的问题。这是一个基本上由人驱动的过程;它不能机械地执行。

看看这对您有帮助吗?1) 至于“什么构成‘加密安全伪随机数生成器’(CSPRNG)?,维基百科有一个很好的标准列表:。2)至于“如何测试”,你可以考虑Chi方程式:简短的回答:你不能。这就是他们经常失败的原因。看看这对你有帮助吗?1) 至于“什么构成‘加密安全伪随机数生成器’(CSPRNG)?,维基百科有一个很好的标准列表:。2)至于“如何测试”,你可以考虑Chi方程式:简短的回答:你不能。这就是为什么它们经常失败的原因。卡方检验不能证明随机数生成器是加密安全的。它所能做的只是表明RNG不受某些类型的偏差的影响——但这甚至不足以表明它是一个好的PRNG,更不用说它的安全性了!卡方检验不能证明随机数生成器是加密安全的。它所能做的只是表明RNG不受某些类型的偏差的影响——但这甚至不足以表明它是一个好的PRNG,更不用说它的安全性了!我不同意你的结论“这不能机械地进行”。有很多方法可以机械地显示减少,只是因为这些机制往往需要一个博士,他知道机械化并不意味着它们不存在。不过,我同意你的回答,因为它需要这样一位专家,这意味着机械化的门槛太高,没有意义。@Dashwuff谢谢你的回答。我主要研究了统计测试,但很少研究密码测试。这是有意义的,这个过程不能机械地进行,这使得它的测试本质上毫无意义。考虑一个程序产生的“随机数”通过加密序列号与已知的密钥。这应该通过所有统计测试,但实际上根本不是随机的-如果你知道密钥,你可以解密其中一个数字并预测一切。但是,如果没有密钥,甚至无法检测到正在发生的情况,因此没有标准测试可以表明这是不安全的。在发布此问题之前,我通读了这篇关于RNG()统计测试的文章,因此,我想了解更多信息会很有意思,因为我在密码学方面没有做太多的工作来获得足够的理解。@tll很抱歉回答这个老问题,但我遇到了同样的情况,我需要评估RNG的随机性。我已经阅读了你提供的章节,但我想知道如果约翰·库克描述的测试没有给出决定性的结果,该怎么办。你知道除了第10章还有什么地方可以做吗?我不同意你的观点“这不能机械地完成”。有很多方法可以机械地显示减少,只是因为这些机制往往需要一个博士,他知道机械化并不意味着它们不存在。不过,我同意你的回答,因为它需要这样一位专家,这意味着机械化的门槛太高,没有意义。@Dashwuff谢谢你的回答。我主要研究了统计测试,但很少研究密码测试。这是有意义的,这个过程不能机械地进行,这使得它的测试本质上毫无意义。考虑一个程序产生的“随机数”通过加密序列号与已知的密钥。这应该通过所有统计测试,但实际上根本不是随机的-如果你知道密钥,你可以解密其中一个数字并预测一切。但是,没有钥匙,就不会有