DH(Diffie-Hellman)法は、すごい方式である。
具体的に言うと、私と成子ちゃんが、皆がいる前で秘密の会話をすることができる。
以前は絶対に不可能と言われていたらしいが、これを実現したのがディフィーさんとヘルマンさん。
この方式の仕組みを知ったとき、私は感動してしまった。
すごいと思わないかい?
2

今のインターットの世界なら当たり前でしょ。
事前に鍵を共有するなり、公開鍵証明書を準備すればいいのだから。



いや、事前に鍵や証明書を準備することなく、いきなり会話できる。しかも秘密の会話だ。
以下は過去問(H19SV午後2問2)であるが、IPsecでもDHを使っている。その仕組みが解説されている。
dh
























(中略)
次に,処理手順2では,暗号化で用いる共有鍵が生成されます。鍵交換パラメタは,鍵共有アルゴリズムである[ e ]アルゴリズムに使用されます。鍵交換パラメタPは,ノートPCがランダムに生成した一時鍵情報pから計算された値で,鍵交換パラメタQは,VPN装置がランダムに生成した一時鍵情報qから計算された値です。鍵交換パラメタP,Qからは,一時鍵情報p,qは計算できません。鍵交換パラメタQと一時鍵情報pを組み合わせて[ e ]アルゴリズムで計算した値は,鍵交換パラメタPと一時鍵情報qを組み合わせて[ e ]アルゴリズムで計算した値と一致します。この値を[ e ]アルゴリズムの出力値と呼びます。この出力値を計算すると,ノートPCが保持していた一時鍵情報pや,VPN装置が保持していた一時鍵情報qは,直ちに削除されます。一方,処理手順2で交換した乱数と事前共有鍵を利用して,マスク鍵が生成されます。また,マスク鍵と[ e ]アルゴリズムの出力値などを使用して,セッション鍵が計算されます。 (H19SV午後2問2)

設問2
(1)本文中の[ e ]に入れる適切な字句を答えよ。
(3)攻撃者は,フェーズ1終了後に事前共有鍵と送受信されたすべてのデータを入手できたとしても,セッション鍵を計算できない。その理由を35字以内で述べよ。
この、空欄[ e ]に入るのがDHだ。そして、それが有効に機能している理由が問われている。
正解は以下
(1) DH 又は Diffie-Hellman
(3) 一時鍵情報pや一時鍵情報qを攻撃者が入手できないから

別の過去問(H17年秋FE午後問3)では、DHに関する詳しい仕組みがある。
問3 暗号通信に関する次の記述を読んで,設問に答えよ。

 安全でない通信経路を利用する2者が,秘密の共通かぎを安全に共有する方式としてDiffie-Hellman法(以下,DH法という)が知られている。DH法で利用者Aと利用者Bが共通かぎ瓦を共有するまでの手順は,次のとおりである。
(1)素数pと,pよりも小さいある自然数αが公開されていて,利用者Aと利用者Bがともに知ることができる。
1





















ここで,    X mod y は整数xを整数yで割った余り(剰余)である。
DH法によるかぎ共有を利用して,図に示すように,安全でない通信経路を利用する2者間で機密情報を送信する仕組みを作る。まず,利用者Aと利用者BはDH法を使って,共通かぎ尺を共有する。次に,利用者Aは平文を共通かぎ尺を使って暗号化して送信する。利用者Bは受信した暗号文を共通かぎ尺を使って復号して,元の平文を得ることができる。

2
















設問 次の記述中の[   ]に入れる正しい答えを,解答群の中から選べ。
 DH法は,目的が[ a ]に限定されたアルゴリズムであるが,この方式の安全性はほかの公開かぎ暗号と同じく計算の一方向性に基づいている。すなわち,  DH法において,素数pの値が十分に大きい場合,秘密かぎから公開かぎを求めるのは容易であるが,公開かぎから秘密かぎを求めるのは非常に困難である。
反対に,素数pの値が小さい場合には,かぎの値が小さくなるので公開かぎから秘密かぎを短時間で求めることも可能であり,安全性に問題がある。例えば,利用者Aと利用者Bが使う通信経路上に通信を傍受している第三者Cがいて,公開されている素数pが7、aが5であることに加え,利用者Aが送った公開かぎYAが6,利用者Bが送った公開かぎYBが3であることを知ったとする。このとき,共通かぎKの値は,[ b ]であることが容易に分かる。
 また,DH法は,通信経路上の第三者Cが,利用者Aから送られる情報を,にせの情報にすりかえて利用者Bに送信する中間者攻撃に対して,弱いことが知られている。中間者攻撃を防ぐためには公開かぎに信頼できる第三者によるディジタル署名をつけるなどの対策が必要である。さらに,第三者Cが暗号文を傍受してそれを手掛かりとして共通かぎ尺を見つけるリスクもあるので,継続的な通信の安全性を高めるための対策として,共通かぎKの値が十分に大きいものを使うだけでなく,[ c ]も有効である。

a,  cに関する解答群
ア 共通かぎKの更新間隔の短縮
イ 公開かぎYA,YBの交換回数の削減
ウ 公開かぎの交換
工 秘密かぎによる情報の復号
オ 秘密の共通かぎの共有
力 より大きな値の素数pの使用

正解は以下だ
a オ
b 6
c ア