2011年2月14日月曜日

Diffie-Hellman 鍵交換

今回も面白い課題をいただきました。
前回、『公開鍵暗号方式とCA(認証局)』の模範解答で以下の説明をしたことを覚えていますか?

(1) 共通鍵暗号を運用するときに予想される困難はなにか?
・送信に先立って秘密鍵を安全に交換する手段が必要となる
        (理由)共通鍵は、暗号鍵と復号鍵が同一であるという特性から


オフラインならば安全に鍵をやり取りできますが、可能ならばオンラインのほうがいい、という点は良いですか。では、今回はどうすれば、共有鍵をオンラインで安全にやりとりできるか、考えていきましょう。

課題:
安全な鍵のやりとりとして、DH ( Diffie - Hellman ) 鍵交換というものがあります。
DH鍵交換を使うことで安全に共通の鍵を保有できるのであれば共通鍵暗号をオンラインで安全に使えるように思えます。

セキュリティ上の問題はあるでしょうか?




Diffie-Hellman鍵交換とは
まずは、Diffie-Hellman鍵交換がどんなものなのかを押さえましょう。

<歴史的背景>
1976年に、ホィットフィールド・ディフィー (Whitfield Diffie) と マーティン・ヘルマン (Martin Hellman) によって発明されたアルゴリズムです。当時は、まだ公開鍵暗号方式がなかった時代なので、どのようにして共通鍵を安全に交換するのか、が模索されていました。


<Diffie-Hellman鍵交換の手順>
次の4ステップで構成されます。
  1. 共有情報を定義する(素数X, 素数Y)
  2. 定義した共有情報と自身で定義した乱数値(秘密値a)から公開情報(公開値P)を作成する
  3. 秘密文書を交換したい相手へ公開情報(公開値P)を送信する
  4. 相手から送られてきた情報(公開値Q)と自身で定義した乱数値(秘密値a) から共有値(共有鍵)を作成する
iPhoto20110214224150-2011-02-14-22-10.jpg

modを理解すれば、数学的には当たり前のことです。例え、共有情報を知ってても、AさんBさんの定義した秘密値が分からなければ、Zを解くのは困難です。それも当然で、P = Ya mod X から数aを簡単に計算するアルゴリズムはまだ発見されていないからです。これは、離散対数問題と呼ばれています。



見解
セキュリティ上の問題はあります。

有名な攻撃方法としては、 man-in-the-middle攻撃というものがあります。
これは、Diffie-Hellman鍵交換をしている2人の間に、悪意のある第3者が割り込んで、なりすましを行うことです。man-in-the-middle攻撃については次回解説します。


参考)

0 件のコメント:

コメントを投稿