新しいキーが生成され、約1週間に1回使用される場合、512ビットのRSAキーは安全ですか?キーはメッセージの署名にのみ使用され、機密データの暗号化には使用されません。
これは、存続時間の非常に短い接続p2p(1つのUDPパケットを要求として、もう1つを応答として考える)が多く、1024または2048ビットのRSAのオーバーヘッドが非常に高いシステム用です。
署名のみの場合、512ビットのRSAキーは、決定的な攻撃者に対してさえ、少なくとも数日、おそらく数週間は抵抗する必要があります。署名を「すぐに」確認する限り、これは「妥当」です。公開鍵が公開された時点から、セキュリティが数時間、最高でも数時間あると想像できます。その後、鍵が期限切れであると見なし、その鍵で計算された署名を信頼しないようにする必要があります。
しかし、私はあなたのユースケースが少し怪しいと思います。 GeneratingRSA鍵は、署名の計算に関して非常に高価になります。署名sizeを心配する場合は、 [〜#〜] dsa [〜#〜] またはその楕円形を調査する必要がありますカーブバリアント。 160ビットカーブのECDSAは、320ビットシグネチャ(RSA-512の512ビットシグネチャよりもかなり小さい)を使用しますが、実質的に強力です(160ビットカーブのECDSAは、技術的に実現可能な範囲を超えています)およびは、CPU使用率に関しては依然として競争力があります。
また、非対称暗号化の難しい部分はキーの配布です(それが [〜#〜] pki [〜#〜] についてです);多くのキーを生成する場合、その部分だけを難しくします。
時間はそれほど重要ではありません。問題は、攻撃者が喜んで費やす金額です。私が聞いたところによると、RSA 512の破壊には現在、クラウドコンピューティングを使用して75〜150ドル、30時間かかります。
Crypto.SEについても非常によく似た質問があります。 512ビットのRSAは署名の生成に対して安全ですか?
しかし、楕円曲線暗号の使用を検討しましたか?たとえば、NaClでのCurve25519実装は、最近のコンピューターで1秒あたり> 10000のキー交換を実行できます。署名はしませんが、認証された暗号化を使用します。これは通常、要求と応答のスキームでうまく機能します。同じパーティと複数のメッセージを交換する場合、キー交換の結果をキャッシュし、それらすべてを認証することができます。本当に署名する必要がある場合は、パフォーマンスがかなり似ているEd25519を使用できます。
一般的な測定基準では、キースペースは、送信を保護する必要のある時間内にキーを推測できないように十分大きくする必要があります。
現在のコンピュータで512ビットのRSAキーをブルートフォースで実行する平均時間はどのくらいか頭の上からわからないのですが、それが私が探している値であり、それを比較しています。完全性チェックを実行可能にするために必要な期間。たとえば、整合性チェックが接続の存続期間(分)にのみ重要である場合は問題ないかもしれませんが、整合性チェックが保存され、後でチェックされて信頼されるメッセージに対して行われる場合は、1週間が経過した後、キーの有効期間は実際には1週間以上であり、(おそらく)より大きなキースペースが必要です。