DH key exchange 原理介紹



迪菲-赫爾曼密鑰交換(Diffie–Hellman key exchange,簡稱“D–H”) 是一種安全協議。
它可以讓雙方在完全沒有對方任何預先信息的條件下通過不安全信道建立起一個密鑰。這個密鑰可以在後續的通訊中作爲對稱密鑰來加密通訊內容。

(1)、算法描述

離散對數的概念:

原根:如果a是素數p的一個原根,那麼數值:

            a mod p,a^2 mod p,…,a^(p-1) mod p

 是各不相同的整數,且以某種排列方式組成了從1 到p-1 的所有整數。

離散對數:如果對於一個整數b和素數p的一個原根a,可以找到一個唯一的指數 i,使得:

          b =(a的i次方) mod p                其中0 ≦ i ≦ p-1

                     那麼指數 i 稱爲b的以a爲基數的模p的離散對數。

Diffie-Hellman 算法的有效性依賴於計算離散對數的難度,其含義是:當已知大素數p和它的一個原根a後,對給定的 b,要計算 i ,被認爲是很困難的,而給定 i 計算b 卻相對容易。

Diffie-Hellman算法:

假如用戶A和用戶B希望交換一個密鑰。

取素數p和整數a,a是p的一個原根,公開a和p。

A選擇隨機數XA<p,並計算YA=a^XA mod p。

B選擇隨機數XB<p,並計算YB=a^XB mod p。

每一方都將X保密而將Y公開讓另一方得到。

A計算密鑰的方式是:K=(YB) ^XA mod p

B計算密鑰的方式是:K=(YA) ^XB mod p

證明:

                     (YB)^ XA mod p = (a^XB mod p)^ XA mod p

                         = (a^XB)^ XA mod p = (a^XA) ^XB mod p    (<-- 密鑰即爲 a^(XA*XB) mod p)

                         =(a^XA mod p)^ XB mod p = (YA) ^XB mod p

由於XA和XB是保密的,而第三方只有p、a、YB、YA可以利用,只有通過取離散對數來確定密鑰,但對於大的素數p,計算離散對數是十分困難的。

例子:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章