Diffie-Hellman鍵交換の計算方法
投稿日: 更新日:
Diffie-Hellman鍵交換とは
ディフィー・ヘルマンと読みます。
鍵配送問題を解決する手法です。盗聴者に知られても大丈夫な数を交換することにより、共通の鍵を作りだします。
アルゴリズム
ウサギとアリスが鍵交換する場面を考えます。
- ウサギが大きな素数と生成元を送信します。
生成元については後から説明します。 - ウサギはの範囲で整数をランダムに選びます。
- アリスはの範囲で整数をランダムに選びます。
- ウサギはアリスにという数を送信します。
- アリスはウサギにという数を送信します。
- ウサギは送られた数と自身の数でを計算する。
- アリスは送られた数と自身の数でを計算する。
は非常に大きな素数であることが望ましいです。
生成元について
生成元とは、の値がすべて異なるのことです。
例
素数としてを考えます。
の値を表にまとめました
G \ a | 1 | 2 | 3 | 4 |
---|---|---|---|---|
1 | 1 | 1 | 1 | 1 |
2 | 2 | 4 | 3 | 1 |
3 | 3 | 4 | 2 | 1 |
4 | 4 | 1 | 4 | 1 |
の時の値がすべて異なっています。したがって、の時の生成元はであることが分かります。
実際に計算する
1. とを決める
今回はとします。 生成元はといくつかあります。今回はとします。
2. を決める
の範囲からを選びます。
なので、とします。
3. を決める
の範囲からを選びます。
なので、とします
4. を求める
計算します。
5. を求める
計算します。
6. を求める
は手順(5)で求めたのでその値を使います。
7. を求める
は手順(4)で求めたのでその値を使います。
手順(6)、(7)で求めた値が一致しています!
共通鍵を生成することができました😄
なぜ盗聴者は鍵を盗めないのか?
通信を盗聴したときに得られる情報は以下の4つです。
これらの情報から鍵であるを容易に計算できるでしょうか?
からが求まれば手順(6)のようにして秘密鍵を計算できますが、実際には難しいことが知られています。
離散対数問題と言ってからを効率よく計算するアルゴリズムはまだ見つかっていません。
離散対数問題の難しさがこの鍵交換アルゴリズムの強度となります。
参考文献
結城浩(2015)暗号技術入門 第3版