【问题标题】:CryptGenRandom EntropyCryptGen随机熵
【发布时间】:2010-08-15 10:28:59
【问题描述】:

CryptGenRandom 是 Windows 中 CryptoAPI 中的随机数生成器函数。那个随机数发生器有多少熵?我已经找了很多了,还是没找到。

【问题讨论】:

标签: windows winapi random entropy


【解决方案1】:

Windows CryptGenRandom 的确切算法从未公布过,因此,一些安全专家建议根本不要使用它。

进行了一些逆向工程和密码分析。 一项已发表的研究 (Cryptanalysis of the Windows Random Number Generator - Leo Dorrendorf, 2007) 检查了 Windows 2000 RNG 并发现了一些 设计和实现方面的弱点。

该文档还描述了算法的熵收集器机制(第 4.2.3 节)。熵源是:

Source                   Bytes requested
CircularHash              256
KSecDD                    256
GetCurrentProcessID()       8
GetCurrentThreadID()        8
GetTickCount()              8
GetLocalTime()             16
QueryPerformanceCounter()  24
GlobalMemoryStatus()       16
GetDiskFreeSpace()         40
GetComputerName()          16
GetUserName()             257
GetCursorPos()              8
GetMessageTime()           16
NTQuerySystemInformation calls:
ProcessorTimes             48
Performance               312
Exception                  16
Lookaside                  32
ProcessorStatistics       up to the remaining length (3584 bytes buffer)
ProcessesAndThreads       up to the remaining length

由于我们谈论的是伪数生成器而不是实数生成器,您可能会说根本没有真正的熵,或者只计算您可能认为是“熵”的源(伪-熵)。

我无法在 Windows 上找到有关较新版本的信息。

【讨论】:

  • 什么是 Windows Vista/7/8 熵?
  • 研究链接不好。可以调整吗?
  • 这是一个非常好的答案!我真的很喜欢你的系统方法。您如何确定每个算法的请求的字节数性能的检查在整体熵(312位)中所占的比例非常高。你能解释一下为什么吗? - - 它希望您的系统方法也用于图像分析,因为我在这里找不到任何算法等的任何质量预览cs.stackexchange.com/q/4935/10350
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-02
相关资源
最近更新 更多