| ア | イ | ウ | エ | オ |
| カ | キ | ク | ケ | コ |
| サ | シ | ス | セ | ソ |
| タ | チ | ツ | テ | ト |
| ナ | ニ | ヌ | ネ | ノ |
| ハ | ヒ | フ | ヘ | ホ |
| マ | ミ | ム | メ | モ |
| ヤ | ユ | ヨ | ||
| ラ | リ | ル | レ | ロ |
| ワ | ヰ | ヴ | ヱ | ヲ |
| ン |
| A | B | C | D | E |
| F | G | H | I | J |
| K | L | M | N | O |
| P | Q | R | S | T |
| U | V | W | X | Y |
| Z | 数字 | 記号 | ||
1976(昭和51)年に米スタンフォード大学のW.DiffieとM.E.Hellmanにより考案された鍵交換アルゴリズムで、通常はDHと略称で呼ばれる。
Aliceは、乱数xを作る。これはBobに教える必要はない。
ここではx=9とする。
Aliceは、次の計算式によって公開値つまり配送鍵Aを作り、これをBobに送る。この配送鍵は、途中で第三者に傍受されても良い。
A = gx mod p
g=2、x=9、p=53とすると、次のようになる。
Bobは、乱数yを作る。これはAliceに教える必要はない。
ここではy=3とする。
Bobも、次の計算式によって同様に配送鍵Bを作り、これをAliceに送る。この配送鍵は、途中で第三者に傍受されても良い。
B = gy mod p
g=2、y=3、p=53とすると、次のようになる。
Aliceは、Bobから受け取った配送鍵Bを使い、次の計算を行なう。
Bx mod p
B=8、x=9、p=53とすると、次のようになる。
Bobも、Aliceから受け取った配送鍵Aを使い、次の計算を行なう。
Ay mod p
A=35、y=3、p=53とすると、次のようになる。
こうして、AliceとBobは、直接秘密鍵を送ることなく、同じ鍵「51」を共有することに成功した。
この方式では、互いの乱数であるxとy以外の全ての値(g、p、A、B)が公開されている。果たして、傍受されたこれらの値から、本当に秘密鍵を得ることができないのだろうか。
ここで、秘密鍵をKとすると、各値は次の関係が成り立つ。
K = Bx mod p = gxy mod p = Ay mod p
ここに、上の例で示した、第三者が知ることができる全ての値を代入すると、次のようになる。
K = 8x mod 53 = 2xy mod 53 = 35y mod 53
この式は簡単には解くことができない。離散対数問題を効率的に解くアルゴリズムは現在は発見されておらず、x・yに順番に値を入れて計算して行く以外に方法がない。
このため、pの値が充分に大きければ、この式を解くことは事実上不可能となる。これが、Diffie-Hellman法が充分に安全であることの証明となる。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます