ディフィー・ヘルマン鍵交換とは

でぃふぃーへるまんかぎこうかん

公開された通信路だけを使って、2者が共有の秘密を作る方法。1976年にディフィーとヘルマンが発表した。素数 p と生成元 g を公開し、AさんとBさんが秘密の値 a、b から g^a mod p、g^b mod p を作って送り合い、それぞれ相手の値を自分の秘密の値で累乗して、同じ g^(ab) mod p を得る。安全性は離散対数問題の難しさに基づく。楕円曲線の上で行うものをECDH、接続ごとに使い捨ての値を使うものをDHE・ECDHEと呼び、後者では前方秘匿性が得られる。相手を確かめる機能はないので、署名や証明書と組み合わせて中間者攻撃を防ぐ。

「ディフィー・ヘルマン鍵交換」は、2分野の9問の練習問題に出てきます(暗号技術の基礎と応用, ネットワークの基礎など)。

この用語の分野: 暗号技術の基礎と応用

ディフィー・ヘルマン鍵交換の練習問題に挑戦

TLS 1.3などのプロトコルで、ECDHEの鍵交換で得た共有の秘密をそのまま暗号の鍵には使わず、HKDFのような鍵導出関数(KDF)を通して鍵を作る理由として、適切なものはどれか。

  1. A鍵導出関数を通すと、量子コンピュータに対しても、共有の秘密が安全になるから
  2. B鍵交換で得た値は短すぎるので、わざと計算に時間をかけて、総当たりを遅くするため
  3. C鍵交換で得た値は一様な乱数とは限らないので、偏りのない鍵に変換し、用途ごとに別の鍵を取り出すため
答えと解説を見る

正解:C. 鍵交換で得た値は一様な乱数とは限らないので、偏りのない鍵に変換し、用途ごとに別の鍵を取り出すため

鍵交換で得られる共有の秘密は、楕円曲線上の点の座標などで、すべてのビットが一様にランダムとは限りません。HKDFは、HMACを使って、まず共有の秘密から偏りのない擬似乱数の鍵を取り出し(Extract)、次にそれを「クライアントからサーバへの暗号化用」などのラベルとともに展開して(Expand)、必要な数と長さの鍵を作ります。用途ごとに独立した鍵を使えば、1つの鍵の問題がほかの用途に広がりにくくなります。パスワードから鍵を作るPBKDF2やArgon2はわざと計算を重くしますが、HKDFはエントロピーの十分大きな入力を前提とした、軽い処理です。

ディフィー・ヘルマン鍵交換では、素数 p と生成元 g を公開し、AさんとBさんがそれぞれ秘密の値 a、b を選んで、g^a mod p と g^b mod p を互いに送る。盗聴者がこれらの公開された値をすべて見ても、共有の秘密 g^(ab) mod p を求められないと考えられている理由として、正しいものはどれか。

  1. Ag^a mod p から a を求める問題(離散対数問題)が、p が大きいと効率よく解けないと考えられているから
  2. Bg^a mod p と g^b mod p は、送る前に相手の公開鍵でさらに暗号化されるので、盗聴者には読めないから
  3. C共有の秘密は、2人があらかじめ会って決めた合言葉から作るから
答えと解説を見る

正解:A. g^a mod p から a を求める問題(離散対数問題)が、p が大きいと効率よく解けないと考えられているから

g^a mod p を計算するのは速いのに、結果から a を求めるのは、p が十分大きいと現実的な時間ではできないと考えられています(離散対数問題)。盗聴者は g^a mod p と g^b mod p を見られても、a や b が分からなければ g^(ab) mod p を作れません。一方、AさんはBさんの値を a 乗し、BさんはAさんの値を b 乗するだけで、どちらも同じ g^(ab) mod p を得ます。楕円曲線の上で同じことを行うのがECDHで、楕円曲線上の離散対数問題の難しさに基づきます。

解説の中の「ディフィー・ヘルマン鍵交換」

「ディフィー・ヘルマン鍵交換」が出てくる問題(9問)

  1. TLS 1.3などのプロトコルで、ECDHEの鍵交換で得た共有の秘密をそのまま暗号の鍵には使わず、HKDFのような鍵導出関数(KDF)を通して鍵を作る理由として、適切なものはどれか。
  2. ディフィー・ヘルマン鍵交換では、素数 p と生成元 g を公開し、AさんとBさんがそれぞれ秘密の値 a、b を選んで、g^a mod p と g^b mod p を互いに送る。盗聴者がこれらの公開された値をすべて見ても、共有の秘密 g^(ab) mod p を求められないと考えられている理由として、正しいものはどれか。
  3. ディフィー・ヘルマン鍵交換を小さな数で確かめる。p = 23、g = 5 とし、Aさんは秘密の値 a = 6、Bさんは秘密の値 b = 15 を選ぶ。Aさんは A = g^a mod p を、Bさんは B = g^b mod p を送り合う。2人が得る共有の秘密はどれか。
  4. 認証を行わないディフィー・ヘルマン鍵交換の弱点と、その対策の組み合わせとして正しいものはどれか。
  5. 耐量子計算機暗号への移行の途中で使われる、X25519(楕円曲線を使うディフィー・ヘルマン鍵交換)とML-KEMを組み合わせたハイブリッド鍵交換の考え方として、正しいものはどれか。
  6. TLSで、ブラウザが接続先のサーバを「なりすましではない」と判断できる理由として正しいものはどれか。
  7. TLSで、サーバの証明書の秘密鍵が後で漏えいしても、それ以前に記録された通信は復号されないという性質(前方秘匿性)が得られる鍵交換の方法はどれか。
  8. TLS 1.3(RFC 8446)で、TLS 1.2から変わった点として正しいものはどれか。
  9. TLS 1.3の暗号スイート TLS_AES_128_GCM_SHA256 が指定するものの組み合わせとして、正しいものはどれか。

暗号技術の基礎と応用の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

この用語が出てくる比較

関連する用語

TLS RSA暗号 HMAC 剰余演算 前方秘匿性 認証付き暗号(AEAD) 情報エントロピー 耐量子計算機暗号 ML-KEM 認証局

用語集の一覧へ