web-dev-qa-db-ja.com

DHEとECDHの違いは何ですか?

完全転送秘密はDHEとECDHによって実装されることを知りましたが、これらの2つの鍵交換の違いは何ですか?

また、誰かが完全な前方秘密がどのように機能するかを説明できますか?オンラインでさまざまな答えを見つけました:生成された共有されない秘密のセッションキーがあり、両方のユーザーからのランダムな入力に基づいて変化するセッションキーがあり、共有された秘密から派生したセッションキーがあります。 2人のユーザーだけが知っています。

16
Matthew Clenney

最初に、数学をすみません、および数学を過度に単純化してしまいました!

2つの箇条書きのDHEとECDHの違い:

  • DHEは モジュラー演算 を使用して共有秘密を計算します。
  • ECDHはDHEに似ていますが、さらに 代数曲線 を使用してキーを生成します(楕円曲線は代数曲線の一種です)。

どちらの場合でも、全体的な方法は Diffie–Hellman のままです。 (または、最近ではDiffie–Hellman-Merkleと呼んでいますか?)

完全な転送秘密は、一時的なキーペアを使用して各セッションを保護することによって実現されます。これらは必要に応じて生成され、セッション中にRAMに保持され、使用後に破棄されます。

「永続的な」鍵のペア(認証局によって検証されたもの)は、IDの検証と、交換される一時的な鍵の署名に使用されます。セッションを保護するためではありません。

それは少し良く説明しますか?

編集:例を詳しく調べるには...

決して共有されない秘密のセッションキー

まあ、これはDH鍵交換の定義ですが、完全転送秘密とは関係ありません。 DHを使用すると、両方の当事者が共有シークレットを独立して計算できます。これは、まだ安全でないチャネルを介して、共有シークレットをクリアテキストで送信する必要はありません。

両方のユーザーからのランダムな入力に基づいて変化するセッションキー

...確かに、接続の両側で一時的なローカルキーを使用して一時的なセッションキーを導出しますが、上記の言い回しは要点を見逃していると思います。使用後のセッションキーを破棄することにより、完全な転送の秘密が得られます。

2人のユーザーだけが知っている共有秘密から導出されたセッションキー

今、あなたは「この事実が私たちに完全な前方秘密をどのように与えるのか」と考えています。重要な点は、使用後のセッションキーを破棄することで完全転送秘密を実現することです。

12
scuzzy-delta

Perfect Forward Secrecy(PFS)とは、長期のキー情報の侵害が、以前の長期の情報から導出されたセッションキーのセキュリティを侵害しないことを意味します。つまり、以前のプロトコル実行をすべて記録した盗聴者は、RSA秘密鍵である可能性のある長期鍵について何らかの方法で学習したとしても、過去のセッション鍵を導出することはできません。幸いなことに、後者は実際のセッションキーの導出ではなく、認証を達成するためにのみ使用されます(STEまたはECDHプロトコルのように、DHE​​は中間者攻撃に対して脆弱です)。

DHEとECDHはどちらも、数学的なDiffie–Hellman問題(g、g ^ x、g ^ yの値を指定してg ^ xyを計算する)と離散対数問題(gを指定してkを見つける)を解くのが難しいという仮定により、PFSを提供します。 ^ kおよびg)ECHEのDHEおよび楕円曲線離散対数問題(nが与えられ、nPおよびQを見つける)。したがって、秘密鍵を使用しても、盗聴者は「困難な」数学的問題を解決できない限り、セッション鍵を導出できません。 ECDHはDiffie–Hellmanプロトコルの変形で、楕円曲線暗号を使用して、計算、ストレージ、およびメモリの要件を軽減します。

2
jingyang