公開鍵暗号方式のRSAとDHはどう違うのですか?

このような質問がありました。

質問
共通鍵暗号方式の共通鍵の交換方法について質問させていただきます。

共通鍵の交換方法には、主にRSA暗号方式とDH鍵交換方式があると認識してます。

それぞれの共通点は以下と認識してます。

・共通鍵暗号方式の鍵配送問題を解決できる。(送信者と受信者で、共通鍵を安全に配送することができる)
・ただし、中間者攻撃から守ためには公開鍵証明書、デジタル署名の仕組みが必要

違いは以下のように認識してます。

rsa
・公開鍵と秘密鍵を利用する。(非対称暗号)(公開鍵で共通鍵を暗号化し、相手方は秘密鍵で共通鍵を復号する)
・巨大な素数の因数分解が困難なことが、安全性の根拠。
・共通鍵の鍵交換だけでなく、デジタル署名にも使える。

dh
・RSAのような非対称鍵は使わない。鍵交換に特化したアルゴリズム。
・離散対数問題の困難性が、安全性の根拠。
・RSAとことなり、デジタル署名には使えない

質問は以下です。

RSAもDHも、安全な共通鍵の配送に使えます。であれば、どのような場合にRSAが使われ、どのような場合にdhが使われるのでしょうか。

使用する暗号プロトコルによるとは思いますが、どのような環境ではRSAが有利で、逆にどのような場合にDHが有利なのでしょうか。

あくまで、鍵交換の観点での質問です。


私の回答
SSLで鍵交換をする際はクライアントがサーバにアクセス要求をする際に自分の使える公開鍵を伝達し、サーバは利用できる一番強度の高い方式を返信します。

RSA鍵はRSA社(現EMC)が開発したものですが、DHはどちらかというと鍵交換用に作られた経緯もあります。

PCの用途次第ではどちらかが高い強度を持ってる場合もありますし、そうではない場合もあります。
一概には決められないですが、知ってる限りだとこんな感じで私は理解しています。


追加の質問
ご回答ありがとうございます。PCの用途次第でどちらかが高い強度を持ってる場合にがあるということで、何か具体例があれば教えていただけると幸いです。


私の回答
まず確認君などのサイトを使えば自分のPCがどんな暗号化が使えるかがわかります。
RSA社のセキュリティ製品をインストールすることでより強度の高い(ビット長の長い)ものが使えるようになるケースがあります。
あとは企業次第なのでなかなか具体例を載せるのが難しいです。


追加の質問
ご回答ありがとうございました。早速アクセスしてみました。

なかなか具体例は難しいですよね。

強度が同じRSAとDHが利用可能な場合、なぜどちらかを利用するのか、興味がありました。どのような基準で一方を選択してるのか。もちろん安全性、処理速度、実装のしやすさ等が高い方がいいのはわかりますが、では安全性、処理速度がほぼ同じだった場合、一体なにを基準に一方を選択するのかなと。

この疑問は、例えば共通鍵暗号方式にももってます。

例えばAESとcamelliaなど、他方を使わずに一方を使う基準とはなんなのかと疑問に感じてしまいます。

たとえば企業のPCをmacにするかWindowsにするかとか、スマホをiPhoneにするかandroidにするかなど、違いが明確であれば理解しやすいのですが、暗号関連となるとイマイチ違いが理解しにくいです。考案された経緯や処理方法は異なっても、達成できる目的や効果にあまり違いが見られないからです。長文失礼しました。


私の回答
私もわかんないです。
案としては、Webサーバが決めるのだから、鍵長が一緒だった場合はWebサーバの設定ファイルに書かれた順かもしれないなということぐらいです。
なかなかそこまでの疑問が解決できるほどはスキルなくて、ごめんなさいね。


質問者のコメント
なるほど。それもあるかれませんね。いえいえ、長文お付き合いいただきありがとうございました。

質問をしながら、なんとなく自分の考えが整理されました。ありがとうございます。


参考URL
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10167411820

0 件のコメント:

コメントを投稿