鍵交換のためのDHアルゴリズム

透かし、size_16、text_QDUxQ1RP5Y2a5a6i、color_FFFFFF、t_100、g_se、x_10、y_10、shadow_90、type_ZmFuZ3poZW5naGVpdGk =鍵交換アルゴリズムdh

いくつかのタイプの鍵交換/ネゴシエーションメカニズム

非対称暗号化アルゴリズムに依存する

原則:公開鍵を取得した当事者は、最初にランダムなセッション鍵を生成し、次にそれを公開鍵で暗号化し、次に暗号化結果を相手方に送信し、相手方は秘密鍵を使用して復号化します。したがって、両方の当事者がセッションキーを取得します。

例:RSA

専用の鍵交換アルゴリズムに依存する

原則:下の写真を参照してください

例:DHアルゴリズムとその変形(ECDHアルゴリズム)

DHアルゴリズム

DHアルゴリズムは、2つの当事者が直接鍵を渡さない場合に鍵交換を完了するという問題を解決します。この魔法の交換原理は、数学的理論によって完全にサポートされています。

1.アリスは509などの1つの素数p、5などの基数gを選択し、123などの乱数a
    を計算してから、A = g ^ a mod p = bcmod(bcpow(5,123)、509)= 215を計算します。
    アリスは[p = 509、g = 5、a = 123、A = 215]になり、p、g、Aをボブ
    
2に送信します。ボブがp = 509、g = 5を受信したら、乱数b = 456を選択して
    B = g ^ b mod p = bcmod(bcpow(5,456)、509)= 181
    を計算してs = A ^ bを計算しますmodp = bcmod(bcpow(215,456)、509)= 121
    
    ボブは[p = 509、g = 5、b = 456、B = 181、s = 121、A = 125]
    ボブはB = 181をアリス
    
3に送信します
    アリスは[p、g、a、A、B]を持っています。アリスは

    s = B ^ amodを計算します。 p = bcmod(bcpow(181,123)、509)= 121

したがって、両当事者が交渉するキーは121です。このキーはネットワーク上で送信されないことに注意してください。ネットワークを介して送信されるp、g、A、およびBは、実際のアルゴリズムによって選択される素数が非常に大きいため、sの計算には使用できません。

したがって、より正確には、DHアルゴリズムは鍵共有アルゴリズムであり、両者は最終的に共通の鍵をネゴシエートし、この鍵はネットワークを介して送信されません。

aをAの秘密鍵、AをAの公開鍵、bをBの秘密鍵、BをBの公開鍵と見なす場合、DHアルゴリズムの本質は、両方の当事者が独自の秘密鍵と公開鍵を生成することです。、秘密鍵は自分だけに表示され、公開鍵が交換され、最終的な秘密鍵secretKeyは、自分の秘密鍵と相手の公開鍵に従って生成されます。DHアルゴリズムは、両方の当事者によって計算された秘密鍵が数学の法則を通して同じです。

しかし、DHアルゴリズムは仲介者を解決しません***。つまり、両方の当事者は、彼らとの通信が本当に相手であるかどうかを確認できません。仲介者を排除する***には他の方法が必要です

  • DHアルゴリズムは、通信の両当事者が安全でないチャネルを介してキーをネゴシエートし、対称暗号化送信を実行するキー交換プロトコルです。
  • DHアルゴリズムは仲介者を解決しません***。

ただし、DHアルゴリズム自体には欠点があります。認証をサポートしていません。

つまり、「のぞき見」と戦うことはできますが、「改ざん」と戦うことはできません。当然、「中間者*** / MITM」(ID認証の欠如)と戦うことはできません。 *** / MITM "")

ECDHE

  • 1.クライアントは、ランダム乱数生成Ra
    演算をPa(x, y) = Ra * Q(x, y)し、サーバにPA(x、y)を送信し
    Q(x, y)、世界中の認識一定の楕円曲線アルゴリズムの基点のため

  • 2.サーバーがランダムにランダムな値を生成しRb
    計算をしてPb(x,y) = Rb * Q(x, y)
    されPb(x,y)、クライアントに送信

  • 3.クライアントコンピューティングSa(x,y) = Ra * Pb(x,y)
    サーバーコンピューティングSb(x,y) = Rb *Pa(x,y)

  • 4.アルゴリズムが保証されSa = Sb = S、Sのxベクトルがキー(プリマスターキー)として抽出されます。

おすすめ

転載: blog.51cto.com/huangkui/2677734