生成熵来创建 RSA 密钥

生成熵来创建 RSA 密钥

我想知道怎样才能让我的服务器尽可能安全。我使用 OpenSSH 连接它,使用 RSA 密钥。但是,这种方法让我有些困扰:为了生成 RSA 密钥,我没有生成“熵”。

以下是示例:在 Windows 上,要使用 VeraCrypt 加密文件夹,用户需要执行交互(鼠标移动)以使 RSA 密钥更加随机。我们可以在 openssl 或 libressl 中重现该操作吗?

此外,我读到过一些文章说,如果你了解 CPU 的设计(通常是政府),你就可以大大减少暴力破解 RSA 私钥的时间。

答案1

我读到过一些文章说,如果你了解 CPU 的设计(通常是政府),你就可以大大减少暴力破解 RSA 私钥的时间。

了解原因很重要,您描述的熵不适用于 RSA 密钥。

在 RSA 中,这种不对称性基于两个大素数乘积的因式分解的实际难度,即“因式分解问题”。

来源:RSA(密码系统)

同样地,

证书生成的整个目的是从您的文件或随机数生成器中创建随机数,作为算法的噪声输入以生成非常大的素数。诀窍是获取这些素数。在 4096 位的熵池中,始终处于满负荷状态,正如 haveged(8) 将提供的那样,即使某人完全了解您的系统,他们也极不可能重新生成相同的素数。

来源:生成 OpenSSL 密钥的良好熵源

OpenSSL 和 LibreSSL 默认使用操作系统的内核作为熵源。 除了暴力破解之外,没有其他已知漏洞可以破解重要且适当大小的 RSA 密钥。

OpenSSL 和 LibreSSL 本身不支持您想要的功能。但是,您可以使用类似PuTTY 密钥生成器,做你想做的事。当使用 OpenSSL 生成证书时,您需要使用使用适当的 OpenSSL 命令生成的密钥。

我们可以在 openssl 或 libressl 中重现该情况吗?

OpenSSL 和 LibreSSL 不支持从鼠标移动收集熵。

相关内容