web-dev-qa-db-ja.com

SSHキー:Ed25519とRSA

SSHでは、RSAキーの代わりに_Ed25519_を使用することをお勧めします。

_Ed25519_( http://ed25519.cr.yp.to/ )の紹介ページにはこう書かれています:
_[..] breaking it has similar difficulty to breaking [..] RSA with ~3000-bit keys [..]_

つまり、セキュリティのonly(速度ではない!)と言えば、なぜnot _RSA 4096_よりも_Ed25519_?
_Ed25519_が〜3000ビットのキー強度しか提供しない場合、4096ビットのRSAの方がはるかに安全でしょうか?

50
Ben Richard

「既存の予見可能な技術で壊すことはできない」という領域に到達すると、主要な強みとその同等性は無意味になります。それより安全なものはないからです。鍵のサイズをある種のセキュリティマージンを提供するものとして考えることは一般的な反射ですが、この種の推論はある点を超えて失敗します。

基本的に、RSAを解くための、および楕円曲線を解くための最もよく知られているアルゴリズムは、25年前にすでに知られていました。それ以来、コンピュータの高速化により、破壊効率は 正しく予測された の速度で向上しました。このグラフに示されているように、多くの微調整を通じてその速度に追いつくことができたことは研究者への賛辞です。

Factorization records over time

this answer から抽出)。

要するに、キーが大きいほど予測可能な抵抗は長くなりますが、この種の予測は、技術の向上が実際に予測できる限り、そしてどのコンピューターが50を超えることができるかを知っていると主張する人がいる限り機能します。今から何年かは、預言者、狂人、嘘つき、またはこれらすべてを合わせたものです。

今から50年後、上記の回答で与えられた楽観的な公式((年-2000)* 32 + 512)は、最高、RSAレコードが2592ビットに近づくことを想定していることを意味します。

結論としては、セキュリティの観点から、3000ビットと4000ビットのRSAキーを互いに比較できる意味のある方法はありません。それらは両方とも「予見可能な将来において破ることができない」です。鍵は壊れていないよりも壊れることができません。

追加の重要なポイントは、SSHの「永続的な」キー(生成してファイルに保存するキー)は署名。このような鍵を破ると、攻撃者はサーバーまたはクライアントになりすますことができますが、notは、過去に記録されたセッションを復号化します(実際の暗号化鍵は、短命のDiffie-Hellman鍵交換または楕円その曲線の変形)。したがって、あなたの鍵が次の世紀に壊れるかどうかは重要ではありません。 「究極の」セキュリティを実現するために(少なくともコンピュータの世界では)、SSHキーに必要なのは破壊できないキーnowであり、科学とテクノロジーは知られています。今。

同じことに関するもう1つの観点は、接続を保護できるのは2つのエンドポイントと同じであるということです。邪悪な犯罪者やスパイなど、敵を拘束するものは何もありません。「フェア」をプレイして暗号を前倒ししようとして、あなたを倒そうとします。何千人もの情報提供者を雇って全員(そしてお互いに)をスパイするのは非常に費用がかかりますが、- 行われています 、これは2048の単一のRSAキーを破ることについて言うことができる以上のことですビット。

59
Tom Leek