Tom*_*Tom 10 .net security random cryptography
我试图弄清楚硬件RNG实际上是否比RNGCryptoServiceProvider更安全.
鉴于来自RNGCryptoServiceProvider的随机性是使用各种系统和用户数据提供的,例如进程ID,线程ID,系统时钟,系统时间,系统计数器,内存状态,可用磁盘集群和散列用户环境块以及国际标准加密算法[ ref],除了速度之外,还有什么理由将硬件RNG用于安全应用吗?
编辑:我想在所有这些中假设运行RNG的计算机没有被压缩 - 也就是说,没有间谍应用程序.
这是一个很好的问题,我怀疑答案是(正如Henk建议的那样)更具理论性.可以采用硬件组件来产生白噪声,然后对其进行采样并用作硬件RNG.从理论上讲,这比使用系统的时间更"随机".
但在实践中,RNG在进行FIPS认证时会受到考验.RNGCryptoServiceProvider已通过FIPS 140-2认证(来源:http://technet.microsoft.com/en-us/library/cc750357.aspx )
一些答案基于一种误解,即由于软件RNG使用已知的输入值来源,因此可以监控这些输入值并发现种子.
这不是一个真正的弱点(如果可以说硬件RNG相同,我们可以监控其当前(单个?)值并确定种子)
缺点(如果有的话)是大多数软件RNG使用可以在软件中操纵(在一定程度上)的输入源.这将允许精心设计的恶意软件将硬件操纵到RNG输出可预测(即非随机)数字的点.
归档时间: |
|
查看次数: |
2887 次 |
最近记录: |