在 Linux 下,除非使用 /dev/urandom,否则在尝试生成 GPG 密钥时会耗尽系统熵。在 Windows 下,无需任何调整即可获得 /dev/urandom 的速度。Windows 有那么多额外的熵吗,还是密钥不太安全?
对于那些不熟悉为什么这可能是一个问题的人来说,这是一个讨论 /dev/urandom 生成不太安全的密钥的链接。 https://bugs.launchpad.net/ubuntu/+source/gnupg/+bug/706011
答案1
我认为这主要取决于熵池以及熵的收集方式。
我找到了这个:
Microsoft Windows 95A 之后的版本都具有 CryptoAPI (CAPI) API,它以类似于 Linux 内核的 /dev/random 的方式收集熵。[11] Windows 的 CryptoAPI 使用二进制注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG\Seed 来存储来自其所有熵源的种子值。[12] 由于 CryptoAPI 是闭源的,因此在 Windows 平台上运行的一些免费和开源软件应用程序使用其他方法来获取随机性。例如,从 1.06 版开始,GnuPG 使用各种来源(例如内存中的可用字节数)与随机种子相结合来生成所需的随机性。[13] 使用 CAPI 的程序员可以在正确初始化 CAPI 后通过调用 CryptGenRandom() 来获取熵
我希望它能帮助您或为您指明正确的方向。