- ベストアンサー
Diffie-Hellman鍵交換の仕組みとは?
- Diffie-Hellman鍵交換は、公開鍵の仕組みを利用して共通鍵を交換する暗号化方式です。
- AさんとBさんが鍵を交換する場合、それぞれの乱数を使って結果を交換し、その結果に対して乱数で鍵を生成します。
- お互いの乱数は互いに知ることができず、異なる数字を使っているにもかかわらず、同じ鍵が生成される仕組みです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ある数値gを元に、 [結果A]=gの[乱数A]乗 [結果B]=gの[乱数B]乗 [共通鍵]=gの([乱数A]×[乱数B])乗 として処理しています。 べき乗の数学的原理として、「(Xのa乗)のb乗」=「(Xのb乗)のa乗」=「Xの(a×b)乗」が成り立ちますので、 Aでは、[結果B]の[乱数A]乗 を計算すると、=(gの[乱数B]乗)の[乱数A]乗 = gの([乱数A]×[乱数B])乗 = [共通鍵] になる Bでは、[結果A]の[乱数B]乗 を計算すると、=(gの[乱数A]乗)の[乱数B]乗 = gの([乱数A]×[乱数B])乗 = [共通鍵] になる という流れで、共通鍵が得られます。
その他の回答 (2)
- mtaka2
- ベストアンサー率73% (867/1179)
> ある数値g は A と B で同じものを使用するのでしょうか? gはAとBで同じものを使います。そうでないと「[共通鍵]=gの([乱数A]×[乱数B])乗」がAとBで同じになりません。 > そもそも同じものの場合はどのようにその情報を交換するのでしょうか? 普通に交換します。gは盗聴されても構いません。 「g」「結果A」「結果B」の3つは盗聴されても構わない、という前提です。 前回の回答では説明を省いたのですが、これらの計算は「巨大な素数pで割った余り」という剰余環の元で計算します。 その場合、上述の3つが分かっても、「gの([乱数A]×[乱数B])乗」は容易に計算できない、というのがこの鍵交換のキモになります。 > 数値g が共通鍵でよいのでは 盗聴される可能性がありますから、鍵には使えません。
お礼
あぁ、そうですよね。 変な質問をしてすみません。 数値gは公開するので、AさんもBさんも同じものが利用でき、尚且つ共通鍵には利用できない。 おかげさまで、すっきりと理解することができました。 ありがとうございましたm(_ _)m
- Tacosan
- ベストアンサー率23% (3656/15482)
wikipedia で「ディフィー・へルマン鍵共有」を調べた方がいいかも.
お礼
ご回答ありがとうございます。 Wikiも参考にしましたが、さらに難しそうでしたので、こちらに質問することにしました(;^ω^A
お礼
ご回答ありがとうございます。 「べき乗の数学的原理」納得です。 ただ、ある数値g は A と B で同じものを使用するのでしょうか? そもそも同じものの場合はどのようにその情報を交換するのでしょうか? この場合ですと 数値g が共通鍵でよいのではと、さらなる疑問がでてきました。 よろしければ、引き続き教えて下さいm(_ _)m