web-dev-qa-db-ja.com

GPGキーのより良いもの-RSAまたはDSA?

ssh-keygenデフォルトではRSA鍵を作成しますが、gpg --gen-keyはDSA/ElGamalを優先します。

RSAとDSAのどちらがGPGに適していますか?

60
user1686

GPGのメンテナは デフォルトをRSAに変更 を考えています(ソース: Debianing with weakness with SHA-1 [LWN.net] )。そのため、RSAが現在より良いオプションであると彼らは考えているようです(そして、彼らはあなたや私よりもそれについてもっと知っているはずです)。

37
CesarB

RSAおよびDSA-誤解と有用な情報
にはいくつかの古い[〜#〜] rsa [〜#〜]参照と最近の[〜#〜] dsa [〜#〜]があります参照、


2003年、 RSA vs DSA署名-勝者は...[〜#〜] rsa [〜#〜]

したがって、基本的に鍵生成はDSAの方が信じられないほど高速です。これは、アルゴリズムを理解していれば意味があります。署名もDSAの方が高速ですが、それほど大きな要因ではありません。 RSAの大きな強みはverifyingであり、DSAよりもはるかに高速です

最近の IETFドラフト:DNSSECのSHA-2を使用したDSA 、2010年1月7日に期限切れ。
今日RSAよりもDSAを宣伝する理由はいくつかあります。

DNSSECでSHA-256とDSAを使用すると、2048ビットキーを使用する場合にSHA-256でRSAを使用する場合と比較して、いくつかのadvantagesおよびdisadvantagesがあります。 DSA署名はRSA署名よりもはるかに短い;このサイズでは、違いは512ビットと2048ビットです。 2048ビットのキーを使用する一般的なプラットフォームでは、DSAへの署名はRSAの場合より約3倍高速ですが、RSA署名の検証はDSAの場合よりも10倍以上高速です

DSA公開鍵とRSA公開鍵が同じサイズの場合、DSAの暗号強度は一般にRSAと同等であると見なされます。もちろん、そのような評価は、いずれかのアルゴリズムでよりうまく機能する新しい攻撃が見つかった場合、将来的に変更される可能性があります。

現在、このドキュメント用に選択された特定のDSAパラメータセットに対する既知の攻撃はありません。もちろん、このような評価は将来変更される可能性があります。

しかし、これは現時点ではdraftにすぎません。

RSA(!)の検証速度は誰もが気に入っています。

25
nik

RSA。 [SHA-1 で発見されたいくつかの弱点がありました。これは [〜#〜] dsa [〜#〜] によって使用されるハッシュです。 Debianは migratingすべてのキー DSAからRSAです。

8
pgs

引用 フォーラムの議論

暗号化には、RSA署名キー(「プライマリ」または「マスター」キー)とRSAサブキーを使用することをお勧めします。署名にRSAを使用する理由は主に、RSAではDSAよりも大きなハッシュを使用できるためです。 DSA2では、より大きなハッシュを使用することもできますが、RSAはDSA2よりも長い間サポートされています。

標準的な方法で使用している場合(つまり、大量のデータを暗号化しない場合)、どちらもうまく機能すると思います。

RSAを選択したのは、アルゴリズムを学んだからです。これは、これまでに見た中で最も美しいアルゴリズムの1つです。

6
Adam Matan

また、DSSの現在のリビジョン以降、SHA-2アルゴリズムの使用が可能であり許可されています。しかし、私はGPGがどのリビジョンに従うかを見つけることができませんでした。

現在のDSS仕様( FIPS-186- 、p。i)に関して)、SHSで指定されたハッシュ関数(FIPS-180-3、p。iv )使用できます:

DSS:

FIPS承認のデジタル署名アルゴリズムは、SHSで指定されている適切なハッシュ関数と共に使用されるものとします。

高等学校:

この規格は、電子データ(メッセージ)の圧縮表現を計算するための5つのセキュアハッシュアルゴリズム(SHA-1、SHA-224、SHA-256、SHA-384、およびSHA-512)を規定しています。


質問へ:両方のアルゴリズムは、安全であることが証明されていない数学的問題に基づいています(RSAは数値の因数分解の問題を使用し、DSAは離散対数を使用します問題)、1つの問題も他の問題も解決されていないため、一方が他方より安全であるとは言えません。

ただし、SHA-1でDSAを使用すると、pgsですでに述べたように、セキュリティ上の問題が発生する可能性があります。

4
Manuel Faux

事実、それはおそらくあなたにとってそれほど重要ではありません:)鍵ペアを生成する準備の一環として、および既存の鍵ペアを維持する一環として-どの非対称暗号を選択するかに関係なく、次のことを行う必要があります。キーの長さ2)署名または検証のために最適化するベース/モジュロを選択-より頻繁に実行される内容に応じて(TLS/SSLサーバー証明書の発行に使用されるキーは、すべてのWebブラウザーが署名をチェックするため、検証用に最適化する必要があります) ...署名ソフトウェアで使用される鍵も同様に最適化する必要があります)3)鍵の有効期限を確認します-ssh-authに同じ鍵を数年間使用しているため、鍵を選択した場合でも再生成する場合があります今日のアプリケーションでは依然として妥当なサイズです。

RSAとDSAの両方が実質的に評価されています。実現可能なコードベース(RSAREF、RSAコマーシャル、Mozilla/Netscape、Microsoft、OpenSSLなど)を使用している場合、正しく使用して現在のベストプラクティスを利用している限り、どの暗号システムを使用してもかまいません。

1
Ram