回答:
GPGのメンテナーは、デフォルトをRSAに変更することを考えています(ソース:SHA-1 [LWN.net]の脆弱性に対処する)。そのため、彼らは現在RSAがより良い選択肢であると考えているようです(そして、彼らはあなたや私よりもそれについてもっと知っているべきです)。
RSAとDSA-誤解と有用な情報に
は、古い RSA参照と最近の DSA参照がいくつかあります。
2003年には、DSA署名対RSA -勝者は...ある - RSA。
したがって、基本的にDSAの場合、キー生成は非常に高速です。これは、アルゴリズムを理解している場合に意味があります。署名はDSAでも高速ですが、それほど大きな要因ではありません。RSAの大きな強みは、DSAよりもはるかに高速な検証です。
最近のIETFドラフト:DNSSEC用のSHA-2を使用したDSA、2010年1月7日に期限切れ
。今日RSAよりもDSAを推進する理由がいくつかあります。
DNSSECでSHA-256でDSAを使用すると、2048ビットキーを使用する場合にSHA-256でRSAを使用する場合に比べて、いくつかの長所と 短所があります。 DSA署名はRSA署名よりもはるかに短いです。このサイズでは、差は512ビットと2048ビットです。2048ビットキーを使用する一般的なプラットフォームでは、DSAの署名は RSAの約3倍高速ですが、RSA署名の検証はDSAの10倍以上高速です。
DSAの暗号強度は、DSA公開キーとRSA公開キーが同じサイズである場合、一般にRSAと同等と見なされます。もちろん、このような評価は、いずれかのアルゴリズムでより効果的な新しい攻撃が見つかった場合、将来変更される可能性があります。
現在、このドキュメント用に選択されたDSAパラメータの特定のセットに対する既知の攻撃はありません。もちろん、このような評価は将来変更される可能性があります。
しかし、これは現時点ではドラフトにすぎません。
RSA(!)の検証速度は誰もが気に入っています。
私のアドバイスは、暗号化にRSA署名キー(「プライマリ」または「マスター」キー)とRSAサブキーを使用することです。署名にRSAを使用する理由は、主にRSAでDSAよりも大きなハッシュを使用できるためです。また、DSA2ではより大きなハッシュを使用できますが、RSAはDSA2よりも長い間サポートされています。
標準的な方法で使用している場合(つまり、大量のデータを暗号化しない場合)、両方ともうまくいくと思います。
RSAを選択したのは、アルゴリズムを学んだからです。これは、これまで見た中で最も美しいアルゴリズムの1つです。
また、現在のDSSの改訂以降、SHA-2アルゴリズムの使用が可能であり、許可されています。しかし、どのリビジョンGPGが続くかを見つけることができませんでした。
現在のDSS仕様(FIPS-186-3、p。i)に関して、SHS(FIPS-180-3、p。iv)で指定されたハッシュ関数を使用できます。
DSS:
FIPS承認のデジタル署名アルゴリズムは、SHSで指定されている適切なハッシュ関数とともに使用されるものとします。
高等学校:
この規格は、電子データ(メッセージ)の圧縮表現を計算するための5つの安全なハッシュアルゴリズム-SHA-1、SHA-224、SHA-256、SHA-384、およびSHA-512を指定しています。
質問に対して:両方のアルゴリズムは、安全であると証明されていない数学的問題に基づいています(RSAは数値の因数分解の問題を使用し、DSAは離散対数問題を使用します)。問題も他も解決されたことはありません。
ただし、SHA-1でDSAを使用すると、pgsで既に述べたように、セキュリティ上の問題が発生する可能性があります。
実際にはおそらく重要ではありません:)キーペアを生成する準備の一部として、および既存のキーペアの維持の一部として-選択する非対称暗号に関係なく、あなたはどうあるべきか:1)現在の推奨を確認するキーの長さ2)署名または検証のために最適化するベース/モジュロを選択します-頻繁に行われることによります(TLS / SSLサーバー証明書の発行に使用するキーは、すべてのWebブラウザが署名をチェックするため、検証のために最適化する必要があります...署名ソフトウェアで使用されるキーは同様に最適化される必要があります)3)キーをエージングします-数年間ssh-authに同じキーを使用しているので、キーを選択したとしても再生成するときがあります現在のアプリケーションにとってまだ妥当なサイズです。
RSAとDSAの両方が実質的に評価されています。実現可能なコードベース(RSAREF、RSAコマーシャル、Mozilla / Netscape、Microsoft、OpenSSLなど)を使用している場合、正しく使用し、現在のベストプラクティスを利用している限り、どの暗号システムを使用するかは気にしないでしょう。