0Pricing
Cryptology Academy · レッスン

Diffie-Hellman鍵交換の数学

DHプロトコルと離散対数問題の困難性の仮定を順に確認します。

「Diffie-Hellman鍵交換の数学」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。

ようこそ

このレッスンでは、公開パラメーターからAliceとBobの秘密の指数、そして共有秘密に至るまで、Diffie-Hellman鍵交換を段階的に追っていきます。

公開パラメーター

AliceとBobは、次の値を公開で合意します。 - p:大きな素数(本番環境では2048ビット以上) - g:Z*pの生成元(通常はg=2またはg=5) Eveはpとgを見ることができます。これらを知っていても、プロトコルが破られることはありません。

Aliceの秘密鍵

Aliceはランダムな秘密値aを生成します(1 < a < p-1) Aliceは公開値A = g^a mod pを計算します AliceはAをBobに送ります。EveはAを見ることができます。 EveはAからaを求められません。これは離散対数問題です。

Bobの秘密鍵

Bobはランダムな秘密値bを生成します(1 < b < p-1) Bobは公開値B = g^b mod pを計算します BobはBをAliceに送ります。EveはBを見ることができます。 EveはBからbを求められません。

共有秘密の計算

Alice:S = B^a mod p = (g^b)^a mod p = g^(ab) mod p Bob: S = A^b mod p = (g^a)^b mod p = g^(ab) mod p 2人は、S = g^(ab) mod pを一度も送信せずに、同じ値として計算できます。

小さな数による例

p=23、g=5 Alice:a=6、A = 5^6 mod 23 = 8 Bob: b=15、B = 5^15 mod 23 = 19 Alice:S = 19^6 mod 23 = 2 Bob: S = 8^15 mod 23 = 2 ✓ Eveが見られるのは23、5、8、19ですが、2を簡単に求めることはできません。

離散対数問題

A = g^a mod pが与えられたとき、aを求めます。大きなp(2048ビット)に対して、既知の最良のアルゴリズムである数体篩法(Number Field Sieve)は準指数時間を要し、それでも天文学的な長さになります。2048ビットDHでは、およそ2^100回の演算が必要です。

中間者攻撃

DHはMITMに対して脆弱です。MalloryがAとBを傍受し、自分の値に置き換えると、Aliceとは1つの秘密を、Bobとは別の秘密を共有できます。解決策は、交換を認証することです(証明書または事前共有認証を使用します)。

安全素数

pは慎重に選ぶ必要があります。安全素数p=2q+1(qは素数)を使うと、DH群に小さな部分群が存在しなくなり、小部分群攻撃に悪用されるのを防げます。NISTは承認済みのDHグループを規定しています。

DHパラメーターのサイズ

NISTの推奨事項: - 2048ビット:新規導入における最小値 - 3072ビット:RSA-3072と同等 - 4096ビット:高い安全性 あらかじめ生成されたOakley Group 1/2(768/1024ビット)は決して使用しないでください。国家主体によって破られています(Logjam攻撃)。

Logjam攻撃(2015年)

Logjamによって、多くのTLSサーバーが同じ1024ビットのDH素数を使用していることが明らかになりました。国家主体は、これらの特定の素数について離散対数を事前計算し、リアルタイムで復号できました。解決策は、2048ビット以上の固有の素数を使用することです。

クイックチェック

p=23、g=5、a=4、b=3のDHで、共有秘密はいくつになりますか。

まとめ

DH鍵交換の数学は明確になりました。次は、楕円曲線上で同じ概念を適用してECDHを実現します。同等の安全性を、はるかに小さい鍵で得られます。

よくある質問

「Diffie-Hellman鍵交換の数学」レッスンは無料ですか?

はい。「Diffie-Hellman鍵交換の数学」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。

「Diffie-Hellman鍵交換の数学」で何を学びますか?

DHプロトコルと離散対数問題の困難性の仮定を順に確認します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cryptology Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「Diffie-Hellman鍵交換の数学」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCryptology Academyレッスンでコードを書いて実行できますか?

はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 鍵配送問題
  2. Diffie-Hellman鍵交換の数学
  3. ECDH:鍵交換のための楕円曲線
  4. 前方秘匿性と一時鍵交換
← Cryptology Academyに戻る