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

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

サーバーをできるだけ安全にするにはどうしたらよいか考えていました。私は OpenSSH を使用して RSA キーでサーバーに接続しています。しかし、この方法で気になることがあります。RSA キーを生成するのに「エントロピー」が生成されないのです。

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

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

答え1

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

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

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

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

同じく、

証明書生成のポイントは、ファイルまたは乱数ジェネレータから乱数を作成し、アルゴリズムへのノイズ入力として、非常に大きな素数を生成することです。秘訣は、それらの素数を取得することです。haveged(8) が提供する 4096 ビットのエントロピー プールが常に最大限に利用されている場合、たとえシステムを完全に知っている人であっても、同じ素数を再生成することはほぼ不可能です。

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

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

OpenSSLとLibreSSL自体はあなたが望むものをサポートしていません。しかし、次のようなものを使うことができます。PuTTY キージェネレーター、あなたがしたいことをしてください。OpenSSL を使用して証明書を生成する場合は、適切な OpenSSL コマンドを使用して生成されたキーを使用する必要があります。

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

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

関連情報