web-dev-qa-db-ja.com

エントロピーを生成してRSAキーを作成します

サーバーを可能な限り安全にする方法を考えていました。私はOpenSSHを使用して、RSAキーを使用して接続しています。ただし、その方法について気になることがあります。RSAキーを生成するために、「エントロピー」を生成しませんでした。

次に例を示します。Windowsでは、VeraCryptを使用してフォルダーを暗号化するために、ユーザーは対話(マウスの移動)を実行してRSAキーをよりランダムにするように求められます。それをopensslまたはlibresslで再現できますか?

さらに、CPU(通常は政府)の設計を知っていれば、RSA秘密鍵をブルートフォースする時間を劇的に短縮できる可能性があることをどこかで読んだことがあります。

1
Mathématix

CPU(通常は政府)の設計を知っていれば、RSA秘密鍵をブルートフォースする時間を劇的に短縮できる可能性があることをどこかで読んだことがあります。

理由を理解することが重要です。説明するエントロピーはRSAキーには適用されません。

RSAでは、この非対称性は、2つの大きな素数の積の因数分解の実際的な難しさである「因数分解の問題」に基づいています。

ソース: RSA(暗号システム)

同様に、

証明書生成の要点は、非常に大きな素数を生成するアルゴリズムへのノイズ入力として、ファイルまたは乱数ジェネレーターから乱数を作成することです。秘訣はそれらの素数に到達することです。 4096ビットのエントロピープールでは、haveged(8)が提供するように、常にフルアップで、システムの完全な知識を持っていても、誰かが同じ素数を再生成する能力はほとんどありません。

ソース: OpenSSLキーを生成するための優れたエントロピーソース

OpenSSLとLibreSSLは、デフォルトで、オペレーティングシステムのカーネルをエントロピーのソースとして使用します。 ブルートフォース攻撃以外に、重要で適切なサイズのRSAキーを破壊する既知の脆弱性はありません。

OpenSSLおよびLibreSSL自体は、必要なものをサポートしていません。ただし、 PuTTY Key Generator のようなものを使用して、必要なことを実行できます。 OpenSSLを使用して証明書を生成する場合は、appropirate OpenSSLコマンドを使用して生成されたキーを使用する必要があります。

それをopensslまたはlibresslで再現できますか?

OpenSSLおよびLibreSSLは、マウスの動きからのエントロピーの収集をサポートしていません。

1
Ramhound