創屋ぷれす

ディフィー・ヘルマン鍵共有 とは

事前の秘密の共有無しに、盗聴の可能性のある通信路を使って、暗号鍵の共有を可能にする暗号プロトコルである。


DH法で使用している鍵の生成方法は非常にシンプルで 乱数a,b、素数p と 一方向関数を使って作られています。
一方向性関数とは、順方向の計算は簡単だけれど、逆方向の計算は難しい関数のことです。

プロトコルの内容としては以下の通りです。



X は次の値 A を計算してこれを Y に送信する。
A = g^a mod p

Y も同様に B を計算してこれを X に送信する。
B = g^b mod p

X は自身の秘密の値 a と受信した B から以下の値を計算する。
KA = B^a mod p

Y も自身の秘密の値 b と受信した A から以下の値を計算する。
KB = A^b mod p

このとき X と Y が計算した K は共に
KA = KB = g^(a+b) mod p

になっているため、以後この値を共通鍵暗号方式の鍵として使用する。
ここで第三者 Z がこの二人の通信を盗聴して A と B を入手しても、A = g^a mod p と B = g^b mod pから K = g^(a+b) mod p
を多項式時間で計算する方法は現在の所、存在しないので Z は鍵 K を生成することが困難である。
このため X と Y が安全に通信を行うことが可能になる。

Comments are closed.