DH(Diffie-Hellman)公開鍵配送法を利用した秘密鍵暗号通信

・DH公開鍵配送法
素数 pと原始根αの値は公開鍵とする。                
利用者A利用者B
[0, p - 1]の間の Xa をランダムに選び秘密鍵として保持。[0, p - 1]の間の Xb をランダムに選び秘密鍵として保持。
利用者Aの配送鍵 Ya を計算し利用者Bに送信。
Ya = αXa mod p
利用者Bの配送鍵 Yb を計算し利用者Aに送信。
Yb = αXb mod p
利用者Bから受け取った配送鍵 Yb と利用者Aの秘密鍵Xa より共有鍵 K を生成。
Ka = YbXa mod p
= (αXb mod p )Xa mod p
= αXa Xb mod p (1 <= K <= p - 1)
利用者Aから受け取った配送鍵 Ya と利用者Bの秘密鍵Xb より共有鍵 K を生成。
Kb = YaXb mod p
= (αXa mod p )Xb mod p
= αXb Xa mod p (1 <= K <= p - 1)
αXa Xb mod p = αXb Xa mod p
であるから
Ka = Kb = K
αXa Xb mod p = αXb Xa mod p
であるから
Ka = Kb = K
・以上のようにして得られた共有鍵 K を用いて AES 互換の Camellia 等の秘密鍵による暗号通信を利用者A、B間で行う事が出来る。

・盗聴者Eが p, α, Ya 及び Yb を得たとしても、 Ya から Xa を求める事は離散対数を求める事に他ならず、 p の桁数が十分大きければ計算量的に安全である。
また、仮に Mab = Ya Yb mod p を計算したとしても Mab = α(Xa+Xb) であるので共有鍵を得る事にはならない。

・実用上 p の桁数は西暦 2,000 年の時点で 2,048 bit 程度あれば十分に安全であると考えられるが、 コンピュータの計算能力の増大に伴い何ビットあれば十分であるとは言い切れない。また、離散対数を 高速に解くアルゴリズムがもし発見されれば、もはや計算量的に安全であるとは言えなくなる。

・現在のトレンドは楕円曲線上の離散対数問題等に移行しているので興味のある方は楕円曲線論等の成書を参照されたい。


キーワード
公開鍵配送, 公開鍵暗号, 離散対数問題, 楕円関数論, 秘密鍵暗号, AES, Camellia
参考図書
数論アルゴリズムと楕円暗号理論入門 1997年初版, N.コブリッツ 著 櫻井 幸一 訳, シュプリンガーフェアラーク東京, ISBN4-431-70727-1 C3041

www.finetune.co.jp [Mail] © 2000 Takayuki HOSODA.