DH鍵共有

2023-02-13 (月) 15:43:20

DH鍵共有とは

名称

  • DH鍵共有(Diffie-Hellman鍵共有)
  • DH鍵交換(Diffie-Hellman鍵交換)
  • Diffie-Hellman key exchange
  • DH
    • static DH

概要

  • 共通鍵を安全に共有するためのアルゴリズム
  • 離散対数問題の困難性を利用している
  • 1976年にスタンフォード大学のWhitfield Diffie氏とMartin E. Hellman氏が考案した鍵交換方式
  • 共通鍵暗号方式による鍵の受け渡しを安全に行うための、公開鍵暗号方式のプロトコル。
  • 方向性関数

DH鍵共有のフロー

  1. 鍵共有を行う両者(AとB)は、下記の2つの数字を共有する
    • n:素数
    • g:nより小さい整数
  2. Aは下記の手順で生成したDH公開値(p)をBに送信する
    1. 乱数(x)を生成する
    2. 公開値(p) = g ^ x mod n
  3. Bは下記の手順で生成したDH公開値(q)をAに送信する
    1. 乱数(y)を生成する
    2. 公開値(q) = g ^ y mod n
  4. Aは下記の計算で秘密対称鍵の元となる数字(a)を生成する
    • 数字(a) = q ^ x mod n
  5. Bは下記の計算で秘密対称鍵の元となる数字(b)を生成する
    • 数字(b) = p ^ x mod n

補足説明

  • 数字(a, b)は同じ数字になる
  • 事前に共有する数字(n, g)は幾つかの組み合わせから選択する
  • 乱数(x, y)のみが秘密の扱い
  • 事前に共有した数字(n, g)と公開値(p, q)が第三者に知られても、乱数(x, y)を求めるのは困難
  • 素数nの桁数が大きいほど、離散対数である乱数(x, y)を求めるのが困難になる
  • 乱数(x, y)を求めるのが困難なので、数字(a, b)を第三者が知ることが困難となる

DH鍵共有の方式

DHE

  • DH Ephemeral
  • セッションごとに一度切りの使い捨ての鍵を使用する

ECDH

  • 楕円曲線DH
  • ECDH鍵共有

ECDHE

  • Elliptic Curve Diffie-Hellman Ephemeral
  • セッションごとに一度切りの使い捨ての鍵を使用する

Curve25519

前方秘匿性を有する方式

DH鍵共有の利用シーン

関連サイト

関連用語