Diffie-Hellman 鍵共有とは、二人の間で同じ秘密の値を作成する 公開鍵暗号方式です。二人の間で同じ秘密の値を共有できれば、あとはそれを共通鍵として共通鍵暗号方式でやり取りができます。
Diffie-Hellman鍵共有の概要
公開鍵暗号方式が前提知識となります。公開鍵暗号方式についてよくわかっていない方は、この スライド を見て下さい。
まずはDiffie-Hellman鍵共有を学ぶ上で必要な、数学に関する知識を見ていきましょう。(高校数学の範囲内ですので、理解している人は飛ばしましょう。)
割り算の余りを求める演算について、次のように定義します。
具体的な余りを求める例を見ていきましょう。
累乗の累乗について次のような定理が成り立ちます。
任意の自然数
累乗の累乗をする例を見ていきましょう。
公開鍵暗号方式の多くは、特定の計算が困難なことを仮定としておくことで、実現されています。
Diffie-Hellman鍵共有は、DH問題が解けないことを仮定とする、DH仮定を元に成り立っています。
DH問題について話す前に、現在多くの暗号で用いられる離散対数問題(DLP)について説明します。
大きな素数
計算上次のような事実が存在する。
特にこの 2. の事実を離散対数問題という。
特にこの 2. の "かなり時間がかかる"というは、
DH問題は離散対数問題の上で成り立つ計算上困難な問題です。
Diffie-Hellman 鍵共有は、DH問題を用いています。
大きな素数
計算上次のような事実が存在する。
特にこの 3. の事実をDH問題という。
特にこの 2. の "かなり時間がかかる"というは、
以下に手順をまとめました。アリスとボブが同じ秘密を共有するために、Diffie-Hellman鍵共有をします。
大きな素数
アリスは 乱数
ボブも乱数
アリスは
アリスは自身の秘密鍵
ボブは自身の秘密鍵
Diffie-Hellman 鍵共有について、まとめました。